#include <QObject>
#include <QList>
#include <QMap>
+#include <QWidget>
class XGUI_Command;
class XGUI_MainWindow;
class QDockWidget;
class QEvent;
-
/**\class XGUI_MainMenu
* \ingroup GUI
* \brief Class for creation of main menu (set of workbenches)
*/
-class XGUI_EXPORT XGUI_MainMenu: public QObject
+class XGUI_EXPORT XGUI_MainMenu: public QWidget
{
-Q_OBJECT
+ Q_OBJECT
+
public:
XGUI_MainMenu(XGUI_MainWindow *parent);
virtual ~XGUI_MainMenu();
XGUI_Workbench* addWorkbench(const QString& theId, const QString& theText = "");
//! Returns workbench (menu group) by the given name.
- XGUI_Workbench* findWorkbench(const QString& theId);
+ XGUI_Workbench* findWorkbench(const QString& theId) const;
//! Returns General page (predefined workbench)
- XGUI_Workbench* generalPage() const { return myGeneralPage; }
+ XGUI_MenuGroupPanel* generalPage() const { return myGeneralPage; }
//! Rerturns last created workbench in dock widget container
- QDockWidget* getLastDockWindow() const { return myMenuTabs.last(); }
+ //QDockWidget* getLastDockWindow() const;
//! Returns already created command by its ID
XGUI_Command* feature(const QString& theId) const;
//! Returns list of created commands
QList<XGUI_Command*> features() const;
-public slots:
- void onFeatureChecked(bool);
+ virtual bool eventFilter(QObject *theWatched, QEvent *theEvent);
- void saveCommandsState();
- void restoreCommandState();
+ //! Displays given console as a tab in the workbench
+ void insertConsole(QWidget*);
+ //! Removes already created tab with python console
+ void removeConsole();
- virtual bool eventFilter(QObject *theWatched, QEvent *theEvent);
+ //! Defines size of menu item.
+ //! In the future this value should be extracted from the preferences.
+ int menuItemSize() const;
+ //! Defines number of menu item rows.
+ //! In the future this value should be extracted from the preferences.
+ int menuItemRowsCount() const;
+ //! Defines height of the main menu. (Number of rows * row height)
+ int menuHeight() const;
+
+ void updateFromResources();
private:
XGUI_MainWindow* myDesktop;
- QList<QDockWidget*> myMenuTabs;
- XGUI_Workbench* myGeneralPage;
+ QTabWidget* myMenuTabs;
+ XGUI_MenuGroupPanel* myGeneralPage;
+ QList<XGUI_Workbench*> myWorkbenches;
QMap<XGUI_Command*, bool> myCommandState;
};