aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/messages/mouse_messages.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/titanic/messages/mouse_messages.h')
-rw-r--r--engines/titanic/messages/mouse_messages.h44
1 files changed, 23 insertions, 21 deletions
diff --git a/engines/titanic/messages/mouse_messages.h b/engines/titanic/messages/mouse_messages.h
index 6e2a74a046..7fe7ef960f 100644
--- a/engines/titanic/messages/mouse_messages.h
+++ b/engines/titanic/messages/mouse_messages.h
@@ -30,6 +30,7 @@ namespace Titanic {
enum MouseButton { MB_LEFT = 1, MB_MIDDLE = 2, MB_RIGHT = 4 };
+MSGTARGET(CMouseMsg);
class CMouseMsg : public CMessage {
public:
int _buttons;
@@ -39,6 +40,11 @@ public:
static bool isSupportedBy(const CTreeItem *item) {
return dynamic_cast<const CMouseMsg *>(item) != nullptr;
}
+ virtual bool perform(CTreeItem *treeItem) {
+ CMouseMsgTarget *dest = dynamic_cast<CMouseMsgTarget *>(treeItem);
+ return dest != nullptr && dest->handleMessage(*this);
+ }
+
CMouseMsg() : _buttons(0) {}
CMouseMsg(const Point &pt, int buttons) :
_mousePos(pt), _buttons(buttons) {}
@@ -52,15 +58,15 @@ public:
CMouseMoveMsg(const Point &pt, int buttons) : CMouseMsg(pt, buttons) {}
static bool isSupportedBy(const CTreeItem *item) {
- return dynamic_cast<const CMouseMoveMsg *>(item) != nullptr;
+ return dynamic_cast<const CMouseMoveMsgTarget *>(item) != nullptr;
}
- virtual bool handleMessage(const CMouseMoveMsg &msg) { return false; }
virtual bool perform(CTreeItem *treeItem) {
- CMouseMoveMsg *dest = dynamic_cast<CMouseMoveMsg *>(treeItem);
+ CMouseMoveMsgTarget *dest = dynamic_cast<CMouseMoveMsgTarget *>(treeItem);
return dest != nullptr && dest->handleMessage(*this);
}
};
+MSGTARGET(CMouseButtonMsg);
class CMouseButtonMsg : public CMouseMsg {
public:
int _field10;
@@ -70,7 +76,7 @@ public:
CMouseButtonMsg(const Point &pt, int buttons) : CMouseMsg(pt, buttons) {}
static bool isSupportedBy(const CTreeItem *item) {
- return dynamic_cast<const CMouseButtonMsg *>(item) != nullptr;
+ return dynamic_cast<const CMouseButtonMsgTarget *>(item) != nullptr;
}
};
@@ -82,11 +88,10 @@ public:
CMouseButtonDownMsg(const Point &pt, int buttons) : CMouseButtonMsg(pt, buttons) {}
static bool isSupportedBy(const CTreeItem *item) {
- return dynamic_cast<const CMouseButtonDownMsg *>(item) != nullptr;
+ return dynamic_cast<const CMouseButtonDownMsgTarget *>(item) != nullptr;
}
- virtual bool handleMessage(const CMouseButtonDownMsg &msg) { return false; }
virtual bool perform(CTreeItem *treeItem) {
- CMouseButtonDownMsg *dest = dynamic_cast<CMouseButtonDownMsg *>(treeItem);
+ CMouseButtonDownMsgTarget *dest = dynamic_cast<CMouseButtonDownMsgTarget *>(treeItem);
return dest != nullptr && dest->handleMessage(*this);
}
};
@@ -101,9 +106,8 @@ public:
static bool isSupportedBy(const CTreeItem *item) {
return dynamic_cast<const CMouseButtonUpMsg *>(item) != nullptr;
}
- virtual bool handleMessage(const CMouseButtonUpMsg &msg) { return false; }
virtual bool perform(CTreeItem *treeItem) {
- CMouseButtonUpMsg *dest = dynamic_cast<CMouseButtonUpMsg *>(treeItem);
+ CMouseButtonUpMsgTarget *dest = dynamic_cast<CMouseButtonUpMsgTarget *>(treeItem);
return dest != nullptr && dest->handleMessage(*this);
}
};
@@ -116,15 +120,15 @@ public:
CMouseDoubleClickMsg(const Point &pt, int buttons) : CMouseButtonMsg(pt, buttons) {}
static bool isSupportedBy(const CTreeItem *item) {
- return dynamic_cast<const CMouseDoubleClickMsg *>(item) != nullptr;
+ return dynamic_cast<const CMouseDoubleClickMsgTarget *>(item) != nullptr;
}
- virtual bool handleMessage(const CMouseDoubleClickMsg &msg) { return false; }
virtual bool perform(CTreeItem *treeItem) {
- CMouseDoubleClickMsg *dest = dynamic_cast<CMouseDoubleClickMsg *>(treeItem);
+ CMouseDoubleClickMsgTarget *dest = dynamic_cast<CMouseDoubleClickMsgTarget *>(treeItem);
return dest != nullptr && dest->handleMessage(*this);
}
};
+MSGTARGET(CMouseDragMsg);
class CMouseDragMsg : public CMouseMsg {
public:
CLASSDEF
@@ -136,6 +140,7 @@ public:
}
};
+MSGTARGET(CMouseDragMoveMsg);
class CMouseDragMoveMsg : public CMouseDragMsg {
public:
CLASSDEF
@@ -143,11 +148,10 @@ public:
CMouseDragMoveMsg(const Point &pt) : CMouseDragMsg(pt) {}
static bool isSupportedBy(const CTreeItem *item) {
- return dynamic_cast<const CMouseDragMoveMsg *>(item) != nullptr;
+ return dynamic_cast<const CMouseDragMoveMsgTarget *>(item) != nullptr;
}
- virtual bool handleMessage(const CMouseDragMoveMsg &msg) { return false; }
virtual bool perform(CTreeItem *treeItem) {
- CMouseDragMoveMsg *dest = dynamic_cast<CMouseDragMoveMsg *>(treeItem);
+ CMouseDragMoveMsgTarget *dest = dynamic_cast<CMouseDragMoveMsgTarget *>(treeItem);
return dest != nullptr && dest->handleMessage(*this);
}
};
@@ -164,11 +168,10 @@ public:
_dragItem(nullptr), _field14(0) {}
static bool isSupportedBy(const CTreeItem *item) {
- return dynamic_cast<const CMouseDragStartMsg *>(item) != nullptr;
+ return dynamic_cast<const CMouseDragStartMsgTarget *>(item) != nullptr;
}
- virtual bool handleMessage(const CMouseDragStartMsg &msg) { return false; }
virtual bool perform(CTreeItem *treeItem) {
- CMouseDragStartMsg *dest = dynamic_cast<CMouseDragStartMsg *>(treeItem);
+ CMouseDragStartMsgTarget *dest = dynamic_cast<CMouseDragStartMsgTarget *>(treeItem);
return dest != nullptr && dest->handleMessage(*this);
}
};
@@ -184,11 +187,10 @@ public:
CMouseDragMsg(pt), _dragItem(dragItem) {}
static bool isSupportedBy(const CTreeItem *item) {
- return dynamic_cast<const CMouseDragEndMsg *>(item) != nullptr;
+ return dynamic_cast<const CMouseDragEndMsgTarget *>(item) != nullptr;
}
- virtual bool handleMessage(const CMouseDragEndMsg &msg) { return false; }
virtual bool perform(CTreeItem *treeItem) {
- CMouseDragEndMsg *dest = dynamic_cast<CMouseDragEndMsg *>(treeItem);
+ CMouseDragEndMsgTarget *dest = dynamic_cast<CMouseDragEndMsgTarget *>(treeItem);
return dest != nullptr && dest->handleMessage(*this);
}
};