Release 4.0.0-preview1-00051
[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     public class GenGridItem : GenItem
28     {
29         internal GenGridItem(object data, GenItemClass itemClass) : base(data, itemClass)
30         {
31         }
32
33         /// <summary>
34         /// Gets or sets whether a given gengrid item is selected.
35         /// If one gengrid item is selected, any other previously selected items get unselected in favor of this new one.
36         /// </summary>
37         /// <remarks>
38         /// If true, it is selected.
39         /// If false, it is unselected.
40         /// </remarks>
41         public override bool IsSelected
42         {
43             get
44             {
45                 return Interop.Elementary.elm_gengrid_item_selected_get(Handle);
46             }
47             set
48             {
49                 Interop.Elementary.elm_gengrid_item_selected_set(Handle, value);
50             }
51         }
52
53         [EditorBrowsable(EditorBrowsableState.Never)]
54         public override string Cursor
55         {
56             get
57             {
58                 return Interop.Elementary.elm_gengrid_item_cursor_get(Handle);
59             }
60             set
61             {
62                 if (!string.IsNullOrEmpty(value))
63                 {
64                     Interop.Elementary.elm_gengrid_item_cursor_set(Handle, value);
65                 }
66                 else
67                 {
68                     Interop.Elementary.elm_gengrid_item_cursor_unset(Handle);
69                 }
70             }
71         }
72
73         [EditorBrowsable(EditorBrowsableState.Never)]
74         public override string CursorStyle
75         {
76             get
77             {
78                 return Interop.Elementary.elm_gengrid_item_cursor_style_get(Handle);
79             }
80             set
81             {
82                 Interop.Elementary.elm_gengrid_item_cursor_style_set(Handle, value);
83             }
84         }
85
86         [EditorBrowsable(EditorBrowsableState.Never)]
87         public override bool IsUseEngineCursor
88         {
89             get
90             {
91                 return Interop.Elementary.elm_gengrid_item_cursor_engine_only_get(Handle);
92             }
93             set
94             {
95                 Interop.Elementary.elm_gengrid_item_cursor_engine_only_set(Handle, value);
96             }
97         }
98
99         /// <summary>
100         /// Gets or sets the style of given gengrid item's tooltip.
101         /// </summary>
102         public override string TooltipStyle
103         {
104             get
105             {
106                 return Interop.Elementary.elm_gengrid_item_tooltip_style_get(Handle);
107             }
108             set
109             {
110                 Interop.Elementary.elm_gengrid_item_tooltip_style_set(Handle, value);
111             }
112         }
113
114         public override GenItemSelectionMode SelectionMode
115         {
116             get
117             {
118                 return (GenItemSelectionMode)Interop.Elementary.elm_gengrid_item_select_mode_get(Handle);
119             }
120             set
121             {
122                 Interop.Elementary.elm_gengrid_item_select_mode_set(Handle, (Interop.Elementary.Elm_Object_Select_Mode)value);
123             }
124         }
125
126         /// <summary>
127         /// Gets or sets gengrid item's row position, relative to the whole gengrid's grid area.
128         /// </summary>
129         public int Row
130         {
131             get
132             {
133                 int row, column;
134                 Interop.Elementary.elm_gengrid_item_pos_get(Handle, out row, out column);
135                 return row;
136             }
137         }
138
139         /// <summary>
140         /// Gets or sets gengrid item's column position, relative to the whole gengrid's grid area.
141         /// </summary>
142         public int Column
143         {
144             get
145             {
146                 int row, column;
147                 Interop.Elementary.elm_gengrid_item_pos_get(Handle, out row, out column);
148                 return column;
149             }
150         }
151
152         public override void SetTooltipText(string tooltip)
153         {
154             Interop.Elementary.elm_gengrid_item_tooltip_text_set(Handle, tooltip);
155         }
156
157         public override void UnsetTooltip()
158         {
159             Interop.Elementary.elm_gengrid_item_tooltip_unset(Handle);
160         }
161
162         /// <summary>
163         /// Updates the content of a given gengrid item.
164         /// This updates an item by calling all the genitem class functions again to get the content, text, and states.
165         /// Use this when the original item data has changed and you want the changes to reflect.
166         /// </summary>
167         /// <remarks>
168         /// <see cref="GenGrid.UpdateRealizedItems"/> to update the contents of all the realized items.
169         /// </remarks>
170         public override void Update()
171         {
172             Interop.Elementary.elm_gengrid_item_update(Handle);
173         }
174
175         protected override void UpdateTooltipDelegate()
176         {
177             Interop.Elementary.elm_gengrid_item_tooltip_content_cb_set(Handle,
178                 TooltipContentDelegate != null ? _tooltipCb : null,
179                 IntPtr.Zero,
180                 null);
181         }
182     }
183 }