aboutsummaryrefslogtreecommitdiff
path: root/c/common.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/common.c')
-rw-r--r--c/common.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/c/common.c b/c/common.c
index 804611d..a44462d 100644
--- a/c/common.c
+++ b/c/common.c
@@ -4,6 +4,24 @@
#include "resource.h"
#include "defs.h"
+/* Scale integer according to DPI. */
+int Dpi(int i)
+{
+ extern int IDPI;
+
+ if (IDPI == -1) {
+ HMODULE hModule;
+ FARPROC GetDpiForWindow;
+ extern HWND HWnd;
+ IDPI = 96;
+ hModule = LoadLibrary(TEXT("User32.dll"));
+ if (hModule && (GetDpiForWindow = GetProcAddress(hModule, "GetDpiForWindow")))
+ IDPI = GetDpiForWindow(HWnd);
+ }
+
+ return MulDiv(i, IDPI, 96);
+}
+
/* Convert normal string to TSTR using given codepage. */
TCHAR *
TszFromSz(const char *sz, int iCp)