VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkBalloonWidget.h,v $ 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 =========================================================================*/ 00073 #ifndef __vtkBalloonWidget_h 00074 #define __vtkBalloonWidget_h 00075 00076 #include "vtkHoverWidget.h" 00077 00078 class vtkBalloonRepresentation; 00079 class vtkProp; 00080 class vtkAbstractPropPicker; 00081 class vtkStdString; 00082 class vtkPropMap; 00083 class vtkImageData; 00084 00085 00086 class VTK_WIDGETS_EXPORT vtkBalloonWidget : public vtkHoverWidget 00087 { 00088 public: 00090 static vtkBalloonWidget *New(); 00091 00093 00094 vtkTypeRevisionMacro(vtkBalloonWidget,vtkHoverWidget); 00095 void PrintSelf(ostream& os, vtkIndent indent); 00097 00101 virtual void SetEnabled(int); 00102 00104 00107 void SetRepresentation(vtkBalloonRepresentation *r) 00108 {this->Superclass::SetWidgetRepresentation(reinterpret_cast<vtkWidgetRepresentation*>(r));} 00110 00112 void CreateDefaultRepresentation(); 00113 00115 00117 void AddBalloon(vtkProp *prop, vtkStdString *str, vtkImageData *img); 00118 void AddBalloon(vtkProp *prop, const char *str, vtkImageData *img); 00119 void AddBalloon(vtkProp *prop, const char *str) //for wrapping 00120 {this->AddBalloon(prop,str,NULL);} 00121 void RemoveBalloon(vtkProp *prop); 00123 00125 00129 const char *GetBalloonString(vtkProp *prop); 00130 vtkImageData *GetBalloonImage(vtkProp *prop); 00132 00134 00136 virtual vtkProp *GetCurrentProp() 00137 {return this->CurrentProp;} 00139 00141 00145 void SetPicker(vtkAbstractPropPicker*); 00146 vtkGetObjectMacro(Picker,vtkAbstractPropPicker); 00148 00149 protected: 00150 vtkBalloonWidget(); 00151 ~vtkBalloonWidget(); 00152 00153 // This class implements the method called from its superclass. 00154 virtual int SubclassEndHoverAction(); 00155 virtual int SubclassHoverAction(); 00156 00157 // Classes for managing balloons 00158 vtkPropMap *PropMap; //PIMPL'd map of (vtkProp,vtkStdString) 00159 00160 // Support for picking 00161 vtkAbstractPropPicker *Picker; 00162 00163 // The vtkProp that is being hovered over (which may be NULL) 00164 vtkProp *CurrentProp; 00165 00166 private: 00167 vtkBalloonWidget(const vtkBalloonWidget&); //Not implemented 00168 void operator=(const vtkBalloonWidget&); //Not implemented 00169 }; 00170 00171 #endif