internal MouseEventArgs(ConsoleMouseEventArgs e) { ControlKeys = e.ControlKeys; ButtonState = e.ButtonState; Kind = e.EventFlags; Position = e.MousePosition; Scroll = e.Scroll; }
private static void OnPhraseMouseDown(Phrase sender, ConsoleMouseEventArgs e) { try { if (sender.Pattern == url) { SetUrlPhraseColor(sender, ConsoleColor.Blue, curLeft, curTop); } } catch { } }
private static void OnPhraseMouseClick(Phrase sender, ConsoleMouseEventArgs e) { try { if (sender.Pattern == url) { Process.Start(sender.Match.Groups[2].Value); } } catch { } }
private static void OnPhraseMouseLeave(Phrase sender, ConsoleMouseEventArgs e) { try { if (sender.Pattern == url) { SetUrlPhraseColor(sender, ConsoleColor.DarkCyan, curLeft, curTop); } else if (sender.Pattern == word) { SetPhraseColor(sender, ConsoleColor.DarkYellow, curLeft, curTop); } } catch { } }
public void MouseEvents_MouseEventRaisedWithCorrectValues() { const ControlKeyStates controlKeys = ControlKeyStates.LEFT_ALT_PRESSED | ControlKeyStates.CAPSLOCK_ON; const int scroll = 123; const MouseButtonStates buttons = MouseButtonStates.LeftButtonPressed; Point position = (3, 7).Pt(); const MouseEventFlags kind = MouseEventFlags.Wheeled; var api = new StubbedNativeCalls(); using var controller = new StubbedConsoleController(); var graphicsProvider = new StubbedGraphicsProvider(); var args = new ConsoleMouseEventArgs(new MOUSE_EVENT_RECORD { ButtonState = buttons, ControlKeys = controlKeys, EventFlags = kind, MousePosition = new COORD(position), Scroll = scroll }); using var sut = new ConControls.Controls.ConsoleWindow(api, controller, graphicsProvider); bool raised = false; sut.MouseEvent += OnMouse; controller.MouseEventEvent(controller, args); raised.Should().BeTrue(); raised = false; sut.MouseEvent -= OnMouse; controller.MouseEventEvent(controller, args); raised.Should().BeFalse(); void OnMouse(object sender, MouseEventArgs e) { sender.Should().Be(sut); e.ControlKeys.Should().Be(controlKeys); e.Scroll.Should().Be(scroll); e.ButtonState.Should().Be(buttons); e.Position.Should().Be(position); e.Kind.Should().Be(kind); raised = true; } }
public void MouseEventArgs_ConstructorSetsCorrectValues() { MOUSE_EVENT_RECORD record = new MOUSE_EVENT_RECORD { ControlKeys = ControlKeyStates.LEFT_ALT_PRESSED, EventFlags = MouseEventFlags.DoubleClick, ButtonState = MouseButtonStates.FourthButtonPressed, MousePosition = new COORD(21, 42), Scroll = 123 }; var e = new ConsoleMouseEventArgs(record); var sut = new MouseEventArgs(e); sut.ControlKeys.Should().Be(record.ControlKeys); sut.ButtonState.Should().Be(record.ButtonState); sut.Kind.Should().Be(record.EventFlags); sut.Position.Should().Be(e.MousePosition); sut.Scroll.Should().Be(record.Scroll); }
private static void OnPhraseMouseEnter(Phrase sender, ConsoleMouseEventArgs e) { try { if (sender.Pattern == word) { SetPhraseColor(sender, ConsoleColor.DarkMagenta, curLeft, curTop); } else if (sender.Pattern == sector) { SetPhraseColor(sender, ConsoleColor.Green, curLeft, curTop); } else if (sender.Pattern == url) { SetUrlPhraseColor(sender, ConsoleColor.DarkCyan, curLeft, curTop); } } catch { } }
public void CursorVisible_IntegrationTest_RespectsCaretVisibility() { var api = new StubbedNativeCalls(); using var controller = new StubbedConsoleController(); string text = string.Join(Environment.NewLine, Enumerable.Repeat("12345678901234567890", 40)); using var window = new ConControls.Controls.ConsoleWindow(api, controller, new StubbedGraphicsProvider()); using var sut = new ConControls.Controls.TextBlock(window) { Area = (5, 5, 10, 10).Rect(), Parent = window, Text = text, Caret = (5, 0).Pt(), CanFocus = true, Focused = true }; sut.Caret.Should().Be((5, 0).Pt()); sut.CursorVisible.Should().BeTrue(); sut.CursorPosition.Should().Be((5, 0).Pt()); var e = new ConsoleMouseEventArgs(new MOUSE_EVENT_RECORD { EventFlags = MouseEventFlags.Wheeled, MousePosition = new COORD(5, 5), Scroll = -120 }); bool setCorrectly = false; api.SetCursorInfoConsoleOutputHandleBooleanInt32Point = (handle, visible, size, location) => setCorrectly = !visible; controller.MouseEventEvent(controller, e); setCorrectly.Should().BeTrue(); sut.Scroll.Should().Be((0, 1).Pt()); sut.CursorVisible.Should().BeFalse(); sut.Caret.Should().Be((5, 0).Pt()); } }
static void ib_MouseButton(object sender, ConsoleMouseEventArgs e) { sb.WriteLine(string.Format("Mouse button: {0}", e.ButtonState)); }
static void ib_MouseMove(object sender, ConsoleMouseEventArgs e) { sb.WriteLine(string.Format("Mouse move: ({0},{1})", e.X, e.Y)); }
static void ib_MouseDoubleClick(object sender, ConsoleMouseEventArgs e) { sb.WriteLine(string.Format("Double click: {0}", e.ButtonState)); }
static void ib_MouseScroll(object sender, ConsoleMouseEventArgs e) { bool bScrollDown = (e.ButtonState & ConsoleMouseButtonState.ScrollDown) != 0; sb.WriteLine(string.Format("Mouse scroll: {0}, {1}", e.EventFlags, bScrollDown ? "down" : "up")); }