summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Kümmerlin <jonas@kuemmerlin.eu>2020-06-23 15:10:37 +0200
committerJonas Kümmerlin <jonas@kuemmerlin.eu>2020-06-23 15:10:37 +0200
commit0817e451578b2920ec30a2ebb88fe908cf60c0e0 (patch)
tree077d3c1a4149e27e0fc1522add26f506d6f1f81b
parent8b3303ddbfbe86f5e33e8a92b1d02707ff56844a (diff)
button: new padding calculation
this is more in line with how win10 does things and IMHO leads to better results on high-dpi displays.
-rw-r--r--alf/alfbutton.cpp10
-rw-r--r--alf/alflayout.cpp6
2 files changed, 6 insertions, 10 deletions
diff --git a/alf/alfbutton.cpp b/alf/alfbutton.cpp
index 2bc6bc4..8f8ced4 100644
--- a/alf/alfbutton.cpp
+++ b/alf/alfbutton.cpp
@@ -211,10 +211,8 @@ ALF_NtButton_CalculateSize(HWND hwnd, ALFNtButtonPriv *priv, SIZE *pSize)
if (pSize->cy < cy)
pSize->cy = cy;
} else {
- int xpadding = ALF_Compat_GetSystemMetricsForDpi(SM_CXEDGE,
- (UINT)priv->dpi) * 2 + 6;
- int ypadding = ALF_Compat_GetSystemMetricsForDpi(SM_CYEDGE,
- (UINT)priv->dpi) * 2 + 4;
+ int xpadding = ALF_CentipointsToPixels(1800, priv->dpi);
+ int ypadding = ALF_CentipointsToPixels(600, priv->dpi);
if (pSize->cx < r.right - r.left + xpadding) {
pSize->cx = r.right - r.left + xpadding;
@@ -1057,8 +1055,8 @@ ALF_ClassicButton_CalculateSize(HWND hwnd, ALFClassicButtonPriv *priv, SIZE *pSi
if (pSize->cy < cy)
pSize->cy = cy;
} else {
- int xpadding = GetSystemMetrics(SM_CXEDGE) * 2 + 6;
- int ypadding = GetSystemMetrics(SM_CYEDGE) * 2 + 4;
+ int xpadding = 24;
+ int ypadding = 8;
if (pSize->cx < r.right - r.left + xpadding) {
pSize->cx = r.right - r.left + xpadding;
diff --git a/alf/alflayout.cpp b/alf/alflayout.cpp
index 38e69a2..176070d 100644
--- a/alf/alflayout.cpp
+++ b/alf/alflayout.cpp
@@ -277,10 +277,8 @@ ALF_Layout_CalcButtonSize(HWND hwndWindow, ALFLayout *layout, HWND hwndButton, S
DrawText(hdc, textbuf, -1, &r, format);
ALF_Free(textbuf);
- int xpadding = ALF_Compat_GetSystemMetricsForDpi(SM_CXEDGE,
- (UINT)layout->dpi) * 2 + 6;
- int ypadding = ALF_Compat_GetSystemMetricsForDpi(SM_CYEDGE,
- (UINT)layout->dpi) * 2 + 4;
+ int xpadding = ALF_CentipointsToPixels(1800, layout->dpi);
+ int ypadding = ALF_CentipointsToPixels(600, layout->dpi);
if (pSize->cx < r.right - r.left + xpadding) {
pSize->cx = r.right - r.left + xpadding;