# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1032604739 0 # Node ID 94d273843a41bface708b7e70769ad60f60061d6 # Parent 10867409980604ed61c27c9734628ff01e8a0290 Use DWInstance, and some updates to the spinbutton hack. diff -r 108674099806 -r 94d273843a41 win/dw.c --- a/win/dw.c Wed Sep 18 11:53:14 2002 +0000 +++ b/win/dw.c Sat Sep 21 10:38:59 2002 +0000 @@ -1805,7 +1805,7 @@ case WM_LBUTTONDOWN: case WM_MBUTTONDOWN: case WM_RBUTTONDOWN: - case WM_CHAR: + case WM_KEYDOWN: { BOOL ret; @@ -1816,12 +1816,59 @@ /* Tell the edit control that a buttonpress has * occured and to update it's window title. */ - if(cinfo->buddy) + if(cinfo && cinfo->buddy) SendMessage(cinfo->buddy, WM_USER+10, 0, 0); + SetTimer(hWnd, 100, 100, (TIMERPROC)NULL); + return ret; } break; + case WM_LBUTTONUP: + case WM_MBUTTONUP: + case WM_RBUTTONUP: + case WM_KEYUP: + { + BOOL ret; + + if(!cinfo || !cinfo->pOldProc) + ret = DefWindowProc(hWnd, msg, mp1, mp2); + ret = CallWindowProc(cinfo->pOldProc, hWnd, msg, mp1, mp2); + + /* Tell the edit control that a buttonpress has + * occured and to update it's window title. + */ + if(cinfo && cinfo->buddy) + SendMessage(cinfo->buddy, WM_USER+10, 0, 0); + + KillTimer(hWnd, 100); + + return ret; + } + break; + case WM_TIMER: + { + if(mp1 == 100) + { + BOOL ret; + + if(cinfo && cinfo->buddy) + SendMessage(cinfo->buddy, WM_USER+10, 0, 0); + + if(!cinfo || !cinfo->pOldProc) + ret = DefWindowProc(hWnd, msg, mp1, mp2); + ret = CallWindowProc(cinfo->pOldProc, hWnd, msg, mp1, mp2); + + /* Tell the edit control that a buttonpress has + * occured and to update it's window title. + */ + if(cinfo && cinfo->buddy) + SendMessage(cinfo->buddy, WM_USER+10, 0, 0); + + return ret; + } + } + break; case WM_USER+10: { if(cinfo->buddy) @@ -2631,7 +2678,7 @@ 0,0,50,20, HWND_DESKTOP, NULL, - NULL, + DWInstance, NULL); dw_window_set_font(hwndBubble, DefaultFont); @@ -2817,7 +2864,7 @@ */ DW_HWND_OBJECT = CreateWindow(ObjectClassName, "", 0, 0, 0, - 0, 0, HWND_DESKTOP, NULL, NULL, NULL); + 0, 0, HWND_DESKTOP, NULL, DWInstance, NULL); if(!DW_HWND_OBJECT) { @@ -3325,14 +3372,14 @@ ULONG newflags = (flStyle | WS_CLIPCHILDREN) & ~DW_FCF_TASKLIST; hwndframe = CreateWindowEx(flStyleEx, ClassName, title, newflags, CW_USEDEFAULT, CW_USEDEFAULT, - CW_USEDEFAULT, CW_USEDEFAULT, hwndOwner, NULL, NULL, NULL); + CW_USEDEFAULT, CW_USEDEFAULT, hwndOwner, NULL, DWInstance, NULL); } else { flStyleEx |= WS_EX_TOOLWINDOW; hwndframe = CreateWindowEx(flStyleEx, ClassName, title, flStyle | WS_CLIPCHILDREN, CW_USEDEFAULT, CW_USEDEFAULT, - CW_USEDEFAULT, CW_USEDEFAULT, hwndOwner, NULL, NULL, NULL); + CW_USEDEFAULT, CW_USEDEFAULT, hwndOwner, NULL, DWInstance, NULL); } SetWindowLong(hwndframe, GWL_USERDATA, (ULONG)newbox); @@ -3367,7 +3414,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, NULL, - NULL, + DWInstance, NULL); newbox->cinfo.pOldProc = SubclassWindow(hwndframe, _colorwndproc); @@ -3400,7 +3447,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, NULL, - NULL, + DWInstance, NULL); newbox->grouphwnd = CreateWindow(BUTTONCLASSNAME, @@ -3410,7 +3457,7 @@ 0,0,2000,1000, hwndframe, NULL, - NULL, + DWInstance, NULL); SetWindowLong(hwndframe, GWL_USERDATA, (ULONG)newbox); @@ -3456,7 +3503,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, NULL, - NULL, + DWInstance, NULL); } @@ -3481,7 +3528,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, NULL, - NULL, + DWInstance, NULL); SetWindowLong(tmp, GWL_USERDATA, (ULONG)array); dw_window_set_font(tmp, DefaultFont); @@ -3656,7 +3703,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, (HMENU)id, - NULL, + DWInstance, NULL); ContainerInfo *cinfo = (ContainerInfo *)calloc(1, sizeof(ContainerInfo)); @@ -3691,7 +3738,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, (HMENU)id, - NULL, + DWInstance, NULL); ContainerInfo *cinfo = (ContainerInfo *)calloc(1, sizeof(ContainerInfo)); TreeView_SetItemHeight(tmp, 16); @@ -3754,7 +3801,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, (HMENU)id, - NULL, + DWInstance, NULL); dw_window_set_font(tmp, DefaultFont); return tmp; @@ -3775,7 +3822,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, (HMENU)id, - NULL, + DWInstance, NULL); dw_window_set_font(tmp, DefaultFont); SubclassWindow(tmp, _statuswndproc); @@ -3800,7 +3847,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, (HMENU)id, - NULL, + DWInstance, NULL); ContainerInfo *cinfo = (ContainerInfo *)calloc(1, sizeof(ContainerInfo)); @@ -3835,7 +3882,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, (HMENU)id, - NULL, + DWInstance, NULL); ColorInfo *cinfo = calloc(1, sizeof(ColorInfo)); @@ -3865,7 +3912,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, (HMENU)id, - NULL, + DWInstance, NULL); ColorInfo *cinfo = calloc(1, sizeof(ColorInfo)); @@ -3906,7 +3953,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, (HMENU)id, - NULL, + DWInstance, NULL); ColorInfo *cinfo = (ColorInfo *)calloc(1, sizeof(ColorInfo)); ColorInfo *cinfo2 = (ColorInfo *)calloc(1, sizeof(ColorInfo)); @@ -3948,7 +3995,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, (HMENU)id, - NULL, + DWInstance, NULL); bubble->id = id; @@ -3980,7 +4027,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, (HMENU)id, - NULL, + DWInstance, NULL); bubble->id = id; @@ -4013,7 +4060,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, NULL, - NULL, + DWInstance, NULL); HWND tmp = CreateWindowEx(WS_EX_CLIENTEDGE, UPDOWN_CLASS, @@ -4024,7 +4071,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, (HMENU)id, - NULL, + DWInstance, NULL); ColorInfo *cinfo = calloc(1, sizeof(ColorInfo)); @@ -4059,7 +4106,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, (HMENU)id, - NULL, + DWInstance, NULL); BubbleButton *bubble = calloc(1, sizeof(BubbleButton)); bubble->id = id; @@ -4088,7 +4135,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, NULL, - NULL, + DWInstance, NULL); ColorInfo *cinfo = calloc(1, sizeof(ColorInfo)); @@ -4115,7 +4162,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, NULL, - NULL, + DWInstance, NULL); } @@ -4135,7 +4182,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, NULL, - NULL, + DWInstance, NULL); bubble->id = id; bubble->checkbox = 1; @@ -4164,7 +4211,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, NULL, - NULL, + DWInstance, NULL); ContainerInfo *cinfo = (ContainerInfo *)calloc(1, sizeof(ContainerInfo)); @@ -6078,7 +6125,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, NULL, - NULL, + DWInstance, NULL); newbox->pad = 0; newbox->type = 0; @@ -6645,7 +6692,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, NULL, - NULL, + DWInstance, NULL); if(thisbox->type == BOXVERT) dw_box_pack_start(box, tmp, 1, SPLITBAR_WIDTH, TRUE, FALSE, 0); @@ -6672,7 +6719,7 @@ 0,0,2000,1000, DW_HWND_OBJECT, NULL, - NULL, + DWInstance, NULL); if(thisbox->type == BOXVERT) dw_box_pack_end(box, tmp, 1, SPLITBAR_WIDTH, TRUE, FALSE, 0);