summaryrefslogtreecommitdiff
path: root/alf/alfnotebook.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'alf/alfnotebook.cpp')
-rw-r--r--alf/alfnotebook.cpp33
1 files changed, 25 insertions, 8 deletions
diff --git a/alf/alfnotebook.cpp b/alf/alfnotebook.cpp
index dc56769..ddc37b3 100644
--- a/alf/alfnotebook.cpp
+++ b/alf/alfnotebook.cpp
@@ -90,21 +90,38 @@ ALF_Notebook_InternalHandleThemeChange(HWND hwndNotebook, ALFNotebookPriv *priv)
InvalidateRect(hwndNotebook, NULL, TRUE);
ALF_InvalidateLayout(hwndNotebook);
+
+ int n = ALF_Notebook_InternalTabCount(hwndNotebook, priv->hwndTabCtrl);
+ for (int i = 0; i < n; ++i) {
+ HWND panel = ALF_Notebook_InternalTabPanel(hwndNotebook, priv->hwndTabCtrl, i);
+
+ if (priv->hTheme) {
+ SendMessage(panel, ALF_WM_SETBGCOLOR, (WPARAM)ALF_COLOR_TRANSPARENT, 0);
+ } else {
+ SendMessage(panel, ALF_WM_SETBGCOLOR, (WPARAM)ALF_COLOR_SYS(COLOR_BTNFACE), 0);
+ }
+ }
}
static HWND
-ALF_Notebook_InternalAddTab(HWND notebook, HWND tabControl, const TCHAR *title)
+ALF_Notebook_InternalAddTab(HWND notebook, ALFNotebookPriv *priv, const TCHAR *title)
{
RECT r;
- GetClientRect(tabControl, &r);
- TabCtrl_AdjustRect(tabControl, FALSE, &r);
- MapWindowRect(tabControl, notebook, &r);
+ GetClientRect(priv->hwndTabCtrl, &r);
+ TabCtrl_AdjustRect(priv->hwndTabCtrl, FALSE, &r);
+ MapWindowRect(priv->hwndTabCtrl, notebook, &r);
HWND hwndPanel = ALF_CreatePanelWindow(notebook, (WORD)-1);
SetWindowPos(hwndPanel, NULL, r.left, r.top, r.right - r.left, r.bottom - r.top, SWP_HIDEWINDOW|SWP_NOACTIVATE|SWP_NOZORDER|SWP_NOOWNERZORDER);
- SendMessage(hwndPanel, WM_SETFONT, (WPARAM)SendMessage(tabControl, WM_GETFONT, 0, 0), 0);
+ SendMessage(hwndPanel, WM_SETFONT, (WPARAM)SendMessage(priv->hwndTabCtrl, WM_GETFONT, 0, 0), 0);
+
+ if (priv->hTheme) {
+ SendMessage(hwndPanel, ALF_WM_SETBGCOLOR, (WPARAM)ALF_COLOR_TRANSPARENT, 0);
+ } else {
+ SendMessage(hwndPanel, ALF_WM_SETBGCOLOR, (WPARAM)ALF_COLOR_SYS(COLOR_BTNFACE), 0);
+ }
TCITEM tie;
ZeroMemory(&tie, sizeof(tie));
@@ -113,8 +130,8 @@ ALF_Notebook_InternalAddTab(HWND notebook, HWND tabControl, const TCHAR *title)
tie.pszText = (TCHAR*)title;
tie.lParam = (LPARAM)hwndPanel;
- TabCtrl_InsertItem(tabControl, ALF_Notebook_InternalTabCount(notebook, tabControl), &tie);
- ALF_Notebook_InternalHandleTabChange(notebook, tabControl);
+ TabCtrl_InsertItem(priv->hwndTabCtrl, ALF_Notebook_InternalTabCount(notebook, priv->hwndTabCtrl), &tie);
+ ALF_Notebook_InternalHandleTabChange(notebook, priv->hwndTabCtrl);
ALF_InvalidateLayout(notebook);
@@ -266,7 +283,7 @@ ALF__NotebookWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
}
}
} else if (uMsg == ALF_NB_ADDTAB) {
- return (LRESULT)ALF_Notebook_InternalAddTab(hwnd, priv->hwndTabCtrl, (TCHAR *)lParam);
+ return (LRESULT)ALF_Notebook_InternalAddTab(hwnd, priv, (TCHAR *)lParam);
} else if (uMsg == ALF_NB_TABCOUNT) {
return (LRESULT)ALF_Notebook_InternalTabCount(hwnd, priv->hwndTabCtrl);
} else if (uMsg == ALF_NB_GETPANEL) {