ui/cocoa/toolkit.m

changeset 108
77254bd6dccb
parent 103
6606616eca9f
child 109
c3dfcb8f0be7
equal deleted inserted replaced
107:b34bd1557c6c 108:77254bd6dccb
44 static const char **app_argv; 44 static const char **app_argv;
45 45
46 static ui_callback startup_func; 46 static ui_callback startup_func;
47 static void *startup_data; 47 static void *startup_data;
48 static ui_callback open_func; 48 static ui_callback open_func;
49 void *open_data; 49 static void *open_data;
50 static ui_callback exit_func; 50 static ui_callback exit_func;
51 void *exit_data; 51 static void *exit_data;
52
53 static UiBool exit_on_shutdown;
52 54
53 /* ------------------- App Init / Event Loop functions ------------------- */ 55 /* ------------------- App Init / Event Loop functions ------------------- */
54 56
55 void ui_init(const char *appname, int argc, char **argv) { 57 void ui_init(const char *appname, int argc, char **argv) {
56 application_name = appname; 58 application_name = appname;
87 void ui_onexit(ui_callback f, void *userdata) { 89 void ui_onexit(ui_callback f, void *userdata) {
88 exit_func = f; 90 exit_func = f;
89 exit_data = userdata; 91 exit_data = userdata;
90 } 92 }
91 93
94 void ui_app_exit_on_shutdown(UiBool exitapp) {
95 exit_on_shutdown = exitapp;
96 }
97
92 void ui_cocoa_onstartup(void) { 98 void ui_cocoa_onstartup(void) {
93 UiEvent e; 99 UiEvent e;
94 e.obj = NULL; 100 e.obj = NULL;
95 e.window = NULL; 101 e.window = NULL;
96 e.document = NULL; 102 e.document = NULL;
125 } 131 }
126 } 132 }
127 133
128 void ui_main(void) { 134 void ui_main(void) {
129 NSApplicationMain(app_argc, app_argv); 135 NSApplicationMain(app_argc, app_argv);
136 if(exit_on_shutdown) {
137 exit(0);
138 }
130 } 139 }
131 140
132 /* ------------------- Window Visibility functions ------------------- */ 141 /* ------------------- Window Visibility functions ------------------- */
133 142
134 void ui_show(UiObject *obj) { 143 void ui_show(UiObject *obj) {

mercurial