public static MenuInputWidget Create( Game game, int x, int y, int width, int height, string text, Anchor horizontal, Anchor vertical, Font font, Font tildeFont, MenuInputValidator validator) { MenuInputWidget widget = new MenuInputWidget( game, font, tildeFont ); widget.HorizontalAnchor = horizontal; widget.VerticalAnchor = vertical; widget.XOffset = x; widget.YOffset = y; widget.DesiredMaxWidth = width; widget.DesiredMaxHeight = height; widget.chatInputText.Append( 0, text ); widget.Validator = validator; widget.Init(); return widget; }
public override void Init() { game.Keyboard.KeyRepeat = true; base.Init(); regularFont = new Font( game.FontName, 16, FontStyle.Regular ); inputWidget = MenuInputWidget.Create( game, -30, 50, 500, 30, "", Anchor.Centre, Anchor.Centre, regularFont, titleFont, new PathValidator() ); widgets = new [] { ButtonWidget.Create( game, 260, 50, 60, 30, "Save", Anchor.Centre, Anchor.Centre, titleFont, OkButtonClick ), null, MakeBack( false, titleFont, (g, w) => g.SetNewScreen( new PauseScreen( g ) ) ), }; }
void SaveChangesClick(Game game, Widget widget) { if (origHotkey.BaseKey != Key.Unknown) { hotkeys.RemoveHotkey(origHotkey.BaseKey, origHotkey.Flags); hotkeys.UserRemovedHotkey(origHotkey.BaseKey, origHotkey.Flags); } MenuInputWidget input = (MenuInputWidget)widgets[actionI]; if (curHotkey.BaseKey != Key.Unknown) { hotkeys.AddHotkey(curHotkey.BaseKey, curHotkey.Flags, input.GetText(), curHotkey.StaysOpen); hotkeys.UserAddedHotkey(curHotkey.BaseKey, curHotkey.Flags, curHotkey.StaysOpen, input.GetText()); } game.SetNewScreen(new HotkeyListScreen(game)); }
public override void Init() { game.Keyboard.KeyRepeat = true; base.Init(); regularFont = new Font(game.FontName, 16, FontStyle.Regular); inputWidget = MenuInputWidget.Create( game, 0, -30, 500, 30, "", Anchor.Centre, Anchor.Centre, regularFont, titleFont, new PathValidator()); widgets = new Widget[] { ButtonWidget.Create(game, 0, 20, 301, 40, "Save", Anchor.Centre, Anchor.Centre, titleFont, SaveClassic), ButtonWidget.Create(game, -150, 120, 201, 40, "Save schematic", Anchor.Centre, Anchor.Centre, titleFont, SaveSchematic), ChatTextWidget.Create(game, 110, 120, "&eCan be imported into MCEdit", Anchor.Centre, Anchor.Centre, regularFont), null, MakeBack(false, titleFont, (g, w) => g.SetNewScreen(new PauseScreen(g))), }; }
public override void Init() { game.Keyboard.KeyRepeat = true; base.Init(); regularFont = new Font( game.FontName, 16, FontStyle.Regular ); inputWidget = MenuInputWidget.Create( game, 0, -30, 500, 30, "", Anchor.Centre, Anchor.Centre, regularFont, titleFont, new PathValidator() ); widgets = new Widget[] { ButtonWidget.Create( game, 0, 20, 301, 40, "Save", Anchor.Centre, Anchor.Centre, titleFont, SaveClassic ), ButtonWidget.Create( game, -150, 120, 201, 40, "Save schematic", Anchor.Centre, Anchor.Centre, titleFont, SaveSchematic ), ChatTextWidget.Create( game, 110, 120, "&eCan be imported into MCEdit", Anchor.Centre, Anchor.Centre, regularFont ), null, MakeBack( false, titleFont, (g, w) => g.SetNewScreen( new PauseScreen( g ) ) ), }; }
public override void Init() { game.Keyboard.KeyRepeat = true; base.Init(); regularFont = new Font(game.FontName, 16, FontStyle.Regular); string flags = HotkeyListScreen.MakeFlagsString(curHotkey.Flags); if (curHotkey.Text == null) { curHotkey.Text = ""; } string staysOpen = curHotkey.StaysOpen ? "yes" : "no"; bool existed = origHotkey.BaseKey != Key.Unknown; widgets = new Widget[] { Make(0, -150, "Key: " + curHotkey.BaseKey, 301, 40, titleFont, BaseKeyClick), Make(0, -100, "Modifiers:" + flags, 301, 40, titleFont, ModifiersClick), MenuInputWidget.Create( game, 0, -35, 500, 30, curHotkey.Text, Anchor.Centre, Anchor.Centre, regularFont, titleFont, new StringValidator(64)), Make(-100, 10, "Input stays open: " + staysOpen, 301, 40, titleFont, LeaveOpenClick), Make(0, 80, existed ? "Save changes" : "Add hotkey", 301, 40, titleFont, SaveChangesClick), Make(0, 130, existed ? "Remove hotkey" : "Cancel", 301, 40, titleFont, RemoveHotkeyClick), MakeBack(false, titleFont, (g, w) => g.SetNewScreen(new PauseScreen(g))), }; }
void DisposeEditingWidgets() { if( currentAction != null ) { currentAction.Dispose(); currentAction = null; } for( int i = 8; i < widgets.Length - 1; i++ ) { if( widgets[i] != null ) { widgets[i].Dispose(); widgets[i] = null; } } focusWidget = null; }
void CreateEditingWidgets() { DisposeEditingWidgets(); widgets[8] = Make( -140, 45, "Key: " + curHotkey.BaseKey, 250, 35, textFont, BaseKeyClick ); widgets[9] = Make( 140, 45, "Modifiers: " + MakeFlagsString( curHotkey.Flags ), 250, 35, textFont, ModifiersClick ); widgets[10] = Make( -10, 110, curHotkey.MoreInput ? "yes" : "no", 50, 25, textFont, LeaveOpenClick ); widgets[11] = Make( -120, 150, "Save changes", 180, 35, textFont, SaveChangesClick ); widgets[12] = Make( 120, 150, "Remove hotkey", 180, 35, textFont, RemoveHotkeyClick ); currentAction = MenuInputWidget.Create( game, 0, 80, 600, 30, "", Anchor.Centre, Anchor.Centre, regularFont, titleFont, new StringValidator( 64 ) ); currentMoreInputLabel = ChatTextWidget.Create( game, -150, 110, "Keep input bar open:", Anchor.Centre, Anchor.Centre, titleFont ); if( curHotkey.Text == null ) curHotkey.Text = ""; currentAction.SetText( curHotkey.Text ); }
void InputClick( Game game, Widget widget, MouseButton mouseBtn ) { if( mouseBtn != MouseButton.Left ) return; if( selectedWidget != null ) selectedWidget.Active = false; selectedWidget = (MenuInputWidget)widget; selectedWidget.Active = true; }
void DisposeWidgets() { if( inputWidget != null ) inputWidget.Dispose(); widgets[widgets.Length - 2] = null; inputWidget = null; int okayIndex = widgets.Length - 1; if( widgets[okayIndex] != null ) widgets[okayIndex].Dispose(); widgets[okayIndex] = null; }
protected void OnWidgetClick( Game game, Widget widget, MouseButton mouseBtn ) { ButtonWidget button = widget as ButtonWidget; if( mouseBtn != MouseButton.Left ) return; if( widget == widgets[widgets.Length - 1] ) { ChangeSetting(); return; } if( button == null ) return; DisposeExtendedHelp(); int index = Array.IndexOf<Widget>( widgets, button ); MenuInputValidator validator = validators[index]; if( validator is BooleanValidator ) { string value = button.GetValue( game ); button.SetValue( game, value == "yes" ? "no" : "yes" ); UpdateDescription( button ); return; } else if( validator is EnumValidator ) { Type type = ((EnumValidator)validator).EnumType; HandleEnumOption( button, type ); return; } if( inputWidget != null ) inputWidget.Dispose(); targetWidget = selectedWidget; inputWidget = MenuInputWidget.Create( game, 0, 110, 400, 30, button.GetValue( game ), Anchor.Centre, Anchor.Centre, regularFont, titleFont, validator ); widgets[widgets.Length - 2] = inputWidget; widgets[widgets.Length - 1] = ButtonWidget.Create( game, 240, 110, 40, 30, "OK", Anchor.Centre, Anchor.Centre, titleFont, OnWidgetClick ); InputOpened(); UpdateDescription( targetWidget ); }