ui/win32/toolkit.c

changeset 112
c3f2f16fa4b8
parent 108
77254bd6dccb
child 113
dde28a806552
--- a/ui/win32/toolkit.c	Sat Oct 04 14:54:25 2025 +0200
+++ b/ui/win32/toolkit.c	Sun Oct 19 21:20:08 2025 +0200
@@ -36,9 +36,13 @@
 #include "../common/document.h"
 #include "../common/properties.h"
 
+#include "../ui/widget.h"
+
 #include <stdio.h>
 #include <stdlib.h>
 
+#include <commctrl.h>
+
 static const char *application_name;
 
 static ui_callback   startup_func;
@@ -48,16 +52,36 @@
 static ui_callback   exit_func;
 void                 *exit_data;
 
+static HFONT ui_font = NULL;
+
 void ui_init(const char *appname, int argc, char **argv) {
     application_name = appname;
 
     uic_init_global_context();
-    uic_docmgr_init();
     uic_menu_init();
     uic_toolbar_init();
     uic_load_app_properties();
 
     ui_window_init();
+
+    INITCOMMONCONTROLSEX icex = { sizeof(icex), ICC_WIN95_CLASSES };
+    InitCommonControlsEx(&icex);
+
+    SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2);
+
+    NONCLIENTMETRICS ncm = { sizeof(ncm) };
+    SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(ncm), &ncm, FALSE);
+    ui_font = CreateFontIndirect(&ncm.lfMessageFont);
+}
+
+HFONT ui_win32_get_font(void) {
+    return ui_font;
+}
+
+void ui_win32_set_ui_font(HWND control) {
+    if (ui_font) {
+        SendMessage(control, WM_SETFONT, (WPARAM)ui_font, TRUE);
+    }
 }
 
 const char* ui_appname() {
@@ -96,3 +120,7 @@
     }
     uic_store_app_properties();
 }
+
+void ui_show(UiObject *obj) {
+    ui_set_visible(obj->widget, TRUE);
+}
\ No newline at end of file

mercurial