2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 using System.Collections.Generic;
21 namespace ElmSharp.Wearable
24 /// An instance to the Rotary Selector item is added. An item can be selected by the Rotary event or user item click.
26 /// <since_tizen> preview </since_tizen>
27 public class RotarySelectorItem
29 const string MainTextPartName = "selector,main_text";
30 const string SubTextPartName = "selector,sub_text";
31 const string IconPartName = "item,icon";
32 const string BgPartName = "item,bg_image";
33 const string SelectorIconPartName = "selector,icon";
41 Image _normalIconImage;
42 Image _pressedIconImage;
43 Image _disabledIconImage;
44 Image _selectedIconImage;
47 Image _pressedBgImage;
48 Image _disabledBgImage;
49 Image _selectedBgImage;
52 Color _pressedBgColor;
53 Color _disabledBgColor;
54 Color _selectedBgColor;
56 Image _selectorIconImage;
61 /// Sets or gets the handle of a rotary selector item object.
63 /// <since_tizen> preview </since_tizen>
68 if (_handle == value) return;
71 if (_handle == null) return;
73 setPart(ref _mainText, MainTextPartName);
74 setPart(ref _subText, SubTextPartName);
75 setPart(ref _mainTextColor, MainTextPartName, ItemState.Normal);
76 setPart(ref _subTextColor, SubTextPartName, ItemState.Normal);
78 setPart(ref _normalIconImage, IconPartName, ItemState.Normal);
79 setPart(ref _pressedIconImage, IconPartName, ItemState.Pressed);
80 setPart(ref _disabledIconImage, IconPartName, ItemState.Disabled);
81 setPart(ref _selectedIconImage, IconPartName, ItemState.Selected);
83 setPart(ref _normalBgImage, BgPartName, ItemState.Normal);
84 setPart(ref _pressedBgImage, BgPartName, ItemState.Pressed);
85 setPart(ref _disabledBgImage, BgPartName, ItemState.Disabled);
86 setPart(ref _selectedBgImage, BgPartName, ItemState.Selected);
88 setPart(ref _normalBgColor, BgPartName, ItemState.Normal);
89 setPart(ref _pressedBgColor, BgPartName, ItemState.Pressed);
90 setPart(ref _disabledBgColor, BgPartName, ItemState.Disabled);
91 setPart(ref _selectedBgColor, BgPartName, ItemState.Selected);
93 setPart(ref _selectorIconImage, SelectorIconPartName, ItemState.Normal);
102 void setPart(ref Image prop, string partName, ItemState state)
106 Interop.Eext.eext_rotary_selector_item_part_content_set(Handle, partName, (int)state, prop);
109 void setPart(ref Color prop, string partName, ItemState state)
111 if (prop != default(Color))
113 Interop.Eext.eext_rotary_selector_item_part_color_set(Handle, partName, (int)state, prop.R, prop.G, prop.B, prop.A);
117 void setPart(ref string prop, string partName)
121 Interop.Eext.eext_rotary_selector_item_part_text_set(Handle, partName, prop);
125 void setPart(ref Image prop, string partName, ItemState state, Image img)
127 if (prop == img) return;
131 Interop.Eext.eext_rotary_selector_item_part_content_set(Handle, partName, (int)state, img);
135 void setPart(ref Color prop, string partName, ItemState state, Color color)
137 if (prop == color) return;
141 Interop.Eext.eext_rotary_selector_item_part_color_set(Handle, partName, (int)state, color.R, color.G, color.B, color.A);
145 void setPart(ref string prop, string partName, string txt)
147 if (prop == txt) return;
151 Interop.Eext.eext_rotary_selector_item_part_text_set(Handle, partName, txt);
156 /// Sets or gets the main text of a rotary selector item object.
158 /// <since_tizen> preview </since_tizen>
159 public string MainText { set => setPart(ref _mainText, MainTextPartName, value); get => _mainText; }
162 /// Sets or gets the subtext of a rotary selector item object.
164 /// <since_tizen> preview </since_tizen>
165 public string SubText { set => setPart(ref _subText, SubTextPartName, value); get => _subText; }
168 /// Sets or gets the subtext color of a rotary selector item object.
170 /// <since_tizen> preview </since_tizen>
171 public Color MainTextColor { set => setPart(ref _mainTextColor, MainTextPartName, ItemState.Normal, value); get => _mainTextColor; }
174 /// Sets or gets the subtext color of a rotary selector item object.
176 /// <since_tizen> preview </since_tizen>
177 public Color SubTextColor { set => setPart(ref _subTextColor, SubTextPartName, ItemState.Normal, value); get => _subTextColor; }
180 /// Sets or gets the normal icon image of a rotary selector item object.
182 /// <since_tizen> preview </since_tizen>
183 public Image NormalIconImage { set => setPart(ref _normalIconImage, IconPartName, ItemState.Normal, value); get => _normalIconImage; }
186 /// Sets or gets the pressed icon image of a rotary selector item object.
188 /// <since_tizen> preview </since_tizen>
189 public Image PressedIconImage { set => setPart(ref _pressedIconImage, IconPartName, ItemState.Pressed, value); get => _pressedIconImage; }
192 /// Sets or gets the disabled icon image of a rotary selector item object.
194 /// <since_tizen> preview </since_tizen>
195 public Image DisabledIconImage { set => setPart(ref _disabledIconImage, IconPartName, ItemState.Disabled, value); get => _disabledIconImage; }
198 /// Sets or gets the selected icon image of a rotary selector item object.
200 /// <since_tizen> preview </since_tizen>
201 public Image SelectedIconImage { set => setPart(ref _selectedIconImage, IconPartName, ItemState.Selected, value); get => _selectedIconImage; }
204 /// Sets or gets the normal background image of a rotary selector item object.
206 /// <since_tizen> preview </since_tizen>
207 public Image NormalBackgroundImage { set => setPart(ref _normalBgImage, BgPartName, ItemState.Normal, value); get => _normalBgImage; }
210 /// Sets or gets the pressed background image of a rotary selector item object.
212 /// <since_tizen> preview </since_tizen>
213 public Image PressedBackgroundImage { set => setPart(ref _pressedBgImage, BgPartName, ItemState.Pressed, value); get => _pressedBgImage; }
216 /// Sets or gets the disabled background image of a rotary selector item object.
218 /// <since_tizen> preview </since_tizen>
219 public Image DisabledBackgroundImage { set => setPart(ref _disabledBgImage, BgPartName, ItemState.Disabled, value); get => _disabledBgImage; }
222 /// Sets or gets the selected background image of a rotary selector item object.
224 /// <since_tizen> preview </since_tizen>
225 public Image SelectedBackgroundImage { set => setPart(ref _selectedBgImage, BgPartName, ItemState.Selected, value); get => _selectedBgImage; }
228 /// Sets or gets the normal background color of a rotary selector item object.
230 /// <since_tizen> preview </since_tizen>
231 public Color NormalBackgroundColor { set => setPart(ref _normalBgColor, BgPartName, ItemState.Normal, value); get => _normalBgColor; }
234 /// Sets or gets the pressed background color of a rotary selector item object.
236 /// <since_tizen> preview </since_tizen>
237 public Color PressedBackgroundColor { set => setPart(ref _pressedBgColor, BgPartName, ItemState.Pressed, value); get => _pressedBgColor; }
240 /// Sets or gets the disabled background color of a rotary selector item object.
242 /// <since_tizen> preview </since_tizen>
243 public Color DisabledBackgroundColor { set => setPart(ref _disabledBgColor, BgPartName, ItemState.Disabled, value); get => _disabledBgColor; }
246 /// Sets or gets the selected background color of a rotary selector item object.
248 /// <since_tizen> preview </since_tizen>
249 public Color SelectedBackgroundColor { set => setPart(ref _selectedBgColor, BgPartName, ItemState.Selected, value); get => _selectedBgColor; }
252 /// Sets or gets the selector icon image of a rotary selector item object.
254 /// <since_tizen> preview </since_tizen>
255 public Image SelectorIconImage { set => setPart(ref _selectorIconImage, SelectorIconPartName, ItemState.Normal, value); get => _selectorIconImage; }
257 internal enum ItemState