VTK
|
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