X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_Utils.h;h=41d2e674ed3408bcfe02f134fa9d714b6bebb275;hp=77f26e3e139f2de44aa58bb97e7f07914bb8bd41;hb=6df8817c1a9827149025cc942249d7083f504d3d;hpb=0635c9fc80f67d1e5dc0e94ec85f487286a92070 diff --git a/src/SMESHGUI/SMESHGUI_Utils.h b/src/SMESHGUI/SMESHGUI_Utils.h index 77f26e3e1..41d2e674e 100644 --- a/src/SMESHGUI/SMESHGUI_Utils.h +++ b/src/SMESHGUI/SMESHGUI_Utils.h @@ -1,24 +1,25 @@ -// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 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 +// Copyright (C) 2003-2007 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 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, 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 -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// 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 +// 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 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // + // SMESH SMESHGUI : GUI for SMESH component // File : SMESHGUI_Utils.h // Author : Open CASCADE S.A.S. @@ -34,6 +35,7 @@ // SALOME KERNEL includes #include +#include // SALOME GUI includes #include @@ -42,6 +44,9 @@ //OCC includes #include +#include +#include CORBA_CLIENT_HEADER(SMESH_Mesh) + class SUIT_ViewWindow; class SUIT_Desktop; class SUIT_Study; @@ -75,10 +80,6 @@ SMESHGUI_EXPORT SMESHGUI_EXPORT SUIT_ResourceMgr* GetResourceMgr( const SalomeApp_Module* ); - -SMESHGUI_EXPORT - _PTR(Study) - GetCStudy( const SalomeApp_Study* ); SMESHGUI_EXPORT CORBA::Object_var DataOwnerToObject( const LightApp_DataOwnerPtr& ); @@ -88,7 +89,7 @@ SMESHGUI_EXPORT { CORBA::Object_var anObj = DataOwnerToObject(theDataOwner); if(!CORBA::is_nil(anObj)) - return TInterface::_narrow(anObj); + return TInterface::_narrow(anObj); return TInterface::_nil(); } @@ -99,7 +100,7 @@ SMESHGUI_EXPORT SUIT_ViewWindow* GetActiveWindow(); SMESHGUI_EXPORT - _PTR(Study) GetActiveStudyDocument(); + _PTR(Study) getStudy(); SMESHGUI_EXPORT _PTR(SObject) FindSObject( CORBA::Object_ptr ); @@ -112,10 +113,6 @@ SMESHGUI_EXPORT void setFileType( _PTR(SObject), const QString& ); void setFileName( _PTR(SObject), const QString& ); -SMESHGUI_EXPORT - CORBA::Object_var SObjectToObject( _PTR(SObject), - _PTR(Study) ); - SMESHGUI_EXPORT CORBA::Object_var SObjectToObject( _PTR(SObject) ); @@ -124,10 +121,13 @@ SMESHGUI_EXPORT { CORBA::Object_var anObj = SObjectToObject(theSObject); if(!CORBA::is_nil(anObj)) - return TInterface::_narrow(anObj); + return TInterface::_narrow(anObj); return TInterface::_nil(); } +SMESHGUI_EXPORT + _PTR(SObject) ObjectToSObject( CORBA::Object_ptr ); + SMESHGUI_EXPORT CORBA::Object_var IObjectToObject( const Handle(SALOME_InteractiveObject)& ); @@ -136,7 +136,7 @@ SMESHGUI_EXPORT { CORBA::Object_var anObj = IObjectToObject(theIO); if(!CORBA::is_nil(anObj)) - return TInterface::_narrow(anObj); + return TInterface::_narrow(anObj); return TInterface::_nil(); } @@ -148,18 +148,27 @@ SMESHGUI_EXPORT { CORBA::Object_var anObj = IORToObject( theIOR ); if ( !CORBA::is_nil( anObj ) ) - return TInterface::_narrow( anObj ); + return TInterface::_narrow( anObj ); return TInterface::_nil(); } SMESHGUI_EXPORT - int GetNameOfSelectedIObjects( LightApp_SelectionMgr*, QString& ); + CORBA::Object_var EntryToObject( const QString& ); + + template typename TInterface::_var_type + EntryToInterface( const QString& theEntry ) + { + CORBA::Object_var anObj = EntryToObject( theEntry ); + if ( !CORBA::is_nil( anObj ) ) + return TInterface::_narrow( anObj ); + return TInterface::_nil(); + } SMESHGUI_EXPORT - _PTR(SObject) GetMeshOrSubmesh( _PTR(SObject) ); + int GetNameOfSelectedIObjects( LightApp_SelectionMgr*, QString& ); SMESHGUI_EXPORT - void ModifiedMesh( _PTR(SObject), bool, bool = false ); + _PTR(SObject) GetMeshOrSubmesh( _PTR(SObject) ); SMESHGUI_EXPORT void ShowHelpFile( const QString& ); @@ -172,6 +181,41 @@ 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 IDSource_wrap; + + /*! + * \brief Class useful 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 ): _STRING( s ), myStr(s) + {} + operator const char*() const + { return myStr.in(); } + }; + // Instantiations: + struct toQStr : public toStrT< QString > { + toQStr( char* s ): toStrT< QString >(s) {} + }; + struct toStdStr : public toStrT< std::string > { + toStdStr( char* s ): toStrT< std::string >(s) {} + }; + + QString fromUtf8( const char* txt ); + QString fromUtf8( const std::string& txt ); + struct toUtf8: public std::string + { + toUtf8( const QString& txt ); + operator const char*() const { return c_str(); } + }; } #endif // SMESHGUI_UTILS_H