X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_Utils.h;h=d5ec25ed4a7134897d7371269f4a5a69f47d7e8f;hp=c813e10787de2451216fcc9faa6a7d343db46057;hb=3eb21ad301385822cfbaa81f2ed6fbfd7bacf23b;hpb=bd4e115a78b52e3fbc016e5e30bb0e19b2a9e7d6 diff --git a/src/SMESHGUI/SMESHGUI_Utils.h b/src/SMESHGUI/SMESHGUI_Utils.h index c813e1078..d5ec25ed4 100644 --- a/src/SMESHGUI/SMESHGUI_Utils.h +++ b/src/SMESHGUI/SMESHGUI_Utils.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -6,7 +6,7 @@ // 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. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -35,6 +35,7 @@ // SALOME KERNEL includes #include +#include // SALOME GUI includes #include @@ -43,6 +44,9 @@ //OCC includes #include +#include +#include CORBA_CLIENT_HEADER(SMESH_Mesh) + class SUIT_ViewWindow; class SUIT_Desktop; class SUIT_Study; @@ -176,6 +180,34 @@ SMESHGUI_EXPORT SMESHGUI_EXPORT gp_XYZ getNormale( const SMDS_MeshFace* theFace ); + + // type to use instead of SMESH_IDSource_var for automatic UnRegister() + typedef SALOME::GenericObj_wrap SMESH_IDSource_wrap; + + /*! + * \brief Class usefull to convert a string returned from a CORBA call + * to other string types w/o memory leak. + * + * Usage (of instantiations): QString s = toQStr( objVar->GetName() ); + * std::string ss = toStdStr( objVar->GetName() ); + */ + template < class _STRING > + class toStrT : public _STRING { + CORBA::String_var myStr; + public: + toStrT( char* s ): myStr(s), _STRING( s ) + {} + operator const char*() const + { return myStr.in(); } + }; + // Instantiations: + struct toQStr : public toStrT< QString > { + toQStr( char* s ): toStrT< QString >(s) {} + }; + class toStdStr : public toStrT< std::string > { + toStdStr( char* s ): toStrT< std::string >(s) {} + }; + } #endif // SMESHGUI_UTILS_H