| 50 static const char *application_name; |
50 static const char *application_name; |
| 51 |
51 |
| 52 static ui_callback startup_func; |
52 static ui_callback startup_func; |
| 53 static void *startup_data; |
53 static void *startup_data; |
| 54 static ui_callback open_func; |
54 static ui_callback open_func; |
| 55 void *open_data; |
55 static void *open_data; |
| 56 static ui_callback exit_func; |
56 static ui_callback exit_func; |
| 57 void *exit_data; |
57 static void *exit_data; |
| 58 |
58 |
| 59 static ui_callback appclose_fnc; |
59 static ui_callback appclose_fnc; |
| 60 static void *appclose_udata; |
60 static void *appclose_udata; |
| 61 |
61 |
| 62 static int is_toplevel_realized = 0; |
62 static int is_toplevel_realized = 0; |
| 63 |
63 |
| 64 int event_pipe[2]; |
64 static int event_pipe[2]; |
| 65 |
65 |
| |
66 static UiBool exit_on_shutdown; |
| 66 |
67 |
| 67 static String fallback[] = { |
68 static String fallback[] = { |
| 68 //"*fontList: -dt-interface system-medium-r-normal-s*utf*:", |
69 //"*fontList: -dt-interface system-medium-r-normal-s*utf*:", |
| 69 "*renderTable: rt", |
70 "*renderTable: rt", |
| 70 "*rt*fontType: FONT_IS_XFT", |
71 "*rt*fontType: FONT_IS_XFT", |
| 137 void ui_onexit(ui_callback f, void *userdata) { |
138 void ui_onexit(ui_callback f, void *userdata) { |
| 138 exit_func = f; |
139 exit_func = f; |
| 139 exit_data = userdata; |
140 exit_data = userdata; |
| 140 } |
141 } |
| 141 |
142 |
| |
143 void ui_app_exit_on_shutdown(UiBool exitapp) { |
| |
144 exit_on_shutdown = exitapp; |
| |
145 } |
| |
146 |
| 142 void ui_main() { |
147 void ui_main() { |
| 143 if(startup_func) { |
148 if(startup_func) { |
| 144 startup_func(NULL, startup_data); |
149 startup_func(NULL, startup_data); |
| 145 } |
150 } |
| 146 XtAppMainLoop(app); |
151 XtAppMainLoop(app); |
| 147 if(exit_func) { |
152 if(exit_func) { |
| 148 exit_func(NULL, exit_data); |
153 exit_func(NULL, exit_data); |
| 149 } |
154 } |
| 150 uic_store_app_properties(); |
155 uic_store_app_properties(); |
| |
156 if(exit_on_shutdown) { |
| |
157 exit(0); |
| |
158 } |
| 151 } |
159 } |
| 152 |
160 |
| 153 void ui_exit_mainloop() { |
161 void ui_exit_mainloop() { |
| 154 XtAppSetExitFlag(app); |
162 XtAppSetExitFlag(app); |
| 155 } |
163 } |
| 200 event.obj = job->obj; |
208 event.obj = job->obj; |
| 201 event.window = job->obj->window; |
209 event.window = job->obj->window; |
| 202 event.document = job->obj->ctx->document; |
210 event.document = job->obj->ctx->document; |
| 203 event.intval = 0; |
211 event.intval = 0; |
| 204 event.eventdata = NULL; |
212 event.eventdata = NULL; |
| |
213 event.eventdatatype = 0; |
| 205 job->finish_callback(&event, job->finish_data); |
214 job->finish_callback(&event, job->finish_data); |
| 206 } |
215 } |
| 207 free(job); |
216 free(job); |
| 208 return TRUE; |
217 return TRUE; |
| 209 } |
218 } |