GLFW to CEGUI Key and Mouse Mapping

From CEGUI Wiki - Crazy Eddie's GUI System (Open Source)
Jump to: navigation, search

Map key and mouse button codes from GLFW to CEGUI.

unsigned int GlfwToCeguiKey(int glfwKey)
{
	switch(glfwKey)
	{
		case GLFW_KEY_UNKNOWN	: return 0;
		case GLFW_KEY_ESC	: return CEGUI::Key::Escape;
		case GLFW_KEY_F1	: return CEGUI::Key::F1;
		case GLFW_KEY_F2	: return CEGUI::Key::F2;
		case GLFW_KEY_F3	: return CEGUI::Key::F3;
		case GLFW_KEY_F4	: return CEGUI::Key::F4;
		case GLFW_KEY_F5	: return CEGUI::Key::F5;
		case GLFW_KEY_F6	: return CEGUI::Key::F6;
		case GLFW_KEY_F7	: return CEGUI::Key::F7;
		case GLFW_KEY_F8	: return CEGUI::Key::F8;
		case GLFW_KEY_F9	: return CEGUI::Key::F9;
		case GLFW_KEY_F10       : return CEGUI::Key::F10;
		case GLFW_KEY_F11       : return CEGUI::Key::F11;
		case GLFW_KEY_F12       : return CEGUI::Key::F12;
		case GLFW_KEY_F13       : return CEGUI::Key::F13;
		case GLFW_KEY_F14       : return CEGUI::Key::F14;
		case GLFW_KEY_F15       : return CEGUI::Key::F15;
		case GLFW_KEY_UP        : return CEGUI::Key::ArrowUp;
		case GLFW_KEY_DOWN      : return CEGUI::Key::ArrowDown;
		case GLFW_KEY_LEFT      : return CEGUI::Key::ArrowLeft;
		case GLFW_KEY_RIGHT     : return CEGUI::Key::ArrowRight;
		case GLFW_KEY_LSHIFT    : return CEGUI::Key::LeftShift;
		case GLFW_KEY_RSHIFT    : return CEGUI::Key::RightShift;
		case GLFW_KEY_LCTRL     : return CEGUI::Key::LeftControl;
		case GLFW_KEY_RCTRL     : return CEGUI::Key::RightControl;
		case GLFW_KEY_LALT      : return CEGUI::Key::LeftAlt;
		case GLFW_KEY_RALT      : return CEGUI::Key::RightAlt;
		case GLFW_KEY_TAB       : return CEGUI::Key::Tab;
		case GLFW_KEY_ENTER     : return CEGUI::Key::Return;
		case GLFW_KEY_BACKSPACE : return CEGUI::Key::Backspace;
		case GLFW_KEY_INSERT    : return CEGUI::Key::Insert;
		case GLFW_KEY_DEL       : return CEGUI::Key::Delete;
		case GLFW_KEY_PAGEUP    : return CEGUI::Key::PageUp;
		case GLFW_KEY_PAGEDOWN  : return CEGUI::Key::PageDown;
		case GLFW_KEY_HOME      : return CEGUI::Key::Home;
		case GLFW_KEY_END       : return CEGUI::Key::End;
		case GLFW_KEY_KP_ENTER	: return CEGUI::Key::NumpadEnter;
		default			: return 0;
	}
}
 
CEGUI::MouseButton GlfwToCeguiButton(int glfwButton)
{
	switch(glfwButton)
	{
		case GLFW_MOUSE_BUTTON_LEFT	: return CEGUI::LeftButton;
		case GLFW_MOUSE_BUTTON_RIGHT	: return CEGUI::RightButton;
		case GLFW_MOUSE_BUTTON_MIDDLE	: return CEGUI::MiddleButton;
		default				: return CEGUI::NoButton;
	}
}


For GLFW3 you may find this useful: http://cegui.org.uk/forum/viewtopic.php?p=35297