VTK
dox/Widgets/vtkWidgetCallbackMapper.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkWidgetCallbackMapper.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 =========================================================================*/
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; // PIMPL encapsulation of STL map
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 //BTX
00059 
00060   typedef void (*CallbackType)(vtkAbstractWidget*);
00061 //ETX
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   //void SetCallbackMethod(vtkWidgetEvent *vtkEvent, unsigned long widgetEvent,
00080   //                       vtkAbstractWidget *w, CallbackType f);
00082 
00085   void InvokeCallback(unsigned long widgetEvent);
00086   
00087 protected:
00088   vtkWidgetCallbackMapper();
00089   ~vtkWidgetCallbackMapper();
00090 
00091   // Translates VTK events into widget events
00092   vtkWidgetEventTranslator *EventTranslator;
00093 
00094   // Invoke the method associated with a particular widget event
00095   vtkCallbackMap *CallbackMap;
00096   
00098 
00102   void SetCallbackMethod(unsigned long widgetEvent, 
00103                          vtkAbstractWidget *w, CallbackType f);
00105   
00106 
00107 private:
00108   vtkWidgetCallbackMapper(const vtkWidgetCallbackMapper&);  //Not implemented
00109   void operator=(const vtkWidgetCallbackMapper&);  //Not implemented
00110 
00111 };
00112 
00113 
00114 #endif /* __vtkWidgetCallbackMapper_h */
00115