MAEMO: Use custom event Click Mode keymap action
This commit is contained in:
parent
d90d4d10a0
commit
c2640ed33a
5 changed files with 52 additions and 5 deletions
|
@ -164,6 +164,22 @@ bool MaemoSdlEventSource::toggleClickMode() {
|
||||||
return _clickEnabled;
|
return _clickEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MaemoSdlEventObserver::MaemoSdlEventObserver(MaemoSdlEventSource *eventSource) {
|
||||||
|
assert(_eventSource);
|
||||||
|
_eventSource = eventSource;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool MaemoSdlEventObserver::notifyEvent(const Common::Event &event) {
|
||||||
|
if (event.type != Common::EVENT_CUSTOM_BACKEND)
|
||||||
|
return false;
|
||||||
|
if (event.customType == kEventClickMode) {
|
||||||
|
assert(_eventSource);
|
||||||
|
_eventSource->toggleClickMode();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Maemo
|
} // namespace Maemo
|
||||||
|
|
||||||
#endif // if defined(MAEMO)
|
#endif // if defined(MAEMO)
|
||||||
|
|
|
@ -47,6 +47,15 @@ protected:
|
||||||
bool _clickEnabled;
|
bool _clickEnabled;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class MaemoSdlEventObserver : public Common::EventObserver {
|
||||||
|
public:
|
||||||
|
MaemoSdlEventObserver(MaemoSdlEventSource *eventSource);
|
||||||
|
|
||||||
|
virtual bool notifyEvent(const Common::Event &event);
|
||||||
|
private:
|
||||||
|
MaemoSdlEventSource *_eventSource;
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace Maemo
|
} // namespace Maemo
|
||||||
|
|
||||||
#endif // include guard
|
#endif // include guard
|
||||||
|
|
|
@ -51,6 +51,11 @@ static const Model models[] = {
|
||||||
{0, kModelTypeInvalid, 0, true}
|
{0, kModelTypeInvalid, 0, true}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum CustomEventType {
|
||||||
|
kEventClickMode = 1,
|
||||||
|
kEventInvalid = 0
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace Maemo
|
} // namespace Maemo
|
||||||
|
|
||||||
#endif // ifndef PLATFORM_SDL_MAEMO_COMMON_H
|
#endif // ifndef PLATFORM_SDL_MAEMO_COMMON_H
|
||||||
|
|
|
@ -46,6 +46,10 @@ OSystem_SDL_Maemo::OSystem_SDL_Maemo()
|
||||||
OSystem_POSIX() {
|
OSystem_POSIX() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
OSystem_SDL_Maemo::~OSystem_SDL_Maemo() {
|
||||||
|
delete _eventObserver;
|
||||||
|
}
|
||||||
|
|
||||||
void OSystem_SDL_Maemo::initBackend() {
|
void OSystem_SDL_Maemo::initBackend() {
|
||||||
// Create the events manager
|
// Create the events manager
|
||||||
if (_eventSource == 0)
|
if (_eventSource == 0)
|
||||||
|
@ -54,12 +58,16 @@ void OSystem_SDL_Maemo::initBackend() {
|
||||||
if (_graphicsManager == 0)
|
if (_graphicsManager == 0)
|
||||||
_graphicsManager = new MaemoSdlGraphicsManager(_eventSource);
|
_graphicsManager = new MaemoSdlGraphicsManager(_eventSource);
|
||||||
|
|
||||||
|
if (_eventObserver == 0)
|
||||||
|
_eventObserver = new MaemoSdlEventObserver((MaemoSdlEventSource *)_eventSource);
|
||||||
|
|
||||||
ConfMan.set("vkeybdpath", DATA_PATH);
|
ConfMan.set("vkeybdpath", DATA_PATH);
|
||||||
|
|
||||||
_model = Model(detectModel());
|
_model = Model(detectModel());
|
||||||
|
|
||||||
// Call parent implementation of this method
|
// Call parent implementation of this method
|
||||||
OSystem_POSIX::initBackend();
|
OSystem_POSIX::initBackend();
|
||||||
|
initObserver();
|
||||||
}
|
}
|
||||||
|
|
||||||
void OSystem_SDL_Maemo::quit() {
|
void OSystem_SDL_Maemo::quit() {
|
||||||
|
@ -136,8 +144,11 @@ Common::Keymap *OSystem_SDL_Maemo::getGlobalKeymap() {
|
||||||
|
|
||||||
Action *act;
|
Action *act;
|
||||||
|
|
||||||
// act = new Action(globalMap, "CLKM", _("Click Mode"), kKeyRemapActionType);
|
act = new Action(globalMap, "CLKM", _("Click Mode"), kKeyRemapActionType);
|
||||||
// act->addCustomEvent(CLICK_MODE);
|
Event evt = Event();
|
||||||
|
evt.type = EVENT_CUSTOM_BACKEND;
|
||||||
|
evt.customType = Maemo::kEventClickMode;
|
||||||
|
act->addEvent(evt);
|
||||||
|
|
||||||
act = new Action(globalMap, "LCLK", _("Left Click"), kKeyRemapActionType);
|
act = new Action(globalMap, "LCLK", _("Left Click"), kKeyRemapActionType);
|
||||||
act->addLeftClickEvent();
|
act->addLeftClickEvent();
|
||||||
|
@ -154,8 +165,11 @@ Common::Keymap *OSystem_SDL_Maemo::getGlobalKeymap() {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OSystem_SDL_Maemo::initObserver() {
|
||||||
|
assert(_eventManager);
|
||||||
|
_eventManager->getEventDispatcher()->registerObserver(_eventObserver, 10, false);
|
||||||
|
}
|
||||||
|
|
||||||
} //namespace Maemo
|
} //namespace Maemo
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -29,10 +29,12 @@
|
||||||
#include "backends/platform/maemo/maemo-common.h"
|
#include "backends/platform/maemo/maemo-common.h"
|
||||||
|
|
||||||
namespace Maemo {
|
namespace Maemo {
|
||||||
|
class MaemoSdlEventObserver;
|
||||||
|
|
||||||
class OSystem_SDL_Maemo : public OSystem_POSIX {
|
class OSystem_SDL_Maemo : public OSystem_POSIX {
|
||||||
public:
|
public:
|
||||||
OSystem_SDL_Maemo();
|
OSystem_SDL_Maemo();
|
||||||
|
~OSystem_SDL_Maemo();
|
||||||
|
|
||||||
virtual void initBackend();
|
virtual void initBackend();
|
||||||
virtual void quit();
|
virtual void quit();
|
||||||
|
@ -46,10 +48,11 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual void setXWindowName(const char *caption);
|
virtual void setXWindowName(const char *caption);
|
||||||
|
void initObserver();
|
||||||
|
|
||||||
const Model detectModel();
|
const Model detectModel();
|
||||||
Model _model;
|
Model _model;
|
||||||
|
MaemoSdlEventObserver *_eventObserver;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Maemo
|
} // namespace Maemo
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue