bool GPC_MouseDevice::ConvertButtonEvent(TButtonId button, bool isDown) { bool result = false; switch (button) { case buttonLeft: result = ConvertEvent(KX_LEFTMOUSE, isDown); break; case buttonMiddle: result = ConvertEvent(KX_MIDDLEMOUSE, isDown); break; case buttonRight: result = ConvertEvent(KX_RIGHTMOUSE, isDown); break; case buttonWheelUp: result = ConvertEvent(KX_WHEELUPMOUSE, isDown); break; case buttonWheelDown: result = ConvertEvent(KX_WHEELDOWNMOUSE, isDown); break; default: // Should not happen! break; } return result; }
/** * Splits combined x,y move into separate Ketsji x and y move events. */ bool GPC_MouseDevice::ConvertMoveEvent(int x, int y) { bool result; // Convert to local coordinates? result = ConvertEvent(KX_MOUSEX, x); if (result) { result = ConvertEvent(KX_MOUSEY, y); } return result; }
sfBool sfWindow_WaitEvent(sfWindow* window, sfEvent* event) { CSFML_CHECK_RETURN(window, sfFalse); CSFML_CHECK_RETURN(event, sfFalse); // Get the event sf::Event SFMLEvent; sfBool ret = window->This.WaitEvent(SFMLEvent); // Error, return if (!ret) return sfFalse; // Convert the sf::Event event to a sfEvent ConvertEvent(SFMLEvent, event); return sfTrue; }
//////////////////////////////////////////////////////////// /// Get the event on top of events stack of a window, if any, and pop it //////////////////////////////////////////////////////////// sfBool sfRenderWindow_GetEvent(sfRenderWindow* renderWindow, sfEvent* event) { CSFML_CHECK_RETURN(renderWindow, sfFalse); CSFML_CHECK_RETURN(event, sfFalse); // Get the event sf::Event SFMLEvent; sfBool ret = renderWindow->This.GetEvent(SFMLEvent); // No event, return if (!ret) return sfFalse; // Convert the sf::Event event to a sfEvent ConvertEvent(SFMLEvent, event); return sfTrue; }