Ejemplo n.º 1
0
        private void inkPanel_MouseUp(object sender, MouseButtonEventArgs e)
        {
            DrawCommand command = new DrawCommand(currentShape, inkPanel);

            undoRedo.InsertComand(command);

            if (!btnEraser.IsChecked.Value)
            {
                draw(e);
            }
            else if (btnEraser.IsChecked.Value)
            {
                currentTool = ToolType.Ellipse;
                draw(e);
            }
            if (e.LeftButton == MouseButtonState.Pressed && !btnEraser.IsChecked.Value)
            {
                inkPanel.Children.Remove(currentShape);
            }

            /*else if (e.LeftButton == MouseButtonState.Released && previousMouseEvent == MouseButtonState.Pressed)
             * {*/

            //}
            previousMouseEvent = e.LeftButton;
        }
Ejemplo n.º 2
0
 public static void SimulateMouseEvent(MouseButton button, MouseButtonState state)
 {
     uint x = 0;
     uint y = 0;
     switch (button)
     {
         case MouseButton.Left:
             if (state == MouseButtonState.Pressed)
                 mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0);
             else
                 mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0);
             break;
         case MouseButton.Middle:
             if (state == MouseButtonState.Pressed)
                 mouse_event(MOUSEEVENTF_MIDDLEDOWN, x, y, 0, 0);
             else
                 mouse_event(MOUSEEVENTF_MIDDLEUP, x, y, 0, 0);
             break;
         case MouseButton.Right:
             if (state == MouseButtonState.Pressed)
                 mouse_event(MOUSEEVENTF_RIGHTDOWN, x, y, 0, 0);
             else
                 mouse_event(MOUSEEVENTF_RIGHTUP, x, y, 0, 0);
             break;
     }
 }
 public override void Deserialize(NetworkReader reader)
 {
     base.Deserialize(reader);
     ProcessorObject  = reader.ReadUInt32();
     TargetVector     = reader.ReadVector2();
     MouseButtonState = reader.ReadBoolean() ? MouseButtonState.PRESS : MouseButtonState.HOLD;
 }
Ejemplo n.º 4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="performer">The gameobject of the player performing the aimed interaction</param>
 /// <param name="handObject">Object in the player's active hand. Null if player's hand is empty.</param>
 /// <param name="handSlot">slot of the active hand</param>
 /// <param name="buttonState">state of the mouse button, indicating whether it is being initiated
 /// or ending.</param>
 /// <param name="targetVector">vector pointing from shooter to the spot they are targeting - should NOT be normalized. Set to
 /// Vector2.zero if aiming at self.</param>
 private AimApply(GameObject performer, GameObject handObject, ItemSlot handSlot, MouseButtonState buttonState, Vector2 targetVector, Intent intent) :
     base(performer, handObject, intent)
 {
     this.targetVector     = targetVector;
     this.handSlot         = handSlot;
     this.mouseButtonState = buttonState;
 }
Ejemplo n.º 5
0
        public static void SimulateMouseDeviceAction(MouseButton button, MouseButtonState state, int x, int y)
        {
            var inputs = new List <WinAPI.USER32.INPUT>();


            if (button == MouseButton.None)
            {
                inputs.Add(
                    new WinAPI.USER32.INPUT {
                    type = WinAPI.USER32.INPUT_TYPE.INPUT_MOUSE,
                    mi   =
                    {
                        dx      = x,
                        dy      = y,
                        dwFlags = WinAPI.USER32.MOUSEEVENTF.MOVE_NOCOALESCE
                    }
                }
                    );
            }
            else
            {
                WinAPI.USER32.MOUSEEVENTF buttonFlag;
                switch (button)
                {
                case MouseButton.Left:
                    buttonFlag = state == MouseButtonState.Down ? WinAPI.USER32.MOUSEEVENTF.LEFTDOWN : WinAPI.USER32.MOUSEEVENTF.LEFTUP;
                    break;

                case MouseButton.Middle:
                    buttonFlag = state == MouseButtonState.Down ? WinAPI.USER32.MOUSEEVENTF.MIDDLEDOWN : WinAPI.USER32.MOUSEEVENTF.MIDDLEUP;
                    break;

                case MouseButton.Right:
                    buttonFlag = state == MouseButtonState.Down ? WinAPI.USER32.MOUSEEVENTF.RIGHTDOWN : WinAPI.USER32.MOUSEEVENTF.RIGHTUP;
                    break;

                default:
                    buttonFlag = 0;
                    break;
                }

                inputs.Add(
                    new WinAPI.USER32.INPUT {
                    type = WinAPI.USER32.INPUT_TYPE.INPUT_MOUSE,
                    mi   =
                    {
                        dx      = x,
                        dy      = y,
                        dwFlags = WinAPI.USER32.MOUSEEVENTF.ABSOLUTE | buttonFlag
                    }
                }
                    );
            }


            if (WinAPI.USER32.SendInput((uint)inputs.Count, inputs.ToArray(), WinAPI.USER32.INPUT.Size) == 0)
            {
                throw new Exception("Failed to emulate mouse event");
            }
        }
Ejemplo n.º 6
0
    private bool CheckAimApply(MouseButtonState buttonState)
    {
        ChangeDirection();
        //currently there is nothing for ghosts to interact with, they only can change facing
        if (PlayerManager.LocalPlayerScript.IsGhost)
        {
            return(false);
        }

        //can't do anything if we have no item in hand
        var handObj = UIManager.Hands.CurrentSlot.Item;

        if (handObj == null)
        {
            triggeredAimApply = null;
            secondsSinceLastAimApplyTrigger = 0;
            return(false);
        }

        var aimApplyInfo = AimApply.ByLocalPlayer(buttonState);

        if (buttonState == MouseButtonState.PRESS)
        {
            //it's being clicked down
            triggeredAimApply = null;
            //Checks for aim apply interactions which can trigger
            foreach (var aimApply in handObj.GetComponents <IInteractable <AimApply> >())
            {
                var interacted = aimApply.Interact(aimApplyInfo);
                if (interacted)
                {
                    triggeredAimApply = aimApply;
                    secondsSinceLastAimApplyTrigger = 0;
                    return(true);
                }
            }
        }
        else
        {
            //it's being held
            //if we are already triggering an AimApply, keep triggering it based on the AimApplyInterval
            if (triggeredAimApply != null)
            {
                secondsSinceLastAimApplyTrigger += Time.deltaTime;
                if (secondsSinceLastAimApplyTrigger > AimApplyInterval)
                {
                    if (triggeredAimApply.Interact(aimApplyInfo))
                    {
                        //only reset timer if it was actually triggered
                        secondsSinceLastAimApplyTrigger = 0;
                    }
                }

                //no matter what the result, we keep trying to trigger it until mouse is released.
                return(true);
            }
        }

        return(false);
    }
Ejemplo n.º 7
0
        public void Update(MouseButtonState buttonState, Vector2 mousePos, PlatformCharacter shooter, List <PlatformObject> allObjects, List <Projectile> projectiles)
        {
            if (buttonState == null)
            {
                return;
            }

            if (buttonState.justPressed)
            {
                foreach (PlatformObject p in allObjects)
                {
                    if (p is ChemBlock && p.bounds.Contains(mousePos))
                    {
                        clicked       = (ChemBlock)(p as ChemBlock).GetPrimaryBlock();
                        clickedOffset = mousePos - clicked.pos;
                        break;
                    }
                }
            }
            else if (buttonState.justReleased)
            {
                clicked = null;
            }

            if (clicked != null)
            {
                Vector2 offset = mousePos - (clicked.pos + clickedOffset);
                clicked.velocity = offset;
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Creates a move according to button press, and player role
        /// </summary>
        /// <param name="message"></param>
        /// <param name="left"></param>
        /// <param name="right"></param>
        /// <returns></returns>
        protected Move GetMove(string message, MouseButtonState left, MouseButtonState right)
        {
            if (message == null)
            {
                return(null);
            }
            string[] vars = message.Split(';');
            Move     move = new Move
            {
                X = Int32.Parse(vars[0]),
                Y = Int32.Parse(vars[1])
            };

            if (left == MouseButtonState.Pressed)
            {
                //Bomb cant get left clicked again
                if (vars.Length > 2)
                {
                    return(null);
                }
                move.Type = (role == MoveSet.MineSetter) ? MoveType.Set : MoveType.Reveal;
            }
            else if (right == MouseButtonState.Pressed)
            {
                move.Type = (role == MoveSet.MineSetter) ? MoveType.Unset : MoveType.Mark;
            }
            else
            {
                return(null);
            }
            return(move);
        }
Ejemplo n.º 9
0
 public void Update(MouseButtonState buttonState, Vector2 mousePos, PlatformCharacter shooter, List <PlatformObject> allObjects, List <Projectile> projectiles)
 {
     if (buttonState != null && buttonState.isDown)
     {
         shooter.jetting = true;
     }
 }
Ejemplo n.º 10
0
 public MouseState(Point position, MouseButtonState leftButton, MouseButtonState rightButton, MouseButtonState middleButton, MouseButtonState xButton1Button, MouseButtonState xButton2Button) : this(NoesisGUI_PINVOKE.new_MouseState__SWIG_1(ref position, (int)leftButton, (int)rightButton, (int)middleButton, (int)xButton1Button, (int)xButton2Button), true)
 {
     if (NoesisGUI_PINVOKE.SWIGPendingException.Pending)
     {
         throw NoesisGUI_PINVOKE.SWIGPendingException.Retrieve();
     }
 }
Ejemplo n.º 11
0
    public void Update()
    {
        // Determine the current mouse state.
        var currentMouseState = new MouseButtonState();

        // Project the screen location of the mouse to world coordinates
        var mouseEvent = new MouseEvent();
        var mousePosition2d = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
        mouseEvent.GlobalCoordinates = ScreenToGlobal(mousePosition2d);
        mouseEvent.ScreenCoordinates = mousePosition2d;

        for(int ii = 0; ii < 3; ii++)
        {
            var curButtonState = currentMouseState.Buttons[ii];

            if (previousMouseState != null)
            {
                var prevButtonState = this.previousMouseState.Buttons[ii];
                mouseEvent.MouseButton = (MouseButton)ii;

                if (curButtonState == ButtonState.Pressed && prevButtonState == ButtonState.Released)
                {
                    this.mouseHandler.MousePressed(mouseEvent);
                }

                if (curButtonState == ButtonState.Released && prevButtonState == ButtonState.Pressed)
                {
                    this.mouseHandler.MouseReleased(mouseEvent);
                    this.mouseHandler.MouseClicked(mouseEvent);
                }
            }
        }

        previousMouseState = currentMouseState;
    }
Ejemplo n.º 12
0
 public MouseWheelEventArgs(object source, RoutedEvent routedEvent, Point rawPosition,
                            MouseButtonState leftButton, MouseButtonState middleButton,
                            MouseButtonState rightButton, int delta)
     : base(source, routedEvent, rawPosition, leftButton, middleButton, rightButton)
 {
     Delta = delta;
 }
Ejemplo n.º 13
0
        public void Update(GameTime time)
        {
            MouseState state = Mouse.GetState();

            this.wheelTurns      = state.ScrollWheelValue - this.lastState.ScrollWheelValue;
            this.wheelTurnedUp   = FezButtonStateExtensions.NextState(this.wheelTurnedUp, this.wheelTurns > 0);
            this.wheelTurnedDown = FezButtonStateExtensions.NextState(this.wheelTurnedDown, this.wheelTurns < 0);
            if (this.renderPanelHandle != this.parentFormHandle)
            {
                state = Mouse.GetState();
            }
            this.movement = new Point(state.X - this.position.X, state.Y - this.position.Y);
            this.position = new Point(state.X, state.Y);
            if (state != this.lastState)
            {
                bool hasMoved = this.movement.X != 0 || this.movement.Y != 0;
                this.leftButton   = this.DeduceMouseButtonState(this.leftButton, this.lastState.LeftButton, state.LeftButton, hasMoved);
                this.middleButton = this.DeduceMouseButtonState(this.middleButton, this.lastState.MiddleButton, state.MiddleButton, hasMoved);
                this.rightButton  = this.DeduceMouseButtonState(this.rightButton, this.lastState.RightButton, state.RightButton, hasMoved);
                this.lastState    = state;
            }
            else
            {
                this.ResetButton(ref this.leftButton);
                this.ResetButton(ref this.middleButton);
                this.ResetButton(ref this.rightButton);
            }
        }
Ejemplo n.º 14
0
 private void TryProcessDrag(MouseEventArgs e, MouseButtonState state, VimKey vimKey)
 {
     if (state == MouseButtonState.Pressed)
     {
         e.Handled = TryProcess(vimKey);
     }
 }
Ejemplo n.º 15
0
    private bool CheckAimApply(MouseButtonState buttonState)
    {
        ChangeDirection();
        //currently there is nothing for ghosts to interact with, they only can change facing
        if (PlayerManager.LocalPlayerScript.IsGhost)
        {
            return(false);
        }

        //can't do anything if we have no item in hand
        var handObj = UIManager.Hands.CurrentSlot.Item;

        if (handObj == null)
        {
            triggeredAimApply = null;
            secondsSinceLastAimApplyTrigger = 0;
            return(false);
        }

        var aimApplyInfo = AimApply.ByLocalPlayer(buttonState);

        if (buttonState == MouseButtonState.PRESS)
        {
            //it's being clicked down
            triggeredAimApply = null;
            //Checks for aim apply interactions which can trigger
            var comps = handObj.GetComponents <IBaseInteractable <AimApply> >()
                        .Where(mb => mb != null && (mb as MonoBehaviour).enabled);
            var triggered = InteractionUtils.ClientCheckAndTrigger(comps, aimApplyInfo);
            if (triggered != null)
            {
                triggeredAimApply = triggered;
                secondsSinceLastAimApplyTrigger = 0;
                return(true);
            }
        }
        else
        {
            //it's being held
            //if we are already triggering an AimApply, keep triggering it based on the AimApplyInterval
            if (triggeredAimApply != null)
            {
                secondsSinceLastAimApplyTrigger += Time.deltaTime;
                if (secondsSinceLastAimApplyTrigger > AimApplyInterval)
                {
                    if (triggeredAimApply.CheckInteract(aimApplyInfo, NetworkSide.Client))
                    {
                        //only reset timer if it was actually triggered
                        secondsSinceLastAimApplyTrigger = 0;
                        InteractionUtils.RequestInteract(aimApplyInfo, triggeredAimApply);
                    }
                }

                //no matter what the result, we keep trying to trigger it until mouse is released.
                return(true);
            }
        }

        return(false);
    }
        private void inkCanvas_MouseMove(Object sender, MouseEventArgs e)
        {
            tb.Content = (e.GetPosition(null).X - 55) + ";" + (e.GetPosition(null).Y - 18);
            if (yeep)
            {
                if (e.LeftButton == MouseButtonState.Pressed)
                {
                    InkCan.Children.Remove(currentShape);

                    switch (currentTool)
                    {
                    case ToolType.Line:
                        drawLine(e);
                        break;

                    case ToolType.Rect:
                        drawRect(e);
                        break;

                    case ToolType.Ellipse:
                        drawEllipse(e);
                        break;

                    case ToolType.RectSome:
                        drawRectSome(e);
                        break;
                    }
                }
                previousMouseEvent = e.LeftButton;
                mb_save            = false;
            }
        }
Ejemplo n.º 17
0
        public bool OnMouseMove(MouseButtonState leftButton, Point location)
        {
            if (leftButton == MouseButtonState.Pressed)
            {
                if (LastDragPoint == InvalidDragPoint)
                {
                    LastDragPoint = location;
                }

                if (GridManager.HoverInfo.HitTest != GridManagerHitTest.None)
                {
                    DoSizing(location);
                }
                else if (SelectedArea == CropArea.DragArea)
                {
                    DoDrag(location);
                }
                else if (SelectedArea != CropArea.None)
                {
                    MakeRotation(location);
                }
                return(true);
            }
            else if (GridManager.OnMouseMove(location))
            {
                SelectedArea = CropArea.None;
                UpdateCursor();
                return(true);
            }
            SelectedArea = CalcHitInfo(location);
            UpdateCursor();
            return(true);
        }
Ejemplo n.º 18
0
        internal MouseMoveEventArgs(Vector2 position, Vector2 delta, MouseButtonState buttonState)
        {
            Position = position;
            Delta    = delta;

            ButtonState = buttonState;
        }
Ejemplo n.º 19
0
 private void TryProcessDrag(MouseEventArgs e, MouseButtonState state, VimKey vimKey)
 {
     if (state == MouseButtonState.Pressed)
     {
         e.Handled = TryProcess(vimKey);
     }
 }
Ejemplo n.º 20
0
        void ActionMove(MouseButtonState e, Point position)
        {
            if (e == MouseButtonState.Pressed)
            {
                if (movebtn)
                {
                    btnactv.Margin = new Thickness(position.X - btnactv.Width / 2, position.Y - btnactv.Height / 2, 0, 0);
                    FecharMenu();
                }
                else

                if (desenhando)
                {
                    if (action == Enumaction.quadrado)
                    {
                        paintboard.Strokes[paintboard.Strokes.Count - 1] = NewRectangle(initialP.X, initialP.Y, position.X - initialP.X, position.Y - initialP.Y);
                    }
                    if (action == Enumaction.circulo)
                    {
                        double distancia = Math.Sqrt(Math.Pow(initialP.X - position.X, 2) + Math.Pow(initialP.Y - position.Y, 2));
                        paintboard.Strokes[paintboard.Strokes.Count - 1] = NewCircle(initialP.X, initialP.Y, distancia);
                    }
                    if (action == Enumaction.linha)
                    {
                        paintboard.Strokes[paintboard.Strokes.Count - 1] = NewLine(initialP.X, initialP.Y, position.X, position.Y);
                    }
                }
            }
        }
Ejemplo n.º 21
0
        private void AddShape(MouseButtonState state, Point mousePos)
        {
            int vertices = shapeDeclaration.VerticesPosition.Count;

            if (vertices == 1)
            {
                shapeDeclaration.VerticesPosition.Add(shapeDeclaration.VerticesPosition[0] + Vector2.One);
            }
            if (vertices != 0)
            {
                Shapes.Add(
                    new FixedBoundsShape(
                        shapeDeclaration.VerticesPosition,
                        shapeDeclaration.ViewportOffset.X,
                        shapeDeclaration.ViewportOffset.Y,
                        (int)ActualWidth,
                        (int)ActualHeight,
                        Color.Black,
                        graphicsDevice));
                ShapeAdded?.Invoke(this, EventArgs.Empty);
            }
            trackShape = InitializeShape;
            processedShape.Reset();
            GraphicsControl.Invalidate();
        }
Ejemplo n.º 22
0
 public void Reset()
 {
     State        = MouseButtonState.Released;
     Flags        = DDMouseButtonFlags.None;
     TimeStamp    = new DateTime();
     DragRefPoint = new Point();
 }
    public override void Deserialize(NetworkReader reader)
    {
        base.Deserialize(reader);
        ComponentType   = componentIDToComponentType[reader.ReadUInt16()];
        InteractionType = interactionIDToInteractionType[reader.ReadByte()];
        ProcessorObject = reader.ReadUInt32();

        if (InteractionType == typeof(PositionalHandApply))
        {
            TargetObject = reader.ReadUInt32();
            TargetVector = reader.ReadVector2();
        }
        else if (InteractionType == typeof(HandApply))
        {
            TargetObject   = reader.ReadUInt32();
            TargetBodyPart = (BodyPartType)reader.ReadUInt32();
        }
        else if (InteractionType == typeof(AimApply))
        {
            TargetVector     = reader.ReadVector2();
            MouseButtonState = reader.ReadBoolean() ? MouseButtonState.PRESS : MouseButtonState.HOLD;
        }
        else if (InteractionType == typeof(MouseDrop))
        {
            TargetObject = reader.ReadUInt32();
            UsedObject   = reader.ReadUInt32();
        }
        else if (InteractionType == typeof(InventoryApply))
        {
            UsedObject = reader.ReadUInt32();
            Storage    = reader.ReadUInt32();
            SlotIndex  = reader.ReadInt32();
            NamedSlot  = (NamedSlot)reader.ReadInt32();
        }
    }
Ejemplo n.º 24
0
        protected override bool Process(MouseButton button, MouseButtonState state, MouseInformation info)
        {
            var inActivationArea = 0 < info.X && info.X < SystemParameters.PrimaryScreenWidth * 0.1;

            if (button == MouseButton.Left)
            {
                if (state == MouseButtonState.Released)
                {
                    isDown = false;
                }

                if (state == MouseButtonState.Pressed && inActivationArea)
                {
                    isDown = true;

                    Task.Delay(ACTIVATION_INTERVAL).ContinueWith(async _ =>
                    {
                        for (var t = 0; t < 4; t++)
                        {
                            if (WasActivated())
                            {
                                break;
                            }

                            await Task.Delay(ACTIVATION_INTERVAL);
                        }
                    });
                }
            }

            return(false);
        }
Ejemplo n.º 25
0
        private void Screener_MouseUp(MouseButtonState mouseState)
        {
            if (mouseState == MouseButtonState.Released && _isMouseDown)
            {
                WindowState = WindowState.Minimized;
                if (_width >= MinImgSize || _height >= MinImgSize)
                {
                    var picture = SearchHelper.CaptureScreen(GetMin(_startX, _curX), GetMin(_startY, _curY), _width, _height, _winHandle);
                    if (picture != null)
                    {
                        Picture   = picture;
                        Rectangle = new Rectangle((int)GetMin(_startX, _curX), (int)GetMin(_startY, _curY), (int)_width, (int)_height);
                    }
                }
                else
                {
                    Picture = PixelTraceCapture((int)_curX, (int)_curY);
                }

                _curX        = _curY = _startX = _startY = 0;
                _isMouseDown = false;
                if (!DialogResult.HasValue)
                {
                    DialogResult = Picture != null;
                    Close();
                }
            }
        }
Ejemplo n.º 26
0
        private void InImage_MouseMove(object sender, MouseEventArgs e)
        {
            MouseButtonState mb = e.LeftButton;
            MouseButtonState rb = e.RightButton;

            if (MouseButtonState.Pressed == mb)
            {
                Point p = e.GetPosition(InImage);

                int posX = (int)p.X;
                int posY = (int)p.Y;
                if ((posX >= 2) && (posY >= 2) && (posX < inBitmap.Width - 2) && (posY < inBitmap.Height - 2))
                {
                    int skala = (int)inBitmap.Width / szerokosc;
                    inBitmap.FillRectangle(posX - 2, posY - 2, posX + 2, posY + 2, Color.FromRgb(0, 0, 0));
                    zapalonePiksele[posX / skala + (posY / skala) * szerokosc] = 1;
                }
            }
            else if (MouseButtonState.Pressed == rb)
            {
                inBitmap.Clear(Color.FromRgb(255, 255, 255));
                Parallel.For(0, wysokosc * szerokosc, i => zapalonePiksele[i] = 0);
            }
            InImage.Source = inBitmap;
        }
Ejemplo n.º 27
0
 public MouseButtonEventArgs(RoutedEvent routedEvent, object originalSource, MouseDevice mouseDevice, int timestamp, Point absolutePosition, MouseButton changedButton, MouseButtonState buttonState, int clickCount)
     : base(routedEvent, originalSource, mouseDevice, timestamp, absolutePosition)
 {
     this.ChangedButton = changedButton;
     this.ButtonState = buttonState;
     this.ClickCount = clickCount;
 }
Ejemplo n.º 28
0
        private void draw(MouseEventArgs e)
        {
            if (e.LeftButton == MouseButtonState.Pressed)
            {
                switch (currentTool)
                {
                case ToolType.Line:
                    drawLine(e);
                    break;

                case ToolType.Ellipse:
                    drawEllipse(e, false);
                    break;

                case ToolType.Rectangle:
                    drawRectangle(e);
                    break;

                case ToolType.Triangle:
                    drawTriangle(e);
                    break;

                default:
                    break;
                }
            }
            else if (e.LeftButton == MouseButtonState.Released && previousMouseEvent == MouseButtonState.Pressed)
            {
                DrawCommand command = new DrawCommand(currentShape, inkPanel);
                undoRedo.InsertComand(command);
            }
            previousMouseEvent = e.LeftButton;
        }
Ejemplo n.º 29
0
 public void Paint(MouseButtonState state, Point mousePos)
 {
     //if (graphicsDevice.Viewport.Bounds.Contains(mousePos))
     //{
     trackShape(state, mousePos);
     //}
 }
Ejemplo n.º 30
0
        /// <summary>
        /// Get button state.
        /// </summary>
        /// <param name="mouseButton">The mouse button to check.</param>
        /// <returns>MouseButtonState instance.</returns>
        private static MouseButtonState GetButtonState(MouseButton mouseButton)
        {
            MouseButtonState mouseButtonState = MouseButtonState.Released;

            int virtualKeyCode = 0;

            switch (mouseButton)
            {
            case MouseButton.Left:
                virtualKeyCode = NativeMethods.VK_LBUTTON;
                break;

            case MouseButton.Right:
                virtualKeyCode = NativeMethods.VK_RBUTTON;
                break;

            case MouseButton.Middle:
                virtualKeyCode = NativeMethods.VK_MBUTTON;
                break;

            case MouseButton.XButton1:
                virtualKeyCode = NativeMethods.VK_XBUTTON1;
                break;

            case MouseButton.XButton2:
                virtualKeyCode = NativeMethods.VK_XBUTTON2;
                break;
            }

            mouseButtonState = (NativeMethods.GetKeyState(virtualKeyCode) & 0x8000) != 0 ? MouseButtonState.Pressed : MouseButtonState.Released;

            return(mouseButtonState);
        }
    public void OnMouseButton(Vector3 mousePosition, StateInformation stateInformation)
    {
        IPlacedObject    selectedObject       = stateInformation.selectedObject;
        MouseButtonState leftMouseButtonState = leftMouseButton.GetState();

        // moving the Object
        if (leftMouseButtonState == MouseButtonState.DOWN)
        {
            selectedObject.SetAllCollidersStatus(false);
        }
        else if (leftMouseButtonState == MouseButtonState.PRESSED)
        {
            selectedObject.RemoveWeaponFromPerson();
            //selectedObject.SetAllCollidersStatus(false);
            objectEditingModule.MoveObject(selectedObject, mousePosition);
        }
        else if (leftMouseButtonState == MouseButtonState.UP)
        {
            selectedObject.SetAllCollidersStatus(true);
        }

        // Giving an Enemy a Weapon
        if (leftMouseButtonState == MouseButtonState.UP && lastLeftMouseButtonState == MouseButtonState.PRESSED)
        {
            IPlacedObject hoveredObject    = stateInformation.hoveredObject;
            bool          objectCanBeGiven = objectInformationModule.CheckIfWeaponCanBeGivenToPerson(selectedObject, hoveredObject);
            if (objectCanBeGiven)
            {
                // give selectedObject to hoveredObject
                objectEditingModule.GiveWeaponToPerson(selectedObject, hoveredObject);
            }
        }
        lastLeftMouseButtonState = leftMouseButtonState;
    }
Ejemplo n.º 32
0
        private void HandleMouseEvent(
            MouseButtonState previousMouseButtonState,
            MouseEventFlags eventFlags,
            MouseButtonState currentButtonState,
            COORD mousePosition)
        {
            if (eventFlags.HasFlag(MouseEventFlags.MOUSE_MOVED) &&
                currentButtonState == MouseButtonState.FROM_LEFT_1ST_BUTTON_PRESSED)
            {
                var elementHit = _display.HitTest(mousePosition.X, mousePosition.Y);
                if (elementHit == _battleField)
                {
                    _battleField.SelectPositionNear(mousePosition.X, mousePosition.Y);
                }
            }

            if (eventFlags.HasFlag(MouseEventFlags.MOUSE_BUTTON_STATE_CHANGED))
            {
                if (currentButtonState == MouseButtonState.ALL_RELEASED &&
                    previousMouseButtonState == MouseButtonState.FROM_LEFT_1ST_BUTTON_PRESSED)
                {
                    //left button clicked
                    var elementHit = _display.HitTest(mousePosition.X, mousePosition.Y);
                    if (elementHit == _battleField)
                    {
                        _battleField.SelectPositionNear(mousePosition.X, mousePosition.Y);
                        if (_battleField.SelectedPosition != null)
                        {
                            ConfirmSelectedPosition();
                        }
                    }
                }
            }
        }
Ejemplo n.º 33
0
    /// <summary>
    /// Create an AimAPply for the local player aiming at the current mouse position with the item in their
    /// active hand slot.
    /// </summary>
    /// <param name="buttonState">state of mouse (initial click vs. being held after a click)</param>
    /// <returns></returns>
    public static AimApply ByLocalPlayer(MouseButtonState buttonState)
    {
        //Check for self aim
        if (PLAYER_LAYER_MASK == -1)
        {
            PLAYER_LAYER_MASK = LayerMask.GetMask("Players");
        }

        var InternaltargetPosition = MouseUtils.MouseToWorldPos().ToLocal(PlayerManager.LocalPlayer.RegisterTile().Matrix).To2();

        //check for self aim if target vector is sufficiently small so we can avoid raycast
        var selfAim      = false;
        var targetVector = (Vector2)MouseUtils.MouseToWorldPos() -
                           (Vector2)PlayerManager.LocalPlayer.transform.position;

        if (targetVector.magnitude < 0.6)
        {
            selfAim = MouseUtils.GetOrderedObjectsUnderMouse(PLAYER_LAYER_MASK,
                                                             go => go == PlayerManager.LocalPlayer).Any();
        }

        return(new AimApply(PlayerManager.LocalPlayer, PlayerManager.LocalPlayerScript.DynamicItemStorage.GetActiveHandSlot().ItemObject,
                            PlayerManager.LocalPlayerScript.DynamicItemStorage.GetActiveHandSlot(),
                            buttonState,
                            selfAim ? PlayerManager.LocalPlayer.transform.localPosition.To2() : InternaltargetPosition, UIManager.DamageZone, UIManager.CurrentIntent, PlayerManager.LocalPlayer.transform.localPosition.To2()));
    }
Ejemplo n.º 34
0
        protected override void OnMouseDown(MouseButtonEventArgs e)
        {
            base.OnMouseDown(e);

            this.isMouseDown = true;

            Point            pt  = e.GetPosition(this);
            MouseButtonState mb  = e.RightButton;
            MouseButtonState mbl = e.LeftButton;


            if (mb == MouseButtonState.Pressed)
            {
                mbpressed = Constants.Mousebutton.Right;
            }


            if (mbl == MouseButtonState.Pressed)
            {
                mbpressed = Constants.Mousebutton.Left;
            }


            int x = (int)((pt.X) / Constants.CELL_SIZE);
            int y = (int)((pt.Y) / Constants.CELL_SIZE);

            if (null != this.Click)
            {
                Click(this, new ClickEventArgs(x, y, mbpressed));
            }
        }
Ejemplo n.º 35
0
 public MouseButtonEventArgs(object source, RoutedEvent routedEvent, Point rawPosition,
                             MouseButtonState leftButton, MouseButtonState middleButton,
                             MouseButtonState rightButton,
                             MouseButton button, int clickCount = 1)
     : base(source, routedEvent, rawPosition, leftButton, middleButton, rightButton) {
     this.button = button;
     this.clickCount = clickCount;
 }
Ejemplo n.º 36
0
 public Visual3DClickedEventArgs(Visual3D visual, MouseButtonState left, MouseButtonState right, bool hasMoved, Point position)
 {
     _Visual = visual;
     _LeftButton = left;
     _RightButton = right;
     _HasMoved = hasMoved;
     _MousePosition = position;
 }
Ejemplo n.º 37
0
 /// <summary>
 /// Default Constructor.
 /// </summary>
 /// <param name="button">The MouseButton being pressed.</param>
 /// <param name="clicks">Click counter.</param>
 /// <param name="x">X Axis position.</param>
 /// <param name="y">Y Axis position</param>
 /// <param name="delta">Up or down scroll flow.</param>
 /// <param name="isUp">True if it's a mouse up event</param>
 public CustomMouseEventArgs(MouseButton button, int clicks, int x, int y, int delta, MouseButtonState state = MouseButtonState.Pressed)
 {
     Button = button;
     Clicks = clicks;
     PosX = x;
     PosY = y;
     Delta = delta;
     State = state;
 }
Ejemplo n.º 38
0
 internal MouseButtonEventArgs(RoutedEvent routedEvent,
     MouseButton changedButton,
     MouseButtonState buttonState,
     int clickCount,
     System.Windows.Input.MouseButtonEventArgs args)
     : base(routedEvent)
 {
     this.ChangedButton = changedButton;
     this.ButtonState = buttonState;
     this.ClickCount = clickCount;
     this.originalMouseButtonEventArgs = args;
 }
Ejemplo n.º 39
0
 private MouseButtonState DeduceMouseButtonState(MouseButtonState lastMouseButtonState, ButtonState lastButtonState, ButtonState buttonState, bool hasMoved)
 {
   if (lastButtonState == ButtonState.Released && buttonState == ButtonState.Released)
     return new MouseButtonState(MouseButtonStates.Idle);
   if (lastButtonState == ButtonState.Released && buttonState == ButtonState.Pressed)
     return new MouseButtonState(MouseButtonStates.Pressed, new MouseDragState(this.position, this.position));
   if (lastButtonState == ButtonState.Pressed && buttonState == ButtonState.Pressed)
   {
     if (!hasMoved)
       return lastMouseButtonState;
     if (!lastMouseButtonState.DragState.PreDrag || Math.Abs(this.position.X - lastMouseButtonState.DragState.Start.X) <= 3 && Math.Abs(this.position.Y - lastMouseButtonState.DragState.Start.Y) <= 3)
       return new MouseButtonState(MouseButtonStates.Down, new MouseDragState(lastMouseButtonState.DragState.Start, this.position, true));
     if (lastMouseButtonState.State == MouseButtonStates.DragStarted || lastMouseButtonState.State == MouseButtonStates.Dragging)
       return new MouseButtonState(MouseButtonStates.Dragging, new MouseDragState(lastMouseButtonState.DragState.Start, this.position, true));
     else
       return new MouseButtonState(MouseButtonStates.DragStarted, new MouseDragState(lastMouseButtonState.DragState.Start, this.position, true));
   }
   else
   {
     if (lastButtonState != ButtonState.Pressed || buttonState != ButtonState.Released)
       throw new InvalidOperationException();
     if ((lastMouseButtonState.State == MouseButtonStates.Pressed || lastMouseButtonState.State == MouseButtonStates.Down) && !hasMoved)
       return new MouseButtonState(MouseButtonStates.Clicked);
     else
       return new MouseButtonState(MouseButtonStates.DragEnded);
   }
 }
Ejemplo n.º 40
0
 public void Update(GameTime time)
 {
   MouseState state = Mouse.GetState();
   this.wheelTurns = state.ScrollWheelValue - this.lastState.ScrollWheelValue;
   this.wheelTurnedUp = FezButtonStateExtensions.NextState(this.wheelTurnedUp, this.wheelTurns > 0);
   this.wheelTurnedDown = FezButtonStateExtensions.NextState(this.wheelTurnedDown, this.wheelTurns < 0);
   if (this.renderPanelHandle != this.parentFormHandle)
     state = Mouse.GetState();
   this.movement = new Point(state.X - this.position.X, state.Y - this.position.Y);
   this.position = new Point(state.X, state.Y);
   if (state != this.lastState)
   {
     bool hasMoved = this.movement.X != 0 || this.movement.Y != 0;
     this.leftButton = this.DeduceMouseButtonState(this.leftButton, this.lastState.LeftButton, state.LeftButton, hasMoved);
     this.middleButton = this.DeduceMouseButtonState(this.middleButton, this.lastState.MiddleButton, state.MiddleButton, hasMoved);
     this.rightButton = this.DeduceMouseButtonState(this.rightButton, this.lastState.RightButton, state.RightButton, hasMoved);
     this.lastState = state;
   }
   else
   {
     this.ResetButton(ref this.leftButton);
     this.ResetButton(ref this.middleButton);
     this.ResetButton(ref this.rightButton);
   }
 }
Ejemplo n.º 41
0
 public RawMouseButtonEventArgs(MouseButton button, MouseButtonState buttonState, Point position, int timestamp)
     : base(position, timestamp)
 {
     this.Button = button;
     this.ButtonState = buttonState;
 }
Ejemplo n.º 42
0
 public MouseEventArgs(object source, RoutedEvent routedEvent, Point rawPosition,
                       MouseButtonState leftButton, MouseButtonState middleButton, MouseButtonState rightButton)
     : base(source, routedEvent) {
     //
     this.rawPosition = rawPosition;
     this.LeftButton = leftButton;
     this.MiddleButton = middleButton;
     this.RightButton = rightButton;
 }
Ejemplo n.º 43
0
 /// <summary>
 /// ボタンの押し状態をセットする関数
 /// </summary>
 /// <param name="mButtonState">押し状態</param>
 internal void SetState(MouseButtonState mButtonState)
 {
     mouseButtonState=mButtonState;
 }
Ejemplo n.º 44
0
 private void OnButtonDown(object sender, MouseButtonEventArgs e)
 {
     var pos = ScreenPosition;
     _updateActions.Add(()=>ButtonDown?.Invoke(new Point((int)pos.X, (int)pos.Y), (int)e.ChangedButton));
     _left = e.LeftButton;
     _right = e.RightButton;
     _middle = e.MiddleButton;
 }
Ejemplo n.º 45
0
 /// <summary>
 /// 押し状態とホイール回転状態をセットする関数
 /// </summary>
 /// <param name="mbuttonstate">押し状態</param>
 /// <param name="rot">回転度合い</param>
 internal void SetState(MouseButtonState mbuttonstate,double rot)
 {
     rotation = rot;
     mouseButtonState = mbuttonstate;
 }
Ejemplo n.º 46
0
        public void ParseInputEvent(INPUT_RECORD inputRecord, Control rootElement) {
            if (inputRecord.EventType == EventType.MOUSE_EVENT) {
                MOUSE_EVENT_RECORD mouseEvent = inputRecord.MouseEvent;

                if (mouseEvent.dwEventFlags != MouseEventFlags.PRESSED_OR_RELEASED &&
                    mouseEvent.dwEventFlags != MouseEventFlags.MOUSE_MOVED &&
                    mouseEvent.dwEventFlags != MouseEventFlags.DOUBLE_CLICK &&
                    mouseEvent.dwEventFlags != MouseEventFlags.MOUSE_WHEELED &&
                    mouseEvent.dwEventFlags != MouseEventFlags.MOUSE_HWHEELED) {
                    //
                    throw new InvalidOperationException("Flags combination in mouse event was not expected.");
                }
                Point rawPosition;
                if (mouseEvent.dwEventFlags == MouseEventFlags.MOUSE_MOVED ||
                    mouseEvent.dwEventFlags == MouseEventFlags.PRESSED_OR_RELEASED) {
                    rawPosition = new Point(mouseEvent.dwMousePosition.X, mouseEvent.dwMousePosition.Y);
                    lastMousePosition = rawPosition;
                } else {
                    // При событии MOUSE_WHEELED в Windows некорректно устанавливается mouseEvent.dwMousePosition
                    // Поэтому для определения элемента, над которым производится прокручивание колёсика, мы
                    // вынуждены сохранять координаты, полученные при предыдущем событии мыши
                    rawPosition = lastMousePosition;
                }
                Control topMost = findSource(rawPosition, rootElement);

                // если мышь захвачена контролом, то события перемещения мыши доставляются только ему,
                // события, связанные с нажатием мыши - тоже доставляются только ему, вместо того
                // контрола, над которым событие было зарегистрировано. Такой механизм необходим,
                // например, для корректной обработки перемещений окон (вверх или в стороны)
                Control source = (inputCaptureStack.Count != 0) ? inputCaptureStack.Peek() : topMost;
                
                if (mouseEvent.dwEventFlags == MouseEventFlags.MOUSE_MOVED) {
                    MouseButtonState leftMouseButtonState = getLeftButtonState(mouseEvent.dwButtonState);
                    MouseButtonState middleMouseButtonState = getMiddleButtonState(mouseEvent.dwButtonState);
                    MouseButtonState rightMouseButtonState = getRightButtonState(mouseEvent.dwButtonState);
                    //
                    MouseEventArgs mouseEventArgs = new MouseEventArgs(source, Control.PreviewMouseMoveEvent,
                                                                       rawPosition,
                                                                       leftMouseButtonState,
                                                                       middleMouseButtonState,
                                                                       rightMouseButtonState
                        );
                    eventsQueue.Enqueue(mouseEventArgs);
                    //
                    lastLeftMouseButtonState = leftMouseButtonState;
                    lastMiddleMouseButtonState = middleMouseButtonState;
                    lastRightMouseButtonState = rightMouseButtonState;

                    // detect mouse enter / mouse leave events

                    // path to source from root element down
                    List<Control> mouseOverStack = new List<Control>();
                    Control current = topMost;
                    while (null != current) {
                        mouseOverStack.Insert(0, current);
                        current = current.Parent;
                    }

                    int index;
                    for (index = 0; index < Math.Min(mouseOverStack.Count, prevMouseOverStack.Count); index++) {
                        if (mouseOverStack[index] != prevMouseOverStack[index])
                            break;
                    }

                    for (int i = prevMouseOverStack.Count - 1; i >= index; i-- ) {
                        Control control = prevMouseOverStack[i];
                        MouseEventArgs args = new MouseEventArgs(control, Control.MouseLeaveEvent,
                                                                    rawPosition,
                                                                    leftMouseButtonState,
                                                                    middleMouseButtonState,
                                                                    rightMouseButtonState
                            );
                        eventsQueue.Enqueue(args);
                    }

                    for (int i = index; i < mouseOverStack.Count; i++ ) {
                        // enqueue MouseEnter event
                        Control control = mouseOverStack[i];
                        MouseEventArgs args = new MouseEventArgs(control, Control.MouseEnterEvent,
                                                                    rawPosition,
                                                                    leftMouseButtonState,
                                                                    middleMouseButtonState,
                                                                    rightMouseButtonState
                            );
                        eventsQueue.Enqueue(args);
                    }

                    prevMouseOverStack.Clear();
                    prevMouseOverStack.AddRange(mouseOverStack);
                }
                if (mouseEvent.dwEventFlags == MouseEventFlags.PRESSED_OR_RELEASED) {
                    //
                    MouseButtonState leftMouseButtonState = getLeftButtonState(mouseEvent.dwButtonState);
                    MouseButtonState middleMouseButtonState = getMiddleButtonState(mouseEvent.dwButtonState);
                    MouseButtonState rightMouseButtonState = getRightButtonState(mouseEvent.dwButtonState);
                    //
                    if (leftMouseButtonState != lastLeftMouseButtonState) {
                        MouseButtonEventArgs eventArgs = new MouseButtonEventArgs(source,
                            leftMouseButtonState == MouseButtonState.Pressed ? Control.PreviewMouseDownEvent : Control.PreviewMouseUpEvent,
                            rawPosition,
                            leftMouseButtonState,
                            lastMiddleMouseButtonState,
                            lastRightMouseButtonState,
                            MouseButton.Left
                            );
                        eventsQueue.Enqueue(eventArgs);
                    }
                    if (middleMouseButtonState != lastMiddleMouseButtonState) {
                        MouseButtonEventArgs eventArgs = new MouseButtonEventArgs(source,
                            middleMouseButtonState == MouseButtonState.Pressed ? Control.PreviewMouseDownEvent : Control.PreviewMouseUpEvent,
                            rawPosition,
                            lastLeftMouseButtonState,
                            middleMouseButtonState,
                            lastRightMouseButtonState,
                            MouseButton.Middle
                            );
                        eventsQueue.Enqueue(eventArgs);
                    }
                    if (rightMouseButtonState != lastRightMouseButtonState) {
                        MouseButtonEventArgs eventArgs = new MouseButtonEventArgs(source,
                            rightMouseButtonState == MouseButtonState.Pressed ? Control.PreviewMouseDownEvent : Control.PreviewMouseUpEvent,
                            rawPosition,
                            lastLeftMouseButtonState,
                            lastMiddleMouseButtonState,
                            rightMouseButtonState,
                            MouseButton.Right
                            );
                        eventsQueue.Enqueue(eventArgs);
                    }
                    //
                    lastLeftMouseButtonState = leftMouseButtonState;
                    lastMiddleMouseButtonState = middleMouseButtonState;
                    lastRightMouseButtonState = rightMouseButtonState;
                }

                if (mouseEvent.dwEventFlags == MouseEventFlags.MOUSE_WHEELED) {
                    MouseWheelEventArgs args = new MouseWheelEventArgs(
                        topMost,
                        Control.PreviewMouseWheelEvent,
                        rawPosition,
                        lastLeftMouseButtonState, lastMiddleMouseButtonState, 
                        lastRightMouseButtonState,
                        mouseEvent.dwButtonState > 0 ? 1 : -1
                    );
                    eventsQueue.Enqueue( args );
                }
            }
            if (inputRecord.EventType == EventType.KEY_EVENT) {
                KEY_EVENT_RECORD keyEvent = inputRecord.KeyEvent;
                KeyEventArgs eventArgs = new KeyEventArgs(
                    ConsoleApplication.Instance.FocusManager.FocusedElement,
                    keyEvent.bKeyDown ? Control.PreviewKeyDownEvent : Control.PreviewKeyUpEvent);
                eventArgs.UnicodeChar = keyEvent.UnicodeChar;
                eventArgs.bKeyDown = keyEvent.bKeyDown;
                eventArgs.dwControlKeyState = keyEvent.dwControlKeyState;
                eventArgs.wRepeatCount = keyEvent.wRepeatCount;
                eventArgs.wVirtualKeyCode = keyEvent.wVirtualKeyCode;
                eventArgs.wVirtualScanCode = keyEvent.wVirtualScanCode;
                eventsQueue.Enqueue(eventArgs);
            }
        }
Ejemplo n.º 47
0
 /// <summary>
 /// Called on MouseMove event raised from Map Control when tool is activated.
 /// </summary>
 public void OnMouseMove(MouseButtonState left, MouseButtonState right,
     MouseButtonState middle, ModifierKeys modifierKeys, double x, double y)
 {
 }
Ejemplo n.º 48
0
        //*************************************************************************
        //  Method: DragIsInProgress()
        //
        /// <summary>
        /// Determines whether a particular type of mouse drag is in progress.
        /// </summary>
        ///
        /// <param name="oMouseDrag">
        /// Object that represents the drag operation, or null if the drag
        /// operation hasn't begun.
        /// </param>
        ///
        /// <param name="oMouseEventArgs">
        /// Standard mouse event arguments.
        /// </param>
        ///
        /// <param name="aeMouseButtonStates">
        /// Array of button states, one for each button that can be pressed to
        /// allow the drag to be considered in progress.
        /// </param>
        ///
        /// <param name="oMouseLocation">
        /// Where the mouse location get stored if true is returned.
        /// </param>
        ///
        /// <returns>
        /// true if the specified mouse drag is in progress.
        /// </returns>
        //*************************************************************************
        protected Boolean DragIsInProgress(
            MouseDrag oMouseDrag,
            MouseEventArgs oMouseEventArgs,
            MouseButtonState [] aeMouseButtonStates,
            out Point oMouseLocation
            )
        {
            Debug.Assert(oMouseEventArgs != null);
            Debug.Assert(aeMouseButtonStates != null);
            Debug.Assert(aeMouseButtonStates.Length > 0);
            AssertValid();

            oMouseLocation = new Point();

            if (oMouseDrag != null)
            {
            foreach (MouseButtonState eMouseButtonState in aeMouseButtonStates)
            {
                if (eMouseButtonState == MouseButtonState.Pressed)
                {
                    oMouseLocation = oMouseEventArgs.GetPosition(this);

                    return ( oMouseDrag.OnMouseMove(oMouseLocation) );
                }
            }
            }

            return (false);
        }
Ejemplo n.º 49
0
 /// <summary>
 /// Converts a <see cref="MouseButtonState"/> into a <see cref="ButtonState"/>.
 /// </summary>
 /// <param name="mouseState">Window mouse button state.</param>
 /// <returns></returns>
 private ButtonState GetButtonState(MouseButtonState mouseState)
 {
     return mouseState == MouseButtonState.Pressed ? ButtonState.Pressed : ButtonState.Released;
 }
Ejemplo n.º 50
0
 protected static ButtonState MapButtonState(MouseButtonState mouseButtonState)
 {
     if (mouseButtonState == MouseButtonState.Pressed)
         return ButtonState.Pressed;
     return ButtonState.Released;
 }
Ejemplo n.º 51
0
        /// <summary>
        /// Fired when a mousebutton releases the clicked state
        /// </summary>
        /// <param name="e"></param>
        protected override void OnMouseUp(MouseButtonEventArgs e)
        {
            Mouse.Capture(this, CaptureMode.None);

            if (_LeftButton == MouseButtonState.Pressed)
            {
                Point mouseposition = e.GetPosition(this);

                // make sure to register a click even if the user moved the mouse a bit
                if (mouseposition == ff ||
                    (ff.X + _ClickSensitivity > mouseposition.X &&
                    ff.X - _ClickSensitivity < mouseposition.X &&
                    ff.Y + _ClickSensitivity > mouseposition.Y &&
                    ff.Y - _ClickSensitivity < mouseposition.Y))
                {
                    _MouseMoved = false;
                    Point3D testpoint3D = new Point3D(mouseposition.X, mouseposition.Y, 0);
                    Vector3D testdirection = new Vector3D(mouseposition.X, mouseposition.Y, 10);
                    PointHitTestParameters pointparams = new PointHitTestParameters(mouseposition);
                    RayHitTestParameters rayparams = new RayHitTestParameters(testpoint3D, testdirection);
                    //test for a result in the Viewport3D
                    _LeftButton = e.LeftButton;
                    _RightButton = e.RightButton;
                    _CurrentMousePosition = mouseposition;
                    VisualTreeHelper.HitTest(this, HittestFilter, HTClickResult, pointparams);
                }
            }
        }
Ejemplo n.º 52
0
 private void ResetButton(ref MouseButtonState button)
 {
   if (button.State == MouseButtonStates.Pressed)
     button = new MouseButtonState(MouseButtonStates.Down, button.DragState);
   if (button.State == MouseButtonStates.Clicked || button.State == MouseButtonStates.DragEnded)
     button = new MouseButtonState(MouseButtonStates.Idle);
   if (button.State != MouseButtonStates.DragStarted)
     return;
   button = new MouseButtonState(MouseButtonStates.Dragging, button.DragState);
 }
Ejemplo n.º 53
0
 /// <summary>
 /// 设置鼠标某个按钮的当前状态
 /// </summary>
 public void SetMouseButtonState(MouseButton key, MouseButtonState state)
 {
     UpdateRender.KS_MOUSE_Dict[key] = state;
 }
Ejemplo n.º 54
0
 /// <summary>
 /// Returns True if mouse button is in specified state (Default state: click)
 /// </summary>
 /// <param name="button">Mouse button</param>
 /// <param name="bState">Mouse button state</param>
 public bool IsMousePressed(MouseButton button, MouseButtonState bState = MouseButtonState.Click)
 {
     switch(button)
     {
         case MouseButton.Right:
             return bState == MouseButtonState.Click ? LastMouseState.RightButton == ButtonState.Released && MouseState.RightButton == ButtonState.Pressed : MouseState.RightButton == ButtonState.Pressed;
         case MouseButton.Middle:
             return bState == MouseButtonState.Click ? LastMouseState.MiddleButton == ButtonState.Released && MouseState.MiddleButton == ButtonState.Pressed : MouseState.MiddleButton == ButtonState.Pressed;
         default:
             return bState == MouseButtonState.Click ? LastMouseState.LeftButton == ButtonState.Released && MouseState.LeftButton == ButtonState.Pressed : MouseState.LeftButton == ButtonState.Pressed;
     }
 }
Ejemplo n.º 55
0
 public MouseButton()
 {
     L = new MouseButtonState();
     R = new MouseButtonState();
     M = new MouseButtonState();
 }
Ejemplo n.º 56
0
        public void OnMouseMove(MouseButtonState left, MouseButtonState right,
            MouseButtonState middle, ModifierKeys modifierKeys, double x, double y)
        {
            Point point = new Point(x, y);

            // Project point from Web Mercator to WGS84 if spatial reference of map is Web Mercator.
            if (_mapControl.Map.SpatialReferenceID.HasValue)
            {
                point = WebMercatorUtil.ProjectPointFromWebMercator(point, _mapControl.Map.SpatialReferenceID.Value);
            }

            _popupAddress.OnMouseMove(point.X, point.Y);
        }
Ejemplo n.º 57
0
        /// <summary>
        /// React on mouse move.
        /// </summary>
        /// <param name="left">Left button state.</param>
        /// <param name="right">Right button state.</param>
        /// <param name="middle">Middle button state.</param>
        /// <param name="modifierKeys">Modifier keys state.</param>
        /// <param name="x">X coord.</param>
        /// <param name="y">Y coord.</param>
        public void OnMouseMove(MouseButtonState left, MouseButtonState right, MouseButtonState middle,
            ModifierKeys modifierKeys, double x, double y)
        {
            Debug.Assert(_mapControl != null);

            if (_editingInProcess && left == MouseButtonState.Pressed)
            {
                Debug.Assert(_editedGraphic != null);

                Point point = new Point(x, y);

                // Project point from Web Mercator to WGS84 if spatial reference of map is Web Mercator.
                if (_mapControl.Map.SpatialReferenceID.HasValue)
                {
                    point = WebMercatorUtil.ProjectPointFromWebMercator(point, _mapControl.Map.SpatialReferenceID.Value);
                }

                double dx = point.X - _previousX;
                double dy = point.Y - _previousY;

                // Save current position.
                _previousX = point.X;
                _previousY = point.Y;

                // Do pan object.
                object obj = _editedGraphic.Data;
                if (obj is EditingMarker || obj is IGeocodable || obj is Zone || obj is Barrier)
                {
                    _PanObject(EditingObject, dx, dy);
                }
                else
                    Debug.Assert(false);
            }
            else
            {
                // If can start drag - change cursor.
                Cursor newCursor = null;
                DataGraphicObject pointedGraphicObject = _mapControl.PointedGraphic as DataGraphicObject;
                if (pointedGraphicObject != null)
                {
                    if (pointedGraphicObject.Data == EditingObject || pointedGraphicObject is EditMarkerGraphicObject)
                    {
                        bool multiple = false;
                        if (pointedGraphicObject is EditMarkerGraphicObject)
                        {
                            EditMarkerGraphicObject editMarkerGraphicObject = (EditMarkerGraphicObject)pointedGraphicObject;
                            multiple = editMarkerGraphicObject.EditingMarker.MultipleIndex > -1;
                        }
                        if (multiple)
                            newCursor = _moveVertexCursor;
                        else
                            newCursor = _moveShapeCursor;
                    }
                }
                _ChangeCursor(newCursor);
            }

            _popupAddress.OnMouseMove(_previousX, _previousY);
        }
Ejemplo n.º 58
0
        void OnGLMouse(MouseButton button, MouseButtonState state, int x, int y)
        {
            // Use the mouse to move things around.
            if (button == MouseButton.Left)
            {
                CheckSelect(x, y);
                Vec2 p = ConvertScreenToWorld(x, y);
                if (state == MouseButtonState.Down)
                {
                    if ((ModifierKeys & Keys.Shift) != 0)
                    {
                    }
                    else
                    {
                    }
                }

                if (state == MouseButtonState.Up)
                {
                }
            }
            else if (button == MouseButton.Right)
            {
                if (state == MouseButtonState.Down)
                {
                    lastp = ConvertScreenToWorld(x, y);
                    rMouseDown = true;
                }

                if (state == MouseButtonState.Up)
                {
                    rMouseDown = false;
                }
            }
        }
Ejemplo n.º 59
0
 public MouseWheelEventArgs(object source, RoutedEvent routedEvent, Point rawPosition,
                             MouseButtonState leftButton, MouseButtonState middleButton,
                             MouseButtonState rightButton, int delta)
     : base(source, routedEvent, rawPosition, leftButton, middleButton, rightButton) {
     Delta = delta;
 }
Ejemplo n.º 60
0
        /// <summary>
        /// Fired when the mouse button is in a 'down' position.
        /// </summary>
        /// <param name="e"></param>
        protected override void OnMouseDown(MouseButtonEventArgs e)
        {
            _LeftButton = e.LeftButton;
            _RightButton = e.RightButton;
            ff = e.GetPosition(this);
            Mouse.Capture(this, CaptureMode.Element);

            _PreviousPosition2D = e.GetPosition(this);
            _previousPosition3D = ProjectToTrackball(
                ActualWidth, ActualHeight, _PreviousPosition2D);

            Point mouseposition = e.GetPosition(this);
            PointHitTestParameters pointparams = new PointHitTestParameters(mouseposition);
            Console.WriteLine(this.GetType().GUID.ToString());
            Console.WriteLine(e.OriginalSource.ToString());
        }