Salome HOME
Upgrade to paraview 5.4
[modules/gui.git] / src / TOOLSGUI / ToolsGUI.cxx
1 // Copyright (C) 2007-2016  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
29 /*!
30   \class ToolsGUI
31   \brief Utility class.
32 */
33
34 /*!
35   \brief Get visibility value of the "AttributeGraphic" attribute.
36   \param theStudy study
37   \param theObj object
38   \param theId sub-object identifier
39   \return \c true if an object (sub-object) is visible
40 */
41 bool ToolsGUI::GetVisibility( _PTR(Study)   theStudy,
42                               _PTR(SObject) theObj,
43                               void*         theId )
44 {
45   _PTR(GenericAttribute) anAttr;
46   if ( theObj && theObj->FindAttribute( anAttr, "AttributeGraphic" ) )
47   {
48     _PTR(AttributeGraphic) aGraphic (anAttr);
49     return aGraphic->GetVisibility( (unsigned long)theId );
50   }
51
52   return false;
53 }
54
55 /*!
56   \brief Set visibility value of the "AttributeGraphic" attribute.
57   \param theStudy study
58   \param theObj object
59   \return theValue new visibility value
60   \param theId sub-object identifier
61 */
62 bool ToolsGUI::SetVisibility( _PTR(Study) theStudy,
63                               const char* theEntry,
64                               const bool  theValue,
65                               void*       theId )
66 {
67   _PTR(SObject) anObj ( theStudy->FindObjectID( theEntry ) );
68
69   if ( anObj )
70   {
71     _PTR(GenericAttribute) aGAttr;
72     if ( anObj->FindAttribute( aGAttr, "AttributeGraphic" ) )
73     {
74       _PTR(AttributeGraphic) anAttr ( aGAttr );
75       anAttr->SetVisibility( (unsigned long)theId, theValue );
76     }
77     else if ( theValue )
78     {
79       _PTR(StudyBuilder) aBuilder (theStudy->NewBuilder());
80       _PTR(AttributeGraphic) anAttr (aBuilder->FindOrCreateAttribute(anObj, "AttributeGraphic"));
81       anAttr->SetVisibility( (unsigned long)theId, theValue );
82     }
83     return true;
84   }
85
86   return false;
87 }
88