[NUI] TCSACR-226 code change (#1032)
[platform/core/csapi/tizenfx.git] / src / ElmSharp / ElmSharp / ToolbarItem.cs
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 using System;
18
19 namespace ElmSharp
20 {
21     /// <summary>
22     /// The ToolbarItem is an item of the toolbar.
23     /// </summary>
24     /// <since_tizen> preview </since_tizen>
25     public class ToolbarItem : ItemObject
26     {
27         string _icon;
28         string _text;
29
30         internal ToolbarItem(string text, string icon) : base(IntPtr.Zero)
31         {
32             _text = text;
33             _icon = icon;
34         }
35
36         internal ToolbarItem(string text, string icon, EvasObject parent) : base(IntPtr.Zero, parent)
37         {
38             _text = text;
39             _icon = icon;
40         }
41
42         /// <summary>
43         /// Sets or gets the icon path of the item.
44         /// </summary>
45         /// <since_tizen> preview </since_tizen>
46         public string Icon
47         {
48             get
49             {
50                 return _icon;
51             }
52             set
53             {
54                 _icon = value;
55                 Interop.Elementary.elm_toolbar_item_icon_set(Handle, value);
56             }
57         }
58
59         /// <summary>
60         /// Sets or gets the text string of the item.
61         /// </summary>
62         /// <since_tizen> preview </since_tizen>
63         public string Text
64         {
65             get
66             {
67                 return _text;
68             }
69             set
70             {
71                 _text = value;
72                 SetPartText(null, value);
73             }
74         }
75
76         /// <summary>
77         /// Sets or gets the enable of the item.
78         /// </summary>
79         /// <since_tizen> preview </since_tizen>
80         [Obsolete("Enabled is obsolete as of version v1.1.0-beta-023. Please use IsEnabled instead.")]
81         public bool Enabled
82         {
83             get
84             {
85                 return IsEnabled;
86             }
87             set
88             {
89                 IsEnabled = value;
90             }
91         }
92
93         /// <summary>
94         /// Sets or gets whether displaying the item as a separator.
95         /// </summary>
96         /// <remarks>Items aren't set as a separator by default. If set as a separator, it displays a separator theme, so it won't display the icons or labels.</remarks>
97         /// <since_tizen> preview </since_tizen>
98         public bool IsSeparator
99         {
100             get
101             {
102                 return Interop.Elementary.elm_toolbar_item_separator_get(Handle);
103             }
104             set
105             {
106                 Interop.Elementary.elm_toolbar_item_separator_set(Handle, value);
107             }
108         }
109
110         /// <summary>
111         /// Sets or gets whether the item is selected.
112         /// </summary>
113         /// <since_tizen> preview </since_tizen>
114         public bool IsSelected
115         {
116             get
117             {
118                 return Interop.Elementary.elm_toolbar_item_selected_get(Handle);
119             }
120             set
121             {
122                 Interop.Elementary.elm_toolbar_item_selected_set(Handle, value);
123             }
124         }
125
126         /// <summary>
127         /// Selected will be triggered when the item is selected.
128         /// </summary>
129         /// <since_tizen> preview </since_tizen>
130         public event EventHandler Selected;
131
132         /// <summary>
133         /// LongPressed will be triggered when the item is pressed for a long time.
134         /// </summary>
135         /// <since_tizen> preview </since_tizen>
136         public event EventHandler LongPressed;
137
138         /// <summary>
139         /// Clicked will be triggered when the item is clicked.
140         /// </summary>
141         /// <since_tizen> preview </since_tizen>
142         public event EventHandler Clicked;
143
144         internal void SendSelected()
145         {
146             Selected?.Invoke(this, EventArgs.Empty);
147         }
148         internal void SendLongPressed()
149         {
150             LongPressed?.Invoke(this, EventArgs.Empty);
151         }
152         internal void SendClicked()
153         {
154             Clicked?.Invoke(this, EventArgs.Empty);
155         }
156     }
157 }