diff options
author | Cameron Cawley | 2019-11-03 22:33:06 +0000 |
---|---|---|
committer | David Turner | 2019-11-30 20:50:27 +0000 |
commit | 00fecbb6e638a943c6f45cca84986ba38803ad91 (patch) | |
tree | f988c3635c90ef6aa9be0372a34bca310358dad1 /backends/events/openpandora | |
parent | 54e6cf4cda16cfbb4ea5e3b728188fb837468279 (diff) | |
download | scummvm-rg350-00fecbb6e638a943c6f45cca84986ba38803ad91.tar.gz scummvm-rg350-00fecbb6e638a943c6f45cca84986ba38803ad91.tar.bz2 scummvm-rg350-00fecbb6e638a943c6f45cca84986ba38803ad91.zip |
GPH/OPENPANDORA: Move ToggleTapMode() into the event manager
Diffstat (limited to 'backends/events/openpandora')
-rw-r--r-- | backends/events/openpandora/op-events.cpp | 45 | ||||
-rw-r--r-- | backends/events/openpandora/op-events.h | 3 |
2 files changed, 33 insertions, 15 deletions
diff --git a/backends/events/openpandora/op-events.cpp b/backends/events/openpandora/op-events.cpp index fd5d2bc043..6302c15517 100644 --- a/backends/events/openpandora/op-events.cpp +++ b/backends/events/openpandora/op-events.cpp @@ -46,7 +46,22 @@ enum { }; OPEventSource::OPEventSource() - : _buttonStateL(false) { + : _buttonStateL(false), + _tapmodeLevel(TAPMODE_LEFT) { +} + +void OPEventSource::ToggleTapMode() { + if (_tapmodeLevel == TAPMODE_LEFT) { + _tapmodeLevel = TAPMODE_RIGHT; + } else if (_tapmodeLevel == TAPMODE_RIGHT) { + _tapmodeLevel = TAPMODE_HOVER; + } else if (_tapmodeLevel == TAPMODE_HOVER) { + _tapmodeLevel = TAPMODE_HOVER_DPAD; + } else if (_tapmodeLevel == TAPMODE_HOVER_DPAD) { + _tapmodeLevel = TAPMODE_LEFT; + } else { + _tapmodeLevel = TAPMODE_LEFT; + } } /* Custom handleMouseButtonDown/handleMouseButtonUp to deal with 'Tap Mode' for the touchscreen */ @@ -55,13 +70,13 @@ bool OPEventSource::handleMouseButtonDown(SDL_Event &ev, Common::Event &event) { if (ev.button.button == SDL_BUTTON_LEFT) { if (_buttonStateL == true) /* _buttonStateL = Left Trigger Held, force Right Click */ event.type = Common::EVENT_RBUTTONDOWN; - else if (OP::tapmodeLevel == TAPMODE_LEFT) /* TAPMODE_LEFT = Left Click Tap Mode */ + else if (_tapmodeLevel == TAPMODE_LEFT) /* TAPMODE_LEFT = Left Click Tap Mode */ event.type = Common::EVENT_LBUTTONDOWN; - else if (OP::tapmodeLevel == TAPMODE_RIGHT) /* TAPMODE_RIGHT = Right Click Tap Mode */ + else if (_tapmodeLevel == TAPMODE_RIGHT) /* TAPMODE_RIGHT = Right Click Tap Mode */ event.type = Common::EVENT_RBUTTONDOWN; - else if (OP::tapmodeLevel == TAPMODE_HOVER) /* TAPMODE_HOVER = Hover (No Click) Tap Mode */ + else if (_tapmodeLevel == TAPMODE_HOVER) /* TAPMODE_HOVER = Hover (No Click) Tap Mode */ event.type = Common::EVENT_MOUSEMOVE; - else if (OP::tapmodeLevel == TAPMODE_HOVER_DPAD) /* TAPMODE_HOVER_DPAD = Hover (DPad Clicks) Tap Mode */ + else if (_tapmodeLevel == TAPMODE_HOVER_DPAD) /* TAPMODE_HOVER_DPAD = Hover (DPad Clicks) Tap Mode */ event.type = Common::EVENT_MOUSEMOVE; else event.type = Common::EVENT_LBUTTONDOWN; /* For normal mice etc. */ @@ -92,13 +107,13 @@ bool OPEventSource::handleMouseButtonUp(SDL_Event &ev, Common::Event &event) { if (ev.button.button == SDL_BUTTON_LEFT) { if (_buttonStateL == true) /* _buttonStateL = Left Trigger Held, force Right Click */ event.type = Common::EVENT_RBUTTONUP; - else if (OP::tapmodeLevel == TAPMODE_LEFT) /* TAPMODE_LEFT = Left Click Tap Mode */ + else if (_tapmodeLevel == TAPMODE_LEFT) /* TAPMODE_LEFT = Left Click Tap Mode */ event.type = Common::EVENT_LBUTTONUP; - else if (OP::tapmodeLevel == TAPMODE_RIGHT) /* TAPMODE_RIGHT = Right Click Tap Mode */ + else if (_tapmodeLevel == TAPMODE_RIGHT) /* TAPMODE_RIGHT = Right Click Tap Mode */ event.type = Common::EVENT_RBUTTONUP; - else if (OP::tapmodeLevel == TAPMODE_HOVER) /* TAPMODE_HOVER = Hover (No Click) Tap Mode */ + else if (_tapmodeLevel == TAPMODE_HOVER) /* TAPMODE_HOVER = Hover (No Click) Tap Mode */ event.type = Common::EVENT_MOUSEMOVE; - else if (OP::tapmodeLevel == TAPMODE_HOVER_DPAD) /* TAPMODE_HOVER_DPAD = Hover (DPad Clicks) Tap Mode */ + else if (_tapmodeLevel == TAPMODE_HOVER_DPAD) /* TAPMODE_HOVER_DPAD = Hover (DPad Clicks) Tap Mode */ event.type = Common::EVENT_MOUSEMOVE; else event.type = Common::EVENT_LBUTTONUP; /* For normal mice etc. */ @@ -125,7 +140,7 @@ bool OPEventSource::handleMouseButtonUp(SDL_Event &ev, Common::Event &event) { bool OPEventSource::remapKey(SDL_Event &ev, Common::Event &event) { - if (OP::tapmodeLevel == TAPMODE_HOVER_DPAD) { + if (_tapmodeLevel == TAPMODE_HOVER_DPAD) { switch (ev.key.keysym.sym) { case SDLK_LEFT: event.type = (ev.type == SDL_KEYDOWN) ? Common::EVENT_LBUTTONDOWN : Common::EVENT_LBUTTONUP; @@ -166,14 +181,14 @@ bool OPEventSource::remapKey(SDL_Event &ev, Common::Event &event) { return true; break; case SDLK_PAGEUP: - OP::ToggleTapMode(); - if (OP::tapmodeLevel == TAPMODE_LEFT) { + ToggleTapMode(); + if (_tapmodeLevel == TAPMODE_LEFT) { g_system->displayMessageOnOSD(_("Touchscreen 'Tap Mode' - Left Click")); - } else if (OP::tapmodeLevel == TAPMODE_RIGHT) { + } else if (_tapmodeLevel == TAPMODE_RIGHT) { g_system->displayMessageOnOSD(_("Touchscreen 'Tap Mode' - Right Click")); - } else if (OP::tapmodeLevel == TAPMODE_HOVER) { + } else if (_tapmodeLevel == TAPMODE_HOVER) { g_system->displayMessageOnOSD(_("Touchscreen 'Tap Mode' - Hover (No Click)")); - } else if (OP::tapmodeLevel == TAPMODE_HOVER_DPAD) { + } else if (_tapmodeLevel == TAPMODE_HOVER_DPAD) { g_system->displayMessageOnOSD(_("Touchscreen 'Tap Mode' - Hover (DPad Clicks)")); } break; diff --git a/backends/events/openpandora/op-events.h b/backends/events/openpandora/op-events.h index e45ac80e2a..aebd376ada 100644 --- a/backends/events/openpandora/op-events.h +++ b/backends/events/openpandora/op-events.h @@ -40,6 +40,9 @@ protected: */ bool _buttonStateL; + int _tapmodeLevel; + + void ToggleTapMode(); bool handleMouseButtonDown(SDL_Event &ev, Common::Event &event); bool handleMouseButtonUp(SDL_Event &ev, Common::Event &event); |