Salome HOME
Refresh menu size after chnges in preferences
[modules/shaper.git] / src / XGUI / XGUI_MainMenu.h
index 0fed1a07ff64a11c83d68665cd2b1e11b11aac21..4c3f0ec675cc2821cd6730120a0cef534cd7fd9a 100644 (file)
@@ -5,6 +5,7 @@
 #include <QObject>
 #include <QList>
 #include <QMap>
+#include <QWidget>
 
 class XGUI_Command;
 class XGUI_MainWindow;
@@ -17,14 +18,14 @@ class QAction;
 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();
@@ -33,13 +34,13 @@ public:
   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;
@@ -47,18 +48,29 @@ public:
   //! 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;
 };