Salome HOME
Join modifications from branch BR_DEBUG_3_2_0b1
[modules/gui.git] / src / TOOLSGUI / ToolsGUI.cxx
1 //  SALOME TOOLSGUI : implementation of desktop "Tools" optioins
2 //
3 //  Copyright (C) 2003  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. 
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 //
24 //  File   : ToolsGUI.cxx
25 //  Author : Nicolas REJNERI
26 //  Module : SALOME
27 //  $Header$
28
29 #include "ToolsGUI.h"
30
31 /*!
32   \return true if object is visible
33 */
34 bool ToolsGUI::GetVisibility( _PTR(Study)   theStudy,
35                               _PTR(SObject) theObj,
36                               void*         theId )
37 {
38   _PTR(GenericAttribute) anAttr;
39   if ( theObj && theObj->FindAttribute( anAttr, "AttributeGraphic" ) )
40   {
41     _PTR(AttributeGraphic) aGraphic (anAttr);
42     return aGraphic->GetVisibility( (unsigned long)theId );
43   }
44
45   return false;
46 }
47
48 /*!
49   Set flag visibility of object
50   \param theStudy - study
51   \param theEntry - entry
52   \param theValue - flag visibility
53   \param theId - id
54 */
55 bool ToolsGUI::SetVisibility( _PTR(Study) theStudy,
56                               const char* theEntry,
57                               const bool  theValue,
58                               void*       theId )
59 {
60   _PTR(SObject) anObj ( theStudy->FindObjectID( theEntry ) );
61
62   if ( anObj )
63   {
64     _PTR(GenericAttribute) aGAttr;
65     if ( anObj->FindAttribute( aGAttr, "AttributeGraphic" ) )
66     {
67       _PTR(AttributeGraphic) anAttr ( aGAttr );
68       anAttr->SetVisibility( (unsigned long)theId, theValue );
69     }
70     else if ( theValue )
71     {
72       _PTR(StudyBuilder) aBuilder (theStudy->NewBuilder());
73       _PTR(AttributeGraphic) anAttr (aBuilder->FindOrCreateAttribute(anObj, "AttributeGraphic"));
74       anAttr->SetVisibility( (unsigned long)theId, theValue );
75     }
76     return true;
77   }
78
79   return false;
80 }
81