Ejemplo n.º 1
0
            public override bool ProcessMouse(MouseConsoleState state)
            {
                if (isEnabled)
                {
                    if (isMouseOver)
                    {
                        Point mouseControlPosition = TransformConsolePositionByControlPosition(state.CellPosition);

                        if (mouseControlPosition.X == VerticalBarX)
                        {
                            VerticalBar.ProcessMouse(state);
                        }

                        if (mouseControlPosition.Y == HorizontalBarY)
                        {
                            HorizontalBar.ProcessMouse(state);
                        }
                    }
                    else
                    {
                        base.ProcessMouse(state);
                    }
                }

                return(false);
            }
Ejemplo n.º 2
0
        protected override void OnMouseMove(MouseConsoleState state)
        {
            if (imageControl != null)
            {
                var position  = state.CellPosition;
                var relativeX = position.X - imageControl.Position.X - 1;
                var relativeY = position.Y - imageControl.Position.Y - 1;

                if (relativeX >= 0 && relativeX < image.Width && relativeY >= 0 && relativeY < image.Height)
                {
                    var pixel = image[relativeX, relativeY];

                    if (state.Mouse.LeftButtonDown)
                    {
                        pixel.Symbol          = brush.Symbol;
                        pixel.Color           = brush.ForeColor;
                        pixel.BackgroundColor = brush.BackColor;
                    }
                    else if (state.Mouse.RightButtonDown)
                    {
                        brush.Symbol    = (char?)pixel.Symbol;
                        brush.ForeColor = pixel.Color;
                        brush.BackColor = pixel.BackgroundColor;
                    }
                }
            }

            base.OnMouseMove(state);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// If the mouse is not over the console, causes the protected <see cref="OnMouseExit"/> method to run which raises the <see cref="MouseExit"/> event.
 /// </summary>
 /// <param name="state"></param>
 public void LostMouse(MouseConsoleState state)
 {
     if (IsMouseOver)
     {
         OnMouseExit(state);
     }
 }
Ejemplo n.º 4
0
        public override bool ProcessMouse(MouseConsoleState state)
        {
            mouseCursor.IsVisible = state.IsOnConsole;
            mouseCursor.Position  = state.ConsoleCellPosition;

            return(base.ProcessMouse(state));
        }
Ejemplo n.º 5
0
        private void Selection(MouseConsoleState state)
        {
            if (!MakingSelection)
            {
                // Start selection box
                MakingSelection = true;
                StartPoint      = state.ConsoleCellPosition;
                EndPoint        = state.ConsoleCellPosition;

                ControlSystem.StartSelectionBox();
            }
            else
            {
                // Change selection box
                EndPoint = state.ConsoleCellPosition;
            }

            // Find selection box edges
            int minX = Math.Min(StartPoint.X, EndPoint.X);
            int minY = Math.Min(StartPoint.Y, EndPoint.Y);
            int maxX = Math.Max(StartPoint.X, EndPoint.X);
            int maxY = Math.Max(StartPoint.Y, EndPoint.Y);

            // Add 1 to make border around selection area
            Point StartCorner = new Point(minX - 1, minY - 1);
            Point EndCorner   = new Point(maxX + 1, maxY + 1);

            // Update selection box
            Point     size      = EndCorner - StartCorner + new Point(1, 1);
            Rectangle selection = new Rectangle(StartCorner, size);

            ControlSystem.UpdateSelectionBox(selection);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Raises the <see cref="MouseExit"/> event.
        /// </summary>
        /// <param name="state">Current mouse state in relation to this console.</param>
        protected virtual void OnMouseExit(MouseConsoleState state)
        {
            // Force mouse off just in case
            IsMouseOver = false;

            MouseExit?.Invoke(this, new MouseEventArgs(state));
        }
Ejemplo n.º 7
0
        public override void ProcessMouse(SadConsole.Console console, MouseConsoleState state, out bool handled)
        {
            if (state.IsOnConsole)
            {
                if (state.Mouse.LeftButtonDown && state.Mouse.IsOnScreen)
                {
                    Selection(state);
                }
                else
                {
                    if (MakingSelection)
                    {
                        MakingSelection = false;
                        ControlSystem.ClearSelectionBox();
                    }
                }

                if (state.Mouse.RightClicked)
                {
                    ControlSystem.GiveMoveOrders(state.ConsoleCellPosition);
                }
            }

            handled = true;
        }
Ejemplo n.º 8
0
        public void ProcessMouse(MouseConsoleState info, ISurface surface, bool isInBounds)
        {
            if (info.IsOnConsole)
            {
                if (info.Mouse.LeftButtonDown)
                {
                    var cell = info.Cell;
                    cell.Glyph      = CharacterPickPanel.SharedInstance.SettingCharacter;
                    cell.Foreground = CharacterPickPanel.SharedInstance.SettingForeground;
                    cell.Background = CharacterPickPanel.SharedInstance.SettingBackground;
                    cell.Mirror     = CharacterPickPanel.SharedInstance.SettingMirrorEffect;
                    surface.IsDirty = true;
                }

                if (info.Mouse.RightButtonDown)
                {
                    var cell = info.Cell;

                    CharacterPickPanel.SharedInstance.SettingCharacter    = cell.Glyph;
                    CharacterPickPanel.SharedInstance.SettingForeground   = cell.Foreground;
                    CharacterPickPanel.SharedInstance.SettingBackground   = cell.Background;
                    CharacterPickPanel.SharedInstance.SettingMirrorEffect = cell.Mirror;
                }
            }
        }
Ejemplo n.º 9
0
 public override bool ProcessMouse(MouseConsoleState state)
 {
     if (state != null)
     {
         MousePosition = state.CellPosition;
     }
     return(base.ProcessMouse(state));
 }
Ejemplo n.º 10
0
        public override void ProcessMouse(SadConsole.Console console, MouseConsoleState state, out bool handled)
        {
            if (state.Mouse.RightClicked)
            {
                console.Parent = SadConsole.Global.CurrentScreen;
                console.Components.Remove(this);
            }

            handled = false;
        }
Ejemplo n.º 11
0
        protected override void OnRightMouseClicked(MouseConsoleState info)
        {
            var location = this.TransformConsolePositionByControlPosition(info.CellPosition);

            if (location.X >= Width - 3)
            {
                RightClickedColor?.Invoke(this, EventArgs.Empty);
                base.OnRightMouseClicked(info);
            }
        }
Ejemplo n.º 12
0
        public override bool ProcessMouse(MouseConsoleState info)
        {
            base.ProcessMouse(info);

            if (info.Mouse.RightClicked)
            {
                Hide();
            }

            return(true);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Processes the mouse.
        /// </summary>
        /// <param name="state">The mouse state related to this console.</param>
        /// <returns>True when the mouse is over this console and processing should stop.</returns>
        public virtual bool ProcessMouse(MouseConsoleState state)
        {
            if (!IsVisible)
            {
                return(false);
            }

            foreach (var component in ComponentsMouse.ToArray())
            {
                component.ProcessMouse(this, state, out bool isHandled);

                if (isHandled)
                {
                    return(true);
                }
            }

            if (!UseMouse)
            {
                return(false);
            }

            if (state.IsOnConsole)
            {
                if (IsMouseOver != true)
                {
                    IsMouseOver = true;
                    OnMouseEnter(state);
                }

                OnMouseMove(state);

                if (state.Mouse.LeftClicked)
                {
                    OnMouseLeftClicked(state);
                }

                if (state.Mouse.RightClicked)
                {
                    OnRightMouseClicked(state);
                }

                return(true);
            }

            if (IsMouseOver)
            {
                IsMouseOver = false;
                OnMouseExit(state);
            }

            return(false);
        }
Ejemplo n.º 14
0
        public override bool ProcessMouse(MouseConsoleState state)
        {
            // Process mouse for each console
            var childState = new MouseConsoleState(controlsConsole, state.Mouse);

            if (childState.IsOnConsole)
            {
                return(controlsConsole.ProcessMouse(childState));
            }

            return(false);
        }
Ejemplo n.º 15
0
        public void ProcessMouse(MouseConsoleState info, ISurface surface, bool isInBounds)
        {
            if (info.IsOnConsole && info.Mouse.LeftClicked)
            {
                var cell   = surface.GetCell(info.ConsolePosition.X, info.ConsolePosition.Y);
                var editor = MainScreen.Instance.ActiveEditor as Editors.GameObjectEditor;

                if (editor != null)
                {
                    editor.SetAnimationCenter(new Point(info.ConsolePosition.X, info.ConsolePosition.Y));
                }
            }
        }
Ejemplo n.º 16
0
        public override bool ProcessMouse(MouseConsoleState state)
        {
            // Check the scroll bar for mouse info first. If mouse not handled by scroll bar, then..

            // Create a mouse state based on the controlsHost
            if (!_controlsHost.ProcessMouse(new MouseConsoleState(_controlsHost, state.Mouse)))
            {
                // Process this console normally.
                return(_mainConsole.ProcessMouse(state));
            }

            return(false);
        }
Ejemplo n.º 17
0
        public override void ProcessMouse(SadConsole.Console console, MouseConsoleState state, out bool handled)
        {
            if (state.Mouse.IsOnScreen)
            {
                console.Print(0, 0, "cellposition X : " + state.CellPosition.X + " ; Y : " + state.CellPosition.Y);
                //console.SetBackground(state.CellPosition.X, state.CellPosition.Y, Color.HotPink);
                var child = console.Children[0];
                child.Position = state.CellPosition;
                //console.Clear();
            }

            handled = false;
        }
Ejemplo n.º 18
0
        public void ProcessMouse(MouseConsoleState info, ISurface surface, bool isInBounds)
        {
            if (info.IsOnConsole && info.Mouse.LeftClicked)
            {
                MainScreen.Instance.AllowKeyboardToMoveConsole = false;
                writing = true;

                tempConsole.TextSurface            = (ISurface)surface;
                tempConsole.VirtualCursor.Position = Brush.Position = info.ConsolePosition;

                Brush.IsVisible = true;
            }
        }
Ejemplo n.º 19
0
        public override bool ProcessMouse(MouseConsoleState state)
        {
            mouseCursor.IsVisible = state.IsOnConsole;
            mouseCursor.Position  = state.ConsoleCellPosition;
            List <string> tooltipItems = GetToolTipItems(state.ConsoleCellPosition.X, state.ConsoleCellPosition.Y);

            if (tooltipItems.Count > 0)
            {
                tooltip.Resize(tooltipItems.GetLengthOfLongestItem(), tooltipItems.Count, true);
                int lineCounter = 0;
                foreach (var item in tooltipItems)
                {
                    if (item.StartsWith("Ship"))
                    {
                        tooltip.Print(0, lineCounter, item, Color.White, Color.Black);
                    }
                    if (item.StartsWith("Star"))
                    {
                        tooltip.Print(0, lineCounter, item, Color.Yellow, Color.Black);
                    }
                    if (item.StartsWith("Planet"))
                    {
                        tooltip.Print(0, lineCounter, item, Color.CornflowerBlue, Color.Black);
                    }
                    if (item.StartsWith("Asteroid"))
                    {
                        tooltip.Print(0, lineCounter, item, Color.SandyBrown, Color.Black);
                    }
                    if (item.StartsWith("Moon"))
                    {
                        tooltip.Print(0, lineCounter, item, Color.GhostWhite, Color.Black);
                    }
                    if (item.StartsWith("Warpgate"))
                    {
                        tooltip.Print(0, lineCounter, item, Color.GreenYellow, Color.Black);
                    }
                    lineCounter++;
                }
                tooltip.Position  = state.ConsoleCellPosition + new Point(1, 1);
                tooltip.IsVisible = true;
            }
            else
            {
                tooltip.IsVisible = false;
            }
            if ((tooltip.Position.X + tooltip.Width) > Width)
            {
                tooltip.Position = state.ConsoleCellPosition - new Point(tooltip.Width + 2, 0);
            }
            return(base.ProcessMouse(state));
        }
Ejemplo n.º 20
0
        protected virtual void OnMouseLeftClicked(MouseConsoleState state)
        {
            if (MoveToFrontOnMouseClick && Parent != null && Parent.Children.IndexOf(this) != Parent.Children.Count - 1)
            {
                Parent.Children.MoveToTop(this);
            }

            if (FocusOnMouseClick && !IsFocused)
            {
                IsFocused = true;
            }

            MouseButtonClicked?.Invoke(this, new MouseEventArgs(state));
        }
Ejemplo n.º 21
0
        public override bool ProcessMouse(MouseConsoleState state)
        {
            // Create a new temp state based on the our "behind the scenes" console that holds the scroll bar
            var stateForScroll = new MouseConsoleState(controlsContainer, state.Mouse);

            // Check if this state, based on the console holding the scroll bar
            if (stateForScroll.IsOnConsole)
            {
                controlsContainer.ProcessMouse(stateForScroll);
                return(true);
            }

            // if we're here, process the mouse like normal.
            return(base.ProcessMouse(state));
        }
Ejemplo n.º 22
0
        public override bool ProcessMouse(MouseConsoleState mouseState)
        {
            if (isMouseOver)
            {
                var scrollValue = mouseState.Mouse.ScrollWheelValueChange;
                if (scrollValue > 0)
                {
                    scroll.Value += scroll.Step;
                }

                if (scrollValue < 0)
                {
                    scroll.Value -= scroll.Step;
                }
            }

            return(base.ProcessMouse(mouseState));
        }
Ejemplo n.º 23
0
        public override bool ProcessMouse(MouseConsoleState state)
        {
            // Process mouse for each console
            var childState = new MouseConsoleState(mainView, state.Mouse);

            if (childState.IsOnConsole)
            {
                return(mainView.ProcessMouse(childState));
            }

            childState = new MouseConsoleState(subView, state.Mouse);

            if (childState.IsOnConsole)
            {
                return(subView.ProcessMouse(childState));
            }

            return(false);
        }
Ejemplo n.º 24
0
        /// <summary>
        /// Processes the mouse.
        /// </summary>
        /// <param name="state"></param>
        /// <returns>True when the mouse is over this console.</returns>
        public virtual bool ProcessMouse(MouseConsoleState state)
        {
            var handlerResult = MouseHandler?.Invoke(this, state) ?? false;

            if (!handlerResult)
            {
                if (this.IsVisible && this.UseMouse)
                {
                    if (state.IsOnConsole)
                    {
                        if (isMouseOver != true)
                        {
                            isMouseOver = true;
                            OnMouseEnter(state);
                        }

                        OnMouseMove(state);

                        if (state.Mouse.LeftClicked)
                        {
                            OnMouseLeftClicked(state);
                        }

                        if (state.Mouse.RightClicked)
                        {
                            OnRightMouseClicked(state);
                        }

                        return(true);
                    }
                    else
                    {
                        if (isMouseOver)
                        {
                            isMouseOver = false;
                            OnMouseExit(state);
                        }
                    }
                }
            }

            return(handlerResult);
        }
Ejemplo n.º 25
0
        public override bool ProcessMouse(MouseConsoleState state)
        {
            if (!IsVisible)
            {
                return(false);
            }

            foreach (var component in ComponentsMouse.ToArray())
            {
                component.ProcessMouse(this, state, out bool isHandled);

                if (isHandled)
                {
                    return(true);
                }
            }

            return(false);
        }
Ejemplo n.º 26
0
        public override bool ProcessMouse(MouseConsoleState state)
        {
            // Lose focus if we click outside of the textbox
            if (!_textInput.DisableKeyboard && state.Mouse.LeftClicked && !_textInput.MouseBounds.Contains(state.CellPosition))
            {
                _textInput.Text = "Type here..";
                _textInput.FocusLost();
                _textInputInUse = false;
                return(true);
            }

            // Clear input when clicking on the field
            if (_textInput.DisableKeyboard && state.Mouse.LeftClicked && _textInput.MouseBounds.Contains(state.CellPosition))
            {
                _textInput.Text = string.Empty;
                _textInputInUse = true;
            }

            return(base.ProcessMouse(state));
        }
Ejemplo n.º 27
0
    protected override void OnMouseLeftClicked(MouseConsoleState state)
    {
        base.OnMouseLeftClicked(state);

        var position = state.CellPosition;

        GameScreen.Link foundlink = null;
        foreach (GameScreen.Link link in GameScreen.links)
        {
            if (link.points.Contains(position))
            {
                foundlink = link;
                break;
            }
        }
        if (foundlink != null)
        {
            QuestLike.Game.ProcessInput(foundlink.text, true);
        }
    }
Ejemplo n.º 28
0
 protected override void OnLeftMouseClicked(MouseConsoleState info)
 {
     if (!DisableColorPicker)
     {
         var location = this.TransformConsolePositionByControlPosition(info.CellPosition);
         if (location.X >= Width - 3)
         {
             _popup.SelectedColor = _selectedColor;
             _popup.Show(true);
             base.OnLeftMouseClicked(info);
         }
     }
     else if (EnableCharacterPicker)
     {
         var location = this.TransformConsolePositionByControlPosition(info.CellPosition);
         if (location.X >= Width - 3)
         {
             base.OnLeftMouseClicked(info);
         }
     }
 }
Ejemplo n.º 29
0
        /// <summary>
        /// Processing the mouse ignoring the attached <see cref="MouseHandler"/>.
        /// </summary>
        /// <param name="state">The mouse state related to this console.</param>
        /// <returns>True when the mouse is over this console and processing should stop.</returns>
        public bool ProcessMouseNonHandler(MouseConsoleState state)
        {
            var handlerResult = MouseHandler?.Invoke(this, state) ?? false;

            if (handlerResult || !IsVisible || !UseMouse)
            {
                return(false);
            }

            if (state.IsOnConsole)
            {
                if (isMouseOver != true)
                {
                    isMouseOver = true;
                    OnMouseEnter(state);
                }

                OnMouseMove(state);

                if (state.Mouse.LeftClicked)
                {
                    OnMouseLeftClicked(state);
                }

                if (state.Mouse.RightClicked)
                {
                    OnRightMouseClicked(state);
                }

                return(true);
            }

            if (isMouseOver)
            {
                isMouseOver = false;
                OnMouseExit(state);
            }

            return(false);
        }
Ejemplo n.º 30
0
    protected override void OnMouseLeftClicked(MouseConsoleState state)
    {
        base.OnMouseLeftClicked(state);

        var objects = GetAllObjectsAtPoint(state.ConsoleCellPosition);

        if (objects.Count == 1)
        {
            QuestLike.Game.ProcessInput($"look at {objects.First().ID}", true);
        }
        else if (objects.Count > 1)
        {
            Utilities.PromptSelection <GameObject>($"There are {objects.Count} items at this position, what do you want to look at?", objects.ToArray(), (gameobject, canceled) =>
            {
                if (canceled)
                {
                    return;
                }
                QuestLike.Game.ProcessInput($"look at {gameobject.ID}", true);
            });
        }
    }