VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkBalloonWidget.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00076 #ifndef __vtkBalloonWidget_h 00077 #define __vtkBalloonWidget_h 00078 00079 #include "vtkHoverWidget.h" 00080 00081 class vtkBalloonRepresentation; 00082 class vtkProp; 00083 class vtkAbstractPropPicker; 00084 class vtkStdString; 00085 class vtkPropMap; 00086 class vtkImageData; 00087 00088 00089 class VTK_WIDGETS_EXPORT vtkBalloonWidget : public vtkHoverWidget 00090 { 00091 public: 00093 static vtkBalloonWidget *New(); 00094 00096 00097 vtkTypeMacro(vtkBalloonWidget,vtkHoverWidget); 00098 void PrintSelf(ostream& os, vtkIndent indent); 00100 00104 virtual void SetEnabled(int); 00105 00107 00110 void SetRepresentation(vtkBalloonRepresentation *r) 00111 {this->Superclass::SetWidgetRepresentation(reinterpret_cast<vtkWidgetRepresentation*>(r));} 00113 00115 00116 vtkBalloonRepresentation *GetBalloonRepresentation() 00117 {return reinterpret_cast<vtkBalloonRepresentation*>(this->WidgetRep);} 00119 00121 void CreateDefaultRepresentation(); 00122 00124 00126 void AddBalloon(vtkProp *prop, vtkStdString *str, vtkImageData *img); 00127 void AddBalloon(vtkProp *prop, const char *str, vtkImageData *img); 00128 void AddBalloon(vtkProp *prop, const char *str) //for wrapping 00129 {this->AddBalloon(prop,str,NULL);} 00130 void RemoveBalloon(vtkProp *prop); 00132 00134 00138 const char *GetBalloonString(vtkProp *prop); 00139 vtkImageData *GetBalloonImage(vtkProp *prop); 00141 00143 00145 void UpdateBalloonString(vtkProp *prop, const char *str); 00146 void UpdateBalloonImage(vtkProp *prop, vtkImageData *image); 00148 00150 00152 virtual vtkProp *GetCurrentProp() 00153 {return this->CurrentProp;} 00155 00157 00161 void SetPicker(vtkAbstractPropPicker*); 00162 vtkGetObjectMacro(Picker,vtkAbstractPropPicker); 00164 00165 protected: 00166 vtkBalloonWidget(); 00167 ~vtkBalloonWidget(); 00168 00169 // This class implements the method called from its superclass. 00170 virtual int SubclassEndHoverAction(); 00171 virtual int SubclassHoverAction(); 00172 00173 // Classes for managing balloons 00174 vtkPropMap *PropMap; //PIMPL'd map of (vtkProp,vtkStdString) 00175 00176 // Support for picking 00177 vtkAbstractPropPicker *Picker; 00178 00179 // The vtkProp that is being hovered over (which may be NULL) 00180 vtkProp *CurrentProp; 00181 00182 private: 00183 vtkBalloonWidget(const vtkBalloonWidget&); //Not implemented 00184 void operator=(const vtkBalloonWidget&); //Not implemented 00185 }; 00186 00187 #endif