1 /* This is a small demo of the high-performance GUIX graphics framework. */
2
3 #include <stdio.h>
4 #include "gx_api.h"
5 #include "sprite_resources.h"
6 #include "sprite_specifications.h"
7
8 /* Define the ThreadX demo thread control block and stack. */
9
10 GX_WINDOW_ROOT *root;
11 GX_BOOL on_off = GX_TRUE;
12
13 /* Define prototypes. */
14 VOID start_guix(VOID);
15 extern UINT win32_graphics_driver_setup_24xrgb(GX_DISPLAY *display);
16
main(int argc,char ** argv)17 int main(int argc, char ** argv)
18 {
19 tx_kernel_enter();
20 return(0);
21 }
22
tx_application_define(void * first_unused_memory)23 VOID tx_application_define(void *first_unused_memory)
24 {
25 start_guix();
26 }
27
start_guix(void)28 VOID start_guix(void)
29 {
30 GX_RECTANGLE winsize;
31
32 /* Initialize GUIX. */
33 gx_system_initialize();
34
35 gx_studio_display_configure(PRIMARY, win32_graphics_driver_setup_24xrgb,
36 LANGUAGE_ENGLISH, PRIMARY_THEME_1, &root);
37
38 /* create the button screen */
39 gx_studio_named_widget_create("main_screen", root, GX_NULL);
40
41 /* Show the root window to make it and patients screen visible. */
42 gx_widget_show(root);
43
44 /* start the GUIX thread */
45 gx_system_start();
46 }
47
main_screen_event_handler(GX_WINDOW * window,GX_EVENT * event_ptr)48 UINT main_screen_event_handler(GX_WINDOW *window, GX_EVENT *event_ptr)
49 {
50 switch (event_ptr->gx_event_type)
51 {
52 case GX_SIGNAL(ID_BUTTON, GX_EVENT_CLICKED):
53 if (on_off)
54 {
55 on_off = GX_FALSE;
56 gx_sprite_start(&main_screen.main_screen_sprite_1, 0);
57 }
58 else
59 {
60 on_off = GX_TRUE;
61 gx_sprite_start(&main_screen.main_screen_sprite_2, 0);
62 }
63 break;
64
65 default:
66 return gx_window_event_process(window, event_ptr);
67 }
68
69 return 0;
70 }
71