X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_MainWindow.h;h=3294f58ac5fd276945c1cd31e6a1b36c9c9c807b;hb=ed165fd07e71c11885fdc5f475a8522a5914e00d;hp=ec5da26a6bdeaa59134c9de3c429d4dc8f1f6227;hpb=24fd5aa4e000a03e484c5d4c544e5e08b08a747f;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_MainWindow.h b/src/XGUI/XGUI_MainWindow.h index ec5da26a6..3294f58ac 100644 --- a/src/XGUI/XGUI_MainWindow.h +++ b/src/XGUI/XGUI_MainWindow.h @@ -1,56 +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; } + 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(); -private: - //!! For test purposes only - 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