00001 00002 // exotkAIS_TransparencyMenuNode.cxx 00004 // Copyright (C) 2001 Stephane Routelous 00005 // 00006 // This file is part of exoTK. 00007 // 00008 // exoTK is free software; you can redistribute it and/or modify 00009 // it under the terms of the GNU General Public License as published by 00010 // the Free Software Foundation; either version 2 of the License, or 00011 // (at your option) any later version. 00012 // 00013 // exoTK is distributed in the hope that it will be useful, 00014 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 // GNU General Public License for more details. 00017 // 00018 // You should have received a copy of the GNU General Public License 00019 // along with exoTK; if not, write to the Free Software 00020 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00022 00028 #include <exotkAIS_TransparencyMenuNode.hxx> 00029 00030 #ifndef _AIS_InteractiveObject_HeaderFile 00031 #include <AIS_InteractiveObject.hxx> 00032 #endif 00033 #ifndef _AIS_InteractiveContext_HeaderFile 00034 #include <AIS_InteractiveContext.hxx> 00035 #endif 00036 #ifndef _exotkGUI_HeaderFile 00037 #include <exotkGUI.hxx> 00038 #endif 00039 #ifndef _exotkGUI_GUI_HeaderFile 00040 #include <exotkGUI_GUI.hxx> 00041 #endif 00042 // 00043 IMPLEMENT_STANDARD_HANDLE(exotkAIS_TransparencyMenuNode, exotkTree_MenuNode) 00044 IMPLEMENT_STANDARD_RTTI(exotkAIS_TransparencyMenuNode, exotkTree_MenuNode) 00045 // 00046 // Foreach ancestors, we add a IMPLEMENT_STANDARD_SUPERTYPE and 00047 // a IMPLEMENT_STANDARD_SUPERTYPE_ARRAY_ENTRY macro. 00048 // We must respect the order: from the direct ancestor class 00049 // to the base class. 00050 // 00051 00052 IMPLEMENT_STANDARD_TYPE(exotkAIS_TransparencyMenuNode) 00053 IMPLEMENT_STANDARD_SUPERTYPE(exotkTree_MenuNode) 00054 IMPLEMENT_STANDARD_SUPERTYPE(exotkTree_TreeNode) 00055 IMPLEMENT_STANDARD_SUPERTYPE(MMgt_TShared) 00056 IMPLEMENT_STANDARD_SUPERTYPE(Standard_Transient) 00057 IMPLEMENT_STANDARD_SUPERTYPE_ARRAY() 00058 IMPLEMENT_STANDARD_SUPERTYPE_ARRAY_ENTRY(exotkTree_MenuNode) 00059 IMPLEMENT_STANDARD_SUPERTYPE_ARRAY_ENTRY(exotkTree_TreeNode) 00060 IMPLEMENT_STANDARD_SUPERTYPE_ARRAY_ENTRY(MMgt_TShared) 00061 IMPLEMENT_STANDARD_SUPERTYPE_ARRAY_ENTRY(Standard_Transient) 00062 IMPLEMENT_STANDARD_SUPERTYPE_ARRAY_END() 00063 IMPLEMENT_STANDARD_TYPE_END(exotkAIS_TransparencyMenuNode) 00064 00065 exotkAIS_TransparencyMenuNode::exotkAIS_TransparencyMenuNode(const Handle_AIS_InteractiveObject& anInteractiveObject) 00066 :myInteractiveObject(anInteractiveObject) 00067 { 00068 } 00069 00070 00071 //================================================================================== 00072 // Function name : exotkAIS_TransparencyMenuNode::~exotkAIS_TransparencyMenuNode 00073 //================================================================================== 00074 // Written by : Stephane Routelous - 2001-11-06 15:54:27 00075 // Description : 00076 // Return type : 00077 //================================================================================== 00078 exotkAIS_TransparencyMenuNode::~exotkAIS_TransparencyMenuNode() 00079 { 00080 } 00081 00082 //================================================================================== 00083 // Function name : exotkAIS_TransparencyMenuNode::Execute 00084 //================================================================================== 00085 // Written by : Stephane Routelous - 2001-11-06 15:54:29 00086 // Description : 00087 // Return type : Standard_Boolean 00088 //================================================================================== 00089 Standard_Boolean exotkAIS_TransparencyMenuNode::Execute() 00090 { 00091 Standard_Boolean theReturnValue = Standard_False; 00092 if ( !myInteractiveObject.IsNull() ) 00093 { 00094 if ( myInteractiveObject->HasInteractiveContext() ) 00095 { 00096 Handle_AIS_InteractiveContext theAISContext = myInteractiveObject->GetContext(); 00097 if ( !theAISContext.IsNull() ) 00098 { 00099 try 00100 { 00101 Standard_Real theOriginTransparency = myInteractiveObject->Transparency(); 00102 Standard_Real theNewTransparency; 00103 Standard_Boolean theTransparencyIsSelected = Standard_False; 00104 if ( exotkGUI::SelectTransparency(theOriginTransparency,theNewTransparency,theTransparencyIsSelected) && theTransparencyIsSelected) 00105 { 00106 theAISContext->SetTransparency(myInteractiveObject,theNewTransparency); 00107 } 00108 } 00109 catch(Standard_Failure) 00110 { 00111 theReturnValue = Standard_False; 00112 } 00113 catch(...) 00114 { 00115 theReturnValue = Standard_False; 00116 } 00117 } 00118 } 00119 } 00120 return theReturnValue; 00121 }
1.2.12 written by Dimitri van Heesch,
© 1997-2001