[NUI] TCSACR-226 code change (#1032)
[platform/core/csapi/tizenfx.git] / src / ElmSharp / ElmSharp / GenGridItem.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 using System.ComponentModel;
19
20 namespace ElmSharp
21 {
22     /// <summary>
23     /// It inherits <see cref="GenItem"/>.
24     /// An instance to the gengrid item is added.
25     /// It contains the Update() method to update a gengrid item which is given.
26     /// </summary>
27     /// <since_tizen> preview </since_tizen>
28     public class GenGridItem : GenItem
29     {
30         internal GenGridItem(object data, GenItemClass itemClass) : base(data, itemClass)
31         {
32         }
33
34         internal GenGridItem(object data, GenItemClass itemClass, EvasObject parent) : base(data, itemClass, parent)
35         {
36         }
37
38         /// <summary>
39         /// Gets or sets whether a given gengrid item is selected.
40         /// If one gengrid item is selected, any other previously selected items get unselected in favor of this new one.
41         /// </summary>
42         /// <remarks>
43         /// If true, it is selected.
44         /// If false, it is unselected.
45         /// </remarks>
46         /// <since_tizen> preview </since_tizen>
47         public override bool IsSelected
48         {
49             get
50             {
51                 return Interop.Elementary.elm_gengrid_item_selected_get(Handle);
52             }
53             set
54             {
55                 Interop.Elementary.elm_gengrid_item_selected_set(Handle, value);
56             }
57         }
58
59         /// <summary>
60         /// Sets or gets the cursor to be shown when the mouse is over the gengrid item.
61         /// </summary>
62         /// <since_tizen> preview </since_tizen>
63         [EditorBrowsable(EditorBrowsableState.Never)]
64         public override string Cursor
65         {
66             get
67             {
68                 return Interop.Elementary.elm_gengrid_item_cursor_get(Handle);
69             }
70             set
71             {
72                 if (!string.IsNullOrEmpty(value))
73                 {
74                     Interop.Elementary.elm_gengrid_item_cursor_set(Handle, value);
75                 }
76                 else
77                 {
78                     Interop.Elementary.elm_gengrid_item_cursor_unset(Handle);
79                 }
80             }
81         }
82
83         /// <summary>
84         /// Sets or gets the style for this item cursor.
85         /// </summary>
86         /// <since_tizen> preview </since_tizen>
87         [EditorBrowsable(EditorBrowsableState.Never)]
88         public override string CursorStyle
89         {
90             get
91             {
92                 return Interop.Elementary.elm_gengrid_item_cursor_style_get(Handle);
93             }
94             set
95             {
96                 Interop.Elementary.elm_gengrid_item_cursor_style_set(Handle, value);
97             }
98         }
99
100         /// <summary>
101         /// Sets or gets the cursor engine only usage for this item cursor.
102         /// </summary>
103         /// <since_tizen> preview </since_tizen>
104         [EditorBrowsable(EditorBrowsableState.Never)]
105         public override bool IsUseEngineCursor
106         {
107             get
108             {
109                 return Interop.Elementary.elm_gengrid_item_cursor_engine_only_get(Handle);
110             }
111             set
112             {
113                 Interop.Elementary.elm_gengrid_item_cursor_engine_only_set(Handle, value);
114             }
115         }
116
117         /// <summary>
118         /// Sets or gets, or sets the style of the given gengrid item's tooltip.
119         /// </summary>
120         /// <since_tizen> preview </since_tizen>
121         public override string TooltipStyle
122         {
123             get
124             {
125                 return Interop.Elementary.elm_gengrid_item_tooltip_style_get(Handle);
126             }
127             set
128             {
129                 Interop.Elementary.elm_gengrid_item_tooltip_style_set(Handle, value);
130             }
131         }
132
133         /// <summary>
134         /// Gets the gengrid item's select mode.
135         /// </summary>
136         /// <since_tizen> preview </since_tizen>
137         public override GenItemSelectionMode SelectionMode
138         {
139             get
140             {
141                 return (GenItemSelectionMode)Interop.Elementary.elm_gengrid_item_select_mode_get(Handle);
142             }
143             set
144             {
145                 Interop.Elementary.elm_gengrid_item_select_mode_set(Handle, (Interop.Elementary.Elm_Object_Select_Mode)value);
146             }
147         }
148
149         /// <summary>
150         /// Gets or sets the gengrid item's row position, relative to the whole gengrid's grid area.
151         /// </summary>
152         /// <since_tizen> preview </since_tizen>
153         public int Row
154         {
155             get
156             {
157                 int row, column;
158                 Interop.Elementary.elm_gengrid_item_pos_get(Handle, out row, out column);
159                 return row;
160             }
161         }
162
163         /// <summary>
164         /// Gets or sets the gengrid item's column position, relative to the whole gengrid's grid area.
165         /// </summary>
166         /// <since_tizen> preview </since_tizen>
167         public int Column
168         {
169             get
170             {
171                 int row, column;
172                 Interop.Elementary.elm_gengrid_item_pos_get(Handle, out row, out column);
173                 return column;
174             }
175         }
176
177         /// <summary>
178         /// Sets the text to be shown in the gengrid item.
179         /// </summary>
180         /// <param name="tooltip">The text to set.</param>
181         /// <since_tizen> preview </since_tizen>
182         public override void SetTooltipText(string tooltip)
183         {
184             Interop.Elementary.elm_gengrid_item_tooltip_text_set(Handle, tooltip);
185         }
186
187         /// <summary>
188         /// Unsets the tooltip from item.
189         /// </summary>
190         /// <since_tizen> preview </since_tizen>
191         public override void UnsetTooltip()
192         {
193             Interop.Elementary.elm_gengrid_item_tooltip_unset(Handle);
194         }
195
196         /// <summary>
197         /// Updates the content of a given gengrid item.
198         /// This updates an item by calling all the GenItem class functions again to get the content, text, and states.
199         /// Use this when the original item data has changed and you want the changes to reflect.
200         /// </summary>
201         /// <remarks>
202         /// <see cref="GenGrid.UpdateRealizedItems"/> to update the contents of all the realized items.
203         /// </remarks>
204         /// <since_tizen> preview </since_tizen>
205         public override void Update()
206         {
207             Interop.Elementary.elm_gengrid_item_update(Handle);
208         }
209
210         /// <summary>
211         /// Sets the content to be shown in the tooltip item.
212         /// </summary>
213         /// <since_tizen> preview </since_tizen>
214         protected override void UpdateTooltipDelegate()
215         {
216             Interop.Elementary.elm_gengrid_item_tooltip_content_cb_set(Handle,
217                 TooltipContentDelegate != null ? _tooltipCb : null,
218                 IntPtr.Zero,
219                 null);
220         }
221     }
222 }