[NUI] Apply Menu and MenuItem UX - Sizes and Colors
[platform/core/csapi/tizenfx.git] / test / Tizen.NUI.Samples / Tizen.NUI.Samples / Samples / MenuSample.cs
1 using Tizen.NUI.BaseComponents;
2 using Tizen.NUI.Components;
3
4 namespace Tizen.NUI.Samples
5 {
6     public class MenuSample : IExample
7     {
8         private static readonly int itemCount = 20;
9
10         public void Activate()
11         {
12             var window = NUIApplication.GetDefaultWindow();
13             var navigator = window.GetDefaultNavigator();
14
15             var pageContent = new Button()
16             {
17                 Text = "Page Content",
18                 CornerRadius = 0,
19                 WidthSpecification = LayoutParamPolicies.MatchParent,
20                 HeightSpecification = LayoutParamPolicies.MatchParent,
21             };
22
23             var moreButton = new Button()
24             {
25                 Text = "More",
26             };
27
28             var appBar = new AppBar()
29             {
30                 AutoNavigationContent = false,
31                 Title = "Title",
32                 Actions = new View[] { moreButton, },
33             };
34
35             var page = new ContentPage()
36             {
37                 AppBar = appBar,
38                 Content = pageContent,
39             };
40             navigator.Push(page);
41
42             MenuItem[] menuItems = new MenuItem[itemCount];
43
44             for (int i = 0; i < itemCount; i++)
45             {
46                 menuItems[i] = new MenuItem() { Text = "Menu" + (i + 1) };
47                 menuItems[i].SelectedChanged += (object sender, SelectedChangedEventArgs args) =>
48                 {
49                     var menuItem = sender as MenuItem;
50                     global::System.Console.WriteLine($"{menuItem.Text}'s IsSelected is changed to {args.IsSelected}.");
51                 };
52             }
53
54             moreButton.Clicked += (object sender, ClickedEventArgs args) =>
55             {
56                 var menu = new Menu()
57                 {
58                     Anchor = moreButton,
59                     HorizontalPositionToAnchor = Menu.RelativePosition.Center,
60                     VerticalPositionToAnchor = Menu.RelativePosition.End,
61                     Items = menuItems,
62                 };
63                 menu.Post();
64             };
65         }
66
67         public void Deactivate()
68         {
69             var window = NUIApplication.GetDefaultWindow();
70             var navigator = window.GetDefaultNavigator();
71             var newPageCount = window.GetDefaultNavigator().PageCount;
72
73             for (int i = 0; i < newPageCount; i++)
74             {
75                 navigator.Pop();
76             }
77         }
78     }
79 }