aboutsummaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
authorAndrei Prykhodko2018-07-18 21:47:22 +0300
committerAndrei Prykhodko2018-07-18 21:47:22 +0300
commite1460103e195d788dfa0e0cf8bbe57f0afae466f (patch)
treeee4e4438638aa136de4aa24dc0f4aaea9c7bbf4f /graphics
parent1cdbec7da3a4441833207140ac55f25dcd3bca00 (diff)
downloadscummvm-rg350-e1460103e195d788dfa0e0cf8bbe57f0afae466f.tar.gz
scummvm-rg350-e1460103e195d788dfa0e0cf8bbe57f0afae466f.tar.bz2
scummvm-rg350-e1460103e195d788dfa0e0cf8bbe57f0afae466f.zip
GRAPHICS: MACGUI: added WMModalMenuMode
Diffstat (limited to 'graphics')
-rw-r--r--graphics/macgui/macmenu.cpp3
-rw-r--r--graphics/macgui/macwindowmanager.cpp8
-rw-r--r--graphics/macgui/macwindowmanager.h6
3 files changed, 15 insertions, 2 deletions
diff --git a/graphics/macgui/macmenu.cpp b/graphics/macgui/macmenu.cpp
index 9ab92a8fd1..499f0b9710 100644
--- a/graphics/macgui/macmenu.cpp
+++ b/graphics/macgui/macmenu.cpp
@@ -556,6 +556,9 @@ bool MacMenu::mouseMove(int x, int y) {
return true;
} else if ((_wm->_mode & kWMModeAutohideMenu) && !_bbox.contains(x, y)) {
_isVisible = false;
+ if ((_wm->_mode & kWMModalMenuMode) && _wm->_pauseEngineCallback) {
+ _wm->_pauseEngineCallback(_wm->_engine, false);
+ }
}
return false;
diff --git a/graphics/macgui/macwindowmanager.cpp b/graphics/macgui/macwindowmanager.cpp
index bde17b6e49..17c03953aa 100644
--- a/graphics/macgui/macwindowmanager.cpp
+++ b/graphics/macgui/macwindowmanager.cpp
@@ -158,6 +158,8 @@ MacWindowManager::MacWindowManager() {
_menuDelay = 0;
_menuTimerActive = false;
+ _pauseEngineCallback = nullptr;
+
_colorBlack = 0;
_colorWhite = 2;
@@ -332,8 +334,12 @@ void MacWindowManager::draw() {
static void menuTimerHandler(void *refCon) {
MacWindowManager *wm = (MacWindowManager *)refCon;
- if (wm->_menuHotzone.contains(wm->_lastMousePos))
+ if (wm->_menuHotzone.contains(wm->_lastMousePos)) {
wm->activateMenu();
+ if ((wm->_mode & kWMModalMenuMode) && wm->_pauseEngineCallback) {
+ wm->_pauseEngineCallback(wm->_engine, true);
+ }
+ }
wm->_menuTimerActive = false;
diff --git a/graphics/macgui/macwindowmanager.h b/graphics/macgui/macwindowmanager.h
index a220b737e8..1b450d9907 100644
--- a/graphics/macgui/macwindowmanager.h
+++ b/graphics/macgui/macwindowmanager.h
@@ -59,7 +59,8 @@ enum {
enum {
kWMModeNone = 0,
kWMModeNoDesktop = (1 << 0),
- kWMModeAutohideMenu = (1 << 1)
+ kWMModeAutohideMenu = (1 << 1),
+ kWMModalMenuMode = (1 << 2)
};
}
@@ -223,6 +224,9 @@ public:
int _colorBlack, _colorWhite;
+ void *_engine;
+ void (*_pauseEngineCallback)(void *engine, bool pause);
+
private:
void drawDesktop();