Some minor improvements and fixes.
diff --git a/dlls/comctl32/comctl32undoc.c b/dlls/comctl32/comctl32undoc.c
index b51c65b..c521532 100644
--- a/dlls/comctl32/comctl32undoc.c
+++ b/dlls/comctl32/comctl32undoc.c
@@ -252,7 +252,7 @@
FIXME (commctrl, "(%lx %lx %lx %lx) empty stub!\n",
dwParam1, dwParam2, dwParam3, dwParam4);
- return -1;
+ return TRUE;
}
@@ -1353,7 +1353,7 @@
}
if (uOptions & DPAS_INSERTAFTER) {
- TRACE (commctrl, "-- ret=%d\n", r);
+ TRACE (commctrl, "-- ret=%d\n", l);
return l;
}
}
diff --git a/dlls/comctl32/pager.c b/dlls/comctl32/pager.c
index 815a55f..8562805 100644
--- a/dlls/comctl32/pager.c
+++ b/dlls/comctl32/pager.c
@@ -91,6 +91,7 @@
NMPGCALCSIZE nmpgcs;
if (infoPtr->hwndChild) {
+ ZeroMemory (&nmpgcs, sizeof (NMPGCALCSIZE));
nmpgcs.hdr.hwndFrom = wndPtr->hwndSelf;
nmpgcs.hdr.idFrom = wndPtr->wIDmenu;
nmpgcs.hdr.code = PGN_CALCSIZE;
@@ -166,10 +167,11 @@
FIXME (pager, "hwnd=%x\n", infoPtr->hwndChild);
/* FIXME: redraw */
- SetParent32 (infoPtr->hwndChild, wndPtr->hwndSelf);
- SetWindowPos32 (infoPtr->hwndChild, wndPtr->hwndSelf,
- 0, 0, 40, 40, SWP_SHOWWINDOW);
- RedrawWindow32 (wndPtr->hwndSelf, NULL, NULL, RDW_INVALIDATE);
+ if (infoPtr->hwndChild) {
+ SetParent32 (infoPtr->hwndChild, wndPtr->hwndSelf);
+ SetWindowPos32 (infoPtr->hwndChild, HWND_TOP,
+ 0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE);
+ }
return 0;
}
@@ -185,8 +187,8 @@
FIXME (pager, "pos=%d\n", infoPtr->nPos);
/* FIXME: redraw */
- SetWindowPos32 (infoPtr->hwndChild, wndPtr->hwndSelf,
- 0, 0, 0, 0, SWP_NOSIZE);
+ SetWindowPos32 (infoPtr->hwndChild, HWND_TOP,
+ 0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE);
return 0;
}
@@ -212,7 +214,7 @@
}
/* set default settings */
- infoPtr->hwndChild = 0;
+ infoPtr->hwndChild = (HWND32)NULL;
infoPtr->clrBk = GetSysColor32 (COLOR_BTNFACE);
infoPtr->nBorder = 0;
infoPtr->nButtonSize = 0;
@@ -245,10 +247,12 @@
HBRUSH32 hBrush = CreateSolidBrush32 (infoPtr->clrBk);
RECT32 rect;
-// GetClientRect32 (wndPtr->hwndSelf, &rect);
-// FillRect32 ((HDC32)wParam, &rect, hBrush);
-// DeleteObject32 (hBrush);
- return TRUE;
+ GetClientRect32 (wndPtr->hwndSelf, &rect);
+ FillRect32 ((HDC32)wParam, &rect, hBrush);
+ DeleteObject32 (hBrush);
+
+// return TRUE;
+ return FALSE;
}
@@ -256,6 +260,28 @@
// << PAGER_Paint >>
+static LRESULT
+PAGER_Size (WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
+{
+ PAGER_INFO *infoPtr = PAGER_GetInfoPtr(wndPtr);
+ RECT32 rect;
+
+ GetClientRect32 (wndPtr->hwndSelf, &rect);
+ if (infoPtr->hwndChild) {
+ SetWindowPos32 (infoPtr->hwndChild, HWND_TOP, rect.left, rect.top,
+ rect.right - rect.left, rect.bottom - rect.top,
+ SWP_SHOWWINDOW);
+// MoveWindow32 (infoPtr->hwndChild, 1, 1, rect.right - 2, rect.bottom-2, TRUE);
+// UpdateWindow32 (infoPtr->hwndChild);
+
+ }
+// FillRect32 ((HDC32)wParam, &rect, hBrush);
+// DeleteObject32 (hBrush);
+ return TRUE;
+}
+
+
+
LRESULT WINAPI
PAGER_WindowProc (HWND32 hwnd, UINT32 uMsg, WPARAM32 wParam, LPARAM lParam)
{
@@ -316,6 +342,8 @@
// case WM_PAINT:
// return PAGER_Paint (wndPtr, wParam);
+ case WM_SIZE:
+ return PAGER_Size (wndPtr, wParam, lParam);
default:
if (uMsg >= WM_USER)
@@ -327,8 +355,8 @@
}
-void
-PAGER_Register (void)
+VOID
+PAGER_Register (VOID)
{
WNDCLASS32A wndClass;
@@ -346,3 +374,11 @@
RegisterClass32A (&wndClass);
}
+
+VOID
+PAGER_Unregister (VOID)
+{
+ if (GlobalFindAtom32A (WC_PAGESCROLLER32A))
+ UnregisterClass32A (WC_PAGESCROLLER32A, (HINSTANCE32)NULL);
+}
+
diff --git a/dlls/comctl32/toolbar.c b/dlls/comctl32/toolbar.c
index fd5e0c4..f9a248b 100644
--- a/dlls/comctl32/toolbar.c
+++ b/dlls/comctl32/toolbar.c
@@ -129,7 +129,7 @@
HDC32 hdcImageList = CreateCompatibleDC32 (0);
HDC32 hdcMask = CreateCompatibleDC32 (0);
- HIMAGELIST himl = infoPtr->himlDef;
+ HIMAGELIST himl = infoPtr->himlStd;
HBITMAP32 hbmMask;
/* create new bitmap */
@@ -187,7 +187,15 @@
DrawEdge32 (hdc, &rc, EDGE_RAISED,
BF_SOFT | BF_RECT | BF_MIDDLE | BF_ADJUST);
- TOOLBAR_DrawMasked (infoPtr, btnPtr, hdc, rc.left+1, rc.top+1);
+ if (bFlat) {
+// if (infoPtr->himlDis)
+ ImageList_Draw (infoPtr->himlDis, btnPtr->iBitmap, hdc,
+ rc.left+1, rc.top+1, ILD_NORMAL);
+// else
+// TOOLBAR_DrawMasked (infoPtr, btnPtr, hdc, rc.left+1, rc.top+1);
+ }
+ else
+ TOOLBAR_DrawMasked (infoPtr, btnPtr, hdc, rc.left+1, rc.top+1);
TOOLBAR_DrawString (infoPtr, btnPtr, hdc, btnPtr->fsState);
return;
@@ -197,7 +205,7 @@
if (btnPtr->fsState & TBSTATE_PRESSED) {
DrawEdge32 (hdc, &rc, EDGE_SUNKEN,
BF_RECT | BF_MIDDLE | BF_ADJUST);
- ImageList_Draw (infoPtr->himlDef, btnPtr->iBitmap, hdc,
+ ImageList_Draw (infoPtr->himlStd, btnPtr->iBitmap, hdc,
rc.left+2, rc.top+2, ILD_NORMAL);
TOOLBAR_DrawString (infoPtr, btnPtr, hdc, btnPtr->fsState);
return;
@@ -214,8 +222,12 @@
BF_RECT | BF_MIDDLE | BF_ADJUST);
TOOLBAR_DrawPattern (hdc, &rc);
- ImageList_Draw (infoPtr->himlDef, btnPtr->iBitmap, hdc,
- rc.left+2, rc.top+2, ILD_NORMAL);
+ if (bFlat)
+ ImageList_Draw (infoPtr->himlDef, btnPtr->iBitmap, hdc,
+ rc.left+2, rc.top+2, ILD_NORMAL);
+ else
+ ImageList_Draw (infoPtr->himlStd, btnPtr->iBitmap, hdc,
+ rc.left+2, rc.top+2, ILD_NORMAL);
TOOLBAR_DrawString (infoPtr, btnPtr, hdc, btnPtr->fsState);
return;
}
@@ -234,8 +246,14 @@
/* normal state */
DrawEdge32 (hdc, &rc, EDGE_RAISED,
BF_SOFT | BF_RECT | BF_MIDDLE | BF_ADJUST);
- ImageList_Draw (infoPtr->himlDef, btnPtr->iBitmap, hdc,
- rc.left+1, rc.top+1, ILD_NORMAL);
+
+ if (bFlat)
+ ImageList_Draw (infoPtr->himlDef, btnPtr->iBitmap, hdc,
+ rc.left+1, rc.top+1, ILD_NORMAL);
+ else
+ ImageList_Draw (infoPtr->himlStd, btnPtr->iBitmap, hdc,
+ rc.left+1, rc.top+1, ILD_NORMAL);
+
TOOLBAR_DrawString (infoPtr, btnPtr, hdc, btnPtr->fsState);
}
@@ -603,7 +621,7 @@
if (!(infoPtr->himlDef)) {
/* create new default image list */
TRACE (toolbar, "creating default image list!\n");
- infoPtr->himlDef =
+ infoPtr->himlStd =
ImageList_Create (infoPtr->nBitmapWidth, infoPtr->nBitmapHeight,
ILC_COLOR | ILC_MASK, (INT32)wParam, 2);
}
@@ -622,7 +640,7 @@
/* Add bitmaps to the default image list */
if (lpAddBmp->hInst == (HINSTANCE32)0) {
nIndex =
- ImageList_AddMasked (infoPtr->himlDef, (HBITMAP32)lpAddBmp->nID,
+ ImageList_AddMasked (infoPtr->himlStd, (HBITMAP32)lpAddBmp->nID,
CLR_DEFAULT);
}
else if (lpAddBmp->hInst == HINST_COMMCTRL) {
@@ -631,14 +649,14 @@
/* Hack to "add" some reserved images within the image list
to get the right image indices */
- nIndex = ImageList_GetImageCount (infoPtr->himlDef);
- ImageList_SetImageCount (infoPtr->himlDef, nIndex + (INT32)wParam);
+ nIndex = ImageList_GetImageCount (infoPtr->himlStd);
+ ImageList_SetImageCount (infoPtr->himlStd, nIndex + (INT32)wParam);
}
else {
HBITMAP32 hBmp =
LoadBitmap32A (lpAddBmp->hInst, (LPSTR)lpAddBmp->nID);
- nIndex = ImageList_AddMasked (infoPtr->himlDef, hBmp, CLR_DEFAULT);
+ nIndex = ImageList_AddMasked (infoPtr->himlStd, hBmp, CLR_DEFAULT);
DeleteObject32 (hBmp);
}
@@ -2052,7 +2070,7 @@
if (wndPtr->dwStyle & TBSTYLE_TOOLTIPS) {
/* Create tooltip control */
infoPtr->hwndToolTip =
- CreateWindowEx32A (0, TOOLTIPS_CLASS32A, NULL, TTS_ALWAYSTIP,
+ CreateWindowEx32A (0, TOOLTIPS_CLASS32A, NULL, 0,
CW_USEDEFAULT32, CW_USEDEFAULT32,
CW_USEDEFAULT32, CW_USEDEFAULT32,
wndPtr->hwndSelf, 0, 0, 0);
@@ -2830,7 +2848,8 @@
}
-void TOOLBAR_Register (void)
+VOID
+TOOLBAR_Register (VOID)
{
WNDCLASS32A wndClass;
@@ -2847,3 +2866,12 @@
RegisterClass32A (&wndClass);
}
+
+
+VOID
+TOOLBAR_Unregister (VOID)
+{
+ if (GlobalFindAtom32A (TOOLBARCLASSNAME32A))
+ UnregisterClass32A (TOOLBARCLASSNAME32A, (HINSTANCE32)NULL);
+}
+
diff --git a/documentation/common_controls b/documentation/common_controls
index ba7f81b..4cec1d7 100644
--- a/documentation/common_controls
+++ b/documentation/common_controls
@@ -198,7 +198,8 @@
Dummy written by Eric Kohl.
Status:
- Dummy control. No functionality.
+ Development in progress.
+ Many bugs and missing features.
Notes:
Author needed!! Any volunteers??
diff --git a/relay32/comctl32.spec b/relay32/comctl32.spec
index 0ba0b8a..767335f 100644
--- a/relay32/comctl32.spec
+++ b/relay32/comctl32.spec
@@ -16,7 +16,7 @@
8 stdcall CreateMappedBitmap(long long long ptr long) CreateMappedBitmap
9 stub COMCTL32_9
10 stub COMCTL32_10
- 11 stdcall COMCTL32_11(long long long long long long) COMCTL32_11
+ 11 stdcall COMCTL32_11(ptr ptr long long long long) COMCTL32_11
#12 stub Cctl1632_ThunkData32
13 stub MakeDragList
14 stub LBItemFromPt