Version: 8.3.0
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
SALOME_GuiServices.hxx
Go to the documentation of this file.
1
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
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
// Author: Guillaume Boulant (EDF/R&D)
21
22
#ifndef __GUI_SERVICES_H__
23
#define __GUI_SERVICES_H__
24
25
#include <
SalomeApp_Application.h
>
26
#include <
SalomeApp_Study.h
>
27
#include <
LightApp_SelectionMgr.h
>
28
#include <
SUIT_ResourceMgr.h
>
29
30
#include "SALOMEconfig.h"
31
#include CORBA_SERVER_HEADER(SALOMEDS)
32
#include <
SALOME_InteractiveObject.hxx
>
33
#include <SALOME_KernelServices.hxx>
34
#include "
SalomeGuiHelpers.hxx
"
35
namespace
GUI {
36
37
// SALOME GUI main services
38
SALOMEGUIHELPERS_EXPORT
SalomeApp_Application
*
getSalomeApplication
();
39
SALOMEGUIHELPERS_EXPORT
LightApp_SelectionMgr
*
getSelectionManager
();
40
SALOMEGUIHELPERS_EXPORT
SUIT_ResourceMgr
*
getResourcesManager
();
41
42
// Helper functions to deal with the study in a GUI context.
43
//
44
// First of all, in a GUI context, there is one of the opened
45
// studies that is considered as active. Please note that the active
46
// study is a GUI concept and it can be obtained only in the
47
// SALOME_SessionServer process, i.e. the process that embeds the
48
// SalomeApp_Application. The concept of active study doesn't make
49
// sense outside of the GUI context.
50
//
51
// The active study is associated with an GUI Objects Browser that
52
// displays a graphical representation of the study. The items that
53
// can be selected in the Objects Browser are name Interactive
54
// Objects (instance of class SALOME_InteractiveObject). To work
55
// with data, we have to retrieve from this Interactive Object (IO)
56
// the underlying Study Object (instance of class SALOMEDS::SObject)
57
// and from this last the data object that can be anything (that
58
// depends of the SALOME module technical choices). In general, on
59
// of the attribute of a SObject is a CORBA servant that handles the
60
// data to work with
61
SALOMEGUIHELPERS_EXPORT
SALOMEDS::Study_ptr
getActiveStudy
();
62
SALOMEGUIHELPERS_EXPORT
int
getActiveStudyId
();
63
64
// Another way to get the active study (to be converted in
65
// SALOMEDS::Study):
66
SALOMEGUIHELPERS_EXPORT
SalomeApp_Study
*
getSalomeAppActiveStudy
();
67
68
SALOMEGUIHELPERS_EXPORT
SALOMEDS::SObject_ptr
IObjectToSObject
(
const
Handle
(
SALOME_InteractiveObject
)& iobject);
69
70
template
<
class
TInterface>
typename
TInterface::_var_type
71
IObjectToInterface
(
const
Handle
(
SALOME_InteractiveObject
)& iobject) {
72
SALOMEDS::SObject_ptr sobject =
IObjectToSObject
(iobject);
73
return
KERNEL::SObjectToInterface<TInterface>(sobject);
74
}
75
// _MEM_: note that template functions have to be declared AND
76
// implemented in the header because they are not compiled in this
77
// library but in every client library that includes this header
78
// file. The effective compilation depends on the particular class
79
// used for TInterface.
80
81
82
}
83
84
#endif // GUI_SERVICES
src
GuiHelpers
SALOME_GuiServices.hxx
Copyright © 2007-2017 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS