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/application/implementation/tbi_application_information.hpp>
13 #include <turtle_brains/core/tb_types.hpp>
14 
15 #include <vector>
16 
17 namespace TurtleBrains
18 {
19  namespace Application
20  {
21 
23 
32  typedef unsigned short MenuIdentifier;
33 
43  typedef unsigned short MenuItemIdentifier;
44 
50  extern const MenuItemIdentifier kInvalidMenuItemIdentifier;
51 
52 //-------------------------------------------------------------------------------------------------------------------//
53 
66  {
67  public:
73  explicit ApplicationMenu(const MenuIdentifier& menuIdentifier);
74 
84  ~ApplicationMenu(void);
85 
90  const MenuIdentifier& GetIdentifier(void) const;
91 
107  void AddMenuItem(const MenuItemIdentifier& itemIdentifier, const tbCore::tbString& displayName,
108  const MenuItemIdentifier& parentIdentifier = kInvalidMenuItemIdentifier, const bool isEnabled = true,
109  const bool isChecked = false, const bool isVisible = true);
110 
121  const tbCore::tbString& 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 tbCore::tbString& 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 */
static void SetItemSafeForDuplication(const MenuItemIdentifier &itemIdentifier)
const MenuIdentifier & GetIdentifier(void) const
void AddMenuItem(const MenuItemIdentifier &itemIdentifier, const tbCore::tbString &displayName, const MenuItemIdentifier &parentIdentifier=kInvalidMenuItemIdentifier, const bool isEnabled=true, const bool isChecked=false, const bool isVisible=true)
void SetChecked(const MenuItemIdentifier &itemIdentifier, bool isChecked)
Here is some information about the primary namespace.
Definition: tb_application_dialog.hpp:21
Contains classes, functions and constants to create Applications, Menus, Dialogs with native controls...
Definition: tb_application_dialog.hpp:23
void SetVisible(const MenuItemIdentifier &itemIdentifier, bool isVisible)
Handle events from the application/window and actions from the user of your application by deriving a...
Definition: tb_application_handler_interface.hpp:32
bool IsEnabled(const MenuItemIdentifier &itemIdentifier) const
void SetEnabled(const MenuItemIdentifier &itemIdentifier, bool isEnabled)
To create simple but powerful menu to be used in an applications or game development tools...
Definition: tb_application_menu.hpp:65
ApplicationMenu(const MenuIdentifier &menuIdentifier)
const MenuItemIdentifier kInvalidMenuItemIdentifier
const tbCore::tbString & GetDisplayName(const MenuItemIdentifier &itemIdentifier) const
unsigned short MenuIdentifier
Definition: tb_application_menu.hpp:22
std::string tbString
Definition: tb_string.hpp:335
bool IsVisible(const MenuItemIdentifier &itemIdentifier) const
void SetDisplayName(const MenuItemIdentifier &itemIdentifier, const tbCore::tbString &displayName)
bool IsChecked(const MenuItemIdentifier &itemIdentifier) const
unsigned short MenuItemIdentifier
Definition: tb_application_menu.hpp:43