summaryrefslogtreecommitdiff
path: root/alf/alfnotebook.cpp
diff options
context:
space:
mode:
authorJonas Kümmerlin <jonas@kuemmerlin.eu>2020-04-23 15:07:21 +0200
committerJonas Kümmerlin <jonas@kuemmerlin.eu>2020-04-23 15:07:21 +0200
commit51daba89072cb66fe5e43015484a554555a40499 (patch)
tree372502daebee3c3f3b2cfa68047e03f164f3d95c /alf/alfnotebook.cpp
parentd17d8f49777d802b56aa332077afbfa83af691e1 (diff)
changed DPI handling: dpi is now pushed into every control and saved there
Diffstat (limited to 'alf/alfnotebook.cpp')
-rw-r--r--alf/alfnotebook.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/alf/alfnotebook.cpp b/alf/alfnotebook.cpp
index 501b072..6ffbe5d 100644
--- a/alf/alfnotebook.cpp
+++ b/alf/alfnotebook.cpp
@@ -17,6 +17,7 @@ typedef struct {
HTHEME hTheme;
ALFColor themeTabBgColor;
DWORD flags;
+ int dpi;
} ALFNotebookPriv;
typedef struct {
@@ -137,6 +138,16 @@ ALF_Notebook_PropagateFontToPages(HWND hwndNotebook, ALFNotebookPriv *priv, HFON
}
static void
+ALF_Notebook_PropagateDpiChange(HWND hwndNotebook, ALFNotebookPriv *priv, WPARAM wparam, LPARAM lparam)
+{
+ int n = ALF_Notebook_InternalTabCount(hwndNotebook, priv->hwndTabCtrl);
+ for (int i = 0; i < n; ++i) {
+ HWND hwndPanel = ALF_NotebookTabPanel(hwndNotebook, i);
+ SendMessage(hwndPanel, ALF_WM_DPICHANGE, wparam, lparam);
+ }
+}
+
+static void
ALF_Notebook_InternalHandleThemeChange(HWND hwndNotebook, ALFNotebookPriv *priv)
{
ALF_Compat_CloseThemeData(priv->hTheme);
@@ -172,6 +183,7 @@ ALF_Notebook_InternalAddTab(HWND notebook, ALFNotebookPriv *priv, const TCHAR *t
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(priv->hwndTabCtrl, WM_GETFONT, 0, 0), 0);
+ SendMessage(hwndPanel, ALF_WM_DPICHANGE, 0, (LPARAM)priv->dpi);
ALF_Notebook_SetSingleTabBackground(notebook, priv, hwndPanel);
@@ -458,6 +470,10 @@ ALF__NotebookWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
return (LRESULT)ALF_Notebook_GetWidgetFlags(hwnd, priv, (HWND)wParam);
} else if (uMsg == ALF_WM_LYT_SETWDGTFLAGS) {
return (LRESULT)ALF_Notebook_SetWidgetFlags(hwnd, priv, (HWND)wParam, (DWORD)lParam);
+ } else if (uMsg == ALF_WM_DPICHANGE) {
+ priv->dpi = (int)lParam;
+ ALF_Notebook_PropagateDpiChange(hwnd, priv, wParam, lParam);
+ return TRUE;
}
return DefWindowProc(hwnd, uMsg, wParam, lParam);
@@ -499,7 +515,7 @@ ALF_AddNotebook(HWND parent, WORD id, int x, int y)
ALF_HINSTANCE,
NULL);
- ALF_AddWidget(parent, x, y, hwndNtbk, 0, 0, ALF_LAYOUT_SIZE_QUERY | ALF_LAYOUT_INHERITFONT);
+ ALF_AddWidget(parent, x, y, hwndNtbk, 0, 0, ALF_LAYOUT_SIZE_QUERY | ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_SENDDPICHANGE);
return hwndNtbk;
}