Example #1
0
 internal MouseEventArgs(ConsoleMouseEventArgs e)
 {
     ControlKeys = e.ControlKeys;
     ButtonState = e.ButtonState;
     Kind        = e.EventFlags;
     Position    = e.MousePosition;
     Scroll      = e.Scroll;
 }
Example #2
0
 private static void OnPhraseMouseDown(Phrase sender, ConsoleMouseEventArgs e)
 {
     try
     {
         if (sender.Pattern == url)
         {
             SetUrlPhraseColor(sender, ConsoleColor.Blue, curLeft, curTop);
         }
     }
     catch { }
 }
Example #3
0
 private static void OnPhraseMouseClick(Phrase sender, ConsoleMouseEventArgs e)
 {
     try
     {
         if (sender.Pattern == url)
         {
             Process.Start(sender.Match.Groups[2].Value);
         }
     }
     catch { }
 }
Example #4
0
 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 { }
 }
Example #5
0
        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);
        }
Example #7
0
 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 { }
 }
Example #8
0
        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());
        }
    }
Example #9
0
 static void ib_MouseButton(object sender, ConsoleMouseEventArgs e)
 {
     sb.WriteLine(string.Format("Mouse button: {0}", e.ButtonState));
 }
Example #10
0
 static void ib_MouseMove(object sender, ConsoleMouseEventArgs e)
 {
     sb.WriteLine(string.Format("Mouse move: ({0},{1})", e.X, e.Y));
 }
Example #11
0
 static void ib_MouseDoubleClick(object sender, ConsoleMouseEventArgs e)
 {
     sb.WriteLine(string.Format("Double click: {0}", e.ButtonState));
 }
Example #12
0
        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"));
        }