diff options
author | Paul Gilbert | 2016-03-07 08:11:06 -0500 |
---|---|---|
committer | Paul Gilbert | 2016-03-07 08:11:06 -0500 |
commit | 3103c9aaa9d14a5f6ad360eab2637c0be3141428 (patch) | |
tree | db2e989a7c8e28687a663ebd2c02670bb3508ec6 /engines/titanic/messages/mouse_messages.h | |
parent | fbcd4de457cfa18d121158e6be45ade57a3428f1 (diff) | |
download | scummvm-rg350-3103c9aaa9d14a5f6ad360eab2637c0be3141428.tar.gz scummvm-rg350-3103c9aaa9d14a5f6ad360eab2637c0be3141428.tar.bz2 scummvm-rg350-3103c9aaa9d14a5f6ad360eab2637c0be3141428.zip |
TITANIC: Implemented message target classes
Diffstat (limited to 'engines/titanic/messages/mouse_messages.h')
-rw-r--r-- | engines/titanic/messages/mouse_messages.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/engines/titanic/messages/mouse_messages.h b/engines/titanic/messages/mouse_messages.h index d3a0566f3d..79c45afcfa 100644 --- a/engines/titanic/messages/mouse_messages.h +++ b/engines/titanic/messages/mouse_messages.h @@ -36,9 +36,16 @@ public: CMouseMsg() : _buttons(0) {} }; +MSGTARGET(CMouseMoveMsg); class CMouseMoveMsg : public CMouseMsg { public: CLASSDEF + + virtual bool handleMessage(CMouseMoveMsg &msg) { return false; } + virtual bool perform(CTreeItem *treeItem) { + CMouseMoveMsg *dest = dynamic_cast<CMouseMoveMsg *>(treeItem); + return dest != nullptr && dest->handleMessage(*this); + } }; class CMouseButtonMsg : public CMouseMsg { @@ -49,19 +56,40 @@ public: CMouseButtonMsg() : CMouseMsg(), _field10(0) {} }; +MSGTARGET(CMouseButtonDownMsg); class CMouseButtonDownMsg : public CMouseButtonMsg { public: CLASSDEF + + virtual bool handleMessage(CMouseButtonDownMsg &msg) { return false; } + virtual bool perform(CTreeItem *treeItem) { + CMouseButtonDownMsg *dest = dynamic_cast<CMouseButtonDownMsg *>(treeItem); + return dest != nullptr && dest->handleMessage(*this); + } }; +MSGTARGET(CMouseButtonUpMsg); class CMouseButtonUpMsg : public CMouseButtonMsg { public: CLASSDEF + + virtual bool handleMessage(CMouseButtonUpMsg &msg) { return false; } + virtual bool perform(CTreeItem *treeItem) { + CMouseButtonUpMsg *dest = dynamic_cast<CMouseButtonUpMsg *>(treeItem); + return dest != nullptr && dest->handleMessage(*this); + } }; +MSGTARGET(CMouseButtonDoubleClickMsg); class CMouseButtonDoubleClickMsg : public CMouseButtonMsg { public: CLASSDEF + + virtual bool handleMessage(CMouseButtonDoubleClickMsg &msg) { return false; } + virtual bool perform(CTreeItem *treeItem) { + CMouseButtonDoubleClickMsg *dest = dynamic_cast<CMouseButtonDoubleClickMsg *>(treeItem); + return dest != nullptr && dest->handleMessage(*this); + } }; class CMouseDragMsg : public CMouseMsg { @@ -72,8 +100,15 @@ public: class CMouseDragMoveMsg : public CMouseDragMsg { public: CLASSDEF + + virtual bool handleMessage(CMouseDragMoveMsg &msg) { return false; } + virtual bool perform(CTreeItem *treeItem) { + CMouseDragMoveMsg *dest = dynamic_cast<CMouseDragMoveMsg *>(treeItem); + return dest != nullptr && dest->handleMessage(*this); + } }; +MSGTARGET(CMouseDragStartMsg); class CMouseDragStartMsg : public CMouseDragMsg { public: int _field10; @@ -81,14 +116,27 @@ public: public: CLASSDEF CMouseDragStartMsg() : CMouseDragMsg(), _field10(0), _field14(0) {} + + virtual bool handleMessage(CMouseDragStartMsg &msg) { return false; } + virtual bool perform(CTreeItem *treeItem) { + CMouseDragStartMsg *dest = dynamic_cast<CMouseDragStartMsg *>(treeItem); + return dest != nullptr && dest->handleMessage(*this); + } }; +MSGTARGET(CMouseDragEndMsg); class CMouseDragEndMsg : public CMouseDragMsg { public: int _field10; public: CLASSDEF CMouseDragEndMsg() : CMouseDragMsg(), _field10(0) {} + + virtual bool handleMessage(CMouseDragEndMsg &msg) { return false; } + virtual bool perform(CTreeItem *treeItem) { + CMouseDragEndMsg *dest = dynamic_cast<CMouseDragEndMsg *>(treeItem); + return dest != nullptr && dest->handleMessage(*this); + } }; } // End of namespace Titanic |