TurtleBrains  0.2.1
High quality, portable, C++ API for native application and game development.
tb_application_menu.h
1 
9 #ifndef _TurtleBrains_ApplicationMenu_h_
10 #define _TurtleBrains_ApplicationMenu_h_
11 
12 #include <vector>
13 
14 #include "../core/tb_types.h"
15 #include "implementation/tbi_application_information.h"
16 
17 namespace TurtleBrains
18 {
19  namespace Application
20  {
21 
23 
30  typedef unsigned short MenuIdentifier;
31 
39  typedef unsigned short MenuItemIdentifier;
40 
44  extern const MenuItemIdentifier kInvalidMenuItemIdentifier;
45 
46 //--------------------------------------------------------------------------------------------------------------------//
47 
58  {
59  public:
65  explicit ApplicationMenu(const MenuIdentifier& menuIdentifier);
66 
76  ~ApplicationMenu(void);
77 
82  const MenuIdentifier& GetIdentifier(void) const;
83 
99  void AddMenuItem(const MenuItemIdentifier& itemIdentifier, const tbCore::tbString& displayName,
100  const MenuItemIdentifier& parentIdentifier = kInvalidMenuItemIdentifier, const bool isEnabled = true,
101  const bool isChecked = false, const bool isVisible = true);
102 
113  const tbCore::tbString& GetDisplayName(const MenuItemIdentifier& itemIdentifier) const;
114 
125  bool IsEnabled(const MenuItemIdentifier& itemIdentifier) const;
126 
137  bool IsChecked(const MenuItemIdentifier& itemIdentifier) const;
138 
149  bool IsVisible(const MenuItemIdentifier& itemIdentifier) const;
150 
162  void SetDisplayName(const MenuItemIdentifier& itemIdentifier, const tbCore::tbString& displayName);
163 
176  void SetEnabled(const MenuItemIdentifier& itemIdentifier, bool isEnabled);
177 
191  void SetChecked(const MenuItemIdentifier& itemIdentifier, bool isChecked);
192 
204  void SetVisible(const MenuItemIdentifier& itemIdentifier, bool isVisible);
205 
220  static void SetItemSafeForDuplication(const MenuItemIdentifier& itemIdentifier);
221 
222  private:
223  MenuIdentifier mIdentifier;
224  };
225 
226  }; /* namespace Application */
227 }; /* namespace TurtleBrains */
228 
230 
231 #endif /* _TurtleBrains_ApplicationMenu_h_ */
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)
Contains all functions, classes and helpers related to game/application development written by Tim "B...
Definition: tb_application_dialog.h:21
Contains classes, functions and constants to create Applications, Menus, Dialogs with native controls...
Definition: tb_application_dialog.h: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.h:29
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.h:57
ApplicationMenu(const MenuIdentifier &menuIdentifier)
const MenuItemIdentifier kInvalidMenuItemIdentifier
const tbCore::tbString & GetDisplayName(const MenuItemIdentifier &itemIdentifier) const
unsigned short MenuIdentifier
Definition: tb_application_menu.h:22
std::string tbString
Definition: tb_string.h:293
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.h:39