Salome HOME
Removed includes and libraries of OCC
[modules/kernel.git] / src / KERNEL_PY / salome_iapp.py
1 #  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 #  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
3
4 #  This library is free software; you can redistribute it and/or 
5 #  modify it under the terms of the GNU Lesser General Public 
6 #  License as published by the Free Software Foundation; either 
7 #  version 2.1 of the License. 
8
9 #  This library is distributed in the hope that it will be useful, 
10 #  but WITHOUT ANY WARRANTY; without even the implied warranty of 
11 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
12 #  Lesser General Public License for more details. 
13
14 #  You should have received a copy of the GNU Lesser General Public 
15 #  License along with this library; if not, write to the Free Software 
16 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
17
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 #
20 #
21 #
22 #  File   : salome_iapp.py
23 #  Author : Paul RASCLE, EDF
24 #  Module : SALOME
25 #  $Header$
26
27 import salome_ComponentGUI
28
29     #--------------------------------------------------------------------------
30
31 IN_SALOME_GUI=0
32
33 def ImportComponentGUI(ComponentName):
34     if IN_SALOME_GUI:
35         libName = "lib" + ComponentName + "_Swig"
36         command = "from " + libName + " import *"
37         exec ( command )
38         constructor = ComponentName + "_Swig()"
39         command = "gui = " + constructor
40         exec ( command )
41         return gui
42     else:
43         print "Warning: ImportComponentGUI(",ComponentName,") outside GUI !"
44         print "calls to GUI methods may crash..."
45         return salome_ComponentGUI
46
47     #--------------------------------------------------------------------------
48
49 def SalomeGUIgetAllSelected(self):
50     selNumber = self.SelectedCount()
51     listSelected = []
52     for i in range(selNumber):
53         listSelected.append(self.getSelected(i))
54     return listSelected
55
56     #--------------------------------------------------------------------------
57
58 def hasDesktop():
59     return IN_SALOME_GUI
60
61     #--------------------------------------------------------------------------
62
63 salome_iapp_initial = 1
64
65 class SalomeOutsideGUI(object):
66     """
67     Provides a replacement for class SalomeGUI outside GUI process.
68     Do almost nothing
69     """
70     global myStudyId, myStudyName
71     
72     def hasDesktop(self):
73         return False
74     
75     def updateObjBrowser(self, bid):
76         print "SalomeOutsideGUI: no objectBrowser update outside GUI"
77         pass
78     
79     def getActiveStudyId(self):
80         print "SalomeOutsideGUI.getActiveStudyId: avoid use outside GUI"
81         return myStudyId
82     
83     def getActiveStudyName(self):
84         print "SalomeOutsideGUI.getActiveStudyName: avoid use outside GUI"
85         return myStudyName
86     
87     def SelectedCount(self):
88         print "SalomeOutsideGUI: no selection mecanism available outside GUI"
89         return 0
90     
91     def getSelected(self, i):
92         print "SalomeOutsideGUI: no selection mecanism available outside GUI"
93         return none
94     
95     def AddIObject(self, Entry):
96         print "SalomeOutsideGUI.AddIOObject: not available outside GUI"
97         pass
98     
99     def RemoveIObject(self, Entry):
100         print "SalomeOutsideGUI.REmoveIOObject: not available outside GUI"
101         pass
102     
103     def ClearIObjects(self):
104         print "SalomeOutsideGUI.ClearIOObject: not available outside GUI"
105         pass
106     
107     def Display(self, Entry):
108         print "SalomeOutsideGUI.Display: not available outside GUI"
109         pass
110     
111     def DisplayOnly(self, Entry):
112         print "SalomeOutsideGUI.DisplayOnly: not available outside GUI"
113         pass
114     
115     def Erase(self, Entry):
116         print "SalomeOutsideGUI.Erase: not available outside GUI"
117         pass
118     
119     def DisplayAll(self):
120         print "SalomeOutsideGUI.Erase: not available outside GUI"
121         pass
122     
123     def EraseAll(self):
124         print "SalomeOutsideGUI.EraseAll: not available outside GUI"
125         pass
126
127     def IsInCurrentView(self, Entry):
128         print "SalomeOutsideGUI.IsIncurentView: not available outside GUI"
129         return False
130         
131     def getComponentName(self, ComponentUserName ):
132         print "SalomeOutsideGUI.getComponentName: not available outside GUI"
133         return ""
134    
135     def getComponentUserName( self, ComponentName ):
136         print "SalomeOutsideGUI.getComponentUserName: not available outside GUI"
137         return ""
138         
139     #--------------------------------------------------------------------------
140
141     
142 def salome_iapp_init(embedded):
143     global salome_iapp_initial
144     global sg,IN_SALOME_GUI
145
146     if salome_iapp_initial:
147         salome_iapp_initial=0
148         if embedded:
149             import libSALOME_Swig
150         
151             class SalomeGUI(libSALOME_Swig.SALOMEGUI_Swig):
152                 getAllSelected = SalomeGUIgetAllSelected
153
154             # create a SALOMEGUI_Swig instance
155             sg = SalomeGUI()
156             IN_SALOME_GUI = sg.hasDesktop()
157         else:
158             # Not embedded in GUI
159             sg=SalomeOutsideGUI()
160             IN_SALOME_GUI=0
161     return sg