1 /* This is a small demo of the high-performance GUIX graphics framework. */
2 
3 #include <stdio.h>
4 #include "tx_api.h"
5 #include "gx_api.h"
6 #include "gx_validation_utility.h"
7 #include "gx_menu.h"
8 #include "gx_system.h"
9 
10 TEST_PARAM test_parameter = {
11     "guix_tree_view_scroll", /* Test name */
12     460, 100, 628, 355  /* Define the coordinates of the capture area.
13                          In this test, we only need to capture the line
14                          drawing area.  */
15 };
16 
17 static VOID      control_thread_entry(ULONG);
main(int argc,char ** argv)18 int main(int argc, char ** argv)
19 {
20     /* Parse the command line argument. */
21     gx_validation_setup(argc, argv);
22 
23     /* Start ThreadX system */
24     tx_kernel_enter();
25     return(0);
26 }
27 
tx_application_define(void * first_unused_memory)28 VOID tx_application_define(void *first_unused_memory)
29 {
30 
31     /* Create a dedicated thread to perform various operations
32        on the line drawing example. These operations simulate
33        user input. */
34     gx_validation_control_thread_create(control_thread_entry);
35 
36     /* Termiante the test if it runs for more than 100 ticks */
37     /* This function is not implemented yet. */
38     gx_validation_watchdog_create(100);
39 
40     /* Call the actual line example routine. */
41     gx_validation_application_define(first_unused_memory);
42 
43 }
44 
45 
46 /* Replace the default graphics driver with the validation driver. */
47 #ifdef win32_graphics_driver_setup_24xrgb
48 #undef win32_graphics_driver_setup_24xrgb
49 #endif
50 #define win32_graphics_driver_setup_24xrgb  gx_validation_graphics_driver_setup_24xrgb
51 
52 
53 #ifdef WIN32
54 #undef WIN32
55 #endif
56 
57 #include "gx_validation_wrapper.h"
58 
59 #include "demo_guix_all_widgets.c"
60 
61 char test_comment[256];
62 
control_thread_entry(ULONG input)63 static VOID control_thread_entry(ULONG input)
64 {
65 INT           frame_id = 1;
66 GX_EVENT      my_event;
67 GX_TREE_VIEW *tree_view;
68 INT           index;
69 
70     tree_view = &menu_screen.menu_screen_tree_view;
71 
72     /* Toggle from menu screen to text screen. */
73     ToggleScreen((GX_WINDOW *)&menu_screen, pButtonScreen);
74 
75     memset(&my_event, 0, sizeof(GX_EVENT));
76     my_event.gx_event_target = (GX_WIDGET *)tree_view;
77     for(index = 0; index < 5; index++)
78     {
79         switch(index)
80         {
81         case 0:
82             gx_widget_style_add(tree_view, GX_STYLE_TRANSPARENT);
83             sprintf(test_comment, "add GX_STYLE_TRANSPARENT style");
84             break;
85 
86 
87         case 1:
88         case 4:
89             if(index == 4)
90             {
91                 /* Detach vertial scroll bar. */
92                 gx_widget_detach(&menu_screen.menu_screen_tree_vscroll);
93                 sprintf(test_comment, "detach vertical scroll bar and scroll down by 100");
94             }
95             else
96             {
97                 sprintf(test_comment, "scroll down by 100");
98             }
99             my_event.gx_event_type = GX_EVENT_VERTICAL_SCROLL;
100             my_event.gx_event_payload.gx_event_intdata[1] = 100;
101             my_event.gx_event_payload.gx_event_intdata[0] = 0;
102             gx_system_event_send(&my_event);
103             break;
104 
105         case 2:
106             gx_widget_style_remove(tree_view, GX_STYLE_TRANSPARENT);
107             gx_widget_border_style_set(tree_view, GX_STYLE_BORDER_THICK);
108             sprintf(test_comment, "remove transparent style, set thick border");
109             break;
110 
111         case 3:
112             my_event.gx_event_type = GX_EVENT_HORIZONTAL_SCROLL;
113             my_event.gx_event_payload.gx_event_intdata[1] = 100;
114             my_event.gx_event_payload.gx_event_intdata[0] = 0;
115             gx_system_event_send(&my_event);
116             sprintf(test_comment, "scroll right by 100");
117             break;
118         }
119         gx_validation_set_frame_id(frame_id++);
120         gx_validation_set_frame_comment(test_comment);
121         gx_validation_screen_refresh();
122     }
123     gx_validation_end();
124 
125     exit(0);
126 }
127 
128