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