ui/motif/toolkit.c

changeset 956
4cdfbfd2038d
parent 932
28fc967f74ef
child 966
e411ed7c5f10
equal deleted inserted replaced
955:ea9a999b4fc8 956:4cdfbfd2038d
37 #include "stock.h" 37 #include "stock.h"
38 #include "../common/menu.h" 38 #include "../common/menu.h"
39 #include "../common/toolbar.h" 39 #include "../common/toolbar.h"
40 #include "../common/document.h" 40 #include "../common/document.h"
41 #include "../common/properties.h" 41 #include "../common/properties.h"
42 #include "../common/app.h"
42 #include <cx/buffer.h> 43 #include <cx/buffer.h>
43 44
44 #include <X11/Intrinsic.h> 45 #include <X11/Intrinsic.h>
45 #include <Xm/CutPaste.h> 46 #include <Xm/CutPaste.h>
46 47
47 static XtAppContext app; 48 static XtAppContext app;
48 static Display *display; 49 static Display *display;
49 static Widget active_window; 50 static Widget active_window;
50 static const char *application_name; 51 static const char *application_name;
51
52 static ui_callback startup_func;
53 static void *startup_data;
54 static ui_callback open_func;
55 static void *open_data;
56 static ui_callback exit_func;
57 static void *exit_data;
58 52
59 static ui_callback appclose_fnc; 53 static ui_callback appclose_fnc;
60 static void *appclose_udata; 54 static void *appclose_udata;
61 55
62 static int is_toplevel_realized = 0; 56 static int is_toplevel_realized = 0;
132 126
133 Display* ui_motif_get_display() { 127 Display* ui_motif_get_display() {
134 return display; 128 return display;
135 } 129 }
136 130
137 void ui_onstartup(ui_callback f, void *userdata) {
138 startup_func = f;
139 startup_data = userdata;
140 }
141
142 void ui_onopen(ui_callback f, void *userdata) {
143 open_func = f;
144 open_data = userdata;
145 }
146
147 void ui_onexit(ui_callback f, void *userdata) {
148 exit_func = f;
149 exit_data = userdata;
150 }
151
152 void ui_app_exit_on_shutdown(UiBool exitapp) { 131 void ui_app_exit_on_shutdown(UiBool exitapp) {
153 exit_on_shutdown = exitapp; 132 exit_on_shutdown = exitapp;
154 } 133 }
155 134
156 void ui_main() { 135 void ui_main() {
157 if(startup_func) { 136 uic_application_startup(NULL);
158 startup_func(NULL, startup_data);
159 }
160 XtAppMainLoop(app); 137 XtAppMainLoop(app);
161 if(exit_func) { 138 uic_application_exit(NULL);
162 exit_func(NULL, exit_data);
163 }
164 uic_store_app_properties(); 139 uic_store_app_properties();
165 if(exit_on_shutdown) { 140 if(exit_on_shutdown) {
166 exit(0); 141 exit(0);
167 } 142 }
168 } 143 }

mercurial