26 m_ElementModifier =
TextWidget.Cast(
m_Root.FindAnyWidget(
"modifier_label" ) );
27 m_PrimaryBindButton = ButtonWidget.Cast(
m_Root.FindAnyWidget(
"primary_bind" ) );
28 m_AlternativeBindButton = ButtonWidget.Cast(
m_Root.FindAnyWidget(
"alternative_bind" ) );
29 m_PrimaryClear =
m_Root.FindAnyWidget(
"primary_clear" );
30 m_AlternativeClear =
m_Root.FindAnyWidget(
"alternative_clear" );
33 m_ElementIndex = key_index;
41 return "gui/layouts/new_ui/options/keybindings_selectors/keybinding_option.layout";
68 int a, i, countbind = 0;
115 btnWidget.SetText(output);
117 btnWidget.SetText(
"");
124 m_IsAlternateEdited =
false;
126 m_CustomAlternateBind = null;
132 m_ElementModifier.SetText(
"#keybind_press" );
136 m_ElementModifier.SetText(
"#keybind_release" );
140 m_ElementModifier.SetText(
"#keybind_hold" );
144 m_ElementModifier.SetText(
"#keybind_holdbegin" );
148 m_ElementModifier.SetText(
"#keybind_click" );
152 m_ElementModifier.SetText(
"#keybind_doubletap" );
157 m_ElementModifier.SetText(
"" );
164 m_ElementName.SetText( option_text );
167 SetElementTitle(m_PrimaryBindButton, input, EUAINPUT_DEVICE_KEYBOARDMOUSE);
170 SetElementTitle(m_AlternativeBindButton, input, EUAINPUT_DEVICE_CONTROLLER);
176 if( custom_binds.Count() > 1 )
178 if( custom_binds.Get( 0 ) != 0 )
180 for(
int i = 1; i < custom_binds.Count(); i++ )
182 if( custom_binds.Get( i ) != 0 )
186 else if( custom_binds.Count() > 0 )
188 if( custom_binds.Get( 0 ) != 0 )
194 m_CustomAlternateBind = custom_binds;
195 m_IsAlternateEdited =
true;
196 m_AlternativeBindButton.SetText( output );
200 m_CustomBind = custom_binds;
202 m_PrimaryBindButton.SetText( output );
208 m_Container.StartEnteringKeybind( m_ElementIndex );
209 m_PrimaryBindButton.SetText(
"#layout_keybinding_new_keybind" );
219 m_Container.StartEnteringAlternateKeybind( m_ElementIndex );
220 m_AlternativeBindButton.SetText(
"#layout_keybinding_new_keybind" );
230 if( !m_Container.IsEnteringKeyBind() )
232 if( w == m_PrimaryBindButton )
234 m_EntryTimer.Run( 0.01,
this,
"StartEnteringKeybind" );
236 if( w == m_AlternativeBindButton )
238 m_EntryTimer.Run( 0.01,
this,
"StartEnteringAlternateKeybind" );
246 if( w == m_PrimaryClear )
250 m_PrimaryBindButton.SetText(
"" );
253 if( w == m_AlternativeClear )
255 m_IsAlternateEdited =
true;
257 m_AlternativeBindButton.SetText(
"" );
265 if( w == m_PrimaryBindButton || w == m_PrimaryClear )
267 m_PrimaryBindButton.SetColor(
ARGBF( 1, 1, 0, 0 ) );
268 m_PrimaryClear.Show(
true );
269 m_PrimaryClear.Update();
270 m_AlternativeClear.Show(
false );
273 else if( w == m_AlternativeBindButton || w == m_AlternativeClear )
275 m_AlternativeBindButton.SetColor(
ARGBF( 1, 1, 0, 0 ) );
276 m_PrimaryClear.Show(
false );
277 m_AlternativeClear.Show(
true );
278 m_AlternativeClear.Update();
283 m_PrimaryBindButton.SetColor(
ARGBF( 0, 0, 0, 0 ) );
284 m_AlternativeBindButton.SetColor(
ARGBF( 1, 0, 0, 0 ) );
285 m_PrimaryClear.Show(
false );
286 m_AlternativeClear.Show(
false );
293 if( w == m_PrimaryClear || w == m_PrimaryBindButton )
295 if( enterW != m_PrimaryClear && enterW != m_PrimaryBindButton )
297 m_PrimaryClear.Show(
false );
298 m_PrimaryBindButton.SetColor(
ARGBF( 1, 0, 0, 0 ) );
301 if( w == m_AlternativeClear || w == m_AlternativeBindButton )
303 if( enterW != m_AlternativeClear && enterW != m_AlternativeBindButton )
305 m_AlternativeClear.Show(
false );
306 m_AlternativeBindButton.SetColor(
ARGBF( 1, 0, 0, 0 ) );
proto native Input GetInput()
proto native WorkspaceWidget GetWorkspace()
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
void ClearAlternativeKeybind(int key_index)
void ClearKeybind(int key_index)
proto native CGame GetGame()
int ARGBF(float fa, float fr, float fg, float fb)
Converts <0.0, 1.0> ARGB into color.