40 |
40 |
41 static XtAppContext app; |
41 static XtAppContext app; |
42 static Display *display; |
42 static Display *display; |
43 static Widget active_window; |
43 static Widget active_window; |
44 static char *application_name; |
44 static char *application_name; |
|
45 |
|
46 static ui_callback startup_func; |
|
47 static void *startup_data; |
|
48 static ui_callback open_func; |
|
49 void *open_data; |
|
50 static ui_callback exit_func; |
|
51 void *exit_data; |
45 |
52 |
46 static ui_callback appclose_fnc; |
53 static ui_callback appclose_fnc; |
47 static void *appclose_udata; |
54 static void *appclose_udata; |
48 |
55 |
49 static int is_toplevel_realized = 0; |
56 static int is_toplevel_realized = 0; |
132 |
139 |
133 Display* ui_get_display() { |
140 Display* ui_get_display() { |
134 return display; |
141 return display; |
135 } |
142 } |
136 |
143 |
137 void ui_exitfunc(ui_callback f, void *udata) { |
144 void ui_onstartup(ui_callback f, void *userdata) { |
138 appclose_fnc = f; |
145 startup_func = f; |
139 appclose_udata = udata; |
146 startup_data = userdata; |
140 } |
147 } |
141 |
148 |
142 void ui_openfilefunc(ui_callback f, void *userdata) { |
149 void ui_onopen(ui_callback f, void *userdata) { |
143 // OS X only |
150 open_func = f; |
|
151 open_data = userdata; |
|
152 } |
|
153 |
|
154 void ui_onexit(ui_callback f, void *userdata) { |
|
155 exit_func = f; |
|
156 exit_data = userdata; |
144 } |
157 } |
145 |
158 |
146 void ui_main() { |
159 void ui_main() { |
|
160 if(startup_func) { |
|
161 startup_func(NULL, startup_data); |
|
162 } |
147 XtAppMainLoop(app); |
163 XtAppMainLoop(app); |
148 if(appclose_fnc) { |
164 if(exit_func) { |
149 appclose_fnc(NULL, appclose_udata); |
165 exit_func(NULL, exit_data); |
150 } |
166 } |
151 uic_store_app_properties(); |
167 uic_store_app_properties(); |
152 } |
168 } |
153 |
169 |
154 void ui_exit_mainloop() { |
170 void ui_exit_mainloop() { |