aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/messages/mouse_messages.h
diff options
context:
space:
mode:
authorPaul Gilbert2016-03-07 08:11:06 -0500
committerPaul Gilbert2016-03-07 08:11:06 -0500
commit3103c9aaa9d14a5f6ad360eab2637c0be3141428 (patch)
treedb2e989a7c8e28687a663ebd2c02670bb3508ec6 /engines/titanic/messages/mouse_messages.h
parentfbcd4de457cfa18d121158e6be45ade57a3428f1 (diff)
downloadscummvm-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.h48
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