X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSTD%2FSTD_Application.h;h=2b1f4653ca08fde49c86d20fa3c6555293052a90;hb=9b2087aa3c306bc98fbd5ef6344a8ab3367ae498;hp=5f8995b6bf7aa47d98be7864abce38b62c365ed4;hpb=b5ba60a2717669c9a2c487920427e72f2f1bf526;p=modules%2Fgui.git diff --git a/src/STD/STD_Application.h b/src/STD/STD_Application.h index 5f8995b6b..2b1f4653c 100755 --- a/src/STD/STD_Application.h +++ b/src/STD/STD_Application.h @@ -1,3 +1,25 @@ +// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + #ifndef STD_APPLICATION_H #define STD_APPLICATION_H @@ -5,20 +27,22 @@ #include -#include -#include +#include -#include -#include +class QMenu; +class QCloseEvent; +class QContextMenuEvent; class QToolBar; class QtxAction; -class QPopupMenu; class SUIT_Operation; class SUIT_ViewWindow; class SUIT_ToolWindow; +class SUIT_Desktop; +class SUIT_ViewManager; +class SUIT_PopupClient; -typedef QPtrList ViewManagerList; +typedef QList ViewManagerList; #if defined WIN32 #pragma warning( disable: 4251 ) @@ -29,12 +53,20 @@ class STD_EXPORT STD_Application : public SUIT_Application Q_OBJECT public: + enum { MenuFileId, FileNewId, FileOpenId, FileReopenId, FileCloseId, FileSaveId, FileSaveAsId, FileExitId, + MenuViewId, ViewWindowsId, ViewToolBarsId, ViewStatusBarId, NewWindowId, + MenuEditId, EditCutId, EditCopyId, EditPasteId, + MenuHelpId, HelpAboutId, + UserID + }; + + public: STD_Application(); virtual ~STD_Application(); virtual QString applicationName() const; - virtual bool isPossibleToClose(); + virtual bool isPossibleToClose( bool& ); virtual bool useFile( const QString& ); virtual void createEmptyStudy(); @@ -54,33 +86,47 @@ public: ViewManagerList viewManagers() const; void viewManagers( ViewManagerList& ) const; void viewManagers( const QString&, ViewManagerList& ) const; + virtual int viewManagerId (const SUIT_ViewManager* ) const; - virtual QString getFileFilter() const { return QString::null; } - virtual QString getFileName( bool open, const QString& initial, const QString& filters, - const QString& caption, QWidget* parent ); + virtual QString getFileFilter() const { return QString(); } + virtual QString getFileName( bool open, const QString& initial, const QString& filters, + const QString& caption, QWidget* parent ); QString getDirectory( const QString& initial, const QString& caption, QWidget* parent ); virtual void start(); - virtual void contextMenuPopup( const QString&, QPopupMenu*, QString& ) {} + virtual void closeApplication(); + + virtual void contextMenuPopup( const QString&, QMenu*, QString& ) {} + + bool exitConfirmation() const; + void setExitConfirmation( const bool ); + + virtual void updateDesktopTitle(); signals: + /*!emit that view manager added*/ void viewManagerAdded( SUIT_ViewManager* ); + /*!emit that view manager removed*/ void viewManagerRemoved( SUIT_ViewManager* ); + /*!emit that view manager activated*/ void viewManagerActivated( SUIT_ViewManager* ); public slots: virtual void onNewDoc(); - virtual void onCloseDoc(); + virtual bool onNewDoc( const QString& ); + + virtual void onCloseDoc( bool ask = true ); virtual void onSaveDoc(); virtual bool onSaveAsDoc(); virtual void onOpenDoc(); virtual bool onOpenDoc( const QString& ); + virtual bool onReopenDoc(); + virtual void onExit(); - virtual void onCut(); virtual void onCopy(); virtual void onPaste(); @@ -95,25 +141,43 @@ private slots: virtual void onViewManagerActivated( SUIT_ViewManager* ); protected: - enum { FileNewId, FileOpenId, FileCloseId, FileSaveId, FileSaveAsId, - FileExitId, EditCutId, EditCopyId, EditPasteId, ViewStatusBarId, - NewWindowId, HelpAboutId, ViewWindowsId, UserID }; - + enum { OpenCancel, OpenNew, OpenExist }; + enum { CloseCancel, CloseSave, CloseDiscard }; + protected: virtual void createActions(); - virtual void updateDesktopTitle(); virtual void updateCommandsStatus(); + virtual void setDesktop( SUIT_Desktop* ); + + virtual void loadPreferences(); + virtual void savePreferences(); + + virtual void studySaved( SUIT_Study* ); + virtual void studyOpened( SUIT_Study* ); + virtual void studyCreated( SUIT_Study* ); + virtual void beforeCloseDoc( SUIT_Study* theDoc ); virtual void afterCloseDoc(); virtual void setActiveViewManager( SUIT_ViewManager* ); + virtual int openChoice( const QString& ); + virtual bool openAction( const int, const QString& ); + + virtual int closeChoice( const QString& ); + virtual bool closeAction( const int, bool& ); + virtual bool closeDoc( bool ask = true ); + virtual bool closeActiveDoc( bool permanently = true ); + + virtual bool abortAllOperations(); + private: ViewManagerList myViewMgrs; SUIT_ViewManager* myActiveViewMgr; private: + bool myExitConfirm; bool myEditEnabled; };