1# -*- coding: utf-8 -*-
2import os
3import sys
4import time
5import test_utils
6import test_constants
7import filecmp
8
9test_add_widget_16bpp_output_files = [
10"test_add_widget_16bpp_resources.c",
11"test_add_widget_16bpp_resources.h",
12"test_add_widget_16bpp_specifications.c",
13"test_add_widget_16bpp_specifications.h"]
14
15test_add_widget_8bpp_output_files = [
16"test_add_widget_8bpp_resources.c",
17"test_add_widget_8bpp_resources.h",
18"test_add_widget_8bpp_specifications.c",
19"test_add_widget_8bpp_specifications.h"]
20
21test_add_widget_24bpp_output_files = [
22"test_add_widget_24bpp_resources.c",
23"test_add_widget_24bpp_resources.h",
24"test_add_widget_24bpp_specifications.c",
25"test_add_widget_24bpp_specifications.h"]
26
27display_name = 'display_1'
28folder_name = 'default_folder'
29ml_text_input_widget_name = 'ml_text_input_test'
30text_screen_name = 'text_screen'
31button_screen_name = 'button_screen'
32window_screen_name = 'window_screen'
33bad_name = 'bAd #1 name'                     # Name check test.
34
35#Create a screen with a bunch of buttons on it:
36def add_button_screen():
37    #---------------------------------------#
38    #add button screen window to display    #
39    #---------------------------------------#
40    test_utils.select_project_tree_node(folder_name)
41    test_utils.add_widget('GX_TYPE_WINDOW')
42    screen_name = "button_screen"
43
44    test_utils.edit_widget_props("ID_XPOS", 0)
45    test_utils.edit_widget_props("ID_YPOS", 0)
46    test_utils.edit_widget_props("ID_WIDTH", 640)
47    test_utils.edit_widget_props("ID_HEIGHT", 480)
48
49    test_utils.edit_widget_props("ID_WIDGET_NAME", screen_name)
50    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_THICK)
51    test_utils.edit_widget_props("ID_NORMAL_COLOR", test_constants.COLOR_WHITE)
52
53    #add button
54    test_utils.select_project_tree_node(screen_name)
55    test_utils.add_widget('GX_TYPE_BUTTON')
56    test_utils.edit_widget_props("ID_XPOS", 41)
57    test_utils.edit_widget_props("ID_YPOS", 35)
58    test_utils.edit_widget_props("ID_WIDTH", 161)
59    test_utils.edit_widget_props("ID_HEIGHT", 49)
60    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_RAISED)
61
62    #add text button
63    test_utils.select_project_tree_node(screen_name)
64    test_utils.add_widget('GX_TYPE_TEXT_BUTTON')
65    test_utils.edit_widget_props("ID_XPOS", 41)
66    test_utils.edit_widget_props("ID_YPOS", 98)
67    test_utils.edit_widget_props("ID_WIDTH", 161)
68    test_utils.edit_widget_props("ID_HEIGHT", 49)
69    test_utils.edit_widget_props("ID_STRING_VAL", "text_button")
70    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_RAISED)
71
72    test_utils.select_project_tree_node(screen_name)
73    test_utils.add_widget('GX_TYPE_TEXT_BUTTON')
74    test_utils.edit_widget_props("ID_XPOS", 327)
75    test_utils.edit_widget_props("ID_YPOS", 176)
76    test_utils.edit_widget_props("ID_WIDTH", 161)
77    test_utils.edit_widget_props("ID_HEIGHT", 49)
78    test_utils.edit_widget_props("ID_TEXT_ALIGN", 'Left')
79    test_utils.edit_widget_props("ID_STRING_VAL", "left_alignment")
80    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_RAISED)
81
82    test_utils.select_project_tree_node(screen_name)
83    test_utils.add_widget('GX_TYPE_TEXT_BUTTON')
84    test_utils.edit_widget_props("ID_XPOS", 327)
85    test_utils.edit_widget_props("ID_YPOS", 240)
86    test_utils.edit_widget_props("ID_WIDTH", 161)
87    test_utils.edit_widget_props("ID_HEIGHT", 49)
88    test_utils.edit_widget_props("ID_TEXT_ALIGN", 'right')
89    test_utils.edit_widget_props("ID_STRING_VAL", "right_alignment")
90    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_RAISED)
91
92    #add multi line button
93    test_utils.select_project_tree_node(screen_name)
94    test_utils.add_widget('GX_TYPE_MULTI_LINE_TEXT_BUTTON')
95    test_utils.edit_widget_props("ID_XPOS", 41)
96    test_utils.edit_widget_props("ID_YPOS", 157)
97    test_utils.edit_widget_props("ID_WIDTH", 161)
98    test_utils.edit_widget_props("ID_HEIGHT", 64)
99    test_utils.edit_widget_props("ID_TRANSPARENT", 1)
100    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_RAISED)
101
102    test_utils.select_project_tree_node(screen_name)
103    test_utils.add_widget('GX_TYPE_MULTI_LINE_TEXT_BUTTON')
104    test_utils.edit_widget_props("ID_XPOS", 327)
105    test_utils.edit_widget_props("ID_YPOS", 304)
106    test_utils.edit_widget_props("ID_WIDTH", 161)
107    test_utils.edit_widget_props("ID_HEIGHT", 64)
108    test_utils.edit_widget_props("ID_TEXT_ALIGN", 'Left')
109    test_utils.edit_widget_props("ID_STRING_ID", "STRING_LEFT_ALIGNMENT")
110    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_RAISED)
111
112    test_utils.select_project_tree_node(screen_name)
113    test_utils.add_widget('GX_TYPE_MULTI_LINE_TEXT_BUTTON')
114    test_utils.edit_widget_props("ID_XPOS", 327)
115    test_utils.edit_widget_props("ID_YPOS", 386)
116    test_utils.edit_widget_props("ID_WIDTH", 161)
117    test_utils.edit_widget_props("ID_HEIGHT", 64)
118    test_utils.edit_widget_props("ID_TEXT_ALIGN", 'right')
119    test_utils.edit_widget_props("ID_STRING_ID", "STRING_RIGHT_ALIGNMENT")
120    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_RAISED)
121
122    #add pixelmap button
123    test_utils.select_project_tree_node(screen_name)
124    test_utils.add_widget('GX_TYPE_PIXELMAP_BUTTON')
125    test_utils.edit_widget_props("ID_XPOS", 74)
126    test_utils.edit_widget_props("ID_YPOS", 220)
127    test_utils.edit_widget_props("ID_WIDTH", 141)
128    test_utils.edit_widget_props("ID_HEIGHT", 69)
129    test_utils.edit_widget_props("ID_PIXELMAP_0", test_constants.PIXELMAP_ORANGE_BUTTON)
130    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_RAISED)
131
132    #add checkbox
133    test_utils.select_project_tree_node(screen_name)
134    test_utils.add_widget('GX_TYPE_CHECKBOX')
135    test_utils.edit_widget_props("ID_XPOS", 101)
136    test_utils.edit_widget_props("ID_YPOS", 302)
137    test_utils.edit_widget_props("ID_WIDTH", 99)
138    test_utils.edit_widget_props("ID_HEIGHT", 24)
139    test_utils.edit_widget_props("ID_STRING_VAL", "checkbox")
140
141    #add radio button
142    test_utils.select_project_tree_node(screen_name)
143    test_utils.add_widget('GX_TYPE_RADIO_BUTTON')
144    test_utils.edit_widget_props("ID_XPOS", 74)
145    test_utils.edit_widget_props("ID_YPOS", 337)
146    test_utils.edit_widget_props("ID_WIDTH", 130)
147    test_utils.edit_widget_props("ID_HEIGHT", 24)
148    test_utils.edit_widget_props("ID_STRING_VAL", "radio_button")
149
150    #add icon button
151    test_utils.select_project_tree_node(screen_name)
152    test_utils.add_widget('GX_TYPE_ICON_BUTTON')
153    test_utils.edit_widget_props("ID_XPOS", 177)
154    test_utils.edit_widget_props("ID_YPOS", 368)
155    test_utils.edit_widget_props("ID_WIDTH", 23)
156    test_utils.edit_widget_props("ID_HEIGHT", 24)
157    test_utils.edit_widget_props("ID_PIXELMAP_0", test_constants.PIXELMAP_SAVE_ICON)
158    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_RAISED)
159
160    #add icon
161    test_utils.select_project_tree_node(screen_name)
162    test_utils.add_widget('GX_TYPE_ICON')
163    test_utils.edit_widget_props("ID_XPOS", 172)
164    test_utils.edit_widget_props("ID_YPOS", 407)
165    test_utils.edit_widget_props("ID_WIDTH", 38)
166    test_utils.edit_widget_props("ID_HEIGHT", 38)
167    test_utils.edit_widget_props("ID_PIXELMAP_0", test_constants.PIXELMAP_HISTORY)
168
169    #add prompt
170    test_utils.select_project_tree_node(screen_name)
171    test_utils.add_widget('GX_TYPE_PROMPT')
172    test_utils.edit_widget_props("ID_XPOS", 327)
173    test_utils.edit_widget_props("ID_YPOS", 34)
174    test_utils.edit_widget_props("ID_WIDTH", 287)
175    test_utils.edit_widget_props("ID_HEIGHT", 34)
176    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_THIN)
177    test_utils.edit_widget_props("ID_TRANSPARENT", 1)
178    test_utils.edit_widget_props("ID_STRING_VAL", "transparent prompt with thin border")
179
180    #add prompt
181    test_utils.select_project_tree_node(screen_name)
182    test_utils.add_widget('GX_TYPE_PROMPT')
183    test_utils.edit_widget_props("ID_XPOS", 327)
184    test_utils.edit_widget_props("ID_YPOS", 80)
185    test_utils.edit_widget_props("ID_WIDTH", 287)
186    test_utils.edit_widget_props("ID_HEIGHT", 34)
187    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_NONE)
188    test_utils.edit_widget_props("ID_TRANSPARENT", 1)
189    test_utils.edit_widget_props("ID_TEXT_ALIGN", 'Left')
190    test_utils.edit_widget_props("ID_STRING_VAL", "transparent prompt with NO border")
191    test_utils.edit_widget_props("ID_FONT_SELECT_0", test_constants.FONT_VERABI)
192
193    #add text copy style and assign an empty string
194    test_utils.select_project_tree_node(screen_name)
195    test_utils.add_widget('GX_TYPE_PROMPT')
196    test_utils.edit_widget_props("ID_XPOS", 327)
197    test_utils.edit_widget_props("ID_YPOS", 7)
198    test_utils.edit_widget_props("ID_WIDTH", 80)
199    test_utils.edit_widget_props("ID_HEIGHT", 24)
200    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_NONE)
201    test_utils.edit_widget_props("ID_TRANSPARENT", 1)
202    test_utils.edit_widget_props("ID_TEXT_COPY", 1)
203    test_utils.edit_widget_props("ID_STRING_VAL", "")
204
205    #add pixelmap prompt
206    test_utils.select_project_tree_node(screen_name)
207    test_utils.add_widget('GX_TYPE_PIXELMAP_PROMPT')
208    test_utils.edit_widget_props("ID_XPOS", 332)
209    test_utils.edit_widget_props("ID_YPOS", 125)
210    test_utils.edit_widget_props("ID_WIDTH", 279)
211    test_utils.edit_widget_props("ID_HEIGHT", 36)
212    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_NONE)
213    test_utils.edit_widget_props("ID_TEXT_ALIGN", 'right')
214    test_utils.edit_widget_props("ID_STRING_VAL", "000")
215    test_utils.edit_widget_props("ID_PIXELMAP_0", test_constants.PIXELMAP_LEFT)
216    test_utils.edit_widget_props("ID_PIXELMAP_1", test_constants.PIXELMAP_FILL)
217    test_utils.edit_widget_props("ID_PIXELMAP_2", test_constants.PIXELMAP_RIGHT)
218    test_utils.edit_widget_props("ID_FONT_SELECT_0", test_constants.FONT_VERABD)
219    test_utils.edit_widget_props("ID_TRANSPARENT", 1)
220    test_utils.compare_result()
221
222#Create a screen with a bunch of text widgets on it:
223def add_text_screen():
224
225    # Add text view / input widgets
226    test_utils.select_project_tree_node(folder_name)
227    test_utils.add_widget('GX_TYPE_WINDOW')
228    screen_name = "text_screen"
229
230    test_utils.edit_widget_props("ID_XPOS", 10)
231    test_utils.edit_widget_props("ID_YPOS", 10)
232    test_utils.edit_widget_props("ID_WIDTH", 620)
233    test_utils.edit_widget_props("ID_HEIGHT", 460)
234
235    test_utils.edit_widget_props("ID_WIDGET_NAME", screen_name)
236    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_NONE)
237    test_utils.edit_widget_props("ID_NORMAL_COLOR", test_constants.COLOR_WHITE)
238
239    #add single line text input
240    test_utils.select_project_tree_node(screen_name)
241    test_utils.add_widget('GX_TYPE_SINGLE_LINE_TEXT_INPUT')
242    test_utils.edit_widget_props("ID_XPOS", 20)
243    test_utils.edit_widget_props("ID_YPOS", 20)
244    test_utils.edit_widget_props("ID_WIDTH", 283)
245    test_utils.edit_widget_props("ID_HEIGHT", 33)
246    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_RECESSED)
247    test_utils.edit_widget_props("ID_STRING_VAL", "left aligned text")
248    test_utils.edit_widget_props("ID_NORMAL_COLOR", test_constants.COLOR_BLACK)
249    test_utils.edit_widget_props("ID_TEXT_ALIGN", 'Left')
250    test_utils.edit_widget_props("ID_FONT_SELECT_0", test_constants.FONT_VERA)
251
252    #add single line text input
253    test_utils.select_project_tree_node(screen_name)
254    test_utils.add_widget('GX_TYPE_SINGLE_LINE_TEXT_INPUT')
255    test_utils.edit_widget_props("ID_XPOS", 20)
256    test_utils.edit_widget_props("ID_YPOS", 60)
257    test_utils.edit_widget_props("ID_WIDTH", 283)
258    test_utils.edit_widget_props("ID_HEIGHT", 33)
259    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_RECESSED)
260    test_utils.edit_widget_props("ID_STRING_VAL", "left")
261    test_utils.edit_widget_props("ID_NORMAL_COLOR", test_constants.COLOR_BLACK)
262    test_utils.edit_widget_props("ID_TEXT_ALIGN", 'Left')
263    test_utils.edit_widget_props("ID_FONT_SELECT_0", test_constants.FONT_VERABI)
264
265    #add single line text input
266    test_utils.select_project_tree_node(screen_name)
267    test_utils.add_widget('GX_TYPE_SINGLE_LINE_TEXT_INPUT')
268    test_utils.edit_widget_props("ID_XPOS", 20)
269    test_utils.edit_widget_props("ID_YPOS", 100)
270    test_utils.edit_widget_props("ID_WIDTH", 283)
271    test_utils.edit_widget_props("ID_HEIGHT", 33)
272    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_RECESSED)
273    test_utils.edit_widget_props("ID_STRING_VAL", "right aligned text")
274    test_utils.edit_widget_props("ID_NORMAL_COLOR", test_constants.COLOR_BLACK)
275    test_utils.edit_widget_props("ID_TEXT_ALIGN", 'Right')
276
277    #add single line text input
278    test_utils.select_project_tree_node(screen_name)
279    test_utils.add_widget('GX_TYPE_SINGLE_LINE_TEXT_INPUT')
280    test_utils.edit_widget_props("ID_XPOS", 20)
281    test_utils.edit_widget_props("ID_YPOS", 138)
282    test_utils.edit_widget_props("ID_WIDTH", 283)
283    test_utils.edit_widget_props("ID_HEIGHT", 33)
284    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_RECESSED)
285    test_utils.edit_widget_props("ID_STRING_VAL", "center aligned text")
286    test_utils.edit_widget_props("ID_NORMAL_COLOR", test_constants.COLOR_BLACK)
287    test_utils.edit_widget_props("ID_TEXT_ALIGN", 'Center')
288
289    #add multi line text view
290    test_utils.select_project_tree_node(screen_name)
291    test_utils.add_widget('GX_TYPE_MULTI_LINE_TEXT_VIEW')
292    test_utils.edit_widget_props("ID_XPOS", 20)
293    test_utils.edit_widget_props("ID_YPOS", 178)
294    test_utils.edit_widget_props("ID_WIDTH", 180)
295    test_utils.edit_widget_props("ID_HEIGHT", 74)
296    test_utils.edit_widget_props("ID_STRING_VAL", "Left Align")
297    test_utils.edit_widget_props("ID_NORMAL_COLOR", test_constants.COLOR_BLACK)
298    test_utils.edit_widget_props("ID_TEXT_ALIGN", 'Left')
299
300    #add multi line text view
301    test_utils.select_project_tree_node(screen_name)
302    test_utils.add_widget('GX_TYPE_MULTI_LINE_TEXT_VIEW')
303    test_utils.edit_widget_props("ID_XPOS", 20)
304    test_utils.edit_widget_props("ID_YPOS", 259)
305    test_utils.edit_widget_props("ID_WIDTH", 180)
306    test_utils.edit_widget_props("ID_HEIGHT", 74)
307    test_utils.edit_widget_props("ID_STRING_VAL", "Center Align")
308    test_utils.edit_widget_props("ID_NORMAL_COLOR", test_constants.COLOR_BLACK)
309    test_utils.edit_widget_props("ID_TEXT_ALIGN", 'Center')
310
311    #add multi line text view
312    test_utils.select_project_tree_node(screen_name)
313    test_utils.add_widget('GX_TYPE_MULTI_LINE_TEXT_VIEW')
314    test_utils.edit_widget_props("ID_XPOS", 20)
315    test_utils.edit_widget_props("ID_YPOS", 340)
316    test_utils.edit_widget_props("ID_WIDTH", 180)
317    test_utils.edit_widget_props("ID_HEIGHT", 74)
318    test_utils.edit_widget_props("ID_STRING_VAL", "Right Align")
319    test_utils.edit_widget_props("ID_NORMAL_COLOR", test_constants.COLOR_BLACK)
320    test_utils.edit_widget_props("ID_TEXT_ALIGN", 'Right')
321
322    #add multi line text input
323    test_utils.select_project_tree_node(screen_name)
324    test_utils.add_widget('GX_TYPE_MULTI_LINE_TEXT_INPUT')
325    test_utils.edit_widget_props("ID_WIDGET_NAME", ml_text_input_widget_name)
326    test_utils.edit_widget_props("ID_XPOS", 332)
327    test_utils.edit_widget_props("ID_YPOS", 20)
328    test_utils.edit_widget_props("ID_WIDTH", 180)
329    test_utils.edit_widget_props("ID_HEIGHT", 74)
330    test_utils.edit_widget_props("ID_STRING_VAL", "Left Align Input")
331    test_utils.edit_widget_props("ID_NORMAL_COLOR", test_constants.COLOR_BLACK)
332    test_utils.edit_widget_props("ID_TEXT_ALIGN", 'Left')
333    test_utils.add_widget('GX_TYPE_VERTICAL_SCROLL')
334
335
336    #add multi line text input
337    test_utils.select_project_tree_node(screen_name)
338    test_utils.add_widget('GX_TYPE_MULTI_LINE_TEXT_INPUT')
339    test_utils.edit_widget_props("ID_WIDGET_NAME", "multi_line_text_input_c")
340    test_utils.edit_widget_props("ID_XPOS", 332)
341    test_utils.edit_widget_props("ID_YPOS", 120)
342    test_utils.edit_widget_props("ID_WIDTH", 180)
343    test_utils.edit_widget_props("ID_HEIGHT", 74)
344    test_utils.edit_widget_props("ID_STRING_VAL", "Center Align")
345    test_utils.edit_widget_props("ID_NORMAL_COLOR", test_constants.COLOR_BLACK)
346    test_utils.edit_widget_props("ID_TEXT_ALIGN", 'Center')
347    test_utils.add_widget('GX_TYPE_VERTICAL_SCROLL')
348
349    #add multi line text input
350    test_utils.select_project_tree_node(screen_name)
351    test_utils.add_widget('GX_TYPE_MULTI_LINE_TEXT_INPUT')
352    test_utils.edit_widget_props("ID_WIDGET_NAME", "multi_line_text_input_r")
353    test_utils.edit_widget_props("ID_XPOS", 332)
354    test_utils.edit_widget_props("ID_YPOS", 220)
355    test_utils.edit_widget_props("ID_WIDTH", 180)
356    test_utils.edit_widget_props("ID_HEIGHT", 74)
357    test_utils.edit_widget_props("ID_STRING_VAL", "Right Align")
358    test_utils.edit_widget_props("ID_NORMAL_COLOR", test_constants.COLOR_BLACK)
359    test_utils.edit_widget_props("ID_TEXT_ALIGN", 'Right')
360    test_utils.add_widget('GX_TYPE_VERTICAL_SCROLL')
361
362    #add numeric prompt
363    test_utils.select_project_tree_node(screen_name)
364    test_utils.add_widget('GX_TYPE_NUMERIC_PROMPT')
365    test_utils.edit_widget_props("ID_XPOS", 333)
366    test_utils.edit_widget_props("ID_YPOS", 309)
367    test_utils.edit_widget_props("ID_WIDTH", 180)
368    test_utils.edit_widget_props("ID_HEIGHT", 33)
369    test_utils.edit_widget_props("ID_WIDGET_NAME", "numeric_prompt")
370    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_NONE)
371    test_utils.edit_widget_props("ID_STRING_ID", "STRING_RIGHT_ALIGNMENT")
372    test_utils.compare_result()
373
374    test_utils.select_project_tree_node("numeric_prompt")
375    test_utils.edit_widget_props("ID_NUMERIC_PROMPT_VALUE", 1000)
376    test_utils.edit_widget_props("ID_NUMERIC_PROMPT_VALUE", 2000)
377    test_utils.compare_result()
378
379    test_utils.undo()
380
381    #add numericpixelmap prompt
382    test_utils.select_project_tree_node(screen_name)
383    test_utils.add_widget('GX_TYPE_NUMERIC_PIXELMAP_PROMPT')
384    test_utils.edit_widget_props("ID_WIDGET_NAME", "numeric_pixelmap_prompt")
385    test_utils.edit_widget_props("ID_XPOS", 334)
386    test_utils.edit_widget_props("ID_YPOS", 356)
387    test_utils.edit_widget_props("ID_WIDTH", 179)
388    test_utils.edit_widget_props("ID_HEIGHT", 48)
389    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_NONE)
390    test_utils.edit_widget_props("ID_STRING_VAL", "000")
391    test_utils.edit_widget_props("ID_PIXELMAP_0", test_constants.PIXELMAP_LEFT)
392    test_utils.edit_widget_props("ID_PIXELMAP_1", test_constants.PIXELMAP_FILL)
393    test_utils.edit_widget_props("ID_PIXELMAP_2", test_constants.PIXELMAP_RIGHT)
394    test_utils.compare_result()
395
396    test_utils.select_project_tree_node("numeric_pixelmap_prompt")
397    test_utils.edit_widget_props("ID_NUMERIC_PROMPT_VALUE", 1000)
398    test_utils.edit_widget_props("ID_NUMERIC_PROMPT_VALUE", 2000)
399    test_utils.compare_result()
400
401    test_utils.undo()
402
403def add_window_screen():
404    #---------------------------------------#
405    #add window screen to display           #
406    #---------------------------------------#
407
408    test_utils.select_project_tree_node(folder_name)
409    test_utils.add_widget('GX_TYPE_WINDOW')
410    screen_name = "window_screen"
411
412    test_utils.edit_widget_props("ID_XPOS", 0)
413    test_utils.edit_widget_props("ID_YPOS", 0)
414    test_utils.edit_widget_props("ID_WIDTH", 640)
415    test_utils.edit_widget_props("ID_HEIGHT", 480)
416
417    test_utils.edit_widget_props("ID_WIDGET_NAME", screen_name)
418    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_THICK)
419
420    #test Name check of properties window
421    test_utils.edit_widget_props_post("ID_WIDGET_NAME", bad_name)
422    test_utils.select_project_tree_node(screen_name)
423    test_utils.close_message_dialog()
424    test_utils.edit_widget_props_post("ID_WIDGET_ID", bad_name)
425    test_utils.select_project_tree_node(screen_name)
426    test_utils.close_message_dialog()
427    test_utils.edit_widget_props_post("ID_EVENT_FUNCTION", bad_name)
428    test_utils.select_project_tree_node(screen_name)
429    test_utils.close_message_dialog()
430    test_utils.edit_widget_props_post("ID_DRAW_FUNCTION", bad_name)
431    test_utils.select_project_tree_node(screen_name)
432    test_utils.close_message_dialog()
433
434    #add vertical list
435    test_utils.select_project_tree_node(screen_name)
436    test_utils.add_widget('GX_TYPE_VERTICAL_LIST')
437    test_utils.edit_widget_props("ID_WIDGET_NAME", "vertical_list")
438    test_utils.edit_widget_props("ID_XPOS", 34)
439    test_utils.edit_widget_props("ID_YPOS", 215)
440    test_utils.edit_widget_props("ID_WIDTH", 102)
441    test_utils.edit_widget_props("ID_HEIGHT", 144)
442
443    test_utils.add_widget('GX_TYPE_TEXT_BUTTON')
444    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_RAISED)
445    test_utils.select_project_tree_node("vertical_list")
446    test_utils.add_widget('GX_TYPE_TEXT_BUTTON')
447    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_RAISED)
448    test_utils.select_project_tree_node("vertical_list")
449    test_utils.add_widget('GX_TYPE_TEXT_BUTTON')
450    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_RAISED)
451    test_utils.select_project_tree_node("vertical_list")
452    test_utils.add_widget('GX_TYPE_TEXT_BUTTON')
453    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_RAISED)
454
455    #add horizontal list
456    test_utils.select_project_tree_node(screen_name)
457    test_utils.add_widget('GX_TYPE_HORIZONTAL_LIST')
458    test_utils.edit_widget_props("ID_WIDGET_NAME", "horizontal_list")
459    test_utils.edit_widget_props("ID_XPOS", 157)
460    test_utils.edit_widget_props("ID_YPOS", 213)
461    test_utils.edit_widget_props("ID_WIDTH", 172)
462    test_utils.edit_widget_props("ID_HEIGHT", 64)
463
464    test_utils.add_widget('GX_TYPE_ICON_BUTTON')
465    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_RAISED)
466    test_utils.edit_widget_props("ID_PIXELMAP_0", test_constants.PIXELMAP_HISTORY)
467    test_utils.select_project_tree_node("horizontal_list")
468    test_utils.add_widget('GX_TYPE_ICON_BUTTON')
469    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_RAISED)
470    test_utils.edit_widget_props("ID_PIXELMAP_0", test_constants.PIXELMAP_SAVE_ICON)
471    test_utils.select_project_tree_node("horizontal_list")
472    test_utils.add_widget('GX_TYPE_ICON_BUTTON')
473    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_RAISED)
474    test_utils.edit_widget_props("ID_PIXELMAP_0", test_constants.PIXELMAP_HISTORY)
475    test_utils.select_project_tree_node("horizontal_list")
476    test_utils.add_widget('GX_TYPE_ICON_BUTTON')
477    test_utils.edit_widget_props("ID_BORDER_COMBO", test_constants.BORDER_TYPE_RAISED)
478    test_utils.edit_widget_props("ID_PIXELMAP_0", test_constants.PIXELMAP_SAVE_ICON)
479
480    #add drop list
481    test_utils.select_project_tree_node(screen_name)
482    test_utils.add_widget('GX_TYPE_DROP_LIST')
483    test_utils.edit_widget_props("ID_WIDGET_NAME", "drop_list")
484    test_utils.edit_widget_props("ID_WIDGET_ID", "ID_DROP_LIST")
485    test_utils.edit_widget_props("ID_XPOS", 154)
486    test_utils.edit_widget_props("ID_YPOS", 304)
487    test_utils.edit_widget_props("ID_WIDTH", 207)
488    test_utils.edit_widget_props("ID_HEIGHT", 29)
489    test_utils.edit_widget_props("ID_LIST_ROWS", 50)
490    test_utils.edit_widget_props("ID_OPEN_HEIGHT", 100)
491    test_utils.edit_widget_props("ID_CALLBACK_NAME", "drop_list_row_create")
492    test_utils.edit_widget_props("ID_PIXELMAP_1", test_constants.PIXELMAP_ORANGE_MIDDLE_HORIZONTAL)
493    test_utils.edit_widget_props("ID_TILE_DROP_LIST_BACKGROUND", 1)
494    test_utils.compare_result()
495    test_utils.edit_widget_props("ID_PIXELMAP_0", test_constants.PIXELMAP_GAUGEMETER)
496    test_utils.edit_widget_props("ID_TILE_DROP_LIST_POPLIST_WALLPAPER", 0)
497    test_utils.compare_result()
498
499    #add child widget to drop list
500    test_utils.select_project_tree_node(screen_name)
501    test_utils.select_project_tree_node("drop_list")
502    test_utils.add_widget('GX_TYPE_PIXELMAP_BUTTON')
503    test_utils.edit_widget_props("ID_WIDGET_NAME", "drop_list_button")
504    test_utils.edit_widget_props("ID_XPOS", 340)
505    test_utils.edit_widget_props("ID_YPOS", 305)
506    test_utils.edit_widget_props("ID_WIDTH", 20)
507    test_utils.edit_widget_props("ID_HEIGHT", 28)
508    test_utils.edit_widget_props("ID_PIXELMAP_0", test_constants.PIXELMAP_SAVE_ICON)
509
510    #add scrollable frame
511    test_utils.select_project_tree_node(screen_name)
512    test_utils.add_widget('GX_TYPE_WINDOW')
513    test_utils.edit_widget_props("ID_WIDGET_NAME", "scroll_frame")
514    test_utils.edit_widget_props("ID_XPOS", 33)
515    test_utils.edit_widget_props("ID_YPOS", 17)
516    test_utils.edit_widget_props("ID_WIDTH", 212)
517    test_utils.edit_widget_props("ID_HEIGHT", 136)
518
519    test_utils.add_widget('GX_TYPE_WINDOW')
520    test_utils.edit_widget_props("ID_WIDGET_NAME", "client_window")
521    test_utils.edit_widget_props("ID_XPOS", 33)
522    test_utils.edit_widget_props("ID_YPOS", 17)
523    test_utils.edit_widget_props("ID_WIDTH", 400)
524    test_utils.edit_widget_props("ID_HEIGHT", 500)
525    test_utils.edit_widget_props("ID_PIXELMAP_0", test_constants.PIXELMAP_FISH)
526
527    test_utils.select_project_tree_node("scroll_frame")
528    test_utils.add_widget('GX_TYPE_VERTICAL_SCROLL')
529    test_utils.edit_widget_props("ID_WIDGET_NAME", "v_scroll")
530
531    test_utils.select_project_tree_node("scroll_frame")
532    test_utils.add_widget('GX_TYPE_HORIZONTAL_SCROLL')
533    test_utils.edit_widget_props("ID_WIDGET_NAME", "h_scroll")
534
535    test_utils.compare_result()
536
537    widgets = ["h_scroll", "v_scroll"]
538    fill_pixelmaps = {
539        widgets[0]: test_constants.PIXELMAP_FILL,
540        widgets[1]: test_constants.PIXELMAP_ORANGE_MIDDLE
541    }
542
543    thumb_pixelmaps = {
544        widgets[0]: test_constants.PIXELMAP_INDICATOR_HORIZONTAL,
545        widgets[1]: test_constants.PIXELMAP_INDICATOR
546    }
547
548    left_pixelmaps = {
549        widgets[0]: test_constants.PIXELMAP_LEFT,
550        widgets[1]: test_constants.PIXELMAP_EMPTY_MIDDLE
551    }
552
553    right_pixelmaps = {
554        widgets[0]: test_constants.PIXELMAP_RIGHT,
555        widgets[1]: test_constants.PIXELMAP_EMPTY_MIDDLE
556    }
557
558    #edit scrollbar properties
559    for widget in widgets:
560        test_utils.select_project_tree_node(widget)
561        test_utils.edit_widget_props("ID_NORMAL_COLOR", test_constants.COLOR_WHITE)
562        test_utils.compare_result()
563
564        #set background pixelmap
565        test_utils.select_project_tree_node(widget)
566        test_utils.edit_widget_props("ID_PIXELMAP_0", fill_pixelmaps[widget])
567        test_utils.compare_result()
568
569        #check on "Tile Background"
570        test_utils.select_project_tree_node(widget)
571        test_utils.edit_widget_props("ID_SCROLL_TILE_BKGND", 1)
572        test_utils.compare_result()
573
574        #set thumb pixelmap
575        test_utils.select_project_tree_node(widget)
576        test_utils.edit_widget_props("ID_PIXELMAP_1", thumb_pixelmaps[widget])
577        test_utils.compare_result()
578
579        #set left pixelmap
580        test_utils.select_project_tree_node(widget)
581        test_utils.edit_widget_props("ID_PIXELMAP_2", left_pixelmaps[widget])
582        test_utils.compare_result()
583
584        #set right pixelmap
585        test_utils.select_project_tree_node(widget)
586        test_utils.edit_widget_props("ID_PIXELMAP_3", right_pixelmaps[widget])
587        test_utils.compare_result()
588
589        #check off "End Buttons"
590        test_utils.select_project_tree_node(widget)
591        test_utils.edit_widget_props("ID_SCROLL_END_BUTTONS", 0)
592        test_utils.compare_result()
593
594        #check off "Relative Thumb Size"
595        test_utils.select_project_tree_node(widget)
596        test_utils.edit_widget_props("ID_SCROLL_RELATIVE_THUMB", 0)
597        test_utils.compare_result()
598
599        #check on "Transparent"
600        #test_utils.edit_widget_props("ID_TRANSPARENT", 1)
601        #test_utils.compare_result()
602
603    #add vertical pixelmap slider
604    test_utils.select_project_tree_node(screen_name)
605    test_utils.add_widget('GX_TYPE_PIXELMAP_SLIDER')
606    test_utils.edit_widget_props("ID_XPOS", 291)
607    test_utils.edit_widget_props("ID_YPOS", 24)
608    test_utils.edit_widget_props("ID_WIDTH", 29)
609    test_utils.edit_widget_props("ID_HEIGHT", 121)
610    test_utils.edit_widget_props("ID_SLIDER_VERTICAL", 1)
611    test_utils.edit_widget_props("ID_TRANSPARENT", 1)
612    test_utils.edit_widget_props("ID_SLIDER_MINVAL", 0)
613    test_utils.edit_widget_props("ID_SLIDER_MAXVAL", 100)
614    test_utils.edit_widget_props("ID_SLIDER_CURRENTVAL", 30)
615    test_utils.edit_widget_props("ID_SLIDER_INCREMENT", 10)
616    test_utils.edit_widget_props("ID_SLIDER_MINTRAVEL", 12)
617    test_utils.edit_widget_props("ID_SLIDER_MAXTRAVEL", 13)
618    test_utils.edit_widget_props("ID_SLIDER_NEEDLE_INSET", -2)
619    test_utils.edit_widget_props("ID_NEEDLE_HOTSPOT", 10)
620    test_utils.edit_widget_props("ID_SLIDER_TILE_BKGND", 1)
621    test_utils.edit_widget_props("ID_PIXELMAP_0", test_constants.PIXELMAP_ORANGE_MIDDLE)
622    test_utils.edit_widget_props("ID_PIXELMAP_1", test_constants.PIXELMAP_EMPTY_MIDDLE)
623    test_utils.edit_widget_props("ID_PIXELMAP_2", test_constants.PIXELMAP_INDICATOR)
624
625    #add vertical slider
626    test_utils.select_project_tree_node(screen_name)
627    test_utils.add_widget('GX_TYPE_SLIDER')
628    test_utils.edit_widget_props("ID_XPOS", 346)
629    test_utils.edit_widget_props("ID_YPOS", 22)
630    test_utils.edit_widget_props("ID_WIDTH", 34)
631    test_utils.edit_widget_props("ID_HEIGHT", 140)
632    test_utils.edit_widget_props("ID_SLIDER_VERTICAL", 1)
633    test_utils.edit_widget_props("ID_SHOW_TICKMARKS", 1)
634    test_utils.edit_widget_props("ID_TICKMARK_COUNT", 9)
635    test_utils.edit_widget_props("ID_SLIDER_MINVAL", 0)
636    test_utils.edit_widget_props("ID_SLIDER_MAXVAL", 100)
637    test_utils.edit_widget_props("ID_SLIDER_CURRENTVAL", 30)
638    test_utils.edit_widget_props("ID_SLIDER_INCREMENT", 10)
639    test_utils.edit_widget_props("ID_SLIDER_MINTRAVEL", 12)
640    test_utils.edit_widget_props("ID_SLIDER_MAXTRAVEL", 13)
641    test_utils.edit_widget_props("ID_SLIDER_NEEDLE_WIDTH", 20)
642    test_utils.edit_widget_props("ID_SLIDER_NEEDLE_HEIGHT", 5)
643    test_utils.edit_widget_props("ID_SLIDER_NEEDLE_INSET", 5)
644    test_utils.edit_widget_props("ID_NEEDLE_HOTSPOT", 2)
645
646    #add horizontal slider
647    test_utils.select_project_tree_node(screen_name)
648    test_utils.add_widget('GX_TYPE_SLIDER')
649    test_utils.edit_widget_props("ID_XPOS", 418)
650    test_utils.edit_widget_props("ID_YPOS", 34)
651    test_utils.edit_widget_props("ID_WIDTH", 184)
652    test_utils.edit_widget_props("ID_HEIGHT", 37)
653    test_utils.edit_widget_props("ID_SLIDER_VERTICAL", 0)
654    test_utils.edit_widget_props("ID_TICKMARK_COUNT", 9)
655    test_utils.edit_widget_props("ID_SLIDER_MINVAL", 0)
656    test_utils.edit_widget_props("ID_SLIDER_MAXVAL", 100)
657    test_utils.edit_widget_props("ID_SLIDER_CURRENTVAL", 30)
658    test_utils.edit_widget_props("ID_SLIDER_INCREMENT", 10)
659    test_utils.edit_widget_props("ID_SLIDER_MINTRAVEL", 12)
660    test_utils.edit_widget_props("ID_SLIDER_MAXTRAVEL", 13)
661    test_utils.edit_widget_props("ID_SLIDER_NEEDLE_WIDTH", 5)
662    test_utils.edit_widget_props("ID_SLIDER_NEEDLE_HEIGHT", 20)
663    test_utils.edit_widget_props("ID_SLIDER_NEEDLE_INSET", 5)
664    test_utils.edit_widget_props("ID_NEEDLE_HOTSPOT", 2)
665
666    #add horizontal pixelmap slider
667    test_utils.select_project_tree_node(screen_name)
668    test_utils.add_widget('GX_TYPE_PIXELMAP_SLIDER')
669    test_utils.edit_widget_props("ID_XPOS", 424)
670    test_utils.edit_widget_props("ID_YPOS", 96)
671    test_utils.edit_widget_props("ID_WIDTH", 161)
672    test_utils.edit_widget_props("ID_HEIGHT", 38)
673    test_utils.edit_widget_props("ID_SLIDER_VERTICAL", 0)
674    test_utils.edit_widget_props("ID_TRANSPARENT", 1)
675    test_utils.edit_widget_props("ID_SLIDER_MINVAL", 0)
676    test_utils.edit_widget_props("ID_SLIDER_MAXVAL", 100)
677    test_utils.edit_widget_props("ID_SLIDER_CURRENTVAL", 80)
678    test_utils.edit_widget_props("ID_SLIDER_INCREMENT", 10)
679    test_utils.edit_widget_props("ID_SLIDER_MINTRAVEL", 12)
680    test_utils.edit_widget_props("ID_SLIDER_MAXTRAVEL", 13)
681    test_utils.edit_widget_props("ID_SLIDER_NEEDLE_INSET", 4)
682    test_utils.edit_widget_props("ID_NEEDLE_HOTSPOT", 10)
683    test_utils.edit_widget_props("ID_SLIDER_TILE_BKGND", 1)
684    test_utils.edit_widget_props("ID_PIXELMAP_0", test_constants.PIXELMAP_ORANGE_MIDDLE_HORIZONTAL)
685    test_utils.edit_widget_props("ID_PIXELMAP_1", test_constants.PIXELMAP_EMPTY_MIDDLE_HORIZONTAL)
686    test_utils.edit_widget_props("ID_PIXELMAP_2", test_constants.PIXELMAP_INDICATOR_HORIZONTAL)
687
688    #add progress bar
689    test_utils.select_project_tree_node(screen_name)
690    test_utils.add_widget('GX_TYPE_PROGRESS_BAR')
691    test_utils.edit_widget_props("ID_XPOS", 422)
692    test_utils.edit_widget_props("ID_YPOS",151)
693    test_utils.edit_widget_props("ID_WIDTH", 166)
694    test_utils.edit_widget_props("ID_HEIGHT", 39)
695    test_utils.edit_widget_props("ID_PROGRESS_SHOW_TEXT", 1)
696    test_utils.edit_widget_props("ID_PROGRESS_PERCENT",1)
697    test_utils.edit_widget_props("ID_PROGRESS_MINVAL", 0)
698    test_utils.edit_widget_props("ID_PROGRESS_MAXVAL", 100)
699    test_utils.edit_widget_props("ID_PROGRESS_CURRENTVAL", 50)
700
701    #add vertical progress bar
702    test_utils.select_project_tree_node(screen_name)
703    test_utils.add_widget('GX_TYPE_PROGRESS_BAR')
704    test_utils.edit_widget_props("ID_XPOS", 424)
705    test_utils.edit_widget_props("ID_YPOS",204)
706    test_utils.edit_widget_props("ID_WIDTH", 36)
707    test_utils.edit_widget_props("ID_HEIGHT", 95)
708    test_utils.edit_widget_props("ID_PROGRESS_VERTICAL", 1)
709    test_utils.edit_widget_props("ID_PROGRESS_SHOW_TEXT", 1)
710    test_utils.edit_widget_props("ID_PROGRESS_PERCENT",0)
711    test_utils.edit_widget_props("ID_PROGRESS_MINVAL", 0)
712    test_utils.edit_widget_props("ID_PROGRESS_MAXVAL", 100)
713    test_utils.edit_widget_props("ID_PROGRESS_CURRENTVAL", 30)
714
715    #add gauge
716    test_utils.select_project_tree_node(screen_name)
717    test_utils.add_widget('GX_TYPE_CIRCULAR_GAUGE')
718    test_utils.edit_widget_props("ID_XPOS", 408)
719    test_utils.edit_widget_props("ID_YPOS",277)
720    test_utils.edit_widget_props("ID_WIDTH", 280)
721    test_utils.edit_widget_props("ID_HEIGHT", 280)
722    test_utils.edit_widget_props("ID_TRANSPARENT", 1)
723    test_utils.edit_widget_props("ID_GAUGE_START_ANGLE", 0)
724    test_utils.edit_widget_props("ID_GAUGE_ANIMATION_STEPS", 30)
725    test_utils.edit_widget_props("ID_GAUGE_ANIMATION_DELAY", 1)
726    test_utils.edit_widget_props("ID_GAUGE_NEEDLE_XPOS", 140)
727    test_utils.edit_widget_props("ID_GAUGE_NEEDLE_YPOS", 140)
728    test_utils.edit_widget_props("ID_GAUGE_NEEDLE_XCOR", 20)
729    test_utils.edit_widget_props("ID_GAUGE_NEEDLE_YCOR", 99)
730    test_utils.edit_widget_props("ID_PIXELMAP_0", test_constants.PIXELMAP_GAUGEMETER)
731    test_utils.edit_widget_props("ID_PIXELMAP_1", test_constants.PIXELMAP_GAUGEMETER)
732    test_utils.edit_widget_props("ID_PIXELMAP_2", test_constants.PIXELMAP_NEEDLE)
733
734    #add sprite
735    test_utils.select_project_tree_node(screen_name)
736    test_utils.add_widget('GX_TYPE_SPRITE')
737    test_utils.edit_widget_props("ID_XPOS", 252)
738    test_utils.edit_widget_props("ID_YPOS", 367)
739    test_utils.edit_widget_props("ID_WIDTH", 117)
740    test_utils.edit_widget_props("ID_HEIGHT", 101)
741
742    #add radial progress bar
743    test_utils.select_project_tree_node(screen_name)
744    test_utils.add_widget('GX_TYPE_RADIAL_PROGRESS_BAR')
745    test_utils.edit_widget_props("ID_RADIAL_PROGRESS_XCENTER", 94)
746    test_utils.edit_widget_props("ID_RADIAL_PROGRESS_YCENTER", 397)
747    test_utils.edit_widget_props("ID_RADIAL_PROGRESS_RADIUS", 50)
748    test_utils.edit_widget_props("ID_RADIAL_PROGRESS_ANCHORVAL", 60)
749    test_utils.edit_widget_props("ID_RADIAL_PROGRESS_CURRENTVAL", -200)
750    test_utils.edit_widget_props("ID_NORMAL_TEXT_COLOR", "red")
751    test_utils.edit_widget_props("ID_RADIAL_PROGRESS_NORMAL_BRUSH_COLOR", "green")
752    test_utils.edit_widget_props("ID_RADIAL_PROGRESS_SELECTED_BRUSH_COLOR", "red")
753    test_utils.edit_widget_props("ID_RADIAL_PROGRESS_NORMAL_BRUSH_WIDTH", 18)
754    test_utils.edit_widget_props("ID_RADIAL_PROGRESS_SELECTED_BRUSH_WIDTH", 16)
755
756    test_utils.compare_result()
757
758    test_utils.edit_widget_props("ID_PROGRESS_PERCENT", 0)
759    test_utils.compare_result()
760
761    test_utils.edit_widget_props("ID_PROGRESS_SHOW_TEXT", 0)
762    test_utils.edit_widget_props("ID_RADIAL_PROGRESS_ALIAS", 0)
763    test_utils.edit_widget_props("ID_RADIAL_PROGRESS_ROUND", 0)
764    test_utils.compare_result()
765
766    test_utils.edit_widget_props("ID_RADIAL_PROGRESS_ALIAS", 1)
767    test_utils.edit_widget_props("ID_RADIAL_PROGRESS_ROUND", 1)
768    test_utils.compare_result()
769
770    test_utils.select_project_tree_node(screen_name)
771    test_utils.add_widget('GX_TYPE_LINE_CHART')
772    test_utils.edit_widget_props('ID_XPOS', 133)
773    test_utils.edit_widget_props('ID_YPOS', 288)
774    test_utils.edit_widget_props('ID_WIDTH', 252)
775    test_utils.edit_widget_props('ID_HEIGHT', 74)
776    test_utils.edit_widget_props("ID_TRANSPARENT", 1)
777    test_utils.edit_widget_props('ID_CHART_MIN_VAL', 10)
778    test_utils.edit_widget_props('ID_CHART_MAX_VAL', 90)
779    test_utils.edit_widget_props('ID_CHART_LEFT_MARGIN', 10)
780    test_utils.edit_widget_props('ID_CHART_TOP_MARGIN', 2)
781    test_utils.edit_widget_props('ID_CHART_RIGHT_MARGIN', 30)
782    test_utils.edit_widget_props('ID_CHART_BOTTOM_MARGIN', 15)
783    test_utils.edit_widget_props('ID_CHART_MAX_COUNT', 200)
784    test_utils.edit_widget_props('ID_CHART_AXIS_WIDTH', 5)
785    test_utils.edit_widget_props('ID_CHART_LINE_WIDTH', 2)
786    test_utils.edit_widget_props('ID_CHART_AXIS_COLOR', 'red')
787    test_utils.edit_widget_props('ID_CHART_LINE_COLOR', 'green')
788
789    test_utils.compare_result()
790
791def run_string_table_sorting():
792
793    #test sort by string id
794    test_utils.edit_string()
795    test_utils.sort_string(test_constants.STRING_SORT_TYPE_ID)
796    test_utils.select_string(7)#STRING_16
797    test_utils.edit_top_string("a right alignment")#change from "right_alignment" to "a right alignment"
798    test_utils.select_string(7)
799    test_utils.toggle_three_column_mode()
800    test_utils.edit_bottom_string("zzz")
801    test_utils.select_string(7)
802    test_utils.edit_string_id('STRING_300')#change from "STRING_16" to "STRING_300"
803    test_utils.select_string(7)
804    test_utils.add_string()
805
806    test_utils.save_string_edit()
807    test_utils.select_project_tree_node("button_screen")
808    test_utils.compare_result()
809
810    #test sort by English
811    test_utils.edit_string()
812
813    test_utils.sort_string(test_constants.STRING_SORT_TYPE_ENGLISH)
814    test_utils.select_string(44)#STRING_18
815    test_utils.edit_string_id('CHECKBOX')#change from "STRING_18" to "CHECKBOX"
816    test_utils.select_string(44)#CHECKBOX
817    test_utils.toggle_three_column_mode()
818    test_utils.edit_bottom_string('aaa')
819    test_utils.select_string(44)#CHECKBOX
820    test_utils.toggle_three_column_mode()
821    test_utils.edit_top_string('a checkbox')
822    test_utils.select_string(44)#CHECKBOX
823    test_utils.add_string()
824
825    test_utils.save_string_edit()
826    test_utils.compare_result()
827
828    #test sort by Chinese
829    test_utils.edit_string()
830
831    test_utils.sort_string(test_constants.STRING_SORT_TYPE_CHINESE)
832    test_utils.select_string(31)#STRING_6
833    test_utils.edit_string_id('RADIO_BUTTON')#changed from "STRING_6" to "RADIO_BUTTON"
834    test_utils.select_string(31)#STRING_6
835    test_utils.edit_top_string('A radio_button')#change from "radio_button" to "A radio_button"
836    test_utils.select_string(31)#RADIO_BUTTON
837    test_utils.toggle_three_column_mode()
838    test_utils.edit_bottom_string('bbb')
839    test_utils.select_string(31)#RADIO_BUTON
840    test_utils.select_string(4)
841    test_utils.delete_string()
842    test_utils.save_string_edit()
843    test_utils.compare_result()
844
845    #test sort by reference count
846    test_utils.edit_string()
847    test_utils.sort_string(test_constants.STRING_SORT_TYPE_REFERENCE_COUNT)
848    test_utils.select_string(51)#STRING_2
849    test_utils.edit_string_id('TEXT_BUTTON')#change from "STRING_2" to "TEXT_BUTTON"
850    test_utils.select_string(51)#TEXT_BUTTON
851    test_utils.edit_top_string('a_text_button')#change from "text_button" to "a_text_button"
852    test_utils.select_string(51)#TEXT_BUTTON
853    test_utils.toggle_three_column_mode()
854    test_utils.edit_bottom_string('ccc')
855    test_utils.select_string(51)#TEXT_BUTTON
856    test_utils.save_string_edit()
857    test_utils.compare_result()
858
859    test_utils.select_project_tree_node("prompt_1")
860    test_utils.edit_widget_props("ID_STRING_ID", "TEXT_BUTTON")
861    test_utils.compare_result()
862    test_utils.edit_string()
863    test_utils.select_string(60)#TEXT_BUTTON
864    test_utils.edit_top_string('text_button')#change from "a_text_button" to "text_button"
865    test_utils.save_string_edit()
866    test_utils.compare_result()
867
868#step 1: set a new text to a multi line text input widget
869#step 2: edit table string to delete last string
870def run_ml_text_input_test():
871    test_utils.select_project_tree_node(text_screen_name)
872    test_utils.select_project_tree_node(ml_text_input_widget_name)
873
874    test_utils.edit_widget_props("ID_STRING_VAL", "Test_string_for_testing_multi_line_text_input")
875
876    #Open string editor
877    test_utils.edit_string()
878
879    #get string count
880    #string_count = test_utils.get_string_count()
881
882    #delete last string
883    test_utils.select_string(38)
884    test_utils.delete_string()
885
886    #save changes
887    test_utils.save_string_edit()
888
889def get_test_header():
890    notes =  "*          Studio Add/Edit Widget Test                *\n"
891    notes += "*                                                     *\n"
892    notes += "* Add and Edit all widget types                       *\n"
893    notes += "* Verify output files match golden file content       *\n"
894    return notes
895
896def run_add_widget(project_name, golden_files):
897
898    test_utils.open_project(project_name)
899
900    print('run widget add')
901    add_button_screen()
902    add_text_screen()
903    add_window_screen()
904
905    print('run multi-line text input test')
906    run_ml_text_input_test()
907
908    print("run string table sorting")
909    run_string_table_sorting()
910
911    test_utils.generate_all()
912    test_utils.click_generate_button(1)
913    test_utils.cmp_output_files(golden_files)
914
915def run_add_widget_tests(generate, screenshot):
916
917    test_utils.output_test_header(get_test_header())
918    test_utils.setup(generate, screenshot, 'test_add_widget_golden_file')
919
920    print('Running add-widgets at 16 565 format')
921    run_add_widget("test_add_widget_16bpp.gxp", test_add_widget_16bpp_output_files)
922
923    print('Running add-widgets at 8bpp palette format')
924    run_add_widget("test_add_widget_8bpp.gxp", test_add_widget_8bpp_output_files)
925
926    print('Running add-widgets at 24 bpp rgb format')
927    run_add_widget("test_add_widget_24bpp.gxp", test_add_widget_24bpp_output_files)
928
929    test_utils.write_end('Add Widgets Tests')
930