void OkButtonClick(Game game, Widget widget) { string text = inputWidget.GetText(); if (text.Length == 0) { MakeDescWidget("Please enter a filename"); return; } string file = Path.ChangeExtension(text, ".cw"); text = Path.Combine(Program.AppDirectory, "maps"); text = Path.Combine(text, file); if (File.Exists(text)) { buttons[1] = ButtonWidget.Create(game, 0, 90, 260, 30, "Overwrite existing?", Anchor.Centre, Anchor.Centre, titleFont, OverwriteButtonClick); } else { // NOTE: We don't immediately save here, because otherwise the 'saving...' // will not be rendered in time because saving is done on the main thread. MakeDescWidget("Saving.."); textPath = text; RemoveOverwriteButton(); } }
public override void Init() { game.Keyboard.KeyRepeat = true; base.Init(); int size = game.Drawer2D.UseBitmappedChat ? 14 : 18; labelFont = new Font(game.FontName, size, FontStyle.Regular); titleFont = new Font(game.FontName, size, FontStyle.Bold); regularFont = new Font(game.FontName, 16, FontStyle.Regular); inputs = new [] { MakeInput(-100, false, game.Map.Width.ToString()), MakeInput(-60, false, game.Map.Height.ToString()), MakeInput(-20, false, game.Map.Length.ToString()), MakeInput(20, true, "") }; labels = new [] { MakeLabel(-150, -100, "Width:"), MakeLabel(-150, -60, "Height:"), MakeLabel(-150, -20, "Length:"), MakeLabel(-140, 20, "Seed:"), }; widgets = new [] { ButtonWidget.Create(game, 0, 80, 250, 35, "Generate flatgrass", Anchor.Centre, Anchor.Centre, titleFont, GenFlatgrassClick), ButtonWidget.Create(game, 0, 130, 250, 35, "Generate notchy", Anchor.Centre, Anchor.Centre, titleFont, GenNotchyClick), MakeBack(false, titleFont, (g, w) => g.SetNewScreen(new PauseScreen(g))), }; }
protected ButtonWidget MakeBack(bool toGame, Font font, Action <Game, Widget> onClick) { string text = toGame ? "Back to game" : "Back to menu"; return(ButtonWidget.Create( game, 0, 5, 180, 35, text, Anchor.Centre, Anchor.BottomOrRight, font, LeftOnly(onClick))); }
protected ButtonWidget MakeClassic(int x, int y, string text, ClickHandler onClick, Func <Game, string> getter, Action <Game, string> setter) { ButtonWidget widget = ButtonWidget.Create(game, x, y, 301, 41, text, Anchor.Centre, Anchor.Centre, titleFont, onClick); widget.GetValue = getter; widget.SetValue = setter; return(widget); }
ButtonWidget Make(int x, int y, string text, Action <Game, Widget> onClick, Func <Game, string> getter, Action <Game, string> setter) { ButtonWidget widget = ButtonWidget.Create(game, x, y, 240, 35, text, Anchor.Centre, Anchor.Centre, titleFont, onClick); widget.GetValue = getter; widget.SetValue = setter; return(widget); }
public override void Init() { graphicsApi.ClearColour(new FastColour(65, 31, 31)); widgets = new Widget[] { ChatTextWidget.Create(game, 0, -30, title, Anchor.Centre, Anchor.Centre, titleFont), ChatTextWidget.Create(game, 0, 10, message, Anchor.Centre, Anchor.Centre, messageFont), ButtonWidget.Create(game, 0, 80, 280, 35, "Try to reconnect.. " + delay, Anchor.Centre, Anchor.Centre, titleFont, ReconnectClick), }; initTime = DateTime.UtcNow; lastSecsLeft = delay; }
void InitStandardButtons() { widgets = new ButtonWidget[] { ButtonWidget.Create(game, -110, 30, 160, 35, "Yes", Anchor.Centre, Anchor.Centre, titleFont, OnYesClick), ButtonWidget.Create(game, 110, 30, 160, 35, "No", Anchor.Centre, Anchor.Centre, titleFont, OnNoClick), ButtonWidget.Create(game, -110, 80, 160, 35, "Always yes", Anchor.Centre, Anchor.Centre, titleFont, OnYesAlwaysClick), ButtonWidget.Create(game, 110, 80, 160, 35, "Always no", Anchor.Centre, Anchor.Centre, titleFont, OnNoAlwaysClick), }; }
void InitConfirmButtons(bool always) { ClickHandler noHandler = always ? (ClickHandler)OnNoAlwaysClick: (ClickHandler)OnNoClick; widgets = new ButtonWidget[] { ButtonWidget.Create(game, -110, 30, 160, 35, "I'm sure", Anchor.Centre, Anchor.Centre, titleFont, noHandler), ButtonWidget.Create(game, 110, 30, 160, 35, "Go back", Anchor.Centre, Anchor.Centre, titleFont, GoBackClick), }; confirmMode = true; SetText(lastTitle, lastBody); }
ButtonWidget MakeHotkey(int x, int y, int index) { string text = Get(index + currentIndex); ButtonWidget button = ButtonWidget.Create( game, x, y, 240, 30, text, Anchor.Centre, Anchor.Centre, textFont, TextButtonClick); button.Metadata = default(Hotkey); if (text != "-----") { button.Metadata = hotkeys.Hotkeys[index + currentIndex]; } return(button); }
public override void Init() { base.Init(); descriptions = normDescriptions; originKey = KeyBinding.Speed; widgets = new Widget[descriptions.Length + 2]; MakeKeys(KeyBinding.Speed, 0, 7, -150); MakeKeys(KeyBinding.Screenshot, 7, 7, 150); widgets[index++] = MakeBack(false, titleFont, (g, w) => g.SetNewScreen(new OptionsGroupScreen(g))); widgets[index++] = ButtonWidget.Create( game, 0, 170, 300, 35, "Mouse key bindings", Anchor.Centre, Anchor.Centre, titleFont, NextClick); }
public override void Init() { base.Init(); descriptions = normDescriptions; originKey = KeyBinding.Speed; buttons = new ButtonWidget[descriptions.Length + 2]; MakeKeys(KeyBinding.Speed, 0, 6, -150); MakeKeys(KeyBinding.HideFps, 6, 7, 150); buttons[index++] = MakeBack(false, titleFont, (g, w) => g.SetNewScreen(new PauseScreen(g))); buttons[index++] = ButtonWidget.Create( game, 0, 170, 300, 35, "Normal key bindings", Anchor.Centre, Anchor.Centre, titleFont, NextClick); }
protected void OnWidgetClick(Game game, Widget widget) { if (widget == buttons[okayIndex]) { ChangeSetting(); return; } ButtonWidget button = (ButtonWidget)widget; int index = Array.IndexOf <ButtonWidget>(buttons, 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) { string value = button.GetValue(game); Type type = (Type)button.Metadata; int enumValue = (int)Enum.Parse(type, value, true); enumValue++; // go back to first value if (!Enum.IsDefined(type, enumValue)) { enumValue = 0; } button.SetValue(game, Enum.GetName(type, enumValue)); UpdateDescription(button); return; } if (inputWidget != null) { inputWidget.Dispose(); } targetWidget = selectedWidget; inputWidget = MenuInputWidget.Create(game, 0, 150, 400, 25, button.GetValue(game), Anchor.Centre, Anchor.Centre, regularFont, titleFont, validator); buttons[okayIndex] = ButtonWidget.Create(game, 240, 150, 40, 30, "OK", Anchor.Centre, Anchor.Centre, titleFont, OnWidgetClick); InputOpened(); UpdateDescription(targetWidget); }
protected void MakeKeys(KeyBinding start, int descStart, int len, int x) { int y = -180; for (int i = 0; i < len; i++) { KeyBinding binding = (KeyBinding)((int)start + i); string text = descriptions[descStart + i] + ": " + keyNames[(int)game.Mapping(binding)]; buttons[index++] = ButtonWidget.Create(game, x, y, 260, 35, text, Anchor.Centre, Anchor.Centre, keyFont, OnBindingClick); y += 45; } }
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) { HandleEnumOption(button); return; } if (inputWidget != null) { inputWidget.Dispose(); } targetWidget = selectedWidget; inputWidget = MenuInputWidget.Create(game, 0, 150, 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, 150, 40, 30, "OK", Anchor.Centre, Anchor.Centre, titleFont, OnWidgetClick); InputOpened(); UpdateDescription(targetWidget); }
public override void Init() { base.Init(); descriptions = normDescriptions; originKey = KeyBinding.MouseLeft; widgets = new Widget[descriptions.Length + 3]; MakeKeys(KeyBinding.MouseLeft, 0, 3, 0); widgets[index++] = MakeBack(false, titleFont, (g, w) => g.SetNewScreen(new PauseScreen(g))); widgets[index++] = ButtonWidget.Create( game, 0, 170, 300, 35, "Normal key bindings", Anchor.Centre, Anchor.Centre, titleFont, NextClick); widgets[index++] = ChatTextWidget.Create( game, 0, -40, "&eRight click to remove the key binding", Anchor.Centre, Anchor.Centre, regularFont); }
public override void Init() { titleFont = new Font("Arial", 16, FontStyle.Bold); regularFont = new Font("Arial", 14, FontStyle.Regular); buttons = new ButtonWidget[] { ButtonWidget.Create(game, -110, 30, 160, 35, "Yes", Anchor.Centre, Anchor.Centre, titleFont, OnYesClick), ButtonWidget.Create(game, 110, 30, 160, 35, "No", Anchor.Centre, Anchor.Centre, titleFont, OnNoClick), ButtonWidget.Create(game, -110, 80, 160, 35, "Always yes", Anchor.Centre, Anchor.Centre, titleFont, OnYesAlwaysClick), ButtonWidget.Create(game, 110, 80, 160, 35, "Always no", Anchor.Centre, Anchor.Centre, titleFont, OnNoAlwaysClick), }; SetText(title, body); }
public override void Init() { game.Keyboard.KeyRepeat = true; base.Init(); regularFont = new Font("Arial", 16, FontStyle.Regular); inputWidget = MenuInputWidget.Create( game, -30, 50, 500, 25, "", Anchor.Centre, Anchor.Centre, regularFont, titleFont, new PathValidator()); buttons = 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))), }; }
public override void Init() { game.Keyboard.KeyRepeat = true; base.Init(); int size = game.Drawer2D.UseBitmappedChat ? 14 : 18; titleFont = new Font("Arial", size, FontStyle.Bold); regularFont = new Font("Arial", 16, FontStyle.Regular); inputs = new [] { MakeInput(-80), MakeInput(-40), MakeInput(0), MakeInput(40) }; labels = new [] { MakeLabel(-80, "Width:"), MakeLabel(-40, "Height:"), MakeLabel(0, "Length:"), MakeLabel(40, "Seed:"), }; buttons = new [] { ButtonWidget.Create(game, 0, 90, 250, 30, "Generate flatgrass", Anchor.Centre, Anchor.Centre, titleFont, GenFlatgrassClick), ButtonWidget.Create(game, 0, 140, 250, 30, "Generate notchy", Anchor.Centre, Anchor.Centre, titleFont, GenNotchyClick), MakeBack(false, titleFont, (g, w) => g.SetNewScreen(new PauseScreen(g))), }; }
ButtonWidget MakeOther(int x, int y, int width, string text, Anchor hAnchor, Action <Game, Widget> onClick) { return(ButtonWidget.Create(game, x, y, width, 35, text, hAnchor, Anchor.BottomOrRight, titleFont, LeftOnly(onClick))); }
ButtonWidget Make(int x, int y, string text, Action <Game, Widget> onClick) { return(ButtonWidget.Create(game, x, y, 240, 35, text, Anchor.Centre, Anchor.Centre, titleFont, LeftOnly(onClick))); }
ButtonWidget Make(int x, int y, string text, Action <Game, Widget> onClick) { return(ButtonWidget.Create(game, x, y, 40, 40, text, Anchor.Centre, Anchor.Centre, arrowFont, onClick)); }
ButtonWidget Make(int x, int y, string text, int width, int height, Font font, Action <Game, Widget> onClick) { return(ButtonWidget.Create(game, x, y, width, height, text, Anchor.Centre, Anchor.Centre, font, LeftOnly(onClick))); }
protected override void InputOpened() { buttons[defaultIndex] = ButtonWidget.Create( game, 0, 200, 180, 35, "Default value", Anchor.Centre, Anchor.Centre, titleFont, DefaultButtonClick); }
ButtonWidget MakeText(int x, int y, string text) { return(ButtonWidget.Create(game, x, y, 240, 30, text, Anchor.Centre, Anchor.Centre, textFont, TextButtonClick)); }