2 using System.Collections.Generic;
5 namespace ElmSharp.Wearable
7 public class RotarySelectorItem
9 const string MainTextPartName = "selector,main_text";
10 const string SubTextPartName = "selector,sub_text";
11 const string IconPartName = "item,icon";
12 const string BgPartName = "item,bg_image";
13 const string SelectorIconPartName = "selector,icon";
21 Image _normalIconImage;
22 Image _pressedIconImage;
23 Image _disabledIconImage;
24 Image _selectedIconImage;
27 Image _pressedBgImage;
28 Image _disabledBgImage;
29 Image _selectedBgImage;
32 Color _pressedBgColor;
33 Color _disabledBgColor;
34 Color _selectedBgColor;
36 Image _selectorIconImage;
44 if (_handle == value) return;
47 if (_handle == null) return;
49 setPart(ref _mainText, MainTextPartName);
50 setPart(ref _subText, SubTextPartName);
51 setPart(ref _mainTextColor, MainTextPartName, ItemState.Normal);
52 setPart(ref _subTextColor, SubTextPartName, ItemState.Normal);
54 setPart(ref _normalIconImage, IconPartName, ItemState.Normal);
55 setPart(ref _pressedIconImage, IconPartName, ItemState.Pressed);
56 setPart(ref _disabledIconImage, IconPartName, ItemState.Disabled);
57 setPart(ref _selectedIconImage, IconPartName, ItemState.Selected);
59 setPart(ref _normalBgImage, BgPartName, ItemState.Normal);
60 setPart(ref _pressedBgImage, BgPartName, ItemState.Pressed);
61 setPart(ref _disabledBgImage, BgPartName, ItemState.Disabled);
62 setPart(ref _selectedBgImage, BgPartName, ItemState.Selected);
64 setPart(ref _normalBgColor, BgPartName, ItemState.Normal);
65 setPart(ref _pressedBgColor, BgPartName, ItemState.Pressed);
66 setPart(ref _disabledBgColor, BgPartName, ItemState.Disabled);
67 setPart(ref _selectedBgColor, BgPartName, ItemState.Selected);
69 setPart(ref _selectorIconImage, SelectorIconPartName, ItemState.Normal);
78 void setPart(ref Image prop, string partName, ItemState state)
82 Interop.Eext.eext_rotary_selector_item_part_content_set(Handle, partName, (int)state, prop);
85 void setPart(ref Color prop, string partName, ItemState state)
87 if (prop != default(Color))
89 Interop.Eext.eext_rotary_selector_item_part_color_set(Handle, partName, (int)state, prop.R, prop.G, prop.B, prop.A);
93 void setPart(ref string prop, string partName)
97 Interop.Eext.eext_rotary_selector_item_part_text_set(Handle, partName, prop);
101 void setPart(ref Image prop, string partName, ItemState state, Image img)
103 if (prop == img) return;
107 Interop.Eext.eext_rotary_selector_item_part_content_set(Handle, partName, (int)state, img);
111 void setPart(ref Color prop, string partName, ItemState state, Color color)
113 if (prop == color) return;
117 Interop.Eext.eext_rotary_selector_item_part_color_set(Handle, partName, (int)state, color.R, color.G, color.B, color.A);
121 void setPart(ref string prop, string partName, string txt)
123 if (prop == txt) return;
127 Interop.Eext.eext_rotary_selector_item_part_text_set(Handle, partName, txt);
131 public string MainText { set => setPart(ref _mainText, MainTextPartName, value); get => _mainText; }
132 public string SubText { set => setPart(ref _subText, SubTextPartName, value); get => _subText; }
134 public Color MainTextColor { set => setPart(ref _mainTextColor, MainTextPartName, ItemState.Normal, value); get => _mainTextColor; }
135 public Color SubextColor { set => setPart(ref _subTextColor, SubTextPartName, ItemState.Normal, value); get => _subTextColor; }
137 public Image NormalIconImage { set => setPart(ref _normalIconImage, IconPartName, ItemState.Normal, value); get => _normalIconImage; }
138 public Image PressedIconImage { set => setPart(ref _pressedIconImage, IconPartName, ItemState.Pressed, value); get => _pressedIconImage; }
139 public Image DisabledIconImage { set => setPart(ref _disabledIconImage, IconPartName, ItemState.Disabled, value); get => _disabledIconImage; }
140 public Image SelectedIconImage { set => setPart(ref _selectedIconImage, IconPartName, ItemState.Selected, value); get => _selectedIconImage; }
143 public Image NormalBackgroundImage { set => setPart(ref _normalBgImage, BgPartName, ItemState.Normal, value); get => _normalBgImage; }
144 public Image PressedBackgroundImage { set => setPart(ref _pressedBgImage, BgPartName, ItemState.Pressed, value); get => _pressedBgImage; }
145 public Image DisabledBackgroundImage { set => setPart(ref _disabledBgImage, BgPartName, ItemState.Disabled, value); get => _disabledBgImage; }
146 public Image SelectedBackgroundImage { set => setPart(ref _selectedBgImage, BgPartName, ItemState.Selected, value); get => _selectedBgImage; }
148 public Color NormalBackgroundColor { set => setPart(ref _normalBgColor, BgPartName, ItemState.Normal, value); get => _normalBgColor; }
149 public Color PressedBackgroundColor { set => setPart(ref _pressedBgColor, BgPartName, ItemState.Pressed, value); get => _pressedBgColor; }
150 public Color DisabledBackgroundColor { set => setPart(ref _disabledBgColor, BgPartName, ItemState.Disabled, value); get => _disabledBgColor; }
151 public Color SelectedBackgroundColor { set => setPart(ref _selectedBgColor, BgPartName, ItemState.Selected, value); get => _selectedBgColor; }
153 public Image SelectorIconImage { set => setPart(ref _selectorIconImage, SelectorIconPartName, ItemState.Normal, value); get => _selectorIconImage; }
155 internal enum ItemState