diff options
author | Andrei Prykhodko | 2018-07-18 21:47:22 +0300 |
---|---|---|
committer | Andrei Prykhodko | 2018-07-18 21:47:22 +0300 |
commit | e1460103e195d788dfa0e0cf8bbe57f0afae466f (patch) | |
tree | ee4e4438638aa136de4aa24dc0f4aaea9c7bbf4f /graphics/macgui | |
parent | 1cdbec7da3a4441833207140ac55f25dcd3bca00 (diff) | |
download | scummvm-rg350-e1460103e195d788dfa0e0cf8bbe57f0afae466f.tar.gz scummvm-rg350-e1460103e195d788dfa0e0cf8bbe57f0afae466f.tar.bz2 scummvm-rg350-e1460103e195d788dfa0e0cf8bbe57f0afae466f.zip |
GRAPHICS: MACGUI: added WMModalMenuMode
Diffstat (limited to 'graphics/macgui')
-rw-r--r-- | graphics/macgui/macmenu.cpp | 3 | ||||
-rw-r--r-- | graphics/macgui/macwindowmanager.cpp | 8 | ||||
-rw-r--r-- | graphics/macgui/macwindowmanager.h | 6 |
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(); |