Salome HOME
Moved some functionality to VTKViewer_Utilities.h
[modules/kernel.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 #include CORBA_SERVER_HEADER(SALOMEDS_Attributes)
37
38 using namespace std;
39
40 //============================================================================
41 // function : runCommand
42 // purpose  : Run command
43 //============================================================================
44 int ToolsGUI::runCommand(string & arg)
45
46   int res;
47   res = system( arg.c_str() );
48  
49   if ( res == -1 )
50     MESSAGE( "fork failed (system command result = 0x" << hex << res << ")" << dec ) 
51   else
52     if ( res == 217 )
53       MESSAGE( "shell exec failed (system command result = 0x" << hex << res << ")" << dec )
54   return res;
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 // name    : GetVisibility
90 // Purpose : Verify whether object is visible or not
91 //=======================================================================
92 bool ToolsGUI::GetVisibility( SALOMEDS::Study_var   theStudy,
93                               SALOMEDS::SObject_var theObj,
94                               void*                 theId )
95 {
96   SALOMEDS::GenericAttribute_var anAttr;
97   if ( !theObj->_is_nil() && theObj->FindAttribute( anAttr, "AttributeGraphic" ) )
98   {
99     SALOMEDS::AttributeGraphic_var aGraphic =
100       SALOMEDS::AttributeGraphic::_narrow( anAttr );
101     return aGraphic->GetVisibility( (unsigned long)theId );
102   }
103
104   return false;
105 }
106
107 //=======================================================================
108 // name    : SetVisibility
109 // Purpose : Set flag visibility of object
110 //=======================================================================
111 bool ToolsGUI::SetVisibility( SALOMEDS::Study_var theStudy,
112                               const char*         theEntry,
113                               const bool          theValue,
114                               void*               theId )
115 {
116   SALOMEDS::SObject_var anObj = theStudy->FindObjectID( theEntry );
117
118   if ( !anObj->_is_nil() )
119   {
120     SALOMEDS::GenericAttribute_var aGAttr;
121     if ( anObj->FindAttribute( aGAttr, "AttributeGraphic" ) )
122     {
123       SALOMEDS::AttributeGraphic_var anAttr = SALOMEDS::AttributeGraphic::_narrow( aGAttr );
124       anAttr->SetVisibility( (unsigned long)theId, theValue );
125     }
126     else if ( theValue )
127     {
128       SALOMEDS::StudyBuilder_var aBuilder = theStudy->NewBuilder();
129       SALOMEDS::AttributeGraphic_var anAttr = SALOMEDS::AttributeGraphic::_narrow(
130         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