[ElmSharp] Test for scroll speed 22/160622/4
authorSeungkeun Lee <sngn.lee@samsung.com>
Fri, 17 Nov 2017 07:01:04 +0000 (16:01 +0900)
committerWonYoung Choi <wy80.choi@samsung.com>
Tue, 28 Nov 2017 04:34:48 +0000 (04:34 +0000)
 Rectange vs Background vs genlist

Change-Id: I473ebff6592fd5e6741b07bdbe92d6fb85b76353

test/ElmSharp.Test/TC/ScrollerTest7.cs [new file with mode: 0644]

diff --git a/test/ElmSharp.Test/TC/ScrollerTest7.cs b/test/ElmSharp.Test/TC/ScrollerTest7.cs
new file mode 100644 (file)
index 0000000..4d21132
--- /dev/null
@@ -0,0 +1,179 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+using ElmSharp;
+using System.Runtime.InteropServices;
+
+namespace ElmSharp.Test
+{
+
+    static class InteropAPI
+    {
+        [DllImport("libelementary.so.1")]
+        public static extern void elm_genlist_realization_mode_set(IntPtr handle, bool enable);
+    }
+
+    public class ScrollerTest7 : TestCaseBase
+    {
+        public override TargetProfile TargetProfile => TargetProfile.Wearable | TargetProfile.Tv | TargetProfile.Mobile;
+        public override string TestName => "ScrollerTest7";
+        public override string TestDescription => "To test basic operation of Scroller";
+
+        public override void Run(Window window)
+        {
+            Conformant conformant = new Conformant(window);
+            conformant.Show();
+            Box outerBox = new Box(window)
+            {
+                AlignmentX = -1,
+                AlignmentY = -1,
+                WeightX = 1,
+                WeightY = 1,
+            };
+            outerBox.Show();
+            outerBox.IsHorizontal = true;
+            conformant.SetContent(outerBox);
+            
+            Scroller scroller = new Scroller(window)
+            {
+                AlignmentX = -1,
+                AlignmentY = -1,
+                WeightX = 1,
+                WeightY = 1,
+                ScrollBlock = ScrollBlock.None,
+            };
+            scroller.Show();
+            outerBox.PackEnd(scroller);
+
+            Box box = new Box(window)
+            {
+                AlignmentX = -1,
+                AlignmentY = -1,
+                WeightX = 1,
+                WeightY = 1
+            };
+            box.Show();
+            scroller.SetContent(box);
+
+            scroller.VerticalBounce = true;
+
+            var rnd = new Random();
+            for (int i = 0; i < 102; i++)
+            {
+                int r = rnd.Next(255);
+                int g = rnd.Next(255);
+                int b = rnd.Next(255);
+                Color color = Color.FromRgb(r, g, b);
+                Rectangle colorBox = new Rectangle(window)
+                {
+                    AlignmentX = -1,
+                    AlignmentY = -1,
+                    WeightX = 1,
+                    WeightY = 1,
+                    Color = color,
+                    MinimumHeight = 400,
+                };
+                colorBox.Show();
+                Console.WriteLine("Height = {0}", colorBox.Geometry.Height);
+                box.PackEnd(colorBox);
+            }
+
+            Scroller scroller2 = new Scroller(window)
+            {
+                AlignmentX = -1,
+                AlignmentY = -1,
+                WeightX = 1,
+                WeightY = 1,
+                ScrollBlock = ScrollBlock.None,
+            };
+            scroller2.Show();
+            outerBox.PackEnd(scroller2);
+
+            Box box2 = new Box(window)
+            {
+                AlignmentX = -1,
+                AlignmentY = -1,
+                WeightX = 1,
+                WeightY = 1
+            };
+            box2.Show();
+            scroller2.SetContent(box2);
+            
+            for (int i = 0; i < 102; i++)
+            {
+                int r = rnd.Next(255);
+                int g = rnd.Next(255);
+                int b = rnd.Next(255);
+                Color color = Color.FromRgb(r, g, b);
+                Background colorBox = new Background(window)
+                {
+                    AlignmentX = -1,
+                    AlignmentY = -1,
+                    WeightX = 1,
+                    WeightY = 1,
+                    Color = color,
+                    MinimumHeight = 400,
+                };
+                colorBox.Show();
+                Console.WriteLine("Height = {0}", colorBox.Geometry.Height);
+                box2.PackEnd(colorBox);
+            }
+
+            GenItemClass fullyCustomizeClass = new GenItemClass("full")
+            {
+                GetContentHandler = (obj, part) =>
+                {
+                    int r = rnd.Next(255);
+                    int g = rnd.Next(255);
+                    int b = rnd.Next(255);
+                    Color color = Color.FromRgb(r, g, b);
+                    Background colorBox = new Background(window)
+                    {
+                        AlignmentX = -1,
+                        AlignmentY = -1,
+                        WeightX = 1,
+                        WeightY = 1,
+                        Color = color,
+                        MinimumHeight = 400,
+                    };
+                    colorBox.Show();
+                    return colorBox;
+                },
+            };
+            GenList list = new GenList(window)
+            {
+                AlignmentX = -1,
+                AlignmentY = -1,
+                WeightX = 1,
+                WeightY = 1
+            };
+            list.Show();
+            for (int i = 0; i < 102; i++)
+            {
+                list.Append(fullyCustomizeClass, string.Format("Data #", i));
+            }
+            InteropAPI.elm_genlist_realization_mode_set(list, true);
+
+            outerBox.PackEnd(list);
+        }
+
+        private void Scroller_Scrolled(object sender, EventArgs e)
+        {
+            Console.WriteLine("Scrolled : {0}x{1}", ((Scroller)sender).CurrentRegion.X, ((Scroller)sender).CurrentRegion.Y);
+        }
+    }
+}