aboutsummaryrefslogtreecommitdiff
path: root/graphics/macgui/macmenu.h
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/macgui/macmenu.h')
-rw-r--r--graphics/macgui/macmenu.h22
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;