1 #ifndef XGUI_MainMenu_H
2 #define XGUI_MainMenu_H
11 class XGUI_MainWindow;
13 class XGUI_MenuGroupPanel;
21 /**\class XGUI_MainMenu
23 * \brief Class for creation of main menu (set of workbenches)
25 class XGUI_EXPORT XGUI_MainMenu: public QWidget
30 XGUI_MainMenu(XGUI_MainWindow *parent);
31 virtual ~XGUI_MainMenu();
33 //! Creates and adds a new workbench (menu group) with the given name and returns it.
34 XGUI_Workbench* addWorkbench(const QString& theId, const QString& theText = "");
36 //! Returns workbench (menu group) by the given name.
37 XGUI_Workbench* findWorkbench(const QString& theId) const;
39 //! Returns General page (predefined workbench)
40 XGUI_MenuGroupPanel* generalPage() const { return myGeneralPage; }
42 //! Rerturns last created workbench in dock widget container
43 //QDockWidget* getLastDockWindow() const;
45 //! Returns already created command by its ID
46 XGUI_Command* feature(const QString& theId) const;
48 //! Returns list of created commands
49 QList<XGUI_Command*> features() const;
51 virtual bool eventFilter(QObject *theWatched, QEvent *theEvent);
53 //! Displays given console as a tab in the workbench
54 void insertConsole(QWidget*);
55 //! Removes already created tab with python console
58 //! Defines size of menu item.
59 //! In the future this value should be extracted from the preferences.
60 int menuItemSize() const;
61 //! Defines number of menu item rows.
62 //! In the future this value should be extracted from the preferences.
63 int menuItemRowsCount() const;
64 //! Defines height of the main menu. (Number of rows * row height)
65 int menuHeight() const;
67 void updateFromResources();
70 XGUI_MainWindow* myDesktop;
71 QTabWidget* myMenuTabs;
72 XGUI_MenuGroupPanel* myGeneralPage;
73 QList<XGUI_Workbench*> myWorkbenches;
75 QMap<XGUI_Command*, bool> myCommandState;