summaryrefslogtreecommitdiff
path: root/alf/alfpanel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'alf/alfpanel.cpp')
-rw-r--r--alf/alfpanel.cpp36
1 files changed, 26 insertions, 10 deletions
diff --git a/alf/alfpanel.cpp b/alf/alfpanel.cpp
index 5a18976..8583d2e 100644
--- a/alf/alfpanel.cpp
+++ b/alf/alfpanel.cpp
@@ -37,6 +37,16 @@ ALF__PanelWindowProc(HWND window, UINT msg, WPARAM wparam, LPARAM lparam)
SetWindowLongPtr(window, 0, 0);
}
+ if (msg == WM_ERASEBKGND) {
+ HDC hdc = (HDC)wparam;
+
+ RECT r = { 0, 0, 0, 0 };
+ GetClientRect(window, &r);
+ ALF_Compat_DrawThemeParentBackground(window, hdc, &r);
+
+ return TRUE;
+ }
+
if (ALF_ShouldMessageBubble(window, msg, wparam, lparam))
return SendMessage(GetParent(window), msg, wparam, lparam);
@@ -74,23 +84,29 @@ ALF_RegisterPanelClass(void)
ATOM classatom = RegisterClass(&cls);
if (!classatom)
- MessageBox(NULL, TEXT("FATAL: Could not register Combo class"), NULL, MB_OK);
+ MessageBox(NULL, TEXT("FATAL: Could not register panel class"), NULL, MB_OK);
_alf_panelClass = MAKEINTATOM(classatom);
}
HWND
+ALF_CreatePanelWindow(HWND parent, WORD id)
+{
+ return CreateWindowEx(WS_EX_CONTROLPARENT,
+ _alf_panelClass,
+ TEXT(""),
+ WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN,
+ 0, 0, 0, 0,
+ parent,
+ (HMENU)(int)id,
+ ALF_HINSTANCE,
+ NULL);
+}
+
+HWND
ALF_AddPanel(HWND parent, WORD id, UINT x, UINT y)
{
- HWND hwndPanel = CreateWindowEx(WS_EX_CONTROLPARENT,
- _alf_panelClass,
- TEXT(""),
- WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN,
- 0, 0, 0, 0,
- parent,
- (HMENU)(int)id,
- ALF_HINSTANCE,
- NULL);
+ HWND hwndPanel = ALF_CreatePanelWindow(parent, id);
ALFWidgetLayoutParams p;
ZeroMemory(&p, sizeof(p));