From 7e8c1028d31e8b86fb6bc4cc05ac8dcf1e772eb2 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Fri, 5 Feb 2016 11:05:00 +0100 Subject: [PATCH] WAGE: Implement API to enable/disable menu items --- engines/wage/gui.cpp | 2 ++ engines/wage/menu.cpp | 24 +++++------------------- engines/wage/menu.h | 20 ++++++++++++++++++++ 3 files changed, 27 insertions(+), 19 deletions(-) diff --git a/engines/wage/gui.cpp b/engines/wage/gui.cpp index 4e52801c7695..2564f67af2b7 100644 --- a/engines/wage/gui.cpp +++ b/engines/wage/gui.cpp @@ -707,6 +707,8 @@ Designed *Gui::mouseUp(int x, int y) { (_selectionEndX == _selectionStartX && _selectionEndY == _selectionStartY)) { _selectionStartY = _selectionEndY = -1; _consoleFullRedraw = true; + } else { + } } diff --git a/engines/wage/menu.cpp b/engines/wage/menu.cpp index a814934a238a..69ac07b019b1 100644 --- a/engines/wage/menu.cpp +++ b/engines/wage/menu.cpp @@ -79,25 +79,6 @@ struct MenuItem { MenuItem(const char *n) : name(n) {} }; -enum { - kMenuActionAbout, - kMenuActionNew, - kMenuActionOpen, - kMenuActionClose, - kMenuActionSave, - kMenuActionSaveAs, - kMenuActionRevert, - kMenuActionQuit, - - kMenuActionUndo, - kMenuActionCut, - kMenuActionCopy, - kMenuActionPaste, - kMenuActionClear, - - kMenuActionCommand -}; - struct MenuData { int menunum; const char *title; @@ -568,5 +549,10 @@ void Menu::processMenuShortCut(byte flags, uint16 ascii) { } } +void Menu::enableCommand(int menunum, int action, bool state) { + for (int i = 0; i < _items[menunum]->subitems.size(); i++) + if (_items[menunum]->subitems[i]->action == action) + _items[menunum]->subitems[i]->enabled = state; +} } // End of namespace Wage diff --git a/engines/wage/menu.h b/engines/wage/menu.h index d817cf373478..a37e6b037c62 100644 --- a/engines/wage/menu.h +++ b/engines/wage/menu.h @@ -63,6 +63,25 @@ enum { kFontStyleExtended = 64 }; +enum { + kMenuActionAbout, + kMenuActionNew, + kMenuActionOpen, + kMenuActionClose, + kMenuActionSave, + kMenuActionSaveAs, + kMenuActionRevert, + kMenuActionQuit, + + kMenuActionUndo, + kMenuActionCut, + kMenuActionCopy, + kMenuActionPaste, + kMenuActionClear, + + kMenuActionCommand +}; + class Menu { public: Menu(Gui *gui); @@ -76,6 +95,7 @@ class Menu { void regenCommandsMenu(); void regenWeaponsMenu(); void processMenuShortCut(byte flags, uint16 ascii); + void enableCommand(int menunum, int action, bool state); bool _menuActivated; Common::Rect _bbox;