| 35 |
35 |
| 36 #include "../common/document.h" |
36 #include "../common/document.h" |
| 37 #include "../common/properties.h" |
37 #include "../common/properties.h" |
| 38 #include "../common/menu.h" |
38 #include "../common/menu.h" |
| 39 #include "../common/toolbar.h" |
39 #include "../common/toolbar.h" |
| |
40 #include "../common/app.h" |
| 40 |
41 |
| 41 static const char *application_name; |
42 static const char *application_name; |
| 42 |
|
| 43 static ui_callback startup_func; |
|
| 44 static void *startup_data; |
|
| 45 static ui_callback open_func; |
|
| 46 static void *open_data; |
|
| 47 static ui_callback exit_func; |
|
| 48 static void *exit_data; |
|
| 49 |
43 |
| 50 static int is_toplevel_realized = 0; |
44 static int is_toplevel_realized = 0; |
| 51 |
45 |
| 52 static int app_argc; |
46 static int app_argc; |
| 53 static char **app_argv; |
47 static char **app_argv; |
| 71 |
65 |
| 72 const char* ui_appname() { |
66 const char* ui_appname() { |
| 73 return application_name; |
67 return application_name; |
| 74 } |
68 } |
| 75 |
69 |
| 76 void ui_onstartup(ui_callback f, void *userdata) { |
|
| 77 startup_func = f; |
|
| 78 startup_data = userdata; |
|
| 79 } |
|
| 80 |
|
| 81 void ui_onopen(ui_callback f, void *userdata) { |
|
| 82 open_func = f; |
|
| 83 open_data = userdata; |
|
| 84 } |
|
| 85 |
|
| 86 void ui_onexit(ui_callback f, void *userdata) { |
|
| 87 exit_func = f; |
|
| 88 exit_data = userdata; |
|
| 89 } |
|
| 90 |
|
| 91 void ui_app_exit_on_shutdown(UiBool exitapp) { |
70 void ui_app_exit_on_shutdown(UiBool exitapp) { |
| 92 exit_on_shutdown = exitapp; |
71 exit_on_shutdown = exitapp; |
| 93 } |
72 } |
| 94 |
73 |
| 95 void ui_main() { |
74 void ui_main() { |
| 96 if(startup_func) { |
75 uic_application_startup(NULL); |
| 97 startup_func(NULL, startup_data); |
|
| 98 } |
|
| 99 application->exec(); |
76 application->exec(); |
| 100 if(exit_func) { |
77 uic_application_exit(NULL); |
| 101 exit_func(NULL, exit_data); |
|
| 102 } |
|
| 103 uic_store_app_properties(); |
78 uic_store_app_properties(); |
| 104 |
79 |
| 105 delete application; |
80 delete application; |
| 106 |
81 |
| 107 if(exit_on_shutdown) { |
82 if(exit_on_shutdown) { |