Пример #1
0
        /// <summary>
        /// Formats currently pressed buttons as a string.
        /// </summary>
        /// <param name="buttons">The buttons state.</param>
        /// <returns>Formatted string of currently pressed buttons.</returns>
        public static string PressedButtonsToString(Pointer.PointerButtonState buttons)
        {
            initStringBuilder();

            PressedButtonsToString(buttons, sb);
            return(sb.ToString());
        }
Пример #2
0
        /// <summary>
        /// Converts pressed buttons to up state.
        /// </summary>
        /// <param name="buttons">The buttons state.</param>
        /// <returns>Changed buttons state.</returns>
        public static Pointer.PointerButtonState UpPressedButtons(Pointer.PointerButtonState buttons)
        {
            var btns = Pointer.PointerButtonState.Nothing;

            if ((buttons & Pointer.PointerButtonState.FirstButtonPressed) != 0)
            {
                btns |= Pointer.PointerButtonState.FirstButtonUp;
            }
            if ((buttons & Pointer.PointerButtonState.SecondButtonPressed) != 0)
            {
                btns |= Pointer.PointerButtonState.SecondButtonUp;
            }
            if ((buttons & Pointer.PointerButtonState.ThirdButtonPressed) != 0)
            {
                btns |= Pointer.PointerButtonState.ThirdButtonUp;
            }
            if ((buttons & Pointer.PointerButtonState.FourthButtonPressed) != 0)
            {
                btns |= Pointer.PointerButtonState.FourthButtonUp;
            }
            if ((buttons & Pointer.PointerButtonState.FifthButtonPressed) != 0)
            {
                btns |= Pointer.PointerButtonState.FifthButtonUp;
            }
            return(btns);
        }
        private MousePointer internalAddPointer(Vector2 position, Pointer.PointerButtonState buttons = Pointer.PointerButtonState.Nothing, uint flags = 0)
        {
            var pointer = mousePool.Get();

            pointer.Position = position;
            pointer.Buttons |= buttons;
            pointer.Flags   |= flags;
            addPointer(pointer);
            updatePointer(pointer);
            return(pointer);
        }
Пример #4
0
        private Pointer.PointerButtonState updateButtons(Pointer.PointerButtonState current, PointerFlags flags, ButtonChangeType change)
        {
            var currentUpDown = ((uint)current) & 0xFFFFFC00;
            var pressed       = ((uint)flags >> 4) & 0x1F;
            var newUpDown     = 0U;

            if (change != ButtonChangeType.None)
            {
                newUpDown = 1U << (10 + (int)change);
            }
            var combined = (Pointer.PointerButtonState)(pressed | newUpDown | currentUpDown);

            return(combined);
        }
        private Pointer.PointerButtonState getMouseButtons()
        {
            Pointer.PointerButtonState buttons = Pointer.PointerButtonState.Nothing;

            if (Input.GetMouseButton(0))
            {
                buttons |= Pointer.PointerButtonState.FirstButtonPressed;
            }
            if (Input.GetMouseButtonDown(0))
            {
                buttons |= Pointer.PointerButtonState.FirstButtonDown;
            }
            if (Input.GetMouseButtonUp(0))
            {
                buttons |= Pointer.PointerButtonState.FirstButtonUp;
            }

            if (Input.GetMouseButton(1))
            {
                buttons |= Pointer.PointerButtonState.SecondButtonPressed;
            }
            if (Input.GetMouseButtonDown(1))
            {
                buttons |= Pointer.PointerButtonState.SecondButtonDown;
            }
            if (Input.GetMouseButtonUp(1))
            {
                buttons |= Pointer.PointerButtonState.SecondButtonUp;
            }

            if (Input.GetMouseButton(2))
            {
                buttons |= Pointer.PointerButtonState.ThirdButtonPressed;
            }
            if (Input.GetMouseButtonDown(2))
            {
                buttons |= Pointer.PointerButtonState.ThirdButtonDown;
            }
            if (Input.GetMouseButtonUp(2))
            {
                buttons |= Pointer.PointerButtonState.ThirdButtonUp;
            }

            return(buttons);
        }
Пример #6
0
 /// <summary>
 /// Formats currently pressed buttons as a string.
 /// </summary>
 /// <param name="buttons">The buttons state.</param>
 /// <param name="builder">The string builder to use.</param>
 public static void PressedButtonsToString(Pointer.PointerButtonState buttons, StringBuilder builder)
 {
     if ((buttons & Pointer.PointerButtonState.FirstButtonPressed) != 0)
     {
         builder.Append("1");
     }
     else
     {
         builder.Append("_");
     }
     if ((buttons & Pointer.PointerButtonState.SecondButtonPressed) != 0)
     {
         builder.Append("2");
     }
     else
     {
         builder.Append("_");
     }
     if ((buttons & Pointer.PointerButtonState.ThirdButtonPressed) != 0)
     {
         builder.Append("3");
     }
     else
     {
         builder.Append("_");
     }
     if ((buttons & Pointer.PointerButtonState.FourthButtonPressed) != 0)
     {
         builder.Append("4");
     }
     else
     {
         builder.Append("_");
     }
     if ((buttons & Pointer.PointerButtonState.FifthButtonPressed) != 0)
     {
         builder.Append("5");
     }
     else
     {
         builder.Append("_");
     }
 }
 private void updateButtons(Pointer.PointerButtonState oldButtons, Pointer.PointerButtonState newButtons)
 {
     // pressed something
     if (oldButtons == Pointer.PointerButtonState.Nothing)
     {
         // pressed and released this frame
         if ((newButtons & Pointer.PointerButtonState.AnyButtonPressed) == 0)
         {
             // Add pressed buttons for processing
             mousePointer.Buttons = PointerUtils.PressDownButtons(newButtons);
             pressPointer(mousePointer);
             internalReleaseMousePointer(newButtons);
         }
         // pressed this frame
         else
         {
             mousePointer.Buttons = newButtons;
             pressPointer(mousePointer);
         }
     }
     // released or button state changed
     else
     {
         // released this frame
         if ((newButtons & Pointer.PointerButtonState.AnyButtonPressed) == 0)
         {
             mousePointer.Buttons = newButtons;
             internalReleaseMousePointer(newButtons);
         }
         // button state changed this frame
         else
         {
             mousePointer.Buttons = newButtons;
             updatePointer(mousePointer);
         }
     }
 }
Пример #8
0
 /// <summary>
 /// Adds downed state to pressed buttons.
 /// </summary>
 /// <param name="buttons">The buttons state.</param>
 /// <returns>Changed buttons state.</returns>
 public static Pointer.PointerButtonState PressDownButtons(Pointer.PointerButtonState buttons)
 {
     if ((buttons & Pointer.PointerButtonState.FirstButtonDown) != 0)
     {
         buttons |= Pointer.PointerButtonState.FirstButtonPressed;
     }
     if ((buttons & Pointer.PointerButtonState.SecondButtonDown) != 0)
     {
         buttons |= Pointer.PointerButtonState.SecondButtonPressed;
     }
     if ((buttons & Pointer.PointerButtonState.ThirdButtonDown) != 0)
     {
         buttons |= Pointer.PointerButtonState.ThirdButtonPressed;
     }
     if ((buttons & Pointer.PointerButtonState.FourthButtonDown) != 0)
     {
         buttons |= Pointer.PointerButtonState.FourthButtonPressed;
     }
     if ((buttons & Pointer.PointerButtonState.FifthButtonDown) != 0)
     {
         buttons |= Pointer.PointerButtonState.FifthButtonPressed;
     }
     return(buttons);
 }
 private void internalReleaseMousePointer(Pointer.PointerButtonState buttons)
 {
     mousePointer.Flags &= ~Pointer.FLAG_RETURNED;
     releasePointer(mousePointer);
 }