From 9ca645303a920318ae08285c590d90fada5d0745 Mon Sep 17 00:00:00 2001 From: Seungkeun Lee Date: Fri, 17 Nov 2017 16:01:04 +0900 Subject: [PATCH] [ElmSharp] Test for scroll speed Rectange vs Background vs genlist Change-Id: I473ebff6592fd5e6741b07bdbe92d6fb85b76353 --- test/ElmSharp.Test/TC/ScrollerTest7.cs | 179 +++++++++++++++++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 test/ElmSharp.Test/TC/ScrollerTest7.cs diff --git a/test/ElmSharp.Test/TC/ScrollerTest7.cs b/test/ElmSharp.Test/TC/ScrollerTest7.cs new file mode 100644 index 0000000..4d21132 --- /dev/null +++ b/test/ElmSharp.Test/TC/ScrollerTest7.cs @@ -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); + } + } +} -- 2.7.4