1 // Copyright (C) 2007-2008 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
22 #ifndef STD_APPLICATION_H
23 #define STD_APPLICATION_H
27 #include <SUIT_Application.h>
33 class QContextMenuEvent;
38 class SUIT_ViewWindow;
39 class SUIT_ToolWindow;
41 class SUIT_ViewManager;
42 class SUIT_PopupClient;
44 typedef QList<SUIT_ViewManager*> ViewManagerList;
47 #pragma warning( disable: 4251 )
50 class STD_EXPORT STD_Application : public SUIT_Application
55 enum { MenuFileId, FileNewId, FileOpenId, FileCloseId, FileSaveId, FileSaveAsId, FileExitId,
56 MenuViewId, ViewWindowsId, ViewToolBarsId, ViewStatusBarId, NewWindowId,
57 MenuEditId, EditCutId, EditCopyId, EditPasteId,
58 MenuHelpId, HelpAboutId,
64 virtual ~STD_Application();
66 virtual QString applicationName() const;
68 virtual bool isPossibleToClose( bool& );
69 virtual bool useFile( const QString& );
71 virtual void createEmptyStudy();
73 void setEditEnabled( const bool );
74 bool isEditEnabled() const { return myEditEnabled; }
76 void clearViewManagers();
77 virtual void addViewManager( SUIT_ViewManager* );
78 virtual void removeViewManager( SUIT_ViewManager* );
80 SUIT_ViewManager* activeViewManager() const;
81 SUIT_ViewManager* viewManager( const QString& ) const;
83 bool containsViewManager( SUIT_ViewManager* ) const;
85 ViewManagerList viewManagers() const;
86 void viewManagers( ViewManagerList& ) const;
87 void viewManagers( const QString&, ViewManagerList& ) const;
89 virtual QString getFileFilter() const { return QString(); }
90 virtual QString getFileName( bool open, const QString& initial, const QString& filters,
91 const QString& caption, QWidget* parent );
92 QString getDirectory( const QString& initial, const QString& caption, QWidget* parent );
96 virtual void closeApplication();
98 virtual void contextMenuPopup( const QString&, QMenu*, QString& ) {}
100 bool exitConfirmation() const;
101 void setExitConfirmation( const bool );
103 virtual void updateDesktopTitle();
106 /*!emit that view manager added*/
107 void viewManagerAdded( SUIT_ViewManager* );
108 /*!emit that view manager removed*/
109 void viewManagerRemoved( SUIT_ViewManager* );
110 /*!emit that view manager activated*/
111 void viewManagerActivated( SUIT_ViewManager* );
114 virtual void onNewDoc();
115 virtual bool onNewDoc( const QString& );
117 virtual void onCloseDoc( bool ask = true );
118 virtual void onSaveDoc();
119 virtual bool onSaveAsDoc();
121 virtual void onOpenDoc();
122 virtual bool onOpenDoc( const QString& );
124 virtual void onExit();
126 virtual void onCopy();
127 virtual void onPaste();
129 virtual void onViewStatusBar( bool );
131 virtual void onHelpAbout();
133 virtual void onDesktopClosing( SUIT_Desktop*, QCloseEvent* );
134 virtual void onConnectPopupRequest( SUIT_PopupClient*, QContextMenuEvent* );
137 virtual void onViewManagerActivated( SUIT_ViewManager* );
140 enum { OpenCancel, OpenNew, OpenExist };
141 enum { CloseCancel, CloseSave, CloseDiscard };
144 virtual void createActions();
145 virtual void updateCommandsStatus();
147 virtual void setDesktop( SUIT_Desktop* );
149 virtual void loadPreferences();
150 virtual void savePreferences();
152 virtual void studySaved( SUIT_Study* );
153 virtual void studyOpened( SUIT_Study* );
154 virtual void studyCreated( SUIT_Study* );
156 virtual void beforeCloseDoc( SUIT_Study* theDoc );
157 virtual void afterCloseDoc();
159 virtual void setActiveViewManager( SUIT_ViewManager* );
161 virtual int openChoice( const QString& );
162 virtual bool openAction( const int, const QString& );
164 virtual int closeChoice( const QString& );
165 virtual bool closeAction( const int, bool& );
168 ViewManagerList myViewMgrs;
169 SUIT_ViewManager* myActiveViewMgr;
177 #pragma warning( default: 4251 )