[NUI] Add CommonUI Samples (#951)
[platform/core/csapi/tizenfx.git] / test / NUITestSample / CommonUI_Samples / Samples / SliderSample.cs
1 using Tizen.NUI.BaseComponents;
2 using Tizen.NUI.CommonUI;
3 using System;
4 using Tizen.NUI;
5
6 namespace NuiCommonUiSamples
7 {
8     public class Slider : IExample
9     {
10         private SampleLayout root;
11         private TextLabel inforText;
12         private Tizen.NUI.CommonUI.Slider[] slider_da;
13         private const int MIN_VALUE = 0;
14         private const int MAX_VALUE = 100;
15         private const int SR_COUNT = 2;
16         private const int DA_COUNT = 4;
17
18         private static readonly string[] styleName = new string[2] {
19             "DefaultSlider",
20             "TextSlider" };
21
22         public void Activate()
23         {
24             Window.Instance.BackgroundColor = Color.White;
25             root = new SampleLayout();
26             root.HeaderText = "Slider";
27             CreateInforText();
28             CreateDA();
29         }
30
31         private void CreateInforText()
32         {
33             inforText = new TextLabel();
34             inforText.Size2D = new Size2D(1040, 60);
35             inforText.Position2D = new Position2D(20, 10);
36             inforText.PointSize = 20;
37             inforText.TextColor = Color.Blue;
38             inforText.BackgroundColor = new Color(0.8f, 0.8f, 0.8f, 1.0f);
39             inforText.HorizontalAlignment = HorizontalAlignment.Begin;
40             inforText.VerticalAlignment = VerticalAlignment.Center;
41             root.Add(inforText);
42         }
43
44         private void CreateDA()
45         {
46             if (slider_da == null)
47             {
48                 slider_da = new Tizen.NUI.CommonUI.Slider[DA_COUNT];
49             }
50
51             slider_da[0] = CreateDA(styleName[0], 40, 100, 1000, 50, 20, Tizen.NUI.CommonUI.Slider.DirectionType.Horizontal);
52             slider_da[1] = CreateDA(styleName[0], 300, 250, 50, 400, 20, Tizen.NUI.CommonUI.Slider.DirectionType.Vertical);
53
54             slider_da[2] = CreateDA(styleName[1], 40, 200, 1000, 50, 30, Tizen.NUI.CommonUI.Slider.DirectionType.Horizontal);
55             slider_da[2].LowIndicatorTextContent = "SubText";
56             slider_da[2].LowIndicatorSize = new Size2D(200, 80);
57
58             slider_da[3] = CreateDA(styleName[1], 600, 250, 50, 400, 30, Tizen.NUI.CommonUI.Slider.DirectionType.Vertical);
59             slider_da[3].LowIndicatorTextContent = "SubText";
60             slider_da[3].LowIndicatorSize = new Size2D(200, 80);
61
62         }
63
64         private Tizen.NUI.CommonUI.Slider CreateDA(string style, int posX, int posY, int w, int h, int curValue, Tizen.NUI.CommonUI.Slider.DirectionType dir)
65         {
66             Tizen.NUI.CommonUI.Slider source = new Tizen.NUI.CommonUI.Slider(style);
67             source.Name = style;
68             source.Direction = dir;
69             root.Add(source);
70             source.Focusable = true;
71             source.MinValue = MIN_VALUE;
72             source.MaxValue = MAX_VALUE;
73             source.StateChangedEvent += OnStateChanged;
74             source.ValueChangedEvent += OnValueChanged;
75
76             source.Position2D = new Position2D(posX, posY);
77             source.Size2D = new Size2D(w, h);
78             source.CurrentValue = curValue;
79             return source;
80         }
81
82         public void Deactivate()
83         {
84             Window window = Window.Instance;
85
86             if (inforText != null)
87             {
88                 root.Remove(inforText);
89                 inforText.Dispose();
90                 inforText = null;
91             }
92
93             DestroyDA();
94             root.Dispose();
95         }
96
97         private void DestroyDA()
98         {
99             if (slider_da != null)
100             {
101                 for (int i = 0; i < DA_COUNT; ++i)
102                 {
103                     if (slider_da[i] != null)
104                     {
105                         slider_da[i].StateChangedEvent -= OnStateChanged;
106                         slider_da[i].ValueChangedEvent -= OnValueChanged;
107                         root.Remove(slider_da[i]);
108                         slider_da[i].Dispose();
109                         slider_da[i] = null;
110                     }
111                 }
112                 slider_da = null;
113             }
114         }
115
116         private void OnValueChanged(object sender, Tizen.NUI.CommonUI.Slider.ValueChangedArgs args)
117         {
118             Console.WriteLine("args.CurrentValue = " + args.CurrentValue);
119             if (sender is Tizen.NUI.CommonUI.Slider)
120             {
121                 Tizen.NUI.CommonUI.Slider slider = sender as Tizen.NUI.CommonUI.Slider;
122                 if (slider != null)
123                 {
124                     inforText.Text = "name = " + slider.Name + ", currentValue = " + args.CurrentValue;
125                 }
126             }
127             else if (sender is Tizen.NUI.CommonUI.Slider)
128             {
129                 Tizen.NUI.CommonUI.Slider slider = sender as Tizen.NUI.CommonUI.Slider;
130                 if (slider != null)
131                 {
132                     inforText.Text = "name = " + slider.Name + ", currentValue = " + args.CurrentValue;
133                 }
134             }
135         }
136
137         private void OnStateChanged(object sender, Tizen.NUI.CommonUI.Slider.StateChangedArgs args)
138         {
139             Console.WriteLine("args.CurrentState = " + args.CurrentState);
140             if (sender is Tizen.NUI.CommonUI.Slider)
141             {
142                 Tizen.NUI.CommonUI.Slider slider = sender as Tizen.NUI.CommonUI.Slider;
143                 if (slider != null)
144                 {
145                     //if (args.CurrentState == States.Normal)
146                     //{
147                     //    slider_sr[0].ThumbImageURL = "*DemoRes*/images/FH3/9. Controller/controller_btn_slide_handler_normal.png";
148                     //}
149                     //else if (args.CurrentState == States.Focused || args.CurrentState == States.Pressed)
150                     //{
151                     //    slider_sr[0].ThumbImageURL = "*DemoRes*/images/FH3/9. Controller/controller_btn_slide_handler_press.png";
152                     //}
153                 }
154             }
155         }
156     }
157 }