TurtleBrains  0.3.5
High quality, portable, C++ framework for rapid 2D game development.
tb_application_menu.hpp
1 
9 #ifndef TurtleBrains_ApplicationMenu_hpp
10 #define TurtleBrains_ApplicationMenu_hpp
11 
12 #include <turtle_brains/core/tb_types.hpp>
13 #include <turtle_brains/core/tb_string.hpp>
14 
15 #include <vector>
16 
17 namespace TurtleBrains
18 {
19  namespace Application
20  {
21 
22  class ApplicationHandlerInterface;
23 
32  typedef unsigned short MenuIdentifier;
33 
43  typedef unsigned short MenuItemIdentifier;
44 
51 
52 //--------------------------------------------------------------------------------------------------------------------//
53 
66  {
67  public:
73  explicit ApplicationMenu(const MenuIdentifier& menuIdentifier);
74 
85 
90  const MenuIdentifier& GetIdentifier(void) const;
91 
107  void AddMenuItem(const MenuItemIdentifier& itemIdentifier, const String& displayName,
108  const MenuItemIdentifier& parentIdentifier = kInvalidMenuItemIdentifier, const bool isEnabled = true,
109  const bool isChecked = false, const bool isVisible = true);
110 
121  const String& GetDisplayName(const MenuItemIdentifier& itemIdentifier) const;
122 
133  bool IsEnabled(const MenuItemIdentifier& itemIdentifier) const;
134 
145  bool IsChecked(const MenuItemIdentifier& itemIdentifier) const;
146 
157  bool IsVisible(const MenuItemIdentifier& itemIdentifier) const;
158 
170  void SetDisplayName(const MenuItemIdentifier& itemIdentifier, const String& displayName);
171 
184  void SetEnabled(const MenuItemIdentifier& itemIdentifier, bool isEnabled);
185 
199  void SetChecked(const MenuItemIdentifier& itemIdentifier, bool isChecked);
200 
212  void SetVisible(const MenuItemIdentifier& itemIdentifier, bool isVisible);
213 
228  static void SetItemSafeForDuplication(const MenuItemIdentifier& itemIdentifier);
229 
230  private:
231  MenuIdentifier mIdentifier;
232  };
233 
234  }; /* namespace Application */
235 }; /* namespace TurtleBrains */
236 
238 
239 #endif /* TurtleBrains_ApplicationMenu_hpp */
To create simple but powerful menu to be used in an applications or game development tools.
Definition: tb_application_menu.hpp:66
void SetEnabled(const MenuItemIdentifier &itemIdentifier, bool isEnabled)
void SetVisible(const MenuItemIdentifier &itemIdentifier, bool isVisible)
bool IsChecked(const MenuItemIdentifier &itemIdentifier) const
static void SetItemSafeForDuplication(const MenuItemIdentifier &itemIdentifier)
const MenuIdentifier & GetIdentifier(void) const
void SetDisplayName(const MenuItemIdentifier &itemIdentifier, const String &displayName)
bool IsEnabled(const MenuItemIdentifier &itemIdentifier) const
ApplicationMenu(const MenuIdentifier &menuIdentifier)
void SetChecked(const MenuItemIdentifier &itemIdentifier, bool isChecked)
const String & GetDisplayName(const MenuItemIdentifier &itemIdentifier) const
bool IsVisible(const MenuItemIdentifier &itemIdentifier) const
void AddMenuItem(const MenuItemIdentifier &itemIdentifier, const String &displayName, const MenuItemIdentifier &parentIdentifier=kInvalidMenuItemIdentifier, const bool isEnabled=true, const bool isChecked=false, const bool isVisible=true)
Contains classes, functions and constants to create Applications, Menus, Dialogs with native controls...
Definition: tb_application_dialog.hpp:24
unsigned short MenuItemIdentifier
Definition: tb_application_menu.hpp:43
const MenuItemIdentifier kInvalidMenuItemIdentifier
unsigned short MenuIdentifier
Definition: tb_application_menu.hpp:22
Here is some information about the primary namespace.
Definition: tb_application_dialog.hpp:22