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