8 void OptionSelectorSlider(Widget parent,
float value, ScriptedWidgetEventHandler parent_menu,
bool disabled,
float min,
float max,
bool showEditbox =
false)
12 m_Root =
GetGame().GetWorkspace().CreateWidgets(
"gui/layouts/new_ui/option_slider.layout", parent);
16 m_Root =
GetGame().GetWorkspace().CreateWidgets(
"gui/layouts/new_ui/option_slider_editbox.layout", parent);
17 m_ValueText = EditBoxWidget.Cast(
m_Root.FindAnyWidget(
"option_value_text"));
18 m_ValueText.Enable(
false);
19 #ifdef PLATFORM_CONSOLE
24 #ifdef PLATFORM_CONSOLE
25 m_Parent = parent.GetParent().GetParent();
27 #ifdef PLATFORM_WINDOWS
33 m_ParentClass = parent_menu;
34 m_Slider = SliderWidget.Cast(
m_Root.FindAnyWidget(
"option_value"));
35 m_Slider.SetCurrent(value);
40 m_ShowEditbox = showEditbox;
56 m_ValueText.SetText(percentage.ToString());
63 if (m_ValueText.GetText() ==
"" && defaultValue > -1)
79 override bool OnChange(Widget w,
int x,
int y,
bool finished)
90 m_OptionChanged.Invoke(value);
94 else if (m_ShowEditbox && w == m_ValueText)
99 m_Slider.SetCurrent(NormalizeInput(value));
105 m_ValueText.SetText(
"");
120 TStringArray allowedCharacters = {
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9"};
121 for (
int i = 0; i < text.Length(); i++)
123 int foundIndex = allowedCharacters.Find(text.Get(i));
124 if (foundIndex == -1)
128 if (i > 0 && text.ToInt() == 0)
135 if (text.ToInt() > 100 || text.ToInt() < 0)
145 #ifndef PLATFORM_CONSOLE
146 if (m_ShowEditbox && w == m_ValueText)
148 m_ValueText.Enable(
true);
149 SetFocus(m_ValueText);
151 m_ValueText.SetText(
"");
152 m_ValueText.SetTextColor(
ARGB(255, 255, 0, 0));
169 #ifdef PLATFORM_CONSOLE
178 if (m_ShowEditbox && w == m_ValueText)
180 m_ValueText.Enable(
false);
184 return super.OnFocusLost(w,
x,
y);
189 if (m_ShowEditbox && w)
191 return (w ==
m_Parent || w == m_Slider || w == m_ValueText);
193 return super.IsFocusable(w);
198 #ifdef PLATFORM_CONSOLE
199 if (ButtonWidget.Cast(w))
201 ColorNormalConsole(w);
204 if (m_ShowEditbox && m_ValueText.GetText() ==
"")
210 return super.OnMouseLeave(w, enterW,
x,
y);
215 OptionsMenuControls menuControls = OptionsMenuControls.Cast(m_ParentClass);
218 menuControls.SetActiveOption(
this);
224 OptionsMenuControls menuControls = OptionsMenuControls.Cast(m_ParentClass);
225 if (menuControls && menuControls.GetActiveOption())
227 OptionSelectorSlider optionSlider = OptionSelectorSlider.Cast(menuControls.GetActiveOption());
228 if (!optionSlider || !optionSlider.IsValueTextVisible())
231 optionSlider.Update();
237 m_ValueText.SetTextColor(
ARGB(255, 255, 255, 255));
238 if (m_ValueText.GetText() ==
"")
244 return m_ShowEditbox;
This Option Selector handles a Slider Marker, which basically has 2 sliders One slider is for selecti...
override bool OnDoubleClick(Widget w, int x, int y, int button)
void UpdateActiveOption()
bool IsValidEditboxValue(string text)
bool IsValueTextVisible()
override bool OnFocusLost(Widget w, int x, int y)
override bool IsFocusable(Widget w)
override bool OnFocus(Widget w, int x, int y)
EditBoxWidget m_ValueText
float GetRangePercantageByValue()
void OptionSelectorSlider(Widget parent, float value, ScriptedWidgetEventHandler parent_menu, bool disabled, float min, float max, bool showEditbox=false)
override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
void Refresh(float defaultValue=-1)
override bool OnChange(Widget w, int x, int y, bool finished)
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()
override void SetValue(int value, bool fire_event=true)
class PlayerStatBase m_MinValue
int ARGB(int a, int r, int g, int b)