--- 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