1# -*- coding: utf-8 -*-
2import os
3import sys
4import time
5import test_utils
6import test_constants
7
8folder_hane = "default_folder"
9screen_name = "window"
10widget_name = "gauge"
11
12def get_test_header():
13    notes =  "*                    Gauge Test                       *\n"
14    notes += "*                                                     *\n"
15    notes += "* Edit Gauge Needle Pixelmap                          *\n"
16    return notes
17
18def run_new_project_create(project_name):
19
20    # create a new project
21    test_utils.toolbar_create()
22    test_utils.set_new_project_path(test_utils.DEFAULT_OUTPUT_FILE_PATH)
23    test_utils.set_new_project_name(project_name)
24    test_utils.save_new_project_create()
25
26    # close message dialog when create new project
27    test_utils.close_message_dialog()
28
29    test_utils.toolbar_save()
30
31def add_pixelmaps():
32    #---------------------------------------#
33    #add pixelmaps                          #
34    #---------------------------------------#
35    test_utils.add_pixelmaps('Custom', '..\\pixelmaps\\', 'Gaugemeter.png')
36    test_utils.add_pixelmaps('Custom', '..\\pixelmaps\\', 'needle.png')
37
38def add_edit_gauge():
39    #---------------------------------------#
40    #add and edti circular gauge            #
41    #---------------------------------------#
42    test_utils.select_project_tree_node(screen_name)
43
44    test_utils.add_widget('GX_TYPE_CIRCULAR_GAUGE')
45    test_utils.edit_widget_props("ID_WIDGET_NAME", widget_name)
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", 280)
49    test_utils.edit_widget_props("ID_HEIGHT", 280)
50    test_utils.edit_widget_props("ID_TRANSPARENT", 1)
51    test_utils.edit_widget_props("ID_GAUGE_START_ANGLE", 0)
52    test_utils.edit_widget_props("ID_GAUGE_ANIMATION_STEPS", 30)
53    test_utils.edit_widget_props("ID_GAUGE_ANIMATION_DELAY", 1)
54    test_utils.edit_widget_props("ID_GAUGE_NEEDLE_XPOS", 140)
55    test_utils.edit_widget_props("ID_GAUGE_NEEDLE_YPOS", 140)
56    test_utils.edit_widget_props("ID_GAUGE_NEEDLE_XCOR", 20)
57    test_utils.edit_widget_props("ID_GAUGE_NEEDLE_YCOR", 99)
58    test_utils.edit_widget_props("ID_PIXELMAP_0", 'GAUGEMETER')
59    test_utils.edit_widget_props("ID_PIXELMAP_1", 'GAUGEMETER')
60    test_utils.edit_widget_props("ID_PIXELMAP_2", 'NEEDLE')
61
62    test_utils.compare_result()
63
64    # Switch to another sreen
65    test_utils.select_project_tree_node(folder_hane)
66    test_utils.add_widget('GX_TYPE_WINDOW')
67
68    # Switch back to gauge screen
69    test_utils.select_project_tree_node(screen_name)
70    test_utils.compare_result()
71
72
73def run_gauge_tests(generate, screenshot):
74
75    test_utils.output_test_header(get_test_header())
76    test_utils.setup(generate, screenshot, 'test_gauge_golden_file')
77
78    print('create new project')
79    run_new_project_create("test_gauge")
80
81    print('add pixelmaps')
82    add_pixelmaps()
83
84    print('add and edit gauge')
85    add_edit_gauge()
86
87    test_utils.toolbar_save()
88
89    test_utils.write_end('Gauge Tests')