1 // Copyright (C) 2005 OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License.
8 // This library is distributed in the hope that it will be useful
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 #ifndef STD_APPLICATION_H
20 #define STD_APPLICATION_H
24 #include <SUIT_Application.h>
26 #include <SUIT_Desktop.h>
27 #include <SUIT_ViewManager.h>
36 class SUIT_ViewWindow;
37 class SUIT_ToolWindow;
39 typedef QPtrList<SUIT_ViewManager> ViewManagerList;
42 #pragma warning( disable: 4251 )
45 class STD_EXPORT STD_Application : public SUIT_Application
51 virtual ~STD_Application();
53 virtual QString applicationName() const;
55 virtual bool isPossibleToClose( bool& );
56 virtual bool useFile( const QString& );
58 virtual void createEmptyStudy();
60 void setEditEnabled( const bool );
61 bool isEditEnabled() const { return myEditEnabled; }
63 void clearViewManagers();
64 virtual void addViewManager( SUIT_ViewManager* );
65 virtual void removeViewManager( SUIT_ViewManager* );
67 SUIT_ViewManager* activeViewManager() const;
68 SUIT_ViewManager* viewManager( const QString& ) const;
70 bool containsViewManager( SUIT_ViewManager* ) const;
72 ViewManagerList viewManagers() const;
73 void viewManagers( ViewManagerList& ) const;
74 void viewManagers( const QString&, ViewManagerList& ) const;
76 virtual QString getFileFilter() const { return QString::null; }
77 virtual QString getFileName( bool open, const QString& initial, const QString& filters,
78 const QString& caption, QWidget* parent );
79 QString getDirectory( const QString& initial, const QString& caption, QWidget* parent );
83 virtual void closeApplication();
85 virtual void contextMenuPopup( const QString&, QPopupMenu*, QString& ) {}
87 bool exitConfirmation() const;
88 void setExitConfirmation( const bool );
91 /*!emit that view manager added*/
92 void viewManagerAdded( SUIT_ViewManager* );
93 /*!emit that view manager removed*/
94 void viewManagerRemoved( SUIT_ViewManager* );
95 /*!emit that view manager activated*/
96 void viewManagerActivated( SUIT_ViewManager* );
99 virtual void onNewDoc();
100 virtual void onCloseDoc( bool ask = true );
101 virtual void onSaveDoc();
102 virtual bool onSaveAsDoc();
104 virtual void onOpenDoc();
105 virtual bool onOpenDoc( const QString& );
107 virtual bool onLoadDoc( const QString& );
109 virtual void onExit();
111 virtual void onCopy();
112 virtual void onPaste();
114 virtual void onViewStatusBar( bool );
116 virtual void onHelpAbout();
118 virtual void onDesktopClosing( SUIT_Desktop*, QCloseEvent* );
119 virtual void onConnectPopupRequest( SUIT_PopupClient*, QContextMenuEvent* );
122 virtual void onViewManagerActivated( SUIT_ViewManager* );
125 enum { MenuFileId = 1,
131 enum { FileNewId, FileOpenId, FileCloseId,
132 FileSaveId, FileSaveAsId, FileExitId,
133 ViewStatusBarId, ViewWindowsId, NewWindowId,
134 EditCutId, EditCopyId, EditPasteId,
139 enum { CloseCancel, CloseSave, CloseDiscard };
142 virtual void createActions();
143 virtual void updateDesktopTitle();
144 virtual void updateCommandsStatus();
146 virtual void setDesktop( SUIT_Desktop* );
148 virtual void loadPreferences();
149 virtual void savePreferences();
151 virtual void studySaved( SUIT_Study* );
152 virtual void studyOpened( SUIT_Study* );
153 virtual void studyCreated( SUIT_Study* );
155 virtual void beforeCloseDoc( SUIT_Study* theDoc );
156 virtual void afterCloseDoc();
158 virtual void setActiveViewManager( SUIT_ViewManager* );
160 virtual bool closeAction( const int, bool& );
161 virtual int closeChoice( const QString& );
164 ViewManagerList myViewMgrs;
165 SUIT_ViewManager* myActiveViewMgr;
173 #pragma warning( default: 4251 )