ui/win32/toolkit.c

changeset 112
c3f2f16fa4b8
parent 108
77254bd6dccb
child 113
dde28a806552
equal deleted inserted replaced
111:81c4f73236a4 112:c3f2f16fa4b8
34 #include "../common/menu.h" 34 #include "../common/menu.h"
35 #include "../common/toolbar.h" 35 #include "../common/toolbar.h"
36 #include "../common/document.h" 36 #include "../common/document.h"
37 #include "../common/properties.h" 37 #include "../common/properties.h"
38 38
39 #include "../ui/widget.h"
40
39 #include <stdio.h> 41 #include <stdio.h>
40 #include <stdlib.h> 42 #include <stdlib.h>
43
44 #include <commctrl.h>
41 45
42 static const char *application_name; 46 static const char *application_name;
43 47
44 static ui_callback startup_func; 48 static ui_callback startup_func;
45 static void *startup_data; 49 static void *startup_data;
46 static ui_callback open_func; 50 static ui_callback open_func;
47 void *open_data; 51 void *open_data;
48 static ui_callback exit_func; 52 static ui_callback exit_func;
49 void *exit_data; 53 void *exit_data;
50 54
55 static HFONT ui_font = NULL;
56
51 void ui_init(const char *appname, int argc, char **argv) { 57 void ui_init(const char *appname, int argc, char **argv) {
52 application_name = appname; 58 application_name = appname;
53 59
54 uic_init_global_context(); 60 uic_init_global_context();
55 uic_docmgr_init();
56 uic_menu_init(); 61 uic_menu_init();
57 uic_toolbar_init(); 62 uic_toolbar_init();
58 uic_load_app_properties(); 63 uic_load_app_properties();
59 64
60 ui_window_init(); 65 ui_window_init();
66
67 INITCOMMONCONTROLSEX icex = { sizeof(icex), ICC_WIN95_CLASSES };
68 InitCommonControlsEx(&icex);
69
70 SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2);
71
72 NONCLIENTMETRICS ncm = { sizeof(ncm) };
73 SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(ncm), &ncm, FALSE);
74 ui_font = CreateFontIndirect(&ncm.lfMessageFont);
75 }
76
77 HFONT ui_win32_get_font(void) {
78 return ui_font;
79 }
80
81 void ui_win32_set_ui_font(HWND control) {
82 if (ui_font) {
83 SendMessage(control, WM_SETFONT, (WPARAM)ui_font, TRUE);
84 }
61 } 85 }
62 86
63 const char* ui_appname() { 87 const char* ui_appname() {
64 return application_name; 88 return application_name;
65 } 89 }
94 if(exit_func) { 118 if(exit_func) {
95 exit_func(NULL, exit_data); 119 exit_func(NULL, exit_data);
96 } 120 }
97 uic_store_app_properties(); 121 uic_store_app_properties();
98 } 122 }
123
124 void ui_show(UiObject *obj) {
125 ui_set_visible(obj->widget, TRUE);
126 }

mercurial