| 107:b34bd1557c6c | 108:77254bd6dccb |
|---|---|
| 41 static const char *application_name; | 41 static const char *application_name; |
| 42 | 42 |
| 43 static ui_callback startup_func; | 43 static ui_callback startup_func; |
| 44 static void *startup_data; | 44 static void *startup_data; |
| 45 static ui_callback open_func; | 45 static ui_callback open_func; |
| 46 void *open_data; | 46 static void *open_data; |
| 47 static ui_callback exit_func; | 47 static ui_callback exit_func; |
| 48 void *exit_data; | 48 static void *exit_data; |
| 49 | 49 |
| 50 static int is_toplevel_realized = 0; | 50 static int is_toplevel_realized = 0; |
| 51 | 51 |
| 52 int app_argc; | 52 static int app_argc; |
| 53 char **app_argv; | 53 static char **app_argv; |
| 54 QApplication *application = NULL; | 54 static QApplication *application = NULL; |
| 55 | |
| 56 static UiBool exit_on_shutdown; | |
| 55 | 57 |
| 56 void ui_init(const char *appname, int argc, char **argv) { | 58 void ui_init(const char *appname, int argc, char **argv) { |
| 57 application_name = appname; | 59 application_name = appname; |
| 58 | 60 |
| 59 app_argc = argc; | 61 app_argc = argc; |
| 85 void ui_onexit(ui_callback f, void *userdata) { | 87 void ui_onexit(ui_callback f, void *userdata) { |
| 86 exit_func = f; | 88 exit_func = f; |
| 87 exit_data = userdata; | 89 exit_data = userdata; |
| 88 } | 90 } |
| 89 | 91 |
| 92 void ui_app_exit_on_shutdown(UiBool exitapp) { | |
| 93 exit_on_shutdown = exitapp; | |
| 94 } | |
| 95 | |
| 90 void ui_main() { | 96 void ui_main() { |
| 91 if(startup_func) { | 97 if(startup_func) { |
| 92 startup_func(NULL, startup_data); | 98 startup_func(NULL, startup_data); |
| 93 } | 99 } |
| 94 application->exec(); | 100 application->exec(); |
| 96 exit_func(NULL, exit_data); | 102 exit_func(NULL, exit_data); |
| 97 } | 103 } |
| 98 uic_store_app_properties(); | 104 uic_store_app_properties(); |
| 99 | 105 |
| 100 delete application; | 106 delete application; |
| 107 | |
| 108 if(exit_on_shutdown) { | |
| 109 exit(0); | |
| 110 } | |
| 101 } | 111 } |
| 102 | 112 |
| 103 void ui_show(UiObject *obj) { | 113 void ui_show(UiObject *obj) { |
| 104 obj->widget->show(); | 114 obj->widget->show(); |
| 105 } | 115 } |
| 135 UiEvent e; | 145 UiEvent e; |
| 136 e.obj = obj; | 146 e.obj = obj; |
| 137 e.window = obj->window; | 147 e.window = obj->window; |
| 138 e.document = obj->ctx->document; | 148 e.document = obj->ctx->document; |
| 139 e.eventdata = NULL; | 149 e.eventdata = NULL; |
| 150 e.eventdatatype = 0; | |
| 140 e.intval = 0; | 151 e.intval = 0; |
| 141 e.set = ui_get_setop(); | 152 e.set = ui_get_setop(); |
| 142 if(prepare_event) { | 153 if(prepare_event) { |
| 143 prepare_event(&e, this); | 154 prepare_event(&e, this); |
| 144 } | 155 } |
| 172 UiEvent e; | 183 UiEvent e; |
| 173 e.obj = obj; | 184 e.obj = obj; |
| 174 e.window = obj->window; | 185 e.window = obj->window; |
| 175 e.document = obj->ctx->document; | 186 e.document = obj->ctx->document; |
| 176 e.eventdata = NULL; | 187 e.eventdata = NULL; |
| 188 e.eventdatatype = 0; | |
| 177 e.intval = 0; | 189 e.intval = 0; |
| 178 e.set = ui_get_setop(); | 190 e.set = ui_get_setop(); |
| 179 if(prepare_event) { | 191 if(prepare_event) { |
| 180 prepare_event(&e, this); | 192 prepare_event(&e, this); |
| 181 } | 193 } |