Choreonoid  1.8
MenuManager.h
Go to the documentation of this file.
1 
5 #ifndef CNOID_BASE_MENU_MANAGER_H
6 #define CNOID_BASE_MENU_MANAGER_H
7 
8 #include "Action.h"
9 #include "Menu.h"
10 #include <cnoid/ExtensionManager>
11 #include "exportdecl.h"
12 
13 namespace cnoid {
14 
15 class Menu;
16 class MenuManagerImpl;
17 
18 class CNOID_EXPORT MenuManager
19 {
20 public:
21  MenuManager();
22  MenuManager(QWidget* topMenu);
23  virtual ~MenuManager();
24 
25  void bindTextDomain(const std::string& domain);
26 
27  void setTopMenu(QWidget* topMenu);
28  QWidget* topMenu();
29 
30  void setNewPopupMenu(QWidget* parent = 0);
31  Menu* popupMenu();
32 
33  QWidget* current() const;
34  MenuManager& setCurrent(QWidget* menu);
35 
36  int numItems() const;
37 
38  QAction* findItem(const QString& path);
39  MenuManager& setPath(const QString& path);
40 
41  MenuManager& setBackwardMode();
42 
43  void addAction(QAction* action);
44 
45  Action* addItem(const QString& text);
46  Action* addItem(const std::string& text);
47  Action* addItem(const char* text);
48  Action* addCheckItem(const QString& text);
49  Action* addRadioItem(QActionGroup* group, const QString& text);
50 
51  MenuManager& addSeparator();
52 
53 private:
54  MenuManager(const MenuManager* org);
55  QWidget* topMenu_;
56  QWidget* currentMenu_;
57  Menu* popupMenu_;
58  bool isBackwardMode;
59  std::string textDomain;
60 
61  std::pair<QAction*, QWidget*> findPath(const QString& path, bool createPath);
62  void addItem(QWidget* menu, QAction* item);
63 };
64 
65 }
66 
67 #endif
cnoid::Action
Definition: Action.h:14
Menu.h
Action.h
cnoid::MenuManager
Definition: MenuManager.h:18
cnoid
Definition: AbstractSceneLoader.h:11
cnoid::Menu
Definition: Menu.h:14