[NUI] Update Tizen.NUI.Samples slightly (#1633)
[platform/core/csapi/tizenfx.git] / test / Tizen.NUI.Samples / Tizen.NUI.Samples / Samples / CircularPaginationSample.cs
1 //using Tizen.NUI.Components;
2 using Tizen.NUI.BaseComponents;
3 using Tizen.NUI.Wearable;
4
5 namespace Tizen.NUI.Samples
6 {
7     public class CircularPaginationSample : IExample
8     {
9         private CircularPagination circular;
10         private CircularPagination homeCircular;
11
12         public void Activate()
13         {
14             Window window = NUIApplication.GetDefaultWindow();
15
16             ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
17             /////////////////////////////////////// Symmetrical Circular Pagination ///////////////////////////////////////
18             ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
19
20             circular = new CircularPagination();
21             circular.Position2D = new Position2D(50, 20);
22             circular.Size2D = new Size2D(360, 360);
23             circular.BackgroundColor = new Color(0.2f, 0.2f, 0.2f, 0.6f);
24             circular.IndicatorSize = new Size(26, 26);
25             circular.IndicatorImageURL = new Selector<string>()
26             {
27                 Normal = CommonResource.GetFHResourcePath() + "9. Controller/pagination_ic_nor.png",
28                 Selected = CommonResource.GetFHResourcePath() + "9. Controller/pagination_ic_sel.png",
29             };
30
31             circular.IndicatorCount = 19;
32
33             //circular.SelectedIndex = 0;
34
35             window.Add(circular);
36
37             ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
38             /////////////////////////////////////// Asymmetrical Circular Pagination ///////////////////////////////////////
39             ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
40
41             homeCircular = new CircularPagination();
42             homeCircular.Position2D = new Position2D(50, 410);
43             homeCircular.Size2D = new Size2D(360, 360);
44             homeCircular.BackgroundColor = new Color(0.7f, 0.7f, 0.7f, 0.6f);
45
46             homeCircular.IndicatorSize = new Size(26, 26);
47             homeCircular.IndicatorImageURL = new Selector<string>()
48             {
49                 Normal = CommonResource.GetFHResourcePath() + "9. Controller/pagination_ic_nor.png",
50                 Selected = CommonResource.GetFHResourcePath() + "9. Controller/pagination_ic_sel.png",
51             };
52
53             // If you want to set the center indicator image differently from other indicators,
54             // Use CenterIndicatorImageURL like below. (for example, home indicator clock picker)
55             homeCircular.CenterIndicatorImageURL = new Selector<string>()
56             {
57                 Normal = CommonResource.GetFHResourcePath() + "9. Controller/controller_btn_slide_handler_press.png",
58                 Selected = CommonResource.GetFHResourcePath() + "9. Controller/controller_btn_radio_on.png",
59             };
60
61             homeCircular.IsSymmetrical = false;
62             homeCircular.RightIndicatorCount = 5;
63             homeCircular.LeftIndicatorCount = 2;
64
65             //homeCircular.SetIndicatorPosition(0, new Position(111, 11));
66             //homeCircular.SetIndicatorPosition(2, new Position(222, 73));
67
68             //homeCircular.SelectedIndex = 0;
69
70             window.Add(homeCircular);
71
72             window.KeyEvent += Window_KeyEvent;
73         }
74
75         private void Window_KeyEvent(object sender, Window.KeyEventArgs e)
76         {
77             if (e.Key.State == Key.StateType.Down)
78             {
79                 if (e.Key.KeyPressedName == "Left")
80                 {
81                     if (circular.SelectedIndex > 0)
82                     {
83                         circular.SelectedIndex = circular.SelectedIndex - 1;
84                     }
85                     if (homeCircular.SelectedIndex > 0)
86                     {
87                         homeCircular.SelectedIndex = homeCircular.SelectedIndex - 1;
88                     }
89
90                     /*for(int i = 0; i < 7; i++)
91                     {
92                         Position pos = homeCircular.GetIndicatorPosition(i);
93                         Tizen.Log.Error("NUI", "home circular index : "+i+", pos x :"+pos.X+", y :"+pos.Y+"\n");
94                     }*/
95                 }
96                 else if (e.Key.KeyPressedName == "Right")
97                 {
98                     if (circular.SelectedIndex < circular.IndicatorCount - 1)
99                     {
100                         circular.SelectedIndex = circular.SelectedIndex + 1;
101                     }
102                     if (homeCircular.SelectedIndex < homeCircular.IndicatorCount - 1)
103                     {
104                         homeCircular.SelectedIndex = homeCircular.SelectedIndex + 1;
105                     }
106                 }
107             }
108         }
109
110         public void Deactivate()
111         {
112             Window window = Window.Instance;
113             window.KeyEvent -= Window_KeyEvent;
114             window.Remove(circular);
115             window.Remove(homeCircular);
116
117             circular.Dispose();
118             homeCircular.Dispose();
119         }
120     }
121 }