Salome HOME
Merge remote-tracking branch 'remotes/origin/master' into SolveSpace
[modules/shaper.git] / src / XGUI / XGUI_MainWindow.h
index a4b05f3d915aa34d0d7b7cc4446fb08053d40a9d..9b29ec3ea17d48f77809ee283684e1e94e2b1b76 100644 (file)
@@ -1,14 +1,23 @@
 #ifndef XGUI_MAINWINDOW_H
 #define XGUI_MAINWINDOW_H
 
+#include "XGUI.h"
 #include <QMainWindow>
 
 class XGUI_MainMenu;
 class XGUI_Viewer;
-class QTreeWidget;
+class XGUI_ActionsMgr;
+class XGUI_ViewWindow;
 class QMdiArea;
-
-class XGUI_MainWindow: public QMainWindow
+class QMdiSubWindow;
+class PyConsole_EnhConsole;
+
+/**\class XGUI_MainWindow
+ * \ingroup GUI
+ * \brief Main window of the application (Desktop).
+ * It contains: Object Browser, 3d Viewer, Python console, property panel, main menu
+ */
+class XGUI_EXPORT XGUI_MainWindow: public QMainWindow
 {
 Q_OBJECT
 
@@ -16,36 +25,39 @@ public:
   XGUI_MainWindow(QWidget* parent = 0);
   virtual ~XGUI_MainWindow();
 
+  //! Returns main menu object
   XGUI_MainMenu* menuObject() const
   {
     return myMenuBar;
   }
 
-  QTreeWidget* objectBrowser() const
-  {
-    return myObjectBrowser;
-  }
-  void showObjectBrowser();
-  void hideObjectBrowser();
-
+  //! Returns MDI area
   QMdiArea* mdiArea() const;
 
+  //! Returns 3d viewer
   XGUI_Viewer* viewer() const
   {
     return myViewer;
   }
 
-private:
-  //!! For test purposes only
-  //QWidget* getSubWindow();
+public slots:
+  void showPythonConsole();
+  void hidePythonConsole();
 
-  void fillObjectBrowser();
-  void addPropertyPanel();
+  void createSubWindow();
+  
+private slots:
+  void cascadeWindows();
+  void onViewCreated(XGUI_ViewWindow* theWindow);
+  void onDeleteView(XGUI_ViewWindow* theWindow);
+  void activateView();
+  void onViewActivated(QMdiSubWindow* theSubWnd);
 
+private:
   XGUI_MainMenu* myMenuBar;
-  QTreeWidget* myObjectBrowser;
-
   XGUI_Viewer* myViewer;
+
+  PyConsole_EnhConsole* myPythonConsole;
 };
 
 #endif