1 // Copyright (C) 2007-2015 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 SUIT_SESSION_H
24 #define SUIT_SESSION_H
27 #include "SUIT_Application.h"
32 #include <QStringList>
39 #define LIB_HANDLE HINSTANCE
41 #define LIB_HANDLE void*
44 class SUIT_ResourceMgr;
45 class SUIT_ExceptionHandler;
48 #pragma warning( disable:4251 )
51 The class Sesssion manages launching of Applications. Application must be returned \n
52 by static function "createApplication" in external library. The Library must be loaded with \n
53 loadLibrary method and after that application can be started.
55 class SUIT_EXPORT SUIT_Session : public QObject
60 typedef LIB_HANDLE AppLib;
62 enum { ASK = 0, SAVE, DONT_SAVE } CloseMode;
63 enum { NORMAL = 0, FORCED } ExitStatus;
67 SUIT_Session( int, char** );
68 virtual ~SUIT_Session();
70 static SUIT_Session* session();
72 QStringList arguments();
74 SUIT_Application* startApplication( const QString&, int = 0, char** = 0 );
76 QList<SUIT_Application*> applications() const;
77 SUIT_Application* activeApplication() const;
79 SUIT_ResourceMgr* resourceMgr() const;
81 void closeSession( int mode = ASK, int flags = 0 );
82 int exitFlags() const;
84 SUIT_ExceptionHandler* handler() const;
86 void insertApplication( SUIT_Application* );
89 void applicationClosed( SUIT_Application* );
92 virtual SUIT_ResourceMgr* createResourceMgr( const QString& ) const;
95 void onApplicationClosed( SUIT_Application* );
96 void onApplicationActivated( SUIT_Application* );
99 typedef QList<SUIT_Application*> AppList;
100 typedef QMap<QString, AppLib> AppLibMap;
103 QString lastError() const;
104 AppLib loadLibrary( const QString&, QString& );
105 QString applicationName( const QString& ) const;
108 QStringList myArguments;
110 SUIT_ResourceMgr* myResMgr;
113 SUIT_Application* myActiveApp;
115 SUIT_ExceptionHandler* myHandler;
116 static SUIT_Session* mySession;