DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
OptionSelector.c
См. документацию.
2{
6 protected int m_SelectedOptionIndex;
7 protected ref array<string> m_Options;
8
9 void OptionSelector(Widget parent, int current_index, ScriptedWidgetEventHandler parent_c, bool disabled)
10 {
11 m_Options = { "#server_browser_disabled", "#server_browser_show", "#server_browser_hide" };
12 m_ParentClass = parent_c;
13 m_SelectorType = 2;
14 if (current_index < 0 || current_index >= m_Options.Count())
15 {
17 }
18 else
19 {
20 m_SelectedOptionIndex = current_index;
21 }
22
23 m_Root = GetGame().GetWorkspace().CreateWidgets("gui/layouts/new_ui/option_selector.layout", parent);
24 #ifdef PLATFORM_CONSOLE
25 m_Parent = parent.GetParent().GetParent();
26 #else
27 #ifdef PLATFORM_WINDOWS
28 m_Parent = parent.GetParent();
29 #endif
30 #endif
31
32 m_SelectedOption = TextWidget.Cast(m_Root.FindAnyWidget("option_label"));
33 m_PreviousOption = m_Root.FindAnyWidget("prev_option");
34 m_NextOption = m_Root.FindAnyWidget("next_option");
35
36 #ifdef PLATFORM_CONSOLE
37 m_NextOption.Show(false);
38 m_PreviousOption.Show(false);
39 #endif
40
42
43 m_Enabled = !disabled;
44 if (m_Enabled)
45 {
46 Enable();
47 }
48 else
49 {
50 Disable();
51 }
52
53 m_Parent.SetHandler(this);
54 }
55
57 {
58 delete m_Root;
59 }
60
61 override bool OnMouseButtonUp(Widget w, int x, int y, int button)
62 {
63 if (button == MouseState.LEFT)
64 {
65 if (w == m_NextOption)
66 {
68 return true;
69 }
70 else if (w == m_PreviousOption)
71 {
73 return true;
74 }
75 }
76 return false;
77 }
78
79 override bool OnClick(Widget w, int x, int y, int button)
80 {
81 if (button == MouseState.LEFT)
82 {
83 if (w == m_Parent)
85 }
86 return true;
87 }
88
89
90 override bool OnMouseEnter(Widget w, int x, int y)
91 {
92 return super.OnMouseEnter(w, x, y);
93 }
94
95 override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
96 {
97 return super.OnMouseLeave(w, enterW, x, y);
98 }
99
100 void Reset()
101 {
103
105
106 m_OptionChanged.Invoke(m_SelectedOptionIndex);
107 }
108
110 {
112 if (m_SelectedOptionIndex >= m_Options.Count())
113 {
115 }
116
118
119 m_OptionChanged.Invoke(m_SelectedOptionIndex);
120 }
121
123 {
125 if (m_SelectedOptionIndex < 0)
126 {
127 m_SelectedOptionIndex = m_Options.Count() - 1;
128 }
129
131
132 m_OptionChanged.Invoke(m_SelectedOptionIndex);
133 }
134
136 {
137 return m_Options;
138 }
139
140
141 bool IsSet()
142 {
143 return m_SelectedOptionIndex != 0;
144 }
145
148 {
149 return m_SelectedOptionIndex == 1;
150 }
151
154 {
155 return m_Enabled;
156 }
157
159 {
161 }
162
163 void SetStringOption(string option, bool fire_event = true)
164 {
165 int index = m_Options.Find(option);
166 if (index > -1)
167 {
168 m_SelectedOptionIndex = index;
170
171 if (fire_event)
172 m_OptionChanged.Invoke(m_SelectedOptionIndex);
173 }
174 }
175
177 {
178 switch (m_SelectedOptionIndex)
179 {
180 case 0:
181 {
182 m_SelectedOption.SetColor(ARGB(255, 255, 255, 255));
183 break;
184 }
185 case 1:
186 {
187 m_SelectedOption.SetColor(ARGB(255, 0, 255, 0));
188 break;
189 }
190 case 2:
191 {
192 m_SelectedOption.SetColor(ARGB(255, 255, 0, 0));
193 break;
194 }
195 }
196 }
197
198 override bool IsFocusable(Widget w)
199 {
200 if (w)
201 {
202 return (w == m_Parent || w == m_NextOption || w == m_PreviousOption);
203 }
204 return false;
205 }
206
207 override void Enable()
208 {
209 super.Enable();
210 #ifndef PLATFORM_CONSOLE
211 m_NextOption.ClearFlags(WidgetFlags.IGNOREPOINTER);
212 m_NextOption.Show(true);
213 m_PreviousOption.ClearFlags(WidgetFlags.IGNOREPOINTER);
214 m_PreviousOption.Show(true);
215 #else
216 m_Parent.ClearFlags(WidgetFlags.NOFOCUS);
217 m_Parent.ClearFlags(WidgetFlags.IGNOREPOINTER);
218 #endif
219 }
220
221 override void Disable()
222 {
223 super.Disable();
224 #ifndef PLATFORM_CONSOLE
225 m_NextOption.SetFlags(WidgetFlags.IGNOREPOINTER);
226 m_NextOption.Show(false);
227 m_PreviousOption.SetFlags(WidgetFlags.IGNOREPOINTER);
228 m_PreviousOption.Show(false);
229 #else
230 m_Parent.SetFlags(WidgetFlags.NOFOCUS);
231 m_Parent.SetFlags(WidgetFlags.IGNOREPOINTER);
232 #endif
233 }
234
235 override void ColorNormalConsole(Widget w)
236 {
237 super.ColorNormalConsole(w);
238
239 if (!w)
240 return;
241
243 {
244 m_SelectedOption.SetColor(ARGB(255,255,255,255));
245 }
246 }
247
249 {
250 super.ColorDisabledConsole(w);
251
252 if (!w)
253 return;
254
256 {
257 m_SelectedOption.SetColor(ARGB(120,255,255,255));
258 }
259 }
260}
Icon x
Icon y
Widget m_Root
Определения SizeToChild.c:91
Widget m_Parent
Определения SizeToChild.c:92
bool m_Enabled
Определения TrapTrigger.c:71
proto native WorkspaceWidget GetWorkspace()
override void SetNextOption()
Определения OptionSelectorMultistate.c:41
override void SetPrevOption()
Определения OptionSelectorMultistate.c:57
void SetStringOption(string option, bool fire_event=true)
Определения OptionSelector.c:163
int m_SelectedOptionIndex
Определения OptionSelector.c:6
void SetPrevOption()
Определения OptionSelector.c:122
TextWidget m_SelectedOption
Определения OptionSelector.c:5
override bool IsFocusable(Widget w)
Определения OptionSelector.c:198
Widget m_NextOption
Определения OptionSelector.c:4
bool IsEnabled()
Returns 'true' if current index == 1 (default 'enabled' value). Take care, as different selectors may...
Определения OptionSelector.c:147
Widget m_PreviousOption
Определения OptionSelector.c:3
override void ColorNormalConsole(Widget w)
Определения OptionSelector.c:235
bool IsSelectorEnabled()
Returns false for the selector in 'disabled' states.
Определения OptionSelector.c:153
void SetNextOption()
Определения OptionSelector.c:109
string GetStringValue()
Определения OptionSelector.c:158
bool IsSet()
Определения OptionSelector.c:141
ref array< string > m_Options
Определения OptionSelector.c:7
override void ColorDisabledConsole(Widget w)
Определения OptionSelector.c:248
override bool OnMouseEnter(Widget w, int x, int y)
Определения OptionSelector.c:90
void ColorOption()
Определения OptionSelector.c:176
void OptionSelector(Widget parent, int current_index, ScriptedWidgetEventHandler parent_c, bool disabled)
Определения OptionSelector.c:9
override void Enable()
Определения OptionSelector.c:207
override bool OnClick(Widget w, int x, int y, int button)
Определения OptionSelector.c:79
void ~OptionSelector()
Определения OptionSelector.c:56
void Reset()
Определения OptionSelector.c:100
override void Disable()
Определения OptionSelector.c:221
override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
Определения OptionSelector.c:95
override bool OnMouseButtonUp(Widget w, int x, int y, int button)
Определения OptionSelector.c:61
array< string > GetOptions()
Определения OptionSelector.c:135
map: item x vector(index, width, height)
Определения EnWidgets.c:651
Определения EnWidgets.c:220
Определения EnWidgets.c:190
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()
MouseState
Определения EnSystem.c:311
WidgetFlags
Определения EnWidgets.c:58
proto native external Widget CreateWidgets(string layout, Widget parentWidget=NULL, bool immedUpdate=true)
Create widgets from *.layout file.
proto native void Enable(bool enable)
int ARGB(int a, int r, int g, int b)
Определения proto.c:322