X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_MainWindow.h;h=3294f58ac5fd276945c1cd31e6a1b36c9c9c807b;hb=fc2acc7bd36f7bff6ec1f5095bf7c44be15e2574;hp=a4b05f3d915aa34d0d7b7cc4446fb08053d40a9d;hpb=e1f8fb3cfc1ee565db16fbbd9fe6f65121c4577c;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_MainWindow.h b/src/XGUI/XGUI_MainWindow.h index a4b05f3d9..3294f58ac 100644 --- a/src/XGUI/XGUI_MainWindow.h +++ b/src/XGUI/XGUI_MainWindow.h @@ -1,51 +1,105 @@ #ifndef XGUI_MAINWINDOW_H #define XGUI_MAINWINDOW_H +#include "XGUI.h" #include class XGUI_MainMenu; class XGUI_Viewer; -class QTreeWidget; +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 -public: + 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(); + //! Python console can be a dock widget + void dockPythonConsole(); + //! or can be a tab in the main menu. + void undockPythonConsole(); - void fillObjectBrowser(); - void addPropertyPanel(); + void createSubWindow(); - XGUI_MainMenu* myMenuBar; - QTreeWidget* myObjectBrowser; + /// Add name of current directory into title of desktop window + void setCurrentDir(const QString& theDir, bool toUpdate = true); + + /// Add asterisk to a title of the window + void setModifiedState(bool isModified, bool toUpdate = true); + + /// Returns current state of modification + bool isModifiedState() const { return myIsModified; } + void updateTitle(); + + 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); + void createMainMenu(); + + private: + XGUI_MainMenu* myMenuBar; XGUI_Viewer* myViewer; + + QString myTitle; + QString myCurrentDir; + bool myIsModified; + + PyConsole_EnhConsole* myPythonConsole; +}; + +class XGUI_EXPORT CloseEventWatcher : public QObject +{ +Q_OBJECT + + public: + CloseEventWatcher(QObject* theParent); + +signals: + void widgetClosed(); + + protected: + bool eventFilter(QObject *obj, QEvent *); + }; #endif