Salome HOME
PAL12755: EDF: SALOME frozen with Load Script and a Python Module. Additional fix.
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_Swig.i
index d53badd3a699c7839524d58ac6fae01f566ec494..0ba7ee7e452a28c884f21df92b7489982d629e02 100644 (file)
@@ -1,17 +1,58 @@
-//  File      : SMESHGUI_Swig.i
-//  Created   : Mon Jun 17 13:40:36 2002
-//  Author    : Nicolas REJNERI
-
-//  Project   : SALOME
-//  Module    : SMESH
-//  Copyright : Open CASCADE 2002
+//  SMESH SMESHGUI : GUI for SMESH component
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+//  File   : SMESHGUI_Swig.i
+//  Author : Nicolas REJNERI
+//  Module : SMESH
 //  $Header$
 
-
 %{
 #include "SMESHGUI_Swig.hxx"
 %}
 
+/* Exception handler for all functions */
+%exception {
+  class PyAllowThreadsGuard {
+   public:
+    // Py_BEGIN_ALLOW_THREADS
+    PyAllowThreadsGuard() { _save = PyEval_SaveThread(); }
+    // Py_END_ALLOW_THREADS
+    ~PyAllowThreadsGuard() { PyEval_RestoreThread(_save); }
+   private:
+    PyThreadState *_save;
+  };
+
+  PyAllowThreadsGuard guard;
+
+  try {
+    $action
+  }
+  catch(...) {
+    PyErr_SetString(PyExc_RuntimeError,"Unknown exception caught");
+    return NULL;
+  }
+}
+
 %include "typemaps.i"
 
 class SMESH_Swig
@@ -37,4 +78,6 @@ class SMESH_Swig
   const char* AddSubMeshOnShape (const char* Mesh_Entry, const char* GeomShape_Entry, const char* SM_IOR, int ST);
 
   void SetName(const char* Entry, const char* Name);
+
+  void SetMeshIcon(const char* Mesh_Entry, const bool isComputed);
 };