public SierraVgaController(AssetManager assets, IMouse mouse) : base(assets, mouse) { this.Assets.RootDirectory = "Content/Gui/Sierra Vga"; Mouse.Cursor = Cursors.Walk; Mouse.SaveCursorToBackup(); Mouse.ButtonUp += MouseControllerOnButtonUp; StatusBar = new StatusBar(assets); StatusBar.MouseEnter += TopBarOnMouseEnter; VerbBar = new VerbBar(assets); VerbBar.MouseLeave += VerbBarOnMouseLeave; TextBox = new TextBox(assets); Rest = new Rest(assets); ExtensionBar = new ExtensionBar(assets); Windows.Add(StatusBar); Windows.Add(VerbBar); Dialogs.Add(TextBox); Dialogs.Add(Rest); Dialogs.Add(ExtensionBar); }
private void MouseControllerOnButtonUp(object sender, MouseButtonClickEventArgs e) { if (Dialog.IsShownInCurrentLoopIteration) { return; } if (TextBox.IsVisible) { TextBox.Hide(); return; } if (ExtensionBar.IsVisible && !ExtensionBar.Intersects(Mouse.X, Mouse.Y)) { ExtensionBar.Hide(); return; } if (Rest.IsVisible && !Rest.Intersects(Mouse.X, Mouse.Y)) { Rest.Hide(); return; } if (Renderer.IsPaused) { return; } switch (e.Button) { case MouseButton.Left: MouseSierraVgaOnLeftButtonUp(sender, e); break; case MouseButton.Middle: MouseControllerOnMiddleButtonUp(sender, e); break; case MouseButton.Right: MouseControllerOnRightButtonUp(sender, e); break; // No action for extra buttons case MouseButton.X1: case MouseButton.X2: break; default: throw new ArgumentOutOfRangeException(); } }