00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00028 #ifndef __vtkWidgetCallbackMapper_h
00029 #define __vtkWidgetCallbackMapper_h
00030
00031 #include "vtkObject.h"
00032
00033 class vtkWidgetEvent;
00034 class vtkAbstractWidget;
00035 class vtkWidgetEventTranslator;
00036 class vtkCallbackMap;
00037
00038
00039 class VTK_WIDGETS_EXPORT vtkWidgetCallbackMapper : public vtkObject
00040 {
00041 public:
00043 static vtkWidgetCallbackMapper *New();
00044
00046
00047 vtkTypeMacro(vtkWidgetCallbackMapper,vtkObject);
00048 void PrintSelf(ostream& os, vtkIndent indent);
00050
00052
00053 void SetEventTranslator(vtkWidgetEventTranslator *t);
00054 vtkGetObjectMacro(EventTranslator,vtkWidgetEventTranslator);
00056
00057
00059
00060 typedef void (*CallbackType)(vtkAbstractWidget*);
00061
00063
00065
00073 void SetCallbackMethod(unsigned long VTKEvent, unsigned long widgetEvent,
00074 vtkAbstractWidget *w, CallbackType f);
00075 void SetCallbackMethod(unsigned long VTKEvent, int modifiers, char keyCode,
00076 int repeatCount, const char* keySym,
00077 unsigned long widgetEvent,
00078 vtkAbstractWidget *w, CallbackType f);
00079
00080
00082
00085 void InvokeCallback(unsigned long widgetEvent);
00086
00087 protected:
00088 vtkWidgetCallbackMapper();
00089 ~vtkWidgetCallbackMapper();
00090
00091
00092 vtkWidgetEventTranslator *EventTranslator;
00093
00094
00095 vtkCallbackMap *CallbackMap;
00096
00098
00102 void SetCallbackMethod(unsigned long widgetEvent,
00103 vtkAbstractWidget *w, CallbackType f);
00105
00106
00107 private:
00108 vtkWidgetCallbackMapper(const vtkWidgetCallbackMapper&);
00109 void operator=(const vtkWidgetCallbackMapper&);
00110
00111 };
00112
00113
00114 #endif
00115