/// <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()); }
/// <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); }
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); }
/// <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); } } }
/// <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); }