1 // Copyright (C) 2007-2020 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, or (at your option) any later version.
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>
30 #include <QtxNotify.h>
37 class QContextMenuEvent;
42 class SUIT_ViewWindow;
43 class SUIT_ToolWindow;
45 class SUIT_ViewManager;
46 class SUIT_PopupClient;
48 typedef QList<SUIT_ViewManager*> ViewManagerList;
51 #pragma warning( disable: 4251 )
54 class STD_EXPORT STD_Application : public SUIT_Application
59 enum { MenuFileId, FileNewId, FileOpenId, FileReopenId, FileCloseId, FileSaveId, FileSaveAsId, FileExitId,
60 MenuViewId, ViewWindowsId, ViewToolBarsId, ViewStatusBarId, NewWindowId,
61 MenuEditId, EditCutId, EditCopyId, EditPasteId,
62 MenuHelpId, HelpAboutId,
68 virtual ~STD_Application();
70 virtual QString applicationName() const;
72 virtual bool isPossibleToClose( bool& );
73 virtual bool useFile( const QString& );
75 virtual void createEmptyStudy();
77 void setEditEnabled( const bool );
78 bool isEditEnabled() const { return myEditEnabled; }
80 void clearViewManagers();
81 virtual void addViewManager( SUIT_ViewManager* );
82 virtual void removeViewManager( SUIT_ViewManager* );
84 SUIT_ViewManager* activeViewManager() const;
85 SUIT_ViewManager* viewManager( const QString& ) const;
87 bool containsViewManager( SUIT_ViewManager* ) const;
89 ViewManagerList viewManagers() const;
90 void viewManagers( ViewManagerList& ) const;
91 void viewManagers( const QString&, ViewManagerList& ) const;
92 virtual int viewManagerId (const SUIT_ViewManager* ) const;
94 virtual QString getFileFilter( bool open ) const;
95 virtual QString getFileName( bool open, const QString& initial, const QString& filters,
96 const QString& caption, QWidget* parent );
97 QString getDirectory( const QString& initial, const QString& caption, QWidget* parent );
101 virtual void closeApplication();
103 virtual void contextMenuPopup( const QString&, QMenu*, QString& ) {}
105 bool exitConfirmation() const;
106 void setExitConfirmation( const bool );
108 virtual void updateDesktopTitle();
110 int showNotification(const QString& message, const QString& title, int timeout = -1);
111 void hideNotification(const QString& message);
112 void hideNotification(int id);
115 /*!emit that view manager added*/
116 void viewManagerAdded( SUIT_ViewManager* );
117 /*!emit that view manager removed*/
118 void viewManagerRemoved( SUIT_ViewManager* );
119 /*!emit that view manager activated*/
120 void viewManagerActivated( SUIT_ViewManager* );
124 virtual void onNewDoc();
125 virtual bool onNewDoc( const QString& );
127 virtual void onCloseDoc( bool ask = true );
128 virtual void onSaveDoc();
129 virtual bool onSaveAsDoc();
131 virtual void onOpenDoc();
132 virtual bool onOpenDoc( const QString& );
134 virtual bool onReopenDoc();
136 virtual void onExit();
138 virtual void onCopy();
139 virtual void onPaste();
141 virtual void onViewStatusBar( bool );
143 virtual void onHelpAbout();
145 virtual void onDesktopClosing( SUIT_Desktop*, QCloseEvent* );
146 virtual void onConnectPopupRequest( SUIT_PopupClient*, QContextMenuEvent* );
149 virtual void onViewManagerActivated( SUIT_ViewManager* );
152 enum { OpenCancel, OpenNew, OpenExist };
153 enum { CloseCancel, CloseSave, CloseDiscard };
156 virtual void createActions();
157 virtual void updateCommandsStatus();
159 virtual void setDesktop( SUIT_Desktop* );
161 virtual void loadPreferences();
162 virtual void savePreferences();
164 virtual void studySaved( SUIT_Study* );
165 virtual void studyOpened( SUIT_Study* );
166 virtual void studyCreated( SUIT_Study* );
168 virtual void beforeCloseDoc( SUIT_Study* theDoc );
169 virtual void afterCloseDoc();
171 virtual void setActiveViewManager( SUIT_ViewManager* );
173 virtual int openChoice( const QString& );
174 virtual bool openAction( const int, const QString& );
176 virtual int closeChoice( const QString& );
177 virtual bool closeAction( const int, bool& );
178 virtual bool closeDoc( bool ask = true );
179 virtual bool closeActiveDoc( bool permanently = true );
181 virtual bool abortAllOperations();
184 QtxNotify* notifyMgr();
187 ViewManagerList myViewMgrs;
188 SUIT_ViewManager* myActiveViewMgr;
191 QPointer<QtxNotify> myNotify;
197 #pragma warning( default: 4251 )