ui/cocoa/toolkit.m

changeset 674
51670b0bc625
parent 541
63289f61fb7f
child 677
04bcb1930fbf
equal deleted inserted replaced
673:90a32d739b8e 674:51670b0bc625
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