Salome HOME
4716247f0b557fb3079e0424e84e1415f11b8da4
[modules/jobmanager.git] / src / wrappers / BL_MainWindows_SALOME.hxx
1 // Copyright (C) 2009-2013  CEA/DEN, EDF R&D
2 //
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.
7 //
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.
12 //
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
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19
20
21 #ifndef _BL_MAINWINDOWS_SALOME_HXX_
22 #define _BL_MAINWINDOWS_SALOME_HXX_
23
24 #ifdef WNT
25 #  if defined BL_Wrappers_SALOME_EXPORTS
26 #    define BL_Wrappers_SALOME_EXPORT __declspec( dllexport )
27 #  else
28 #    define BL_Wrappers_SALOME_EXPORT __declspec( dllimport )
29 #  endif
30 #else
31 #  define BL_Wrappers_SALOME_EXPORT
32 #endif
33
34 #include "BL_MainWindows_Wrap.hxx"
35
36 #include <SalomeApp_Application.h>
37 #include <SalomeApp_Module.h>
38
39 #include <SUIT_ViewManager.h>
40 #include <SUIT_ViewModel.h>
41 #include <SUIT_ViewWindow.h>
42 #include <SUIT_Desktop.h>
43
44 namespace BL
45 {
46   class BL_Wrappers_SALOME_EXPORT MainWindows_SALOME : virtual public MainWindows_Wrap, 
47                              public SalomeApp_Module
48   {
49     public:
50       MainWindows_SALOME(const QString & module_name);
51       virtual ~MainWindows_SALOME();
52
53       // mandatory by SalomeApp_Module
54       virtual QString  engineIOR() const;
55
56       // Usefull methods for good integration in SALOME
57       virtual void viewManagers( QStringList& list) const; // --- On ajoute nos viewManagers et ensuite LigthApp affiche le dernier
58
59       // mandatory by  MainWindows_Wrap
60       virtual QMainWindow * getDockParent();
61       virtual QMainWindow * getTabParent();
62
63       virtual QAction* createAction(const QString& toolTip,
64                                     const QIcon& icon,
65                                     const QString& menu,
66                                     const QString& status,
67                                     const int accel,
68                                     QObject* parent =0,
69                                     bool checkable = false,
70                                     QObject* receiver =0,
71                                     const char* member =0,
72                                     const QString& shortCut=QString());
73
74       virtual int createTopMenu(const QString & menu_name);
75       virtual void addActionToMenu(QAction * action, int menu_id);
76
77       // Usefull methods
78       virtual void initialize(SalomeApp_Application * appli);
79       bool restoreViewFocus();
80       void createView();
81
82     protected:
83       SalomeApp_Application * _appli;
84       SalomeApp_Module * _module;
85       SUIT_ViewManager * _svm;
86       SUIT_ViewWindow  * _viewWin;
87       int _currentViewId;
88
89       int _actionId;
90       int getActionId() { return _actionId++; }
91   };
92 }
93
94 #endif
95