aboutsummaryrefslogtreecommitdiff
path: root/engines/lab/interface.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2016-01-14 23:35:02 +0200
committerFilippos Karapetis2016-01-14 23:41:35 +0200
commit924d43b7aac241b9205af640b0a6788e4abc99bf (patch)
treeb00890676a2eece1289b26fd694298c6742032e9 /engines/lab/interface.cpp
parent46fdd5e7a48e0312c3fb523058f98e1d11f068e5 (diff)
downloadscummvm-rg350-924d43b7aac241b9205af640b0a6788e4abc99bf.tar.gz
scummvm-rg350-924d43b7aac241b9205af640b0a6788e4abc99bf.tar.bz2
scummvm-rg350-924d43b7aac241b9205af640b0a6788e4abc99bf.zip
LAB: Better separation of the event and interface code
Diffstat (limited to 'engines/lab/interface.cpp')
-rw-r--r--engines/lab/interface.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/engines/lab/interface.cpp b/engines/lab/interface.cpp
index 41a9047ba9..b0a83a90bf 100644
--- a/engines/lab/interface.cpp
+++ b/engines/lab/interface.cpp
@@ -107,6 +107,37 @@ Button *EventManager::checkNumButtonHit(ButtonList *buttonList, Common::KeyCode
return nullptr;
}
+Button *EventManager::checkButtonHit(ButtonList *buttonList, Common::Point pos) {
+ for (ButtonList::iterator buttonItr = buttonList->begin(); buttonItr != buttonList->end(); ++buttonItr) {
+ Button *button = *buttonItr;
+ Common::Rect buttonRect(button->_x, button->_y, button->_x + button->_image->_width - 1, button->_y + button->_image->_height - 1);
+
+ if (buttonRect.contains(pos) && button->_isEnabled) {
+ _hitButton = button;
+ return button;
+ }
+ }
+
+ return nullptr;
+}
+
+void EventManager::attachButtonList(ButtonList *buttonList) {
+ if (_screenButtonList != buttonList)
+ _lastButtonHit = nullptr;
+
+ _screenButtonList = buttonList;
+}
+
+Button *EventManager::getButton(uint16 id) {
+ for (ButtonList::iterator buttonItr = _screenButtonList->begin(); buttonItr != _screenButtonList->end(); ++buttonItr) {
+ Button *button = *buttonItr;
+ if (button->_buttonId == id)
+ return button;
+ }
+
+ return nullptr;
+}
+
IntuiMessage *EventManager::getMsg() {
static IntuiMessage message;