25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
26 * POSSIBILITY OF SUCH DAMAGE. |
26 * POSSIBILITY OF SUCH DAMAGE. |
27 */ |
27 */ |
28 |
28 |
29 #include "toolkit.h" |
29 #include "toolkit.h" |
|
30 #include "Windows.h" |
|
31 |
|
32 #include "../common/properties.h" |
30 |
33 |
31 #include <stdio.h> |
34 #include <stdio.h> |
32 #include <stdlib.h> |
35 #include <stdlib.h> |
33 |
36 |
|
37 static const char *application_name; |
|
38 |
|
39 static ui_callback startup_func; |
|
40 static void *startup_data; |
|
41 static ui_callback open_func; |
|
42 void *open_data; |
|
43 static ui_callback exit_func; |
|
44 void *exit_data; |
|
45 |
|
46 void ui_init(const char *appname, int argc, char **argv) { |
|
47 application_name = appname; |
|
48 } |
|
49 |
|
50 const char* ui_appname() { |
|
51 return application_name; |
|
52 } |
|
53 |
|
54 void ui_onstartup(ui_callback f, void *userdata) { |
|
55 startup_func = f; |
|
56 startup_data = userdata; |
|
57 } |
|
58 |
|
59 void ui_onopen(ui_callback f, void *userdata) { |
|
60 open_func = f; |
|
61 open_data = userdata; |
|
62 } |
|
63 |
|
64 void ui_onexit(ui_callback f, void *userdata) { |
|
65 exit_func = f; |
|
66 exit_data = userdata; |
|
67 } |
|
68 |
|
69 void ui_main() { |
|
70 if(startup_func) { |
|
71 startup_func(NULL, startup_data); |
|
72 } |
|
73 |
|
74 // event loop |
|
75 MSG msg; |
|
76 while (GetMessage(&msg, NULL, 0, 0)) { |
|
77 TranslateMessage(&msg); |
|
78 DispatchMessage(&msg); |
|
79 } |
|
80 |
|
81 if(exit_func) { |
|
82 exit_func(NULL, exit_data); |
|
83 } |
|
84 uic_store_app_properties(); |
|
85 } |