diff options
Diffstat (limited to 'graphics/macgui/macmenu.h')
-rw-r--r-- | graphics/macgui/macmenu.h | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/graphics/macgui/macmenu.h b/graphics/macgui/macmenu.h index 3b21647842..49606f1f9a 100644 --- a/graphics/macgui/macmenu.h +++ b/graphics/macgui/macmenu.h @@ -34,8 +34,8 @@ class MacResManager; namespace Graphics { struct MacMenuItem; -struct MacMenuSubItem; struct MacMenuSubMenu; +typedef Common::Array<MacMenuItem *> ItemArray; struct MacMenuData { int menunum; @@ -59,18 +59,16 @@ public: void addStaticMenus(const MacMenuData *data); void calcDimensions(); - MacMenuSubMenu *addSubMenu(MacMenuSubMenu *submenu); - int addMenuItem(const Common::String &name); - int addMenuItem(const Common::U32String &name); - void addMenuSubItem(int id, const Common::String &text, int action, int style = 0, char shortcut = 0, bool enabled = true); - void addMenuSubItem(int id, const Common::U32String &text, int action, int style = 0, char shortcut = 0, bool enabled = true); - void addSubMenuItem(MacMenuSubMenu *submenu, const Common::String &text, int action, int style = 0, char shortcut = 0, bool enabled = true); - void addSubMenuItem(MacMenuSubMenu *submenu, const Common::U32String &text, int action, int style = 0, char shortcut = 0, bool enabled = true); + MacMenuSubMenu *addSubMenu(MacMenuSubMenu *submenu, int index = -1); + int addMenuItem(MacMenuSubMenu *submenu, const Common::String &text, int action = -1, int style = 0, char shortcut = 0, bool enabled = true); + int addMenuItem(MacMenuSubMenu *submenu, const Common::U32String &text, int action = 0, int style = 0, char shortcut = 0, bool enabled = true); void loadMenuResource(Common::MacResManager *resFork, uint16 id); void loadMenuBarResource(Common::MacResManager *resFork, uint16 id); void createSubMenuFromString(int id, const char *string, int commandId); void clearSubMenu(int id); + MacMenuSubMenu *getSubmenu(MacMenuSubMenu *submenu, int index); + bool draw(ManagedSurface *g, bool forceRedraw = false); bool processEvent(Common::Event &event); @@ -85,6 +83,8 @@ public: bool isVisible() { return _isVisible; } void setVisible(bool visible) { _isVisible = visible; _contentIsDirty = true; } + void printMenu(int level = 0, MacMenuSubMenu *submenu = nullptr); + Common::Rect _bbox; private: @@ -93,7 +93,7 @@ private: private: const Font *getMenuFont(); - const Common::String getAcceleratorString(MacMenuSubItem *item, const char *prefix); + const Common::String getAcceleratorString(MacMenuItem *item, const char *prefix); int calcSubMenuWidth(MacMenuSubMenu *menu); void calcSubMenuBounds(MacMenuSubMenu *menu, int x, int y); void renderSubmenu(MacMenuSubMenu *menu, bool recursive = true); @@ -107,9 +107,7 @@ private: void drawSubMenuArrow(ManagedSurface *dst, int x, int y, int color); - void printMenu(int level = 0, MacMenuSubMenu *submenu = nullptr); - - Common::Array<MacMenuItem *> _items; + ItemArray _items; const Font *_font; |