aboutsummaryrefslogtreecommitdiff
path: root/engines/wage/macmenu.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2016-04-28 15:25:14 +0200
committerEugene Sandulenko2016-04-28 15:25:14 +0200
commit72b8f3a1c7e47ec6fef962cd1aa7abebcf5d782f (patch)
treeeb6304dbd84f20479d0bb886d79744369d32e982 /engines/wage/macmenu.cpp
parent3027433b669d00a5b16689a4de518639d7dff746 (diff)
downloadscummvm-rg350-72b8f3a1c7e47ec6fef962cd1aa7abebcf5d782f.tar.gz
scummvm-rg350-72b8f3a1c7e47ec6fef962cd1aa7abebcf5d782f.tar.bz2
scummvm-rg350-72b8f3a1c7e47ec6fef962cd1aa7abebcf5d782f.zip
WAGE: Implemented menu commands as callback
Diffstat (limited to 'engines/wage/macmenu.cpp')
-rw-r--r--engines/wage/macmenu.cpp42
1 files changed, 3 insertions, 39 deletions
diff --git a/engines/wage/macmenu.cpp b/engines/wage/macmenu.cpp
index 0b3b76c7bb..aecf27726a 100644
--- a/engines/wage/macmenu.cpp
+++ b/engines/wage/macmenu.cpp
@@ -487,7 +487,8 @@ bool Menu::mouseRelease(int x, int y) {
_menuActivated = false;
if (_activeItem != -1 && _activeSubItem != -1 && _items[_activeItem]->subitems[_activeSubItem]->enabled)
- executeCommand(_items[_activeItem]->subitems[_activeSubItem]);
+ (*_ccallback)(_items[_activeItem]->subitems[_activeSubItem]->action,
+ _items[_activeItem]->subitems[_activeSubItem]->text, _cdata);
_activeItem = -1;
_activeSubItem = -1;
@@ -500,43 +501,6 @@ bool Menu::mouseRelease(int x, int y) {
return false;
}
-void Menu::executeCommand(MenuSubItem *subitem) {
- switch(subitem->action) {
- case kMenuActionAbout:
- case kMenuActionNew:
- case kMenuActionOpen:
- case kMenuActionClose:
- case kMenuActionSave:
- case kMenuActionSaveAs:
- case kMenuActionRevert:
- case kMenuActionQuit:
-
- case kMenuActionUndo:
- _gui->actionUndo();
- break;
- case kMenuActionCut:
- _gui->actionCut();
- break;
- case kMenuActionCopy:
- _gui->actionCopy();
- break;
- case kMenuActionPaste:
- _gui->actionPaste();
- break;
- case kMenuActionClear:
- _gui->actionClear();
- break;
-
- case kMenuActionCommand:
- _gui->_engine->processTurn(&subitem->text, NULL);
- break;
-
- default:
- warning("Unknown action: %d", subitem->action);
-
- }
-}
-
bool Menu::processMenuShortCut(byte flags, uint16 ascii) {
ascii = tolower(ascii);
@@ -544,7 +508,7 @@ bool Menu::processMenuShortCut(byte flags, uint16 ascii) {
for (uint i = 0; i < _items.size(); i++)
for (uint j = 0; j < _items[i]->subitems.size(); j++)
if (_items[i]->subitems[j]->enabled && tolower(_items[i]->subitems[j]->shortcut) == ascii) {
- executeCommand(_items[i]->subitems[j]);
+ (*_ccallback)(_items[i]->subitems[j]->action, _items[i]->subitems[j]->text, _cdata);
return true;
}
}