void MultitouchTestBoxWidget::ProcessTimePassed(const double TimePassed) { for (auto & Pointer : GetGestureRecognizer().GetConnected()) { if (Pointer::VirtualCategory::TYPING == Pointer->GetVirtualCategory()) { const PointerState & PointerState = Pointer->GetPointerState(); const double SpeedMultiplier = 250; if (PointerState.GetButtonState(GLFW_KEY_LEFT) && !PointerState.GetButtonState(GLFW_KEY_RIGHT)) { ModifyPosition().X() += -SpeedMultiplier * TimePassed; } else if (PointerState.GetButtonState(GLFW_KEY_RIGHT) && !PointerState.GetButtonState(GLFW_KEY_LEFT)) { ModifyPosition().X() += SpeedMultiplier * TimePassed; } if (PointerState.GetButtonState(GLFW_KEY_UP) && !PointerState.GetButtonState(GLFW_KEY_DOWN)) { ModifyPosition().Y() += -SpeedMultiplier * TimePassed; } else if (PointerState.GetButtonState(GLFW_KEY_DOWN) && !PointerState.GetButtonState(GLFW_KEY_UP)) { ModifyPosition().Y() += SpeedMultiplier * TimePassed; } } } Widget::ProcessTimePassed(TimePassed); }
template <typename T> void ListWidget<T>::ProcessManipulationUpdated(const PointerState & PointerState) { if (!HasTypingFocus()) { auto ParentLocalPosition = GlobalToParent(Vector2n(PointerState.GetAxisState(0).GetPosition(), PointerState.GetAxisState(1).GetPosition())); ModifyPosition() = GetGestureRecognizer().m_ManipulationOffset + ParentLocalPosition; } }
void MultitouchTestBoxWidget::ProcessManipulationUpdate(const InputEvent & InputEvent) { const PointerState & PointerState = InputEvent.m_PostEventState; //printf("MultitouchTestBoxWidget::ProcessManipulationUpdate()\n"); /*Vector2d PositionDouble = GetParent()->GlobalToCanvas(Vector2n(PointerState.GetAxisState(0).GetPosition(), PointerState.GetAxisState(1).GetPosition())); Vector2n PositionInt(std::lround(PositionDouble.X()), std::lround(PositionDouble.Y())); // TODO: Loss of accuracy? Fix it if needed.*/ auto ParentLocalPosition = GlobalToParent(Vector2n(PointerState.GetAxisState(0).GetPosition(), PointerState.GetAxisState(1).GetPosition())); ModifyPosition() = GetGestureRecognizer().m_ManipulationOffset + ParentLocalPosition; }