Salome HOME
Merge relevant changes from V8_0_0_BR branch
[modules/jobmanager.git] / src / wrappers / BL_MainWindows_SALOME.hxx
1 // Copyright (C) 2009-2015  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, or (at your option) any later version.
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_Module.h>
37
38 class SalomeApp_Application;
39 class SUIT_ViewManager;
40 class SUIT_ViewWindow;
41
42 namespace BL
43 {
44   class BL_Wrappers_SALOME_EXPORT MainWindows_SALOME : virtual public MainWindows_Wrap, 
45                              public SalomeApp_Module
46   {
47     public:
48       MainWindows_SALOME(const QString & module_name);
49       virtual ~MainWindows_SALOME();
50
51       // mandatory by SalomeApp_Module
52       virtual QString  engineIOR() const;
53
54       // Usefull methods for good integration in SALOME
55       virtual void viewManagers( QStringList& list) const; // --- On ajoute nos viewManagers et ensuite LigthApp affiche le dernier
56
57       // mandatory by  MainWindows_Wrap
58       virtual QMainWindow * getDockParent();
59       virtual QMainWindow * getTabParent();
60
61       virtual QAction* createAction(const QString& toolTip,
62                                     const QIcon& icon,
63                                     const QString& menu,
64                                     const QString& status,
65                                     const int accel,
66                                     QObject* parent =0,
67                                     bool checkable = false,
68                                     QObject* receiver =0,
69                                     const char* member =0,
70                                     const QString& shortCut=QString());
71
72       virtual int createTopMenu(const QString & menu_name);
73       virtual void addActionToMenu(QAction * action, int menu_id);
74
75       // Usefull methods
76       virtual void initialize(SalomeApp_Application * appli);
77       bool restoreViewFocus();
78       void createView();
79
80     protected:
81       SalomeApp_Application * _appli;
82       SalomeApp_Module * _module;
83       SUIT_ViewManager * _svm;
84       SUIT_ViewWindow  * _viewWin;
85       int _currentViewId;
86
87       int _actionId;
88       int getActionId() { return _actionId++; }
89   };
90 }
91
92 #endif
93