1# -*- coding: utf-8 -*-
2import os
3import sys
4import time
5import test_utils
6import test_constants
7import filecmp
8
9display_name = "main_display"
10folder_name = "default_folder"
11screen_name = "main_screen"
12
13def get_test_header():
14    notes =  "*             Radial Slider Test                      *\n"
15    notes += "*                                                     *\n"
16    notes += "* Add and Edit Radial Slider                          *\n"
17    return notes
18
19def run_new_project_create(project_name):
20
21    # create a new project
22    test_utils.toolbar_create()
23    test_utils.set_new_project_path(test_utils.DEFAULT_OUTPUT_FILE_PATH)
24    test_utils.set_new_project_name(project_name)
25    test_utils.save_new_project_create()
26
27    # configure project
28    test_utils.configure_project()
29    test_utils.configure_x_res(640)
30    test_utils.configure_y_res(480)
31    test_utils.configure_display_name(display_name)
32    test_utils.save_project_configure()
33
34    # close message dialog when create new project
35    test_utils.close_message_dialog()
36
37    test_utils.add_pixelmaps('Custom', '..\\pixelmaps\\', 'bg_washer_on.png,wheel_dot_green.png')
38
39def add_main_screen():
40    #---------------------------------------#
41    #add main screen to display             #
42    #---------------------------------------#
43
44    test_utils.select_project_tree_node("window")
45
46    test_utils.edit_widget_props("ID_XPOS", 0)
47    test_utils.edit_widget_props("ID_YPOS", 0)
48    test_utils.edit_widget_props("ID_WIDTH", 640)
49    test_utils.edit_widget_props("ID_HEIGHT", 480)
50    test_utils.edit_widget_props("ID_WIDGET_NAME", screen_name)
51
52def add_edit_radial_slider_widget():
53    #---------------------------------------#
54    #add and edti radial slider             #
55    #---------------------------------------#
56    test_utils.select_project_tree_node(screen_name)
57    test_utils.add_widget('GX_TYPE_RADIAL_SLIDER')
58    widget_name = "radial_slider"
59
60    # edit radial slider properties
61    test_utils.edit_widget_props("ID_WIDGET_NAME", widget_name)
62    test_utils.select_project_tree_node(widget_name)
63    test_utils.edit_widget_props('ID_PIXELMAP_0', 'BG_WASHER_ON')
64    test_utils.toolbar_size_to_fit()
65
66    test_utils.select_project_tree_node(widget_name)
67    test_utils.edit_widget_props('ID_PIXELMAP_2', 'WHEEL_DOT_GREEN')
68    test_utils.edit_widget_props('ID_RADIAL_SLIDER_XCENTER', 187)
69    test_utils.edit_widget_props('ID_RADIAL_SLIDER_YCENTER', 131)
70    test_utils.edit_widget_props('ID_RADIAL_SLIDER_RADIUS', 108)
71    test_utils.edit_widget_props('ID_RADIAL_SLIDER_TRACK_WIDTH', 44)
72    test_utils.edit_widget_props('ID_RADIAL_SLIDER_CURRENT_ANGLE', 242)
73    test_utils.edit_widget_props('ID_RADIAL_SLIDER_MIN_ANGLE', -63)
74    test_utils.edit_widget_props('ID_RADIAL_SLIDER_MAX_ANGLE', 242)
75    test_utils.edit_widget_props('ID_RADIAL_SLIDER_TOTAL_STEPS', 20)
76    test_utils.edit_widget_props('ID_RADIAL_SLIDER_DELAY', 1)
77    test_utils.edit_widget_props('ID_RADIAL_SLIDER_ANIMATION_STYLE', 'circ ease out')
78    test_utils.compare_result()
79
80    # test copy paste
81    test_utils.select_project_tree_node(widget_name)
82    test_utils.toolbar_copy()
83    test_utils.select_project_tree_node(screen_name)
84    test_utils.toolbar_paste()
85    test_utils.compare_result()
86
87    # test undo
88    # undo paste
89    test_utils.undo()
90
91    #undo animation style set
92    test_utils.undo()
93    #undo animation delay set
94    test_utils.undo()
95    #undo animation total steps set
96    test_utils.undo()
97    #undo max angle set
98    test_utils.undo()
99    #undo min angle set
100    test_utils.undo()
101    #undo current angle set
102    test_utils.undo()
103    #undo track width set
104    test_utils.undo()
105    #undo radius set
106    test_utils.undo()
107    #undo ycenter set
108    test_utils.undo()
109    #undo xcenter set
110    test_utils.undo()
111    #undo needle pixelmap set
112    test_utils.undo()
113    #undo size to fit
114    test_utils.undo()
115    #unco background pixelmap set
116    test_utils.undo()
117
118def run_radial_slider_widget_tests(generate, screenshot):
119
120    test_utils.output_test_header(get_test_header())
121    test_utils.setup(generate, screenshot, 'test_radial_slider_widget_golden_file')
122
123    print('create new project')
124    run_new_project_create("test_radial_slider_widget")
125
126    print('add main screen')
127    add_main_screen()
128
129    print('add and edit radial slider widget')
130    add_edit_radial_slider_widget()
131
132    test_utils.toolbar_save()
133    test_utils.write_end('Radial Slider Widget Tests')