ui/motif/toolkit.c

changeset 108
77254bd6dccb
parent 103
6606616eca9f
child 110
c00e968d018b
equal deleted inserted replaced
107:b34bd1557c6c 108:77254bd6dccb
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 }

mercurial