Mercurial > dwindows
comparison os2/dw.c @ 166:fb2987817924
Optimize disabling of controls... if already disabled do nothing.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Tue, 19 Nov 2002 20:27:45 +0000 |
parents | c555d06b6c93 |
children | 0b3debaa9c6c |
comparison
equal
deleted
inserted
replaced
165:d03716228b7f | 166:fb2987817924 |
---|---|
4351 */ | 4351 */ |
4352 void dw_window_disable(HWND handle) | 4352 void dw_window_disable(HWND handle) |
4353 { | 4353 { |
4354 char tmpbuf[100]; | 4354 char tmpbuf[100]; |
4355 | 4355 |
4356 if(dw_window_get_data(handle, "_dw_disabled")) | |
4357 return; | |
4358 | |
4356 WinQueryClassName(handle, 99, tmpbuf); | 4359 WinQueryClassName(handle, 99, tmpbuf); |
4360 dw_window_set_data(handle, "_dw_disabled", (void *)1); | |
4357 | 4361 |
4358 if(tmpbuf[0] == '#') | 4362 if(tmpbuf[0] == '#') |
4359 { | 4363 { |
4360 int val = atoi(&tmpbuf[1]); | 4364 int val = atoi(&tmpbuf[1]); |
4361 HWND hwnd; | 4365 HWND hwnd; |
4370 hwnd = _find_entryfield(handle); | 4374 hwnd = _find_entryfield(handle); |
4371 _dw_window_set_color(hwnd ? hwnd : handle, DW_CLR_BLACK, DW_CLR_PALEGRAY); | 4375 _dw_window_set_color(hwnd ? hwnd : handle, DW_CLR_BLACK, DW_CLR_PALEGRAY); |
4372 dw_signal_connect(hwnd ? hwnd : handle, "key_press_event", DW_SIGNAL_FUNC(_null_key), (void *)100); | 4376 dw_signal_connect(hwnd ? hwnd : handle, "key_press_event", DW_SIGNAL_FUNC(_null_key), (void *)100); |
4373 if(val == 2) | 4377 if(val == 2) |
4374 dw_signal_connect(handle, "button_press_event", DW_SIGNAL_FUNC(_null_key), (void *)100); | 4378 dw_signal_connect(handle, "button_press_event", DW_SIGNAL_FUNC(_null_key), (void *)100); |
4375 dw_window_set_data(handle, "_dw_disabled", (void *)1); | |
4376 if(hwnd) | 4379 if(hwnd) |
4377 dw_window_set_data(hwnd, "_dw_disabled", (void *)1); | 4380 dw_window_set_data(hwnd, "_dw_disabled", (void *)1); |
4378 return; | 4381 return; |
4379 case 3: | 4382 case 3: |
4380 _dw_window_set_color(handle, DW_CLR_DARKGRAY, DW_CLR_PALEGRAY); | 4383 _dw_window_set_color(handle, DW_CLR_DARKGRAY, DW_CLR_PALEGRAY); |
4381 dw_signal_connect(handle, "key_press_event", DW_SIGNAL_FUNC(_null_key), (void *)100); | 4384 dw_signal_connect(handle, "key_press_event", DW_SIGNAL_FUNC(_null_key), (void *)100); |
4382 dw_signal_connect(handle, "button_press_event", DW_SIGNAL_FUNC(_null_key), (void *)100); | 4385 dw_signal_connect(handle, "button_press_event", DW_SIGNAL_FUNC(_null_key), (void *)100); |
4383 dw_window_set_data(handle, "_dw_disabled", (void *)1); | |
4384 return; | 4386 return; |
4385 } | 4387 } |
4386 } | 4388 } |
4387 WinEnableWindow(handle, FALSE); | 4389 WinEnableWindow(handle, FALSE); |
4388 } | 4390 } |