Salome HOME
refs #80 - Sketch base GUI: create/draw point, circle and arc
[modules/shaper.git] / src / XGUI / XGUI_MainWindow.h
index dc9e34fee27bc1a34b9330acce82857068974117..010f9e309530b3cb12289015b259a85908bfdcee 100644 (file)
@@ -1,35 +1,70 @@
 #ifndef XGUI_MAINWINDOW_H
 #define XGUI_MAINWINDOW_H
 
+#include "XGUI.h"
 #include <QMainWindow>
 
 class XGUI_MainMenu;
-class QTreeWidget;
+class XGUI_Viewer;
+class XGUI_ActionsMgr;
+class XGUI_ViewWindow;
+class QMdiArea;
+class QMdiSubWindow;
+class PyConsole_EnhConsole;
+class QCloseEvent;
 
-class XGUI_MainWindow : public QMainWindow
+/**\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_MainWindow(QWidget* parent = 0);
+  virtual ~XGUI_MainWindow();
 
-    XGUI_MainMenu* menuObject() const { return myMenuBar; }
-   
-    QTreeWidget* objectBrowser() const { return myObjectBrowser; }
-    void showObjectBrowser();
-    void hideObjectBrowser();
+  //! Returns main menu object
+  XGUI_MainMenu* menuObject() const
+  {
+    return myMenuBar;
+  }
 
-private:
-    //!! For test purposes only
-    //QWidget* getSubWindow();
+  //! Returns MDI area
+  QMdiArea* mdiArea() const;
+
+  //! Returns 3d viewer
+  XGUI_Viewer* viewer() const
+  {
+    return myViewer;
+  }
+
+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);
 
+signals:
+  void exitKeySequence();
+
+protected:
+  void closeEvent(QCloseEvent* event);
+
+private:
+  XGUI_MainMenu* myMenuBar;
+  XGUI_Viewer* myViewer;
 
-    XGUI_MainMenu* myMenuBar;
-    QTreeWidget* myObjectBrowser;
+  PyConsole_EnhConsole* myPythonConsole;
 };
 
-#endif
\ No newline at end of file
+#endif