Merge "[Telephony] Sample App implementation."
[platform/core/csapi/tizenfx.git] / test / ElmSharp.Test / TC / EvasMapTest2.cs
1 using System;
2 using ElmSharp;
3
4 namespace ElmSharp.Test
5 {
6     class EvasMapTest2 : TestCaseBase
7     {
8         public override string TestName => "EvasMapTest2";
9         public override string TestDescription => "Test EvasMap on different levels of hierarchy";
10
11         public override void Run(Window window)
12         {
13             var box = new Box(window)
14             {
15                 IsHorizontal = false,
16             };
17             box.SetAlignment(-1.0, -1.0);  // fill
18             box.SetWeight(1.0, 1.0);  // expand
19             box.Show();
20
21             var group = new Box(box)
22             {
23                 IsHorizontal = true,
24                 BackgroundColor = Color.White,
25             };
26             group.Show();
27
28             var x = new Label(group)
29             {
30                 Text = "X",
31             };
32             x.Show();
33
34             var y = new Label(group)
35             {
36                 Text = "Y",
37             };
38             y.Show();
39
40             var z = new Label(group)
41             {
42                 Text = "Z",
43             };
44             z.Show();
45             group.PackEnd(x);
46             group.PackEnd(y);
47             group.PackEnd(z);
48
49             var top = new Rectangle(box)
50             {
51                 Color = Color.Red,
52             };
53             top.SetAlignment(-1.0, -1.0);  // fill
54             top.SetWeight(1.0, 1.0);  // expand
55             top.Show();
56
57             var bottom = new Rectangle(box)
58             {
59                 Color = Color.Green,
60             };
61             bottom.SetAlignment(-1.0, -1.0);  // fill
62             bottom.SetWeight(1.0, 1.0);  // expand
63             bottom.Show();
64
65             double angle = 0.0;
66
67             var reset = new Button(box)
68             {
69                 Text = "Reset",
70                 AlignmentX = -1.0,
71                 WeightX = 1.0,
72             };
73             reset.Show();
74
75             reset.Clicked += (object sender, EventArgs e) =>
76             {
77                 group.IsMapEnabled = false;
78                 x.IsMapEnabled = false;
79                 angle = 0.0;
80             };
81
82             var zoom = new Button(box)
83             {
84                 Text = "Zoom group",
85                 AlignmentX = -1.0,
86                 WeightX = 1.0,
87             };
88             zoom.Show();
89
90             zoom.Clicked += (object sender, EventArgs e) =>
91             {
92                 var map = new EvasMap(4);
93                 var g = group.Geometry;
94                 map.PopulatePoints(g, 0);
95                 map.Zoom(3.0, 3.0, g.X + g.Width / 2, g.Y + g.Height / 2);
96                 group.EvasMap = map;
97                 group.IsMapEnabled = true;
98             };
99
100             var rotate = new Button(box)
101             {
102                 Text = "Rotate X",
103                 AlignmentX = -1.0,
104                 WeightX = 1.0,
105             };
106             rotate.Show();
107
108             rotate.Clicked += (object sender, EventArgs e) =>
109             {
110                 angle += 5.0;
111
112                 var map = new EvasMap(4);
113                 var g = x.Geometry;
114                 map.PopulatePoints(g, 0);
115                 map.Rotate3D(0, 0, angle, g.X + g.Width / 2, g.Y + g.Height / 2, 0);
116                 x.EvasMap = map;
117                 x.IsMapEnabled = true;
118             };
119
120             box.PackEnd(top);
121             box.PackEnd(group);
122             box.PackEnd(bottom);
123             box.PackEnd(reset);
124             box.PackEnd(zoom);
125             box.PackEnd(rotate);
126
127             box.Resize(window.ScreenSize.Width, window.ScreenSize.Height);
128             box.Move(0, 0);
129         }
130     }
131 }