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 /// A instance to the Rotary Selector Item added. And an item can be selected by rotary event or user item click.
26 public class RotarySelectorItem
28 const string MainTextPartName = "selector,main_text";
29 const string SubTextPartName = "selector,sub_text";
30 const string IconPartName = "item,icon";
31 const string BgPartName = "item,bg_image";
32 const string SelectorIconPartName = "selector,icon";
40 Image _normalIconImage;
41 Image _pressedIconImage;
42 Image _disabledIconImage;
43 Image _selectedIconImage;
46 Image _pressedBgImage;
47 Image _disabledBgImage;
48 Image _selectedBgImage;
51 Color _pressedBgColor;
52 Color _disabledBgColor;
53 Color _selectedBgColor;
55 Image _selectorIconImage;
60 /// Sets or gets the handle of a rotary selector item object.
66 if (_handle == value) return;
69 if (_handle == null) return;
71 setPart(ref _mainText, MainTextPartName);
72 setPart(ref _subText, SubTextPartName);
73 setPart(ref _mainTextColor, MainTextPartName, ItemState.Normal);
74 setPart(ref _subTextColor, SubTextPartName, ItemState.Normal);
76 setPart(ref _normalIconImage, IconPartName, ItemState.Normal);
77 setPart(ref _pressedIconImage, IconPartName, ItemState.Pressed);
78 setPart(ref _disabledIconImage, IconPartName, ItemState.Disabled);
79 setPart(ref _selectedIconImage, IconPartName, ItemState.Selected);
81 setPart(ref _normalBgImage, BgPartName, ItemState.Normal);
82 setPart(ref _pressedBgImage, BgPartName, ItemState.Pressed);
83 setPart(ref _disabledBgImage, BgPartName, ItemState.Disabled);
84 setPart(ref _selectedBgImage, BgPartName, ItemState.Selected);
86 setPart(ref _normalBgColor, BgPartName, ItemState.Normal);
87 setPart(ref _pressedBgColor, BgPartName, ItemState.Pressed);
88 setPart(ref _disabledBgColor, BgPartName, ItemState.Disabled);
89 setPart(ref _selectedBgColor, BgPartName, ItemState.Selected);
91 setPart(ref _selectorIconImage, SelectorIconPartName, ItemState.Normal);
100 void setPart(ref Image prop, string partName, ItemState state)
104 Interop.Eext.eext_rotary_selector_item_part_content_set(Handle, partName, (int)state, prop);
107 void setPart(ref Color prop, string partName, ItemState state)
109 if (prop != default(Color))
111 Interop.Eext.eext_rotary_selector_item_part_color_set(Handle, partName, (int)state, prop.R, prop.G, prop.B, prop.A);
115 void setPart(ref string prop, string partName)
119 Interop.Eext.eext_rotary_selector_item_part_text_set(Handle, partName, prop);
123 void setPart(ref Image prop, string partName, ItemState state, Image img)
125 if (prop == img) return;
129 Interop.Eext.eext_rotary_selector_item_part_content_set(Handle, partName, (int)state, img);
133 void setPart(ref Color prop, string partName, ItemState state, Color color)
135 if (prop == color) return;
139 Interop.Eext.eext_rotary_selector_item_part_color_set(Handle, partName, (int)state, color.R, color.G, color.B, color.A);
143 void setPart(ref string prop, string partName, string txt)
145 if (prop == txt) return;
149 Interop.Eext.eext_rotary_selector_item_part_text_set(Handle, partName, txt);
154 /// Sets or gets the main text of a rotary selector item object.
156 public string MainText { set => setPart(ref _mainText, MainTextPartName, value); get => _mainText; }
159 /// Sets or gets the sub text of a rotary selector item object.
161 public string SubText { set => setPart(ref _subText, SubTextPartName, value); get => _subText; }
164 /// Sets or gets the sub text color of a rotary selector item object.
166 public Color MainTextColor { set => setPart(ref _mainTextColor, MainTextPartName, ItemState.Normal, value); get => _mainTextColor; }
169 /// Sets or gets the sub text color of a rotary selector item object.
171 public Color SubTextColor { set => setPart(ref _subTextColor, SubTextPartName, ItemState.Normal, value); get => _subTextColor; }
174 /// Sets or gets the normal icon image of a rotary selector item object.
176 public Image NormalIconImage { set => setPart(ref _normalIconImage, IconPartName, ItemState.Normal, value); get => _normalIconImage; }
179 /// Sets or gets the press icon image of a rotary selector item object.
181 public Image PressedIconImage { set => setPart(ref _pressedIconImage, IconPartName, ItemState.Pressed, value); get => _pressedIconImage; }
184 /// Sets or gets the disable icon image of a rotary selector item object.
186 public Image DisabledIconImage { set => setPart(ref _disabledIconImage, IconPartName, ItemState.Disabled, value); get => _disabledIconImage; }
189 /// Sets or gets the selected icon image of a rotary selector item object.
191 public Image SelectedIconImage { set => setPart(ref _selectedIconImage, IconPartName, ItemState.Selected, value); get => _selectedIconImage; }
194 /// Sets or gets the normal background image of a rotary selector item object.
196 public Image NormalBackgroundImage { set => setPart(ref _normalBgImage, BgPartName, ItemState.Normal, value); get => _normalBgImage; }
199 /// Sets or gets the pressed background image of a rotary selector item object.
201 public Image PressedBackgroundImage { set => setPart(ref _pressedBgImage, BgPartName, ItemState.Pressed, value); get => _pressedBgImage; }
204 /// Sets or gets the disabled background image of a rotary selector item object.
206 public Image DisabledBackgroundImage { set => setPart(ref _disabledBgImage, BgPartName, ItemState.Disabled, value); get => _disabledBgImage; }
209 /// Sets or gets the selected background image of a rotary selector item object.
211 public Image SelectedBackgroundImage { set => setPart(ref _selectedBgImage, BgPartName, ItemState.Selected, value); get => _selectedBgImage; }
214 /// Sets or gets the normal background color of a rotary selector item object.
216 public Color NormalBackgroundColor { set => setPart(ref _normalBgColor, BgPartName, ItemState.Normal, value); get => _normalBgColor; }
219 /// Sets or gets the pressed background color of a rotary selector item object.
221 public Color PressedBackgroundColor { set => setPart(ref _pressedBgColor, BgPartName, ItemState.Pressed, value); get => _pressedBgColor; }
224 /// Sets or gets the disabled background color of a rotary selector item object.
226 public Color DisabledBackgroundColor { set => setPart(ref _disabledBgColor, BgPartName, ItemState.Disabled, value); get => _disabledBgColor; }
229 /// Sets or gets the selected background color of a rotary selector item object.
231 public Color SelectedBackgroundColor { set => setPart(ref _selectedBgColor, BgPartName, ItemState.Selected, value); get => _selectedBgColor; }
234 /// Sets or gets the selector icon image of a rotary selector item object.
236 public Image SelectorIconImage { set => setPart(ref _selectorIconImage, SelectorIconPartName, ItemState.Normal, value); get => _selectorIconImage; }
238 internal enum ItemState