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