From b76b7bac8b2f162722774449084c13baa0f7c5a9 Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Sat, 7 Mar 2015 23:28:58 -0400 Subject: [PATCH] Added support for a few more mouse buttons (via "x3", "x4", and "x5" button constants.) --- src/modules/event/sdl/Event.cpp | 13 ++++++++----- src/modules/mouse/Mouse.cpp | 13 ++++++++----- src/modules/mouse/Mouse.h | 6 +++++- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/modules/event/sdl/Event.cpp b/src/modules/event/sdl/Event.cpp index 84ab13335..be6e3a067 100644 --- a/src/modules/event/sdl/Event.cpp +++ b/src/modules/event/sdl/Event.cpp @@ -798,11 +798,14 @@ std::map Event::keys = Event::create EnumMap::Entry Event::buttonEntries[] = { - { love::mouse::Mouse::BUTTON_LEFT, SDL_BUTTON_LEFT}, - { love::mouse::Mouse::BUTTON_MIDDLE, SDL_BUTTON_MIDDLE}, - { love::mouse::Mouse::BUTTON_RIGHT, SDL_BUTTON_RIGHT}, - { love::mouse::Mouse::BUTTON_X1, SDL_BUTTON_X1}, - { love::mouse::Mouse::BUTTON_X2, SDL_BUTTON_X2}, + {love::mouse::Mouse::BUTTON_LEFT, SDL_BUTTON_LEFT}, + {love::mouse::Mouse::BUTTON_MIDDLE, SDL_BUTTON_MIDDLE}, + {love::mouse::Mouse::BUTTON_RIGHT, SDL_BUTTON_RIGHT}, + {love::mouse::Mouse::BUTTON_X1, SDL_BUTTON_X1}, + {love::mouse::Mouse::BUTTON_X2, SDL_BUTTON_X2+0}, + {love::mouse::Mouse::BUTTON_X3, SDL_BUTTON_X2+1}, + {love::mouse::Mouse::BUTTON_X4, SDL_BUTTON_X2+2}, + {love::mouse::Mouse::BUTTON_X5, SDL_BUTTON_X2+3}, }; EnumMap Event::buttons(Event::buttonEntries, sizeof(Event::buttonEntries)); diff --git a/src/modules/mouse/Mouse.cpp b/src/modules/mouse/Mouse.cpp index be455058a..9296a748c 100644 --- a/src/modules/mouse/Mouse.cpp +++ b/src/modules/mouse/Mouse.cpp @@ -37,11 +37,14 @@ bool Mouse::getConstant(Button in, const char *&out) StringMap::Entry Mouse::buttonEntries[] = { - {"l", Mouse::BUTTON_LEFT}, - {"m", Mouse::BUTTON_MIDDLE}, - {"r", Mouse::BUTTON_RIGHT}, - {"x1", Mouse::BUTTON_X1}, - {"x2", Mouse::BUTTON_X2}, + {"l", BUTTON_LEFT}, + {"m", BUTTON_MIDDLE}, + {"r", BUTTON_RIGHT}, + {"x1", BUTTON_X1}, + {"x2", BUTTON_X2}, + {"x3", BUTTON_X3}, + {"x4", BUTTON_X4}, + {"x5", BUTTON_X5}, }; StringMap Mouse::buttons(Mouse::buttonEntries, sizeof(Mouse::buttonEntries)); diff --git a/src/modules/mouse/Mouse.h b/src/modules/mouse/Mouse.h index bf23018f7..5310bb16c 100644 --- a/src/modules/mouse/Mouse.h +++ b/src/modules/mouse/Mouse.h @@ -36,14 +36,18 @@ class Mouse : public Module { public: + // FIXME: We should probably just use button numbers. enum Button { - BUTTON_INVALID, + BUTTON_INVALID = 0, BUTTON_LEFT, BUTTON_MIDDLE, BUTTON_RIGHT, BUTTON_X1, BUTTON_X2, + BUTTON_X3, + BUTTON_X4, + BUTTON_X5, BUTTON_MAX_ENUM };