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
8 TEST_PARAM test_parameter = {
9 "guix_icon_button_24xrgb", /* Test name */
10 229, 386, 252, 414 /* Define the coordinates of the capture area.
11 In this test, we only need to capture the pixelmap
12 drawing area. */
13 };
14
15 static VOID control_thread_entry(ULONG);
main(int argc,char ** argv)16 int main(int argc, char ** argv)
17 {
18 /* Parse the command line argument. */
19 gx_validation_setup(argc, argv);
20
21 /* Start ThreadX system */
22 tx_kernel_enter();
23 return(0);
24 }
25
tx_application_define(void * first_unused_memory)26 VOID tx_application_define(void *first_unused_memory)
27 {
28
29 /* Create a dedicated thread to perform various operations
30 on the line drawing example. These operations simulate
31 user input. */
32 gx_validation_control_thread_create(control_thread_entry);
33
34 /* Termiante the test if it runs for more than 100 ticks */
35 /* This function is not implemented yet. */
36 gx_validation_watchdog_create(100);
37
38 /* Call the actual line example routine. */
39 gx_validation_application_define(first_unused_memory);
40
41 }
42
43
44 /* Replace the default graphics driver with the validation driver. */
45 #ifdef win32_graphics_driver_setup_24xrgb
46 #undef win32_graphics_driver_setup_24xrgb
47 #endif
48 #define win32_graphics_driver_setup_24xrgb gx_validation_graphics_driver_setup_24xrgb
49
50
51 #ifdef WIN32
52 #undef WIN32
53 #endif
54
55 #include "gx_validation_wrapper.h"
56 #include "demo_guix_all_widgets.c"
57
58 static GX_VALUE x_point[] = {228, 229, 235, 252, 253};
59 static GX_VALUE y_point[] = {385, 386, 399, 409, 410};
60 static ULONG event_type[] = {GX_EVENT_PEN_DOWN, GX_EVENT_PEN_UP};
61
62
63 char test_comment[256];
64
65 /* This thread simulates user input. Its priority is lower
66 than the GUIX thread, so that GUIX finishes an operation
67 before this thread is able to issue the next command. */
control_thread_entry(ULONG input)68 static VOID control_thread_entry(ULONG input)
69 {
70 int x_index, y_index, type_index;
71 GX_EVENT my_event;
72 int frame_id = 1;
73 GX_ICON_BUTTON *pButton;
74
75 gx_widget_find(pButtonScreen, ID_ICON_BUTTON, 0, (GX_WIDGET **) &pButton);
76
77 /* add transparent style */
78 gx_widget_style_add(pButton, GX_STYLE_TRANSPARENT);
79 gx_validation_set_frame_id(frame_id);
80 sprintf(test_comment, "add transparent style");
81 gx_validation_set_frame_comment(test_comment);
82 /* Force a screen refresh. */
83 gx_validation_screen_refresh();
84
85
86 frame_id++;
87
88
89 /* send pen down event. */
90 memset(&my_event, 0, sizeof(GX_EVENT));
91 my_event.gx_event_type = GX_EVENT_PEN_DOWN;
92 my_event.gx_event_payload.gx_event_pointdata.gx_point_x = 235;
93 my_event.gx_event_payload.gx_event_pointdata.gx_point_y = 399;
94 my_event.gx_event_display_handle = 1;
95 gx_system_event_send(&my_event);
96 gx_validation_set_frame_id(frame_id);
97 sprintf(test_comment, "send pen down event");
98 gx_validation_set_frame_comment(test_comment);
99 /* Force a screen refresh. */
100 gx_validation_screen_refresh();
101
102 frame_id ++;
103
104 my_event.gx_event_type = GX_EVENT_PEN_UP;
105 my_event.gx_event_display_handle = 1;
106 gx_system_event_send(&my_event);
107 gx_validation_set_frame_id(frame_id);
108 sprintf(test_comment, "send pen up event");
109 gx_validation_set_frame_comment(test_comment);
110 /* Force a screen refresh. */
111 gx_validation_screen_refresh();
112
113
114 frame_id ++;
115
116 /* remove transparent style. */
117 gx_widget_style_remove(pButton, GX_STYLE_TRANSPARENT);
118 gx_validation_set_frame_id(frame_id);
119 sprintf(test_comment, "remove transparent style");
120 gx_validation_set_frame_comment(test_comment);
121 /* Force a screen refresh. */
122 gx_validation_screen_refresh();
123
124
125 frame_id++;
126
127 my_event.gx_event_type = GX_EVENT_PEN_DOWN;
128 my_event.gx_event_display_handle = 1;
129 gx_system_event_send(&my_event);
130 gx_validation_set_frame_id(frame_id);
131 sprintf(test_comment, "send pen down event");
132 gx_validation_set_frame_comment(test_comment);
133 /* Force a screen refresh. */
134 gx_validation_screen_refresh();
135
136
137 frame_id ++;
138
139 my_event.gx_event_type = GX_EVENT_PEN_UP;
140 my_event.gx_event_display_handle = 1;
141 gx_system_event_send(&my_event);
142 gx_validation_set_frame_id(frame_id);
143 sprintf(test_comment, "send pen up event");
144 gx_validation_set_frame_comment(test_comment);
145 /* Force a screen refresh. */
146 gx_validation_screen_refresh();
147
148
149 frame_id ++;
150 /* remove background pixelmap. */
151 gx_icon_button_pixelmap_set(pButton, GX_NULL);
152 gx_validation_set_frame_id(frame_id);
153 sprintf(test_comment, "remove background map");
154 gx_validation_set_frame_comment(test_comment);
155 /* Force a screen refresh. */
156 gx_validation_screen_refresh();
157
158
159 frame_id++;
160
161 /* set new background colors. */
162 gx_widget_fill_color_set(pButton, GX_COLOR_ID_NEXT_BUTTON_UPPER, GX_COLOR_ID_NEXT_BUTTON_LOWER, GX_COLOR_ID_NEXT_BUTTON_UPPER);
163 gx_validation_set_frame_id(frame_id);
164 sprintf(test_comment, "set new background colors");
165 gx_validation_set_frame_comment(test_comment);
166 /* Force a screen refresh. */
167 gx_validation_screen_refresh();
168
169
170 frame_id++;
171
172 /* send pen down event. */
173 my_event.gx_event_type = GX_EVENT_PEN_DOWN;
174 my_event.gx_event_display_handle = 1;
175 gx_system_event_send(&my_event);
176 gx_validation_set_frame_id(frame_id);
177 sprintf(test_comment, "send pen down event");
178 gx_validation_set_frame_comment(test_comment);
179 /* Force a screen refresh. */
180 gx_validation_screen_refresh();
181
182
183 frame_id ++;
184
185 my_event.gx_event_type = GX_EVENT_PEN_UP;
186 my_event.gx_event_display_handle = 1;
187 gx_system_event_send(&my_event);
188 gx_validation_set_frame_id(frame_id);
189 sprintf(test_comment, "send pen up event");
190 gx_validation_set_frame_comment(test_comment);
191 /* Force a screen refresh. */
192 gx_validation_screen_refresh();
193
194
195 frame_id ++;
196
197 /* set background pixelmap for the icon button. */
198 gx_icon_button_pixelmap_set(pButton, GX_PIXELMAP_ID_SAVE_ICON);
199 gx_validation_set_frame_id(frame_id);
200 sprintf(test_comment, "set background pixelmap");
201 gx_validation_set_frame_comment(test_comment);
202 /* Force a screen refresh. */
203 gx_validation_screen_refresh();
204
205 frame_id ++;
206
207 for (x_index = 0; x_index < (GX_VALUE)(sizeof(x_point) / sizeof(GX_VALUE)); x_index ++)
208 {
209 my_event.gx_event_payload.gx_event_pointdata.gx_point_x = x_point[x_index];
210
211 for (y_index = 0; y_index < (GX_VALUE)(sizeof(y_point) / sizeof(GX_VALUE)); y_index ++)
212 {
213 my_event.gx_event_payload.gx_event_pointdata.gx_point_y = y_point[y_index];
214
215 for (type_index = 0; type_index < (int)(sizeof(event_type) / sizeof(ULONG)); type_index ++)
216 {
217 my_event.gx_event_type = event_type[type_index];
218 my_event.gx_event_display_handle = 1;
219
220
221 if ((x_point[x_index] >= 229) && (x_point[x_index] <= 252) &&
222 (y_point[y_index] >= 386) && (y_point[y_index] <= 409))
223 {
224
225 if (my_event.gx_event_type == GX_EVENT_PEN_DOWN)
226 {
227 sprintf(test_comment, "send pen down event");
228 }
229 else if (my_event.gx_event_type == GX_EVENT_PEN_UP)
230 {
231 sprintf(test_comment, "send pen up event");
232 }
233 }
234
235
236 gx_system_event_send(&my_event);
237 gx_validation_set_frame_id(frame_id);
238 gx_validation_set_frame_comment(test_comment);
239 /* Force a screen refresh. */
240 gx_validation_screen_refresh();
241 /* Increment frame ID */
242 frame_id ++;
243 }
244 }
245 }
246
247 /* Signal the end of the test case. Verify the output. */
248 gx_validation_end();
249
250 exit(0);
251 }
252