void UI::onMouseButtonPress (int32_t x, int32_t y, uint8_t button) { if (_restart) return; UIStack stack = _stack; for (UIStackReverseIter i = stack.rbegin(); i != stack.rend(); ++i) { UIWindow* window = *i; if (window->onMouseButtonPress(_cursorX, _cursorY, button)) break; if (window->isModal() || window->isFullscreen()) break; } }
void UI::onControllerButtonPress (const std::string& button) { if (_restart) return; UIStack stack = _stack; for (UIStackReverseIter i = stack.rbegin(); i != stack.rend(); ++i) { UIWindow* window = *i; if (window->onControllerButtonPress(_cursorX, _cursorY, button)) return; if (window->isModal() || window->isFullscreen()) return; } debug(LOG_CLIENT, "controller button " + button + " was pressed and not handled"); }
void UI::onGestureRecord (int64_t gestureId) { if (_restart) return; UIStack stack = _stack; for (UIStackReverseIter i = stack.rbegin(); i != stack.rend(); ++i) { UIWindow* window = *i; if (window->onGestureRecord(gestureId)) return; if (window->isModal() || window->isFullscreen()) return; } debug(LOG_CLIENT, "gesture record event was not handled"); }
void UI::onGesture (int64_t gestureId, float error, int32_t numFingers) { if (_restart) return; UIStack stack = _stack; for (UIStackReverseIter i = stack.rbegin(); i != stack.rend(); ++i) { UIWindow* window = *i; if (window->onGesture(gestureId, error, numFingers)) return; if (window->isModal() || window->isFullscreen()) return; } debug(LOG_CLIENT, "gesture event was not handled"); }
void UI::onMultiGesture (float theta, float dist, int32_t numFingers) { if (_restart) return; UIStack stack = _stack; for (UIStackReverseIter i = stack.rbegin(); i != stack.rend(); ++i) { UIWindow* window = *i; if (window->onMultiGesture(theta, dist, numFingers)) return; if (window->isModal() || window->isFullscreen()) return; } debug(LOG_CLIENT, "multi gesture event was not handled"); }
void UI::onJoystickButtonPress (uint8_t button) { if (_restart) return; UIStack stack = _stack; for (UIStackReverseIter i = stack.rbegin(); i != stack.rend(); ++i) { UIWindow* window = *i; if (window->onJoystickButtonPress(_cursorX, _cursorY, button)) return; if (window->isModal() || window->isFullscreen()) return; } debug(LOG_CLIENT, String::format("joystick button %i was pressed and not handled", (int)button)); }
bool UI::onTextInput (const std::string& text) { if (_restart) return false; UIStack stack = _stack; for (UIStackReverseIter i = stack.rbegin(); i != stack.rend(); ++i) { UIWindow* window = *i; if (window->onTextInput(text)) return true; if (window->isModal() || window->isFullscreen()) break; } return false; }
void UI::onMouseWheel (int32_t x, int32_t y) { if (_restart) return; GETSCALE_W(x); GETSCALE_H(y); UIStack stack = _stack; for (UIStackReverseIter i = stack.rbegin(); i != stack.rend(); ++i) { UIWindow* window = *i; if (window->onMouseWheel(x, y)) break; if (window->isModal() || window->isFullscreen()) break; } }
bool UI::onKeyPress (int32_t key, int16_t modifier) { if (_restart) return false; UIStack stack = _stack; for (UIStackReverseIter i = stack.rbegin(); i != stack.rend(); ++i) { UIWindow* window = *i; if (window->onKeyPress(key, modifier)) return true; if (window->isModal() || window->isFullscreen()) break; } return false; }
bool UI::onFingerPress (int64_t finger, float x, float y) { if (_restart) return false; const uint16_t _x = _frontend->getCoordinateOffsetX() + x * _frontend->getWidth(); const uint16_t _y = _frontend->getCoordinateOffsetY() + y * _frontend->getHeight(); UIStack stack = _stack; for (UIStackReverseIter i = stack.rbegin(); i != stack.rend(); ++i) { UIWindow* window = *i; if (window->onFingerPress(finger, _x, _y)) return true; if (window->isModal() || window->isFullscreen()) break; } return false; }
void UI::onFingerMotion (int64_t finger, float x, float y, float dx, float dy) { if (_restart) return; const uint16_t _x = _frontend->getCoordinateOffsetX() + x * _frontend->getWidth(); const uint16_t _y = _frontend->getCoordinateOffsetY() + y * _frontend->getHeight(); const int16_t _dx = dx * _frontend->getWidth(); const int16_t _dy = dy * _frontend->getHeight(); UIStack stack = _stack; for (UIStackReverseIter i = stack.rbegin(); i != stack.rend(); ++i) { UIWindow* window = *i; if (window->onFingerMotion(finger, _x, _y, _dx, _dy)) break; if (window->isModal() || window->isFullscreen()) break; } }
void UI::onJoystickMotion (bool horizontal, int v) { if (_restart) return; UIStack stack = _stack; for (UIStackReverseIter i = stack.rbegin(); i != stack.rend(); ++i) { UIWindow* window = *i; if (window->onJoystickMotion(horizontal, v)) return; if (window->isModal() || window->isFullscreen()) break; } if (Config.getBindingsSpace() != BINDINGS_UI) return; if (_time - _lastJoystickMoveTime < 350 || horizontal) { _lastJoystickMovementValue = v; return; } // skip focus change if we go back to initial position if (v > 0 && v < _lastJoystickMovementValue) { _lastJoystickMovementValue = v; return; } else if (v < 0 && v > _lastJoystickMovementValue) { _lastJoystickMovementValue = v; return; } // now check whether our value is bigger than our movement delta const int delta = 2000; if (v < -delta) { focusPrev(); } else if (v > delta) { focusNext(); } _lastJoystickMoveTime = _time; _lastJoystickMovementValue = v; }
void UI::onMouseMotion (int32_t x, int32_t y, int32_t relX, int32_t relY) { if (_restart) return; GETSCALE_W(relX); GETSCALE_H(relY); _frontend->setCursorPosition(_cursorX + relX, _cursorY + relY); UIStack stack = _stack; for (UIStackReverseIter i = stack.rbegin(); i != stack.rend(); ++i) { UIWindow* window = *i; const bool focus = window->checkFocus(_cursorX, _cursorY); if (focus) { window->onMouseMotion(_cursorX, _cursorY, relX, relY); break; } if (window->isModal() || window->isFullscreen()) break; } }