ui/qt/toolkit.cpp

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

mercurial