Salome HOME
refs #30 - Sketch base GUI: create, draw lines
[modules/shaper.git] / src / XGUI / XGUI_MainWindow.h
index dfd5703c8ab60d13eae0751b16384b8c9a1c50cd..9b29ec3ea17d48f77809ee283684e1e94e2b1b76 100644 (file)
@@ -1,33 +1,63 @@
 #ifndef XGUI_MAINWINDOW_H
 #define XGUI_MAINWINDOW_H
 
+#include "XGUI.h"
 #include <QMainWindow>
 
 class XGUI_MainMenu;
-class QTreeWidget;
-
-class XGUI_MainWindow : public QMainWindow
+class XGUI_Viewer;
+class XGUI_ActionsMgr;
+class XGUI_ViewWindow;
+class QMdiArea;
+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
+Q_OBJECT
 
 public:
-    XGUI_MainWindow(QWidget* parent = 0);
-    virtual ~XGUI_MainWindow();
-
-    XGUI_MainMenu* menuObject() const { return myMenuBar; }
-   
-    QTreeWidget* objectBrowser() const { return myObjectBrowser; }
-    void showObjectBrowser();
-    void hideObjectBrowser();
+  XGUI_MainWindow(QWidget* parent = 0);
+  virtual ~XGUI_MainWindow();
+
+  //! Returns main menu object
+  XGUI_MainMenu* menuObject() const
+  {
+    return myMenuBar;
+  }
+
+  //! Returns MDI area
+  QMdiArea* mdiArea() const;
+
+  //! Returns 3d viewer
+  XGUI_Viewer* viewer() const
+  {
+    return myViewer;
+  }
+
+public slots:
+  void showPythonConsole();
+  void hidePythonConsole();
+
+  void createSubWindow();
+  
+private slots:
+  void cascadeWindows();
+  void onViewCreated(XGUI_ViewWindow* theWindow);
+  void onDeleteView(XGUI_ViewWindow* theWindow);
+  void activateView();
+  void onViewActivated(QMdiSubWindow* theSubWnd);
 
 private:
-    //!! For test purposes only
-    QWidget* getSubWindow();
-    void fillObjectBrowser();
-
+  XGUI_MainMenu* myMenuBar;
+  XGUI_Viewer* myViewer;
 
-    XGUI_MainMenu* myMenuBar;
-    QTreeWidget* myObjectBrowser;
+  PyConsole_EnhConsole* myPythonConsole;
 };
 
-#endif
\ No newline at end of file
+#endif