1class OptionsMenuControls
extends ScriptedWidgetEventHandler
5 protected Widget m_SettingsRoot;
7 protected Widget m_DetailsBodyDefault;
8 protected Widget m_DetailsBodyConnectivity;
10 protected bool m_MaKOptionAvailable;
11 protected Widget m_ConsoleControllerSensitivityWidget;
12 protected Widget m_ConsoleMouseSensitivityWidget;
14 protected TextWidget m_DetailsLabel;
15 protected RichTextWidget m_DetailsText;
16 protected GridSpacerWidget m_Keybindings;
18 protected GameOptions m_Options;
19 protected OptionsMenu
m_Menu;
22 protected ref SwitchOptionsAccess m_KeyboardOption;
23 protected ref SwitchOptionsAccess m_AimHelperOption;
26 protected ref OptionSelectorMultistate m_KeyboardSelector;
27 protected ref OptionSelectorMultistate m_AimHelperSelector;
30 protected ref SwitchOptionsAccess m_Mouse_InvertOption;
31 protected ref NumericOptionsAccess m_Mouse_VSensitivityOption;
32 protected ref NumericOptionsAccess m_Mouse_HSensitivityOption;
33 protected ref NumericOptionsAccess m_Mouse_AimMod_VSensitivityOption;
34 protected ref NumericOptionsAccess m_Mouse_AimMod_HSensitivityOption;
37 protected ref OptionSelectorMultistate m_Mouse_InvertSelector;
38 protected ref OptionSelectorSlider m_Mouse_VSensitivitySelector;
39 protected ref OptionSelectorSlider m_Mouse_HSensitivitySelector;
40 protected ref OptionSelectorSlider m_Mouse_AimMod_VSensitivitySelector;
41 protected ref OptionSelectorSlider m_Mouse_AimMod_HSensitivitySelector;
44 protected ref NumericOptionsAccess m_ControllerLS_VSensitivityOption;
45 protected ref NumericOptionsAccess m_ControllerLS_HSensitivityOption;
46 protected ref NumericOptionsAccess m_ControllerLS_VehicleMod_HSensitivityOption;
47 protected ref SwitchOptionsAccess m_ControllerRS_InvertOption;
48 protected ref NumericOptionsAccess m_ControllerRS_VSensitivityOption;
49 protected ref NumericOptionsAccess m_ControllerRS_HSensitivityOption;
50 protected ref NumericOptionsAccess m_ControllerRS_CurvatureOption;
51 protected ref NumericOptionsAccess m_ControllerRS_AimMod_VSensitivityOption;
52 protected ref NumericOptionsAccess m_ControllerRS_AimMod_HSensitivityOption;
53 protected ref NumericOptionsAccess m_ControllerRS_AimMod_CurvatureOption;
54 protected ref NumericOptionsAccess m_ControllerLS_DeadZoneOption;
55 protected ref NumericOptionsAccess m_ControllerRS_DeadZoneOption;
58 protected ref OptionSelectorSlider m_ControllerLS_VSensitivitySelector;
59 protected ref OptionSelectorSlider m_ControllerLS_HSensitivitySelector;
60 protected ref OptionSelectorSlider m_ControllerLS_VehicleMod_HSensitivitySelector;
61 protected ref OptionSelectorMultistate m_ControllerRS_InvertSelector;
62 protected ref OptionSelectorSlider m_ControllerRS_VSensitivitySelector;
63 protected ref OptionSelectorSlider m_ControllerRS_HSensitivitySelector;
64 protected ref OptionSelectorSlider m_ControllerRS_CurvatureSelector;
65 protected ref OptionSelectorSlider m_ControllerRS_AimMod_VSensitivitySelector;
66 protected ref OptionSelectorSlider m_ControllerRS_AimMod_HSensitivitySelector;
67 protected ref OptionSelectorSlider m_ControllerRS_AimMod_CurvatureSelector;
68 protected ref OptionSelectorSlider m_ControllerLS_DeadZoneSelector;
69 protected ref OptionSelectorSlider m_ControllerRS_DeadZoneSelector;
73 static const float SLIDER_STEP = 0.01;
75 protected OptionSelectorBase m_ActiveOption;
77 void OptionsMenuControls( Widget parent, Widget details_root, GameOptions options, OptionsMenu menu )
79 array<string> opt = {
"#options_controls_disabled",
"#options_controls_enabled" };
81 m_Root =
g_Game.GetWorkspace().CreateWidgets( GetLayoutName(), parent );
86 m_DetailsBodyDefault =
m_DetailsRoot.FindAnyWidget(
"settings_details_body");
87 m_DetailsBodyConnectivity =
m_DetailsRoot.FindAnyWidget(
"settings_details_body_connectivity");
88 m_DetailsLabel = TextWidget.Cast(
m_DetailsRoot.FindAnyWidget(
"details_label" ) );
89 m_DetailsText = RichTextWidget.Cast(
m_DetailsRoot.FindAnyWidget(
"details_content" ) );
90 m_Keybindings = GridSpacerWidget.Cast(
m_Root.FindAnyWidget(
"keyboard_settings_content" ) );
92 m_Keybindings.SetUserID( 777 );
94 SetOptions( options );
97 Widget mouse_InvertSettingOption =
m_Root.FindAnyWidget(
"mouse_invert_setting_option" );
98 Widget mouse_VSensitivitySettingOption =
m_Root.FindAnyWidget(
"mouse_vsensitivity_setting_option" );
99 Widget mouse_HSensitivitySettingOption =
m_Root.FindAnyWidget(
"mouse_hsensitivity_setting_option" );
100 Widget mouse_AimMod_VSensitivitySettingOption =
m_Root.FindAnyWidget(
"mouse_aimmod_vsensitivity_setting_option" );
101 Widget mouse_AimMod_HSensitivitySettingOption =
m_Root.FindAnyWidget(
"mouse_aimmod_hsensitivity_setting_option" );
103 mouse_InvertSettingOption.SetUserID(
OptionAccessType.AT_OPTIONS_MOUSE_YAXIS_INVERTED );
104 mouse_VSensitivitySettingOption.SetUserID(
OptionAccessType.AT_OPTIONS_MOUSE_YAXIS );
105 mouse_HSensitivitySettingOption.SetUserID(
OptionAccessType.AT_OPTIONS_MOUSE_XAXIS );
106 mouse_AimMod_VSensitivitySettingOption.SetUserID(
OptionAccessType.AT_OPTIONS_MOUSE_YAXIS_AIM_MOD );
107 mouse_AimMod_HSensitivitySettingOption.SetUserID(
OptionAccessType.AT_OPTIONS_MOUSE_XAXIS_AIM_MOD );
109 m_Mouse_InvertSelector =
new OptionSelectorMultistate(mouse_InvertSettingOption, m_Mouse_InvertOption.GetIndex(),
this,
false, opt );
111 m_Mouse_VSensitivitySelector =
new OptionSelectorSlider(mouse_VSensitivitySettingOption, m_Mouse_VSensitivityOption.ReadValue(),
this,
false, m_Mouse_VSensitivityOption.GetMin(), m_Mouse_VSensitivityOption.GetMax(),
true);
112 m_Mouse_VSensitivitySelector.SetStep(SLIDER_STEP);
114 m_Mouse_HSensitivitySelector =
new OptionSelectorSlider(mouse_HSensitivitySettingOption, m_Mouse_HSensitivityOption.ReadValue(),
this,
false, m_Mouse_HSensitivityOption.GetMin(), m_Mouse_HSensitivityOption.GetMax(),
true);
115 m_Mouse_HSensitivitySelector.SetStep(SLIDER_STEP);
117 m_Mouse_AimMod_VSensitivitySelector =
new OptionSelectorSlider(mouse_AimMod_VSensitivitySettingOption, m_Mouse_AimMod_VSensitivityOption.ReadValue(),
this,
false, m_Mouse_AimMod_VSensitivityOption.GetMin(), m_Mouse_AimMod_VSensitivityOption.GetMax(),
true);
118 m_Mouse_AimMod_VSensitivitySelector.SetStep(SLIDER_STEP);
120 m_Mouse_AimMod_HSensitivitySelector =
new OptionSelectorSlider(mouse_AimMod_HSensitivitySettingOption, m_Mouse_AimMod_HSensitivityOption.ReadValue(),
this,
false, m_Mouse_AimMod_HSensitivityOption.GetMin(), m_Mouse_AimMod_HSensitivityOption.GetMax(),
true);
121 m_Mouse_AimMod_HSensitivitySelector.SetStep(SLIDER_STEP);
123 m_Mouse_InvertSelector.m_OptionChanged.Insert( UpdateMouseInvertView );
124 m_Mouse_VSensitivitySelector.m_OptionChanged.Insert( UpdateMouseVSensitivity );
125 m_Mouse_HSensitivitySelector.m_OptionChanged.Insert( UpdateMouseHSensitivity );
126 m_Mouse_AimMod_VSensitivitySelector.m_OptionChanged.Insert( UpdateMouseAimModVSensitivity );
127 m_Mouse_AimMod_HSensitivitySelector.m_OptionChanged.Insert( UpdateMouseAimModHSensitivity );
130 #ifdef PLATFORM_CONSOLE
131 m_MaKOptionAvailable =
g_Game.GetGameState() != DayZGameState.IN_GAME ||
g_Game.GetWorld().IsMouseAndKeyboardEnabledOnServer();
132 m_ConsoleControllerSensitivityWidget =
m_Root.FindAnyWidget(
"controller_settings_root" );
133 m_ConsoleMouseSensitivityWidget =
m_Root.FindAnyWidget(
"mouse_settings_root" );
135 Widget keyboardSettingOption =
m_Root.FindAnyWidget(
"keyboard_setting_option" );
136 Widget aimHelperSettingOption =
m_Root.FindAnyWidget(
"aimhelper_setting_option" );
138 Widget controllerLS_VSensitivitySettingOption =
m_Root.FindAnyWidget(
"controller_ls_vsensitivity_setting_option");
139 Widget controllerLS_HSensitivitySettingOption =
m_Root.FindAnyWidget(
"controller_ls_hsensitivity_setting_option");
140 Widget controllerLS_VehicleMod_HSensitivitySettingOption =
m_Root.FindAnyWidget(
"controller_ls_vehicle_sensitivity_setting_option");
141 Widget controllerRS_InvertSettingOption =
m_Root.FindAnyWidget(
"controller_rs_invert_setting_option");
142 Widget controllerRS_VSensitivitySettingOption =
m_Root.FindAnyWidget(
"controller_rs_vsensitivity_setting_option");
143 Widget controllerRS_HSensitivitySettingOption =
m_Root.FindAnyWidget(
"controller_rs_hsensitivity_setting_option");
144 Widget controllerRS_CurvatureSettingOption =
m_Root.FindAnyWidget(
"controller_rs_curvature_setting_option");
145 Widget controllerRS_AimMod_VSensitivitySettingOption =
m_Root.FindAnyWidget(
"controller_rs_aimmod_vsensitivity_setting_option");
146 Widget controllerRS_AimMod_HSensitivitySettingOption =
m_Root.FindAnyWidget(
"controller_rs_aimmod_hsensitivity_setting_option");
147 Widget controllerRS_AimMod_CurvatureSettingOption =
m_Root.FindAnyWidget(
"controller_rs_aimmod_curvature_setting_option");
148 Widget controllerLS_DeadZoneOption =
m_Root.FindAnyWidget(
"controller_ls_deadzone_setting_option");
149 Widget controllerRS_DeadZoneOption =
m_Root.FindAnyWidget(
"controller_rs_deadzone_setting_option");
151 keyboardSettingOption.SetUserID(
OptionAccessType.AT_OPTIONS_MOUSE_AND_KEYBOARD );
154 controllerLS_VSensitivitySettingOption.SetUserID(
OptionAccessType.AT_OPTIONS_CONTROLLER_LS_YAXIS );
155 controllerLS_HSensitivitySettingOption.SetUserID(
OptionAccessType.AT_OPTIONS_CONTROLLER_LS_XAXIS );
156 controllerLS_VehicleMod_HSensitivitySettingOption.SetUserID(
OptionAccessType.AT_OPTIONS_CONTROLLER_LS_XAXIS_VEHICLE_MOD );
157 controllerRS_InvertSettingOption.SetUserID(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_YAXIS_INVERTED );
158 controllerRS_VSensitivitySettingOption.SetUserID(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_YAXIS );
159 controllerRS_HSensitivitySettingOption.SetUserID(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_XAXIS );
160 controllerRS_CurvatureSettingOption.SetUserID(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_CURVATURE );
161 controllerRS_AimMod_VSensitivitySettingOption.SetUserID(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_YAXIS_AIM_MOD );
162 controllerRS_AimMod_HSensitivitySettingOption.SetUserID(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_XAXIS_AIM_MOD );
163 controllerRS_AimMod_CurvatureSettingOption.SetUserID(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_CURVATURE_AIM_MOD );
164 controllerLS_DeadZoneOption.SetUserID(
OptionAccessType.AT_OPTIONS_CONTROLLER_LS_DEADZONE );
165 controllerRS_DeadZoneOption.SetUserID(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_DEADZONE );
167 m_KeyboardSelector =
new OptionSelectorMultistate( keyboardSettingOption, m_KeyboardOption.GetIndex(),
this, !m_MaKOptionAvailable, opt );
168 m_AimHelperSelector =
new OptionSelectorMultistate( aimHelperSettingOption, m_AimHelperOption.GetIndex(),
this,
false, opt );
170 m_ControllerLS_VSensitivitySelector =
new OptionSelectorSlider(controllerLS_VSensitivitySettingOption, m_ControllerLS_VSensitivityOption.ReadValue(),
this,
false, m_ControllerLS_VSensitivityOption.GetMin(), m_ControllerLS_VSensitivityOption.GetMax(),
true);
171 m_ControllerLS_VSensitivitySelector.SetStep(SLIDER_STEP);
173 m_ControllerLS_HSensitivitySelector =
new OptionSelectorSlider(controllerLS_HSensitivitySettingOption, m_ControllerLS_HSensitivityOption.ReadValue(),
this,
false, m_ControllerLS_HSensitivityOption.GetMin(), m_ControllerLS_HSensitivityOption.GetMax(),
true);
174 m_ControllerLS_HSensitivitySelector.SetStep(SLIDER_STEP);
176 m_ControllerLS_VehicleMod_HSensitivitySelector =
new OptionSelectorSlider(controllerLS_VehicleMod_HSensitivitySettingOption, m_ControllerLS_VehicleMod_HSensitivityOption.ReadValue(),
this,
false, m_ControllerLS_VehicleMod_HSensitivityOption.GetMin(), m_ControllerLS_VehicleMod_HSensitivityOption.GetMax(),
true);
177 m_ControllerLS_VehicleMod_HSensitivitySelector.SetStep(SLIDER_STEP);
179 m_ControllerRS_InvertSelector =
new OptionSelectorMultistate(controllerRS_InvertSettingOption, m_ControllerRS_InvertOption.GetIndex(),
this,
false, opt);
181 m_ControllerRS_VSensitivitySelector =
new OptionSelectorSlider(controllerRS_VSensitivitySettingOption, m_ControllerRS_VSensitivityOption.ReadValue(),
this,
false, m_ControllerRS_VSensitivityOption.GetMin(), m_ControllerRS_VSensitivityOption.GetMax(),
true);
182 m_ControllerRS_VSensitivitySelector.SetStep(SLIDER_STEP);
184 m_ControllerRS_HSensitivitySelector =
new OptionSelectorSlider(controllerRS_HSensitivitySettingOption, m_ControllerRS_HSensitivityOption.ReadValue(),
this,
false, m_ControllerRS_HSensitivityOption.GetMin(), m_ControllerRS_HSensitivityOption.GetMax(),
true);
185 m_ControllerRS_HSensitivitySelector.SetStep(SLIDER_STEP);
187 m_ControllerRS_CurvatureSelector =
new OptionSelectorSlider(controllerRS_CurvatureSettingOption, m_ControllerRS_CurvatureOption.ReadValue(),
this,
false, m_ControllerRS_CurvatureOption.GetMin(), m_ControllerRS_CurvatureOption.GetMax(),
true);
188 m_ControllerRS_CurvatureSelector.SetStep(SLIDER_STEP);
190 m_ControllerRS_AimMod_VSensitivitySelector =
new OptionSelectorSlider(controllerRS_AimMod_VSensitivitySettingOption, m_ControllerRS_AimMod_VSensitivityOption.ReadValue(),
this,
false, m_ControllerRS_AimMod_VSensitivityOption.GetMin(), m_ControllerRS_AimMod_VSensitivityOption.GetMax(),
true);
191 m_ControllerRS_AimMod_VSensitivitySelector.SetStep(SLIDER_STEP);
193 m_ControllerRS_AimMod_HSensitivitySelector =
new OptionSelectorSlider(controllerRS_AimMod_HSensitivitySettingOption, m_ControllerRS_AimMod_HSensitivityOption.ReadValue(),
this,
false, m_ControllerRS_AimMod_HSensitivityOption.GetMin(), m_ControllerRS_AimMod_HSensitivityOption.GetMax(),
true);
194 m_ControllerRS_AimMod_HSensitivitySelector.SetStep(SLIDER_STEP);
196 m_ControllerRS_AimMod_CurvatureSelector =
new OptionSelectorSlider(controllerRS_AimMod_CurvatureSettingOption, m_ControllerRS_AimMod_CurvatureOption.ReadValue(),
this,
false, m_ControllerRS_AimMod_CurvatureOption.GetMin(), m_ControllerRS_AimMod_CurvatureOption.GetMax(),
true);
197 m_ControllerRS_AimMod_CurvatureSelector.SetStep(SLIDER_STEP);
199 m_ControllerLS_DeadZoneSelector =
new OptionSelectorSlider(controllerLS_DeadZoneOption, m_ControllerLS_DeadZoneOption.ReadValue(),
this,
false, m_ControllerLS_DeadZoneOption.GetMin(), m_ControllerLS_DeadZoneOption.GetMax(),
true);
200 m_ControllerLS_DeadZoneSelector.SetStep(SLIDER_STEP);
202 m_ControllerRS_DeadZoneSelector =
new OptionSelectorSlider(controllerRS_DeadZoneOption, m_ControllerRS_DeadZoneOption.ReadValue(),
this,
false, m_ControllerRS_DeadZoneOption.GetMin(), m_ControllerRS_DeadZoneOption.GetMax(),
true);
203 m_ControllerRS_DeadZoneSelector.SetStep(SLIDER_STEP);
205 m_KeyboardSelector.m_OptionChanged.Insert( UpdateKeyboard );
206 m_AimHelperSelector.m_OptionChanged.Insert( UpdateAimHelper );
208 m_ControllerLS_VSensitivitySelector.m_OptionChanged.Insert( UpdateControllerLS_VSensitivity );
209 m_ControllerLS_HSensitivitySelector.m_OptionChanged.Insert( UpdateControllerLS_HSensitivity );
210 m_ControllerLS_VehicleMod_HSensitivitySelector.m_OptionChanged.Insert( UpdateControllerLS_VehicleMod_HSensitivity );
211 m_ControllerRS_InvertSelector.m_OptionChanged.Insert( UpdateControllerRS_InvertView );
212 m_ControllerRS_VSensitivitySelector.m_OptionChanged.Insert( UpdateControllerRS_VSensitivity );
213 m_ControllerRS_HSensitivitySelector.m_OptionChanged.Insert( UpdateControllerRS_HSensitivity );
214 m_ControllerRS_CurvatureSelector.m_OptionChanged.Insert( UpdateControllerRS_Curvature );
215 m_ControllerRS_AimMod_VSensitivitySelector.m_OptionChanged.Insert( UpdateControllerRS_AimMod_VSensitivity );
216 m_ControllerRS_AimMod_HSensitivitySelector.m_OptionChanged.Insert( UpdateControllerRS_AimMod_HSensitivity );
217 m_ControllerRS_AimMod_CurvatureSelector.m_OptionChanged.Insert( UpdateControllerRS_AimMod_Curvature );
218 m_ControllerLS_DeadZoneSelector.m_OptionChanged.Insert( UpdateControllerLS_Deadzone );
219 m_ControllerRS_DeadZoneSelector.m_OptionChanged.Insert( UpdateControllerRS_Deadzone );
221 ShowConsoleSensitivityOptions(m_KeyboardOption.GetIndex());
223 bool MaKState = m_KeyboardSelector.IsEnabled() &&
g_Game.GetInput().IsEnabledMouseAndKeyboardEvenOnServer();
230 m_Root.FindAnyWidget(
"controls_settings_scroll" ).GetScreenSize(
x,
y );
231 m_Root.FindAnyWidget(
"controls_settings_root" ).GetScreenSize(
x, y2 );
233 m_Root.FindAnyWidget(
"controls_settings_scroll" ).SetAlpha( f );
235 m_Root.SetHandler(
this );
238 string GetLayoutName()
240 #ifdef PLATFORM_MSSTORE
241 return "gui/layouts/new_ui/options/msstore/controls_tab.layout";
243 #ifdef PLATFORM_CONSOLE
244 return "gui/layouts/new_ui/options/xbox/controls_tab.layout";
246 return "gui/layouts/new_ui/options/pc/controls_tab.layout";
251 void EnterKeybindingMenu()
259 #ifdef PLATFORM_MSSTORE
260 m_Mouse_InvertSelector.Focus();
262 #ifdef PLATFORM_CONSOLE
263 if (m_KeyboardSelector && m_KeyboardSelector.IsSelectorEnabled())
265 m_KeyboardSelector.Focus();
267 else if (m_AimHelperSelector)
269 m_AimHelperSelector.Focus();
277 if ( w && w.IsInherited( ScrollWidget ) )
282 m_Menu.ColorHighlight( w );
287 override bool OnMouseLeave( Widget w, Widget enterW,
int x,
int y )
289 if ( w && w.IsInherited( ScrollWidget ) )
302 #ifndef PLATFORM_XBOX
304 if(w == m_Keybindings)
306 EnterKeybindingMenu();
315 override bool OnFocus( Widget w,
int x,
int y )
317 OptionsMenu menu = OptionsMenu.Cast(
g_Game.GetUIManager().GetMenu() );
320 menu.OnFocus( w,
x,
y );
325 if (TextMapUpdateWidget(w.GetUserID()))
330 if( w.IsInherited( SliderWidget ) )
336 if( w.IsInherited( EditBoxWidget ) )
353 return ( w != null );
360 ColorWhite( w, null );
371 bool TextMapUpdateWidget(
int key)
373 bool connectivityInfoShown = key ==
OptionIDsScript.OPTION_CONNECTIVITY_INFO;
374 Param2<string, string> p;
375 Param tmp = m_TextMap.Get(key);
377 m_DetailsBodyDefault.Show(!connectivityInfoShown);
378 m_DetailsBodyConnectivity.Show(connectivityInfoShown);
380 if (Class.CastTo(p,tmp))
383 m_DetailsText.Show(
true);
384 m_DetailsLabel.SetText(p.param1);
385 m_DetailsText.SetText(p.param2);
387 m_DetailsText.Update();
388 m_DetailsLabel.Update();
390 m_DetailsBodyConnectivity.Update();
398 #ifdef PLATFORM_MSSTORE
399 return IsConsoleOptionChanged();
401 #ifdef PLATFORM_CONSOLE
402 if (m_MaKOptionAvailable)
404 return (IsConsoleOptionChanged() || (m_KeyboardSelector.IsEnabled() && m_KeyboardOption.GetIndex() == 0) || (!m_KeyboardSelector.IsEnabled() && m_KeyboardOption.GetIndex() == 1));
408 return IsConsoleOptionChanged();
411 return IsOptionChanged();
416 #ifdef PLATFORM_CONSOLE
417 bool IsConsoleOptionChanged()
419 bool consoleOptionChanged = (m_ControllerLS_VSensitivitySelector.Changed() || m_ControllerLS_HSensitivitySelector.Changed() || m_ControllerLS_VehicleMod_HSensitivitySelector.Changed() || m_ControllerRS_VSensitivitySelector.Changed() || m_ControllerRS_HSensitivitySelector.Changed() || m_ControllerRS_CurvatureSelector.Changed() || m_ControllerRS_AimMod_VSensitivitySelector.Changed());
420 if (m_MaKOptionAvailable)
422 return (IsOptionChanged() || consoleOptionChanged);
426 return consoleOptionChanged;
431 bool IsOptionChanged()
433 return (m_Mouse_VSensitivitySelector.Changed() || m_Mouse_HSensitivitySelector.Changed() || m_Mouse_AimMod_VSensitivitySelector.Changed() || m_Mouse_AimMod_HSensitivitySelector.Changed());
438 #ifdef PLATFORM_CONSOLE
439 bool changed =
false;
440 #ifndef PLATFORM_MSSTORE
441 if (m_MaKOptionAvailable)
444 if ((m_KeyboardSelector.IsEnabled() && m_KeyboardOption.GetIndex() == 0) || (!m_KeyboardSelector.IsEnabled() && m_KeyboardOption.GetIndex() == 1))
446 m_KeyboardOption.Switch();
453 #ifndef PLATFORM_MSSTORE
454 g_Game.GetUIManager().ShowUICursor( m_MaKOptionAvailable && m_KeyboardOption.GetIndex() );
456 g_Game.UpdateInputDeviceDisconnectWarning();
460 m_ControllerLS_VSensitivitySelector.Refresh();
461 m_ControllerLS_HSensitivitySelector.Refresh();
462 m_ControllerLS_VehicleMod_HSensitivitySelector.Refresh();
463 m_ControllerRS_VSensitivitySelector.Refresh();
464 m_ControllerRS_HSensitivitySelector.Refresh();
465 m_ControllerRS_CurvatureSelector.Refresh();
466 m_ControllerRS_AimMod_VSensitivitySelector.Refresh();
467 m_ControllerRS_AimMod_HSensitivitySelector.Refresh();
468 m_ControllerRS_AimMod_CurvatureSelector.Refresh();
469 m_ControllerLS_DeadZoneSelector.Refresh();
470 m_ControllerRS_DeadZoneSelector.Refresh();
472 if (m_MaKOptionAvailable)
475 m_Mouse_VSensitivitySelector.Refresh();
476 m_Mouse_HSensitivitySelector.Refresh();
477 m_Mouse_AimMod_VSensitivitySelector.Refresh();
478 m_Mouse_AimMod_HSensitivitySelector.Refresh();
479 #ifdef PLATFORM_CONSOLE
486 if(m_Mouse_InvertSelector)
487 m_Mouse_InvertSelector.SetValue(m_Mouse_InvertOption.GetIndex(),
true);
489 if(m_Mouse_VSensitivitySelector)
491 m_Mouse_VSensitivitySelector.SetValue(m_Mouse_VSensitivityOption.ReadValue(),
true);
492 m_Mouse_VSensitivitySelector.SetValueText();
495 if(m_Mouse_HSensitivitySelector)
497 m_Mouse_HSensitivitySelector.SetValue(m_Mouse_HSensitivityOption.ReadValue(),
true);
498 m_Mouse_HSensitivitySelector.SetValueText();
501 if(m_Mouse_AimMod_VSensitivitySelector)
503 m_Mouse_AimMod_VSensitivitySelector.SetValue(m_Mouse_AimMod_VSensitivityOption.ReadValue(),
true);
504 m_Mouse_AimMod_VSensitivitySelector.SetValueText();
507 if(m_Mouse_AimMod_HSensitivitySelector)
509 m_Mouse_AimMod_HSensitivitySelector.SetValue(m_Mouse_AimMod_HSensitivityOption.ReadValue(),
true);
510 m_Mouse_AimMod_HSensitivitySelector.SetValueText();
513 #ifdef PLATFORM_CONSOLE
514 if(m_KeyboardSelector)
515 m_KeyboardSelector.SetValue(m_KeyboardOption.GetIndex(),
true);
516 if(m_AimHelperSelector)
517 m_AimHelperSelector.SetValue(m_AimHelperOption.GetIndex(),
true);
519 if(m_ControllerLS_VSensitivitySelector)
521 m_ControllerLS_VSensitivitySelector.SetValue(m_ControllerLS_VSensitivityOption.ReadValue(),
true);
522 m_ControllerLS_VSensitivitySelector.SetValueText();
525 if(m_ControllerLS_HSensitivitySelector)
527 m_ControllerLS_HSensitivitySelector.SetValue(m_ControllerLS_HSensitivityOption.ReadValue(),
true);
528 m_ControllerLS_HSensitivitySelector.SetValueText();
531 if(m_ControllerLS_VehicleMod_HSensitivitySelector)
533 m_ControllerLS_VehicleMod_HSensitivitySelector.SetValue(m_ControllerLS_VehicleMod_HSensitivityOption.ReadValue(),
true);
534 m_ControllerLS_VehicleMod_HSensitivitySelector.SetValueText();
537 if(m_ControllerRS_InvertSelector)
538 m_ControllerRS_InvertSelector.SetValue(m_ControllerRS_InvertOption.GetIndex(),
true);
540 if(m_ControllerRS_VSensitivitySelector)
542 m_ControllerRS_VSensitivitySelector.SetValue(m_ControllerRS_VSensitivityOption.ReadValue(),
true);
543 m_ControllerRS_VSensitivitySelector.SetValueText();
546 if(m_ControllerRS_HSensitivitySelector)
548 m_ControllerRS_HSensitivitySelector.SetValue(m_ControllerRS_HSensitivityOption.ReadValue(),
true);
549 m_ControllerRS_HSensitivitySelector.SetValueText();
552 if(m_ControllerRS_CurvatureSelector)
554 m_ControllerRS_CurvatureSelector.SetValue(m_ControllerRS_CurvatureOption.ReadValue(),
true);
555 m_ControllerRS_CurvatureSelector.SetValueText();
558 if(m_ControllerRS_AimMod_VSensitivitySelector)
560 m_ControllerRS_AimMod_VSensitivitySelector.SetValue(m_ControllerRS_AimMod_VSensitivityOption.ReadValue(),
true);
561 m_ControllerRS_AimMod_VSensitivitySelector.SetValueText();
564 if(m_ControllerRS_AimMod_HSensitivitySelector)
566 m_ControllerRS_AimMod_HSensitivitySelector.SetValue(m_ControllerRS_AimMod_HSensitivityOption.ReadValue(),
true);
567 m_ControllerRS_AimMod_HSensitivitySelector.SetValueText();
570 if(m_ControllerRS_AimMod_CurvatureSelector)
572 m_ControllerRS_AimMod_CurvatureSelector.SetValue(m_ControllerRS_AimMod_CurvatureOption.ReadValue(),
true);
573 m_ControllerRS_AimMod_CurvatureSelector.SetValueText();
576 if(m_ControllerLS_DeadZoneSelector)
578 m_ControllerLS_DeadZoneSelector.SetValue(m_ControllerLS_DeadZoneOption.ReadValue(),
true);
579 m_ControllerLS_DeadZoneSelector.SetValueText();
582 if(m_ControllerRS_DeadZoneSelector)
584 m_ControllerRS_DeadZoneSelector.SetValue(m_ControllerRS_DeadZoneOption.ReadValue(),
true);
585 m_ControllerRS_DeadZoneSelector.SetValueText();
592 if(m_Mouse_InvertSelector)
593 m_Mouse_InvertSelector.SetValue(m_Mouse_InvertOption.GetDefaultIndex(),
true);
595 if(m_Mouse_VSensitivitySelector)
597 m_Mouse_VSensitivitySelector.SetValue(m_Mouse_VSensitivityOption.GetDefault(),
true);
598 m_Mouse_VSensitivitySelector.SetValueText();
601 if(m_Mouse_HSensitivitySelector)
603 m_Mouse_HSensitivitySelector.SetValue(m_Mouse_HSensitivityOption.GetDefault(),
true);
604 m_Mouse_HSensitivitySelector.SetValueText();
607 if(m_Mouse_AimMod_VSensitivitySelector)
609 m_Mouse_AimMod_VSensitivitySelector.SetValue(m_Mouse_AimMod_VSensitivityOption.GetDefault(),
true);
610 m_Mouse_AimMod_VSensitivitySelector.SetValueText();
613 if(m_Mouse_AimMod_HSensitivitySelector)
615 m_Mouse_AimMod_HSensitivitySelector.SetValue(m_Mouse_AimMod_HSensitivityOption.GetDefault(),
true);
616 m_Mouse_AimMod_HSensitivitySelector.SetValueText();
619 #ifdef PLATFORM_CONSOLE
620 if(m_KeyboardSelector)
621 m_KeyboardSelector.SetValue(m_KeyboardOption.GetDefaultIndex(),
true);
622 if(m_AimHelperSelector)
623 m_AimHelperSelector.SetValue(m_AimHelperOption.GetDefaultIndex(),
true);
625 if(m_ControllerLS_VSensitivitySelector)
627 m_ControllerLS_VSensitivitySelector.SetValue(m_ControllerLS_VSensitivityOption.GetDefault(),
true);
628 m_ControllerLS_VSensitivitySelector.SetValueText();
631 if(m_ControllerLS_HSensitivitySelector)
633 m_ControllerLS_HSensitivitySelector.SetValue(m_ControllerLS_HSensitivityOption.GetDefault(),
true);
634 m_ControllerLS_HSensitivitySelector.SetValueText();
637 if(m_ControllerLS_VehicleMod_HSensitivitySelector)
639 m_ControllerLS_VehicleMod_HSensitivitySelector.SetValue(m_ControllerLS_VehicleMod_HSensitivityOption.GetDefault(),
true);
640 m_ControllerLS_VehicleMod_HSensitivitySelector.SetValueText();
643 if(m_ControllerRS_InvertSelector)
644 m_ControllerRS_InvertSelector.SetValue(m_ControllerRS_InvertOption.GetDefaultIndex(),
true);
646 if(m_ControllerRS_VSensitivitySelector)
648 m_ControllerRS_VSensitivitySelector.SetValue(m_ControllerRS_VSensitivityOption.GetDefault(),
true);
649 m_ControllerRS_VSensitivitySelector.SetValueText();
652 if(m_ControllerRS_HSensitivitySelector)
654 m_ControllerRS_HSensitivitySelector.SetValue(m_ControllerRS_HSensitivityOption.GetDefault(),
true);
655 m_ControllerRS_HSensitivitySelector.SetValueText();
658 if(m_ControllerRS_CurvatureSelector)
660 m_ControllerRS_CurvatureSelector.SetValue(m_ControllerRS_CurvatureOption.GetDefault(),
true);
661 m_ControllerRS_CurvatureSelector.SetValueText();
664 if(m_ControllerRS_AimMod_VSensitivitySelector)
666 m_ControllerRS_AimMod_VSensitivitySelector.SetValue(m_ControllerRS_AimMod_VSensitivityOption.GetDefault(),
true);
667 m_ControllerRS_AimMod_VSensitivitySelector.SetValueText();
670 if(m_ControllerRS_AimMod_HSensitivitySelector)
672 m_ControllerRS_AimMod_HSensitivitySelector.SetValue(m_ControllerRS_AimMod_HSensitivityOption.GetDefault(),
true);
673 m_ControllerRS_AimMod_HSensitivitySelector.SetValueText();
676 if(m_ControllerRS_AimMod_CurvatureSelector)
678 m_ControllerRS_AimMod_CurvatureSelector.SetValue(m_ControllerRS_AimMod_CurvatureOption.GetDefault(),
true);
679 m_ControllerRS_AimMod_CurvatureSelector.SetValueText();
682 if(m_ControllerLS_DeadZoneSelector)
684 m_ControllerLS_DeadZoneSelector.SetValue(m_ControllerLS_DeadZoneOption.GetDefault(),
true);
685 m_ControllerLS_DeadZoneSelector.SetValueText();
688 if(m_ControllerRS_DeadZoneSelector)
690 m_ControllerRS_DeadZoneSelector.SetValue(m_ControllerRS_DeadZoneOption.GetDefault(),
true);
691 m_ControllerRS_DeadZoneSelector.SetValueText();
699#ifdef PLATFORM_CONSOLE
700 void ShowConsoleSensitivityOptions(
int index)
702 #ifndef PLATFORM_MSSTORE
703 m_ConsoleMouseSensitivityWidget.Show(index == 1 && m_MaKOptionAvailable);
707 void UpdateKeyboard(
int index )
710 ShowConsoleSensitivityOptions(index);
715 void UpdateAimHelper(
int index )
717 if ( m_AimHelperOption.GetIndex() != index )
719 m_AimHelperOption.Switch();
724 void UpdateControllerLS_VSensitivity(
float value )
726 m_ControllerLS_VSensitivityOption.WriteValue( value );
730 void UpdateControllerLS_HSensitivity(
float value )
732 m_ControllerLS_HSensitivityOption.WriteValue( value );
736 void UpdateControllerLS_VehicleMod_HSensitivity(
float value )
738 m_ControllerLS_VehicleMod_HSensitivityOption.WriteValue( value );
742 void UpdateControllerRS_InvertView(
int index )
744 if ( m_ControllerRS_InvertOption.GetIndex() != index )
746 m_ControllerRS_InvertOption.Switch();
751 void UpdateControllerRS_VSensitivity(
float value )
753 m_ControllerRS_VSensitivityOption.WriteValue( value );
757 void UpdateControllerRS_HSensitivity(
float value )
759 m_ControllerRS_HSensitivityOption.WriteValue( value );
763 void UpdateControllerRS_Curvature(
float value )
765 m_ControllerRS_CurvatureOption.WriteValue( value );
769 void UpdateControllerLS_Deadzone(
float value )
771 m_ControllerLS_DeadZoneOption.WriteValue( value );
775 void UpdateControllerRS_Deadzone(
float value )
777 m_ControllerRS_DeadZoneOption.WriteValue( value );
781 void UpdateControllerRS_AimMod_VSensitivity(
float value )
783 m_ControllerRS_AimMod_VSensitivityOption.WriteValue( value );
787 void UpdateControllerRS_AimMod_HSensitivity(
float value )
789 m_ControllerRS_AimMod_HSensitivityOption.WriteValue( value );
793 void UpdateControllerRS_AimMod_Curvature(
float value )
795 m_ControllerRS_AimMod_CurvatureOption.WriteValue( value );
800 void UpdateMouseInvertView(
int index )
802 if ( m_Mouse_InvertOption.GetIndex() != index )
804 m_Mouse_InvertOption.Switch();
809 void UpdateMouseVSensitivity(
float value )
811 m_Mouse_VSensitivityOption.WriteValue( value );
815 void UpdateMouseHSensitivity(
float value )
817 m_Mouse_HSensitivityOption.WriteValue( value );
821 void UpdateMouseAimModVSensitivity(
float value )
823 m_Mouse_AimMod_VSensitivityOption.WriteValue( value );
827 void UpdateMouseAimModHSensitivity(
float value )
829 m_Mouse_AimMod_HSensitivityOption.WriteValue( value );
838 void SetOptions( GameOptions options )
843 m_Mouse_InvertOption = SwitchOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_MOUSE_YAXIS_INVERTED ) );
844 m_Mouse_VSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_MOUSE_YAXIS ) );
845 m_Mouse_HSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_MOUSE_XAXIS ) );
846 m_Mouse_AimMod_VSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_MOUSE_YAXIS_AIM_MOD ) );
847 m_Mouse_AimMod_HSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_MOUSE_XAXIS_AIM_MOD ) );
850 #ifdef PLATFORM_CONSOLE
851 m_KeyboardOption = SwitchOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_MOUSE_AND_KEYBOARD ) );
852 m_AimHelperOption = SwitchOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_AIM_HELPER ) );
854 m_ControllerLS_VSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_CONTROLLER_LS_YAXIS ) );
855 m_ControllerLS_HSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_CONTROLLER_LS_XAXIS ) );
856 m_ControllerLS_VehicleMod_HSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_CONTROLLER_LS_XAXIS_VEHICLE_MOD ) );
857 m_ControllerRS_InvertOption = SwitchOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_YAXIS_INVERTED ) );
858 m_ControllerRS_VSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_YAXIS ) );
859 m_ControllerRS_HSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_XAXIS ) );
860 m_ControllerRS_CurvatureOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_CURVATURE ) );
861 m_ControllerRS_AimMod_VSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_YAXIS_AIM_MOD ) );
862 m_ControllerRS_AimMod_HSensitivityOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_XAXIS_AIM_MOD ) );
863 m_ControllerRS_AimMod_CurvatureOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_CURVATURE_AIM_MOD ) );
864 m_ControllerLS_DeadZoneOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_CONTROLLER_LS_DEADZONE ) );
865 m_ControllerRS_DeadZoneOption = NumericOptionsAccess.Cast( m_Options.GetOptionByType(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_DEADZONE ) );
871 void ToggleDependentOptions(
int mode,
bool state)
875 void InitDependentOptionsVisibility()
882 m_TextMap.Insert(
OptionAccessType.AT_OPTIONS_MOUSE_YAXIS_INVERTED,
new Param2<string, string>(
"#STR_Invert_Vertical_tip_header",
"#STR_Invert_Vertical_tip" ) );
883 m_TextMap.Insert(
OptionAccessType.AT_OPTIONS_MOUSE_YAXIS,
new Param2<string, string>(
"#STR_Camera_V_Sensitivity_tip_header",
"#STR_Camera_V_Sensitivity_tip" ) );
884 m_TextMap.Insert(
OptionAccessType.AT_OPTIONS_MOUSE_XAXIS,
new Param2<string, string>(
"#STR_Camera_H_Sensitivity_tip_header",
"#STR_Camera_H_Sensitivity_tip" ) );
885 m_TextMap.Insert(
OptionAccessType.AT_OPTIONS_MOUSE_YAXIS_AIM_MOD,
new Param2<string, string>(
"#STR_Aiming_V_Sensitivity_tip_header",
"#STR_Aiming_V_Sensitivity_tip" ) );
886 m_TextMap.Insert(
OptionAccessType.AT_OPTIONS_MOUSE_XAXIS_AIM_MOD,
new Param2<string, string>(
"#STR_Aiming_H_Sensitivity_tip_header",
"#STR_Aiming_H_Sensitivity_tip" ) );
888 #ifdef PLATFORM_CONSOLE
889 m_TextMap.Insert(
OptionAccessType.AT_OPTIONS_MOUSE_AND_KEYBOARD,
new Param2<string, string>(
"#xbox_options_controls_mandk_contr",
"#xbox_options_controls_mandk_contr_desc" ) );
890 m_TextMap.Insert(
OptionAccessType.AT_OPTIONS_AIM_HELPER,
new Param2<string, string>(
"#ps4_options_controls_aim_helper_contr",
"#ps4_options_controls_aim_helper_contr_desc" ) );
892 m_TextMap.Insert(
OptionAccessType.AT_OPTIONS_CONTROLLER_LS_YAXIS,
new Param2<string, string>(
"#STR_Movement_V_Sensitivity_tip_header",
"#STR_Movement_V_Sensitivity_tip" ) );
893 m_TextMap.Insert(
OptionAccessType.AT_OPTIONS_CONTROLLER_LS_XAXIS,
new Param2<string, string>(
"#STR_Movement_H_Sensitivity_tip_header",
"#STR_Movement_H_Sensitivity_tip" ) );
894 m_TextMap.Insert(
OptionAccessType.AT_OPTIONS_CONTROLLER_LS_XAXIS_VEHICLE_MOD,
new Param2<string, string>(
"#STR_Movement_Vehicle_Sensitivity_tip_header",
"#STR_Movement_Vehicle_Sensitivity_tip" ) );
895 m_TextMap.Insert(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_YAXIS_INVERTED,
new Param2<string, string>(
"#STR_Invert_Vertical_tip_header",
"#STR_Invert_Vertical_tip" ) );
896 m_TextMap.Insert(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_YAXIS,
new Param2<string, string>(
"#STR_Camera_V_Sensitivity_tip_header",
"#STR_Camera_V_Sensitivity_tip" ) );
897 m_TextMap.Insert(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_XAXIS,
new Param2<string, string>(
"#STR_Camera_H_Sensitivity_tip_header",
"#STR_Camera_H_Sensitivity_tip" ) );
898 m_TextMap.Insert(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_CURVATURE,
new Param2<string, string>(
"#STR_Camera_Curvature_tip_header",
"#STR_Camera_Curvature_tip" ) );
899 m_TextMap.Insert(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_YAXIS_AIM_MOD,
new Param2<string, string>(
"#STR_Aiming_V_Sensitivity_tip_header",
"#STR_Aiming_V_Sensitivity_tip" ) );
900 m_TextMap.Insert(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_XAXIS_AIM_MOD,
new Param2<string, string>(
"#STR_Aiming_H_Sensitivity_tip_header",
"#STR_Aiming_H_Sensitivity_tip" ) );
901 m_TextMap.Insert(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_CURVATURE_AIM_MOD,
new Param2<string, string>(
"#STR_Aiming_Curvature_tip_header",
"#STR_Camera_Curvature_tip" ) );
902 m_TextMap.Insert(
OptionAccessType.AT_OPTIONS_CONTROLLER_LS_DEADZONE,
new Param2<string, string>(
"#STR_Aiming_L_Deadzone_tip_header",
"#STR_Aiming_L_Deadzone_tip" ) );
903 m_TextMap.Insert(
OptionAccessType.AT_OPTIONS_CONTROLLER_RS_DEADZONE,
new Param2<string, string>(
"#STR_Aiming_R_Deadzone_tip_header",
"#STR_Aiming_R_Deadzone_tip" ) );
908 void ColorRed( Widget w )
912 if (Class.CastTo(button,w))
914 button.SetTextColor(
ARGB( 255, 255, 0, 0 ) );
915 button.SetAlpha( 0.9 );
919 void ColorWhite( Widget w, Widget enterW )
922 if (Class.CastTo(button,w))
924 button.SetTextColor(
ARGB( 255, 255, 255, 255 ) );
925 button.SetAlpha( 0.0 );
929 void SetActiveOption(OptionSelectorBase option)
931 m_ActiveOption = option;
934 OptionSelectorBase GetActiveOption()
936 return m_ActiveOption;
OptionIDsScript
Used for script-based game options. For anything C++ based, you would most likely use "Option Access ...
OptionAccessType
C++ OptionAccessType.
int ARGB(int a, int r, int g, int b)
ServerBrowserMenuNew m_Menu
override bool OnFocusLost(Widget w, int x, int y)
bool IsFocusable(Widget w)
override bool OnFocus(Widget w, int x, int y)
override bool OnMouseEnter(Widget w, int x, int y)
override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)