From 6fbb71142de5b2b12c2153b41a21b6dc34284343 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 31 Dec 2012 18:57:56 +0300 Subject: Add configurable actions for onscreen buttons. --- src/touchmanager.h | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'src/touchmanager.h') diff --git a/src/touchmanager.h b/src/touchmanager.h index 512c82909..ea8a3a72f 100644 --- a/src/touchmanager.h +++ b/src/touchmanager.h @@ -46,12 +46,17 @@ const int actionsSize = Input::KEY_TOTAL; struct TouchItem final { - TouchItem(const gcn::Rectangle rect0, int type0, ImageRect *const images0, - Image *const icon0, int x0, int y0, int width0, int height0, + TouchItem(const gcn::Rectangle rect0, int type0, + const std::string &eventPressed0, + const std::string &eventReleased0, + ImageRect *const images0, Image *const icon0, + int x0, int y0, int width0, int height0, TouchFuncPtr ptrAll, TouchFuncPtr ptrPressed, TouchFuncPtr ptrReleased, TouchFuncPtr ptrOut) : rect(rect0), type(type0), + eventPressed(eventPressed0), + eventReleased(eventReleased0), images(images0), icon(icon0), x(x0), @@ -69,6 +74,8 @@ struct TouchItem final gcn::Rectangle rect; int type; + std::string eventPressed; + std::string eventReleased; ImageRect *images; Image *icon; int x; @@ -105,9 +112,13 @@ class TouchManager final : public ConfigListener void loadTouchItem(TouchItem **item, std::string name, std::string imageName, - int type, int x, int y, int width, int height, - TouchFuncPtr fAll, TouchFuncPtr fPressed, - TouchFuncPtr fReleased, TouchFuncPtr fOut); + int x, int y, int width, int height, + int type, const std::string &eventPressed, + const std::string &eventReleased, + TouchFuncPtr fAll = nullptr, + TouchFuncPtr fPressed = nullptr, + TouchFuncPtr fReleased = nullptr, + TouchFuncPtr fOut = nullptr); void clear(); @@ -146,6 +157,8 @@ class TouchManager final : public ConfigListener void shutdown(); + void executeAction(const std::string &event); + private: TouchItem *mKeyboard; TouchItem *mPad; -- cgit v1.2.3-70-g09d2