Salome HOME
Copyright update 2022
[modules/gui.git] / src / TOOLSGUI / ToolsGUI.cxx
1 // Copyright (C) 2007-2022  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22
23 //  SALOME TOOLSGUI : implementation of desktop "Tools" optioins
24 //  File   : ToolsGUI.cxx
25 //  Author : Nicolas REJNERI
26 //
27 #include "ToolsGUI.h"
28 #include <SALOMEDSClient_ClientFactory.hxx>
29 #include <SALOME_KernelServices.hxx>
30
31 /*!
32   \class ToolsGUI
33   \brief Utility class.
34 */
35
36 /*!
37   \brief Get visibility value of the "AttributeGraphic" attribute.
38   \param theObj object
39   \param theId sub-object identifier
40   \return \c true if an object (sub-object) is visible
41 */
42 bool ToolsGUI::GetVisibility( _PTR(SObject) theObj,
43                               void*         theId )
44 {
45   // todo: this function seems to be not used
46   _PTR(GenericAttribute) anAttr;
47   if ( theObj && theObj->FindAttribute( anAttr, "AttributeGraphic" ) )
48   {
49     _PTR(AttributeGraphic) aGraphic (anAttr);
50     return aGraphic->GetVisibility( int(reinterpret_cast<long long>(theId)) ); // todo: unsafe - converting pointer to int can give non-unique result
51   }
52
53   return false;
54 }
55
56 /*!
57   \brief Set visibility value of the "AttributeGraphic" attribute.
58   \param theObj object
59   \return theValue new visibility value
60   \param theId sub-object identifier
61 */
62 bool ToolsGUI::SetVisibility( const char* theEntry,
63                               const bool  theValue,
64                               void*       theId )
65 {
66   // todo: this function seems to be not used
67   _PTR(Study) aStudy = ClientFactory::Study(KERNEL::getStudyServant());
68   _PTR(SObject) anObj ( aStudy->FindObjectID( theEntry ) );
69
70   if ( anObj )
71   {
72     _PTR(GenericAttribute) aGAttr;
73     if ( anObj->FindAttribute( aGAttr, "AttributeGraphic" ) )
74     {
75       _PTR(AttributeGraphic) anAttr ( aGAttr );
76       anAttr->SetVisibility( int(reinterpret_cast<long long>(theId)), theValue ); // todo: unsafe - converting pointer to int can give non-unique result
77     }
78     else if ( theValue )
79     {
80       _PTR(StudyBuilder) aBuilder (aStudy->NewBuilder());
81       _PTR(AttributeGraphic) anAttr (aBuilder->FindOrCreateAttribute(anObj, "AttributeGraphic"));
82       anAttr->SetVisibility( int(reinterpret_cast<long long>(theId)), theValue ); // todo: unsafe - converting pointer to int can give non-unique result
83     }
84     return true;
85   }
86
87   return false;
88 }
89