Add EvasMapTest1 as TC
authorjh5.cho <jh5.cho@samsung.com>
Fri, 2 Dec 2016 02:04:35 +0000 (11:04 +0900)
committerjh5.cho <jh5.cho@samsung.com>
Fri, 2 Dec 2016 02:34:01 +0000 (11:34 +0900)
Change-Id: I5c28989396652538f911b6a76465cf7f8a9c3519

test/ElmSharp.Test/ElmSharp.Test.csproj
test/ElmSharp.Test/TC/EvasMapTest1.cs [new file with mode: 0755]

index f703a51..22fb426 100755 (executable)
@@ -52,6 +52,7 @@
     <Compile Include="TC\ColorSelectorTest1.cs" />
     <Compile Include="TC\ContextPopupTest1.cs" />
     <Compile Include="TC\DateTimeSelectorTest1.cs" />
+    <Compile Include="TC\EvasMapTest1.cs" />
     <Compile Include="TC\EntryTest1.cs" />
     <Compile Include="TC\GenGridTest1.cs" />
     <Compile Include="TC\GenGridTest2.cs" />
diff --git a/test/ElmSharp.Test/TC/EvasMapTest1.cs b/test/ElmSharp.Test/TC/EvasMapTest1.cs
new file mode 100755 (executable)
index 0000000..498dd16
--- /dev/null
@@ -0,0 +1,113 @@
+using System;
+using ElmSharp;
+
+namespace ElmSharp.Test
+{
+    class EvasMapTest1 : TestCaseBase
+    {
+        public override string TestName => "EvasMapTest1";
+        public override string TestDescription => "Test EvasMap on different levels of hierarchy";
+
+        public override void Run(Window window)
+        {
+            var box = new Box(window)
+            {
+                IsHorizontal = false,
+            };
+            box.SetAlignment(-1.0, -1.0);
+            box.SetWeight(1.0, 1.0);
+            box.Show();
+
+            var text = new Label(box)
+            {
+                Text = "<span color=#ffffff font_size=30>Target</span>",
+                AlignmentX = -1.0,
+                AlignmentY = -1.0,
+                WeightX = 1.0,
+                WeightY = 1.0,
+            };
+            text.Show();
+
+            var textBox = new Box(box)
+            {
+                AlignmentX = -1.0,
+                WeightX = 1.0,
+                WeightY = 0.7,
+            };
+            textBox.PackEnd(text);
+            textBox.Show();
+
+            double angle = 0.0;
+
+            var reset = new Button(box)
+            {
+                Text = "Reset",
+                AlignmentX = -1.0,
+                WeightX = 1.0,
+                WeightY = 0.1,
+            };
+            reset.Show();
+
+            double zx = 1.0;
+            double zy = 1.0;
+            reset.Clicked += (object sender, EventArgs e) =>
+            {
+                text.IsMapEnabled = false;
+                angle = 0.0;
+                zx = 1.0;
+                zy = 1.0;
+            };
+
+            var zoom = new Button(box)
+            {
+                Text = "Zoom Target",
+                AlignmentX = -1.0,
+                WeightX = 1.0,
+                WeightY = 0.1,
+            };
+            zoom.Show();
+
+            zoom.Clicked += (object sender, EventArgs e) =>
+            {
+                zx += 0.1;
+                zy += 0.1;
+                var map = new EvasMap(4);
+                var g = text.Geometry;
+                map.PopulatePoints(g, 0);
+                map.Rotate3D(0, 0, angle, g.X + g.Width / 2, g.Y + g.Height / 2, 0);
+                map.Zoom(zx, zy, g.X, g.Y);
+                text.EvasMap = map;
+                text.IsMapEnabled = true;
+            };
+
+            var rotate = new Button(box)
+            {
+                Text = "Rotate Target",
+                AlignmentX = -1.0,
+                WeightX = 1.0,
+                WeightY = 0.1,
+            };
+            rotate.Show();
+
+            rotate.Clicked += (object sender, EventArgs e) =>
+            {
+                angle += 5.0;
+                var map = new EvasMap(4);
+                var g = text.Geometry;
+                map.PopulatePoints(g, 0);
+                map.Rotate3D(0, 0, angle, g.X + g.Width / 2, g.Y + g.Height / 2, 0);
+                map.Zoom(zx, zy, g.X, g.Y);
+                text.EvasMap = map;
+                text.IsMapEnabled = true;
+            };
+
+            box.PackEnd(textBox);
+            box.PackEnd(reset);
+            box.PackEnd(zoom);
+            box.PackEnd(rotate);
+
+            box.Resize(window.ScreenSize.Width, window.ScreenSize.Height);
+            box.Move(0, 0);
+        }
+    }
+}
\ No newline at end of file