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