1 // Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 #ifndef STD_APPLICATION_H
24 #define STD_APPLICATION_H
28 #include <SUIT_Application.h>
34 class QContextMenuEvent;
39 class SUIT_ViewWindow;
40 class SUIT_ToolWindow;
42 class SUIT_ViewManager;
43 class SUIT_PopupClient;
45 typedef QList<SUIT_ViewManager*> ViewManagerList;
48 #pragma warning( disable: 4251 )
51 class STD_EXPORT STD_Application : public SUIT_Application
56 enum { MenuFileId, FileNewId, FileOpenId, FileReopenId, FileCloseId, FileSaveId, FileSaveAsId, FileExitId,
57 MenuViewId, ViewWindowsId, ViewToolBarsId, ViewStatusBarId, NewWindowId,
58 MenuEditId, EditCutId, EditCopyId, EditPasteId,
59 MenuHelpId, HelpAboutId,
65 virtual ~STD_Application();
67 virtual QString applicationName() const;
69 virtual bool isPossibleToClose( bool& );
70 virtual bool useFile( const QString& );
72 virtual void createEmptyStudy();
74 void setEditEnabled( const bool );
75 bool isEditEnabled() const { return myEditEnabled; }
77 void clearViewManagers();
78 virtual void addViewManager( SUIT_ViewManager* );
79 virtual void removeViewManager( SUIT_ViewManager* );
81 SUIT_ViewManager* activeViewManager() const;
82 SUIT_ViewManager* viewManager( const QString& ) const;
84 bool containsViewManager( SUIT_ViewManager* ) const;
86 ViewManagerList viewManagers() const;
87 void viewManagers( ViewManagerList& ) const;
88 void viewManagers( const QString&, ViewManagerList& ) const;
89 virtual int viewManagerId (const SUIT_ViewManager* ) const;
91 virtual QString getFileFilter() const { return QString(); }
92 virtual QString getFileName( bool open, const QString& initial, const QString& filters,
93 const QString& caption, QWidget* parent );
94 QString getDirectory( const QString& initial, const QString& caption, QWidget* parent );
98 virtual void closeApplication();
100 virtual void contextMenuPopup( const QString&, QMenu*, QString& ) {}
102 bool exitConfirmation() const;
103 void setExitConfirmation( const bool );
105 virtual void updateDesktopTitle();
108 /*!emit that view manager added*/
109 void viewManagerAdded( SUIT_ViewManager* );
110 /*!emit that view manager removed*/
111 void viewManagerRemoved( SUIT_ViewManager* );
112 /*!emit that view manager activated*/
113 void viewManagerActivated( SUIT_ViewManager* );
116 virtual void onNewDoc();
117 virtual bool onNewDoc( const QString& );
119 virtual void onCloseDoc( bool ask = true );
120 virtual void onSaveDoc();
121 virtual bool onSaveAsDoc();
123 virtual void onOpenDoc();
124 virtual bool onOpenDoc( const QString& );
126 virtual bool onReopenDoc();
128 virtual void onExit();
130 virtual void onCopy();
131 virtual void onPaste();
133 virtual void onViewStatusBar( bool );
135 virtual void onHelpAbout();
137 virtual void onDesktopClosing( SUIT_Desktop*, QCloseEvent* );
138 virtual void onConnectPopupRequest( SUIT_PopupClient*, QContextMenuEvent* );
141 virtual void onViewManagerActivated( SUIT_ViewManager* );
144 enum { OpenCancel, OpenNew, OpenExist };
145 enum { CloseCancel, CloseSave, CloseDiscard };
148 virtual void createActions();
149 virtual void updateCommandsStatus();
151 virtual void setDesktop( SUIT_Desktop* );
153 virtual void loadPreferences();
154 virtual void savePreferences();
156 virtual void studySaved( SUIT_Study* );
157 virtual void studyOpened( SUIT_Study* );
158 virtual void studyCreated( SUIT_Study* );
160 virtual void beforeCloseDoc( SUIT_Study* theDoc );
161 virtual void afterCloseDoc();
163 virtual void setActiveViewManager( SUIT_ViewManager* );
165 virtual int openChoice( const QString& );
166 virtual bool openAction( const int, const QString& );
168 virtual int closeChoice( const QString& );
169 virtual bool closeAction( const int, bool& );
172 ViewManagerList myViewMgrs;
173 SUIT_ViewManager* myActiveViewMgr;
181 #pragma warning( default: 4251 )