Salome HOME
debug IPAL9411: redefine virtual methods createEmptyStudy and activateModule
[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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
21 //
22 //
23 //
24 //  File   : ToolsGUI.cxx
25 //  Author : Nicolas REJNERI
26 //  Module : SALOME
27 //  $Header$
28
29 #include "ToolsGUI.h"
30 #include "ToolsGUI_CatalogGeneratorDlg.h"
31
32 #include "utilities.h"
33
34 #include <stdlib.h>
35
36 using namespace std;
37
38 //============================================================================
39 // function : runCommand
40 // purpose  : Run command
41 //============================================================================
42 int ToolsGUI::runCommand(string & arg)
43
44   int res;
45   res = system( arg.c_str() );
46  
47   if ( res == -1 )
48     MESSAGE( "fork failed (system command result = 0x" << hex << res << ")" << dec ) 
49   else
50     if ( res == 217 )
51       MESSAGE( "shell exec failed (system command result = 0x" << hex << res << ")" << dec )
52   return res;
53 }
54
55 /*
56
57 //============================================================================
58 // function : OnGUIEvent
59 // purpose  : Process events
60 //============================================================================
61 bool ToolsGUI::OnGUIEvent( int theCommandID,  QAD_Desktop* parent )
62 {
63   switch ( theCommandID )
64   {
65   case 5102 :
66     {
67       ToolsGUI_CatalogGeneratorDlg* aDlg = new ToolsGUI_CatalogGeneratorDlg( parent );
68       aDlg->exec();
69       delete aDlg;
70       break;
71     }
72
73   default:
74     MESSAGE ( " No command associated with this id = " << theCommandID )
75     break;
76   }
77   return true;
78 }
79
80 extern "C"
81 {
82   bool OnGUIEvent( int theCommandID, QAD_Desktop* parent )
83   {
84     return ToolsGUI::OnGUIEvent(theCommandID, parent);
85   }
86 }
87
88 */
89
90 //=======================================================================
91 // name    : GetVisibility
92 // Purpose : Verify whether object is visible or not
93 //=======================================================================
94 bool ToolsGUI::GetVisibility( _PTR(Study)   theStudy,
95                               _PTR(SObject) theObj,
96                               void*         theId )
97 {
98   _PTR(GenericAttribute) anAttr;
99   if ( theObj && theObj->FindAttribute( anAttr, "AttributeGraphic" ) )
100   {
101     _PTR(AttributeGraphic) aGraphic (anAttr);
102     return aGraphic->GetVisibility( (unsigned long)theId );
103   }
104
105   return false;
106 }
107
108 //=======================================================================
109 // name    : SetVisibility
110 // Purpose : Set flag visibility of object
111 //=======================================================================
112 bool ToolsGUI::SetVisibility( _PTR(Study) theStudy,
113                               const char* theEntry,
114                               const bool  theValue,
115                               void*       theId )
116 {
117   _PTR(SObject) anObj ( theStudy->FindObjectID( theEntry ) );
118
119   if ( anObj )
120   {
121     _PTR(GenericAttribute) aGAttr;
122     if ( anObj->FindAttribute( aGAttr, "AttributeGraphic" ) )
123     {
124       _PTR(AttributeGraphic) anAttr ( aGAttr );
125       anAttr->SetVisibility( (unsigned long)theId, theValue );
126     }
127     else if ( theValue )
128     {
129       _PTR(StudyBuilder) aBuilder (theStudy->NewBuilder());
130       _PTR(AttributeGraphic) anAttr (aBuilder->FindOrCreateAttribute(anObj, "AttributeGraphic"));
131       anAttr->SetVisibility( (unsigned long)theId, theValue );
132     }
133     return true;
134   }
135
136   return false;
137 }
138
139
140
141
142
143