From 0f4ca41dad11b97bc563f55b354db6a8006478a9 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Tue, 1 Nov 2016 22:30:21 -0400 Subject: TITANIC: Add support for mouse wheel scrolling conversations log --- engines/titanic/pet_control/pet_control.cpp | 8 ++++++++ engines/titanic/pet_control/pet_control.h | 1 + engines/titanic/pet_control/pet_conversations.cpp | 9 +++++++++ engines/titanic/pet_control/pet_conversations.h | 1 + engines/titanic/pet_control/pet_section.h | 1 + 5 files changed, 20 insertions(+) (limited to 'engines/titanic/pet_control') diff --git a/engines/titanic/pet_control/pet_control.cpp b/engines/titanic/pet_control/pet_control.cpp index d9f00c2974..689ff0162f 100644 --- a/engines/titanic/pet_control/pet_control.cpp +++ b/engines/titanic/pet_control/pet_control.cpp @@ -37,6 +37,7 @@ BEGIN_MESSAGE_MAP(CPetControl, CGameObject) ON_MESSAGE(MouseDragEndMsg) ON_MESSAGE(MouseButtonUpMsg) ON_MESSAGE(MouseDoubleClickMsg) + ON_MESSAGE(MouseWheelMsg) ON_MESSAGE(KeyCharMsg) ON_MESSAGE(VirtualKeyCharMsg) ON_MESSAGE(TimerMsg) @@ -317,6 +318,13 @@ bool CPetControl::MouseDoubleClickMsg(CMouseDoubleClickMsg *msg) { return _sections[_currentArea]->MouseDoubleClickMsg(msg); } +bool CPetControl::MouseWheelMsg(CMouseWheelMsg *msg) { + if (!containsPt(msg->_mousePos) || isInputLocked()) + return false; + + return _sections[_currentArea]->MouseWheelMsg(msg); +} + bool CPetControl::KeyCharMsg(CKeyCharMsg *msg) { if (isInputLocked()) return false; diff --git a/engines/titanic/pet_control/pet_control.h b/engines/titanic/pet_control/pet_control.h index d42dff598c..e95643b967 100644 --- a/engines/titanic/pet_control/pet_control.h +++ b/engines/titanic/pet_control/pet_control.h @@ -116,6 +116,7 @@ protected: bool MouseDragEndMsg(CMouseDragEndMsg *msg); bool MouseButtonUpMsg(CMouseButtonUpMsg *msg); bool MouseDoubleClickMsg(CMouseDoubleClickMsg *msg); + bool MouseWheelMsg(CMouseWheelMsg *msg); bool KeyCharMsg(CKeyCharMsg *msg); bool VirtualKeyCharMsg(CVirtualKeyCharMsg *msg); bool TimerMsg(CTimerMsg *msg); diff --git a/engines/titanic/pet_control/pet_conversations.cpp b/engines/titanic/pet_control/pet_conversations.cpp index 58dcd57384..10b3637547 100644 --- a/engines/titanic/pet_control/pet_conversations.cpp +++ b/engines/titanic/pet_control/pet_conversations.cpp @@ -203,6 +203,15 @@ bool CPetConversations::MouseDoubleClickMsg(CMouseDoubleClickMsg *msg) { || _scrollUp.MouseDoubleClickMsg(msg->_mousePos); } +bool CPetConversations::MouseWheelMsg(CMouseWheelMsg *msg) { + if (msg->_wheelUp) + scrollUp(); + else + scrollDown(); + + return true; +} + bool CPetConversations::KeyCharMsg(CKeyCharMsg *msg) { Common::KeyState keyState; keyState.ascii = msg->_key; diff --git a/engines/titanic/pet_control/pet_conversations.h b/engines/titanic/pet_control/pet_conversations.h index efb7db4277..1837e5df2a 100644 --- a/engines/titanic/pet_control/pet_conversations.h +++ b/engines/titanic/pet_control/pet_conversations.h @@ -164,6 +164,7 @@ public: virtual bool MouseButtonDownMsg(CMouseButtonDownMsg *msg); virtual bool MouseButtonUpMsg(CMouseButtonUpMsg *msg); virtual bool MouseDoubleClickMsg(CMouseDoubleClickMsg *msg); + virtual bool MouseWheelMsg(CMouseWheelMsg *msg); virtual bool KeyCharMsg(CKeyCharMsg *msg); virtual bool VirtualKeyCharMsg(CVirtualKeyCharMsg *msg); diff --git a/engines/titanic/pet_control/pet_section.h b/engines/titanic/pet_control/pet_section.h index 9e9afe6c21..c68aa90411 100644 --- a/engines/titanic/pet_control/pet_section.h +++ b/engines/titanic/pet_control/pet_section.h @@ -106,6 +106,7 @@ public: virtual bool MouseDragEndMsg(CMouseDragEndMsg *msg) { return false; } virtual bool MouseButtonUpMsg(CMouseButtonUpMsg *msg) { return false; } virtual bool MouseDoubleClickMsg(CMouseDoubleClickMsg *msg) { return false; } + virtual bool MouseWheelMsg(CMouseWheelMsg *msg) { return false; } virtual bool KeyCharMsg(CKeyCharMsg *msg) { return false; } virtual bool VirtualKeyCharMsg(CVirtualKeyCharMsg *msg) { return false; } -- cgit v1.2.3