1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 #include "toolkit.h"
30 #include "Windows.h"
31
32 #include "window.h"
33
34 #include "../common/menu.h"
35 #include "../common/toolbar.h"
36 #include "../common/document.h"
37 #include "../common/properties.h"
38
39 #include <stdio.h>
40 #include <stdlib.h>
41
42 static const char *application_name;
43
44 static ui_callback startup_func;
45 static void *startup_data;
46 static ui_callback open_func;
47 void *open_data;
48 static ui_callback exit_func;
49 void *exit_data;
50
51 void ui_init(
const char *appname,
int argc,
char **argv) {
52 application_name = appname;
53
54 uic_init_global_context();
55 uic_docmgr_init();
56 uic_menu_init();
57 uic_toolbar_init();
58 uic_load_app_properties();
59
60 ui_window_init();
61 }
62
63 const char* ui_appname() {
64 return application_name;
65 }
66
67 void ui_onstartup(ui_callback f,
void *userdata) {
68 startup_func = f;
69 startup_data = userdata;
70 }
71
72 void ui_onopen(ui_callback f,
void *userdata) {
73 open_func = f;
74 open_data = userdata;
75 }
76
77 void ui_onexit(ui_callback f,
void *userdata) {
78 exit_func = f;
79 exit_data = userdata;
80 }
81
82 void ui_main() {
83 if(startup_func) {
84 startup_func(
NULL, startup_data);
85 }
86
87
88 MSG msg;
89 while (GetMessage(&msg,
NULL,
0,
0)) {
90 TranslateMessage(&msg);
91 DispatchMessage(&msg);
92 }
93
94 if(exit_func) {
95 exit_func(
NULL, exit_data);
96 }
97 uic_store_app_properties();
98 }
99