VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkWidgetCallbackMapper.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 =========================================================================*/ 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 vtkTypeRevisionMacro(vtkWidgetCallbackMapper,vtkObject); 00048 void PrintSelf(ostream& os, vtkIndent indent); 00050 00052 00053 void SetEventTranslator(vtkWidgetEventTranslator *t); 00054 vtkGetObjectMacro(EventTranslator,vtkWidgetEventTranslator); 00056 00057 //BTX 00059 typedef void (*CallbackType)(vtkAbstractWidget*); 00060 //ETX 00061 00063 00071 void SetCallbackMethod(unsigned long VTKEvent, unsigned long widgetEvent, 00072 vtkAbstractWidget *w, CallbackType f); 00073 void SetCallbackMethod(unsigned long VTKEvent, int modifiers, char keyCode, 00074 int repeatCount, const char* keySym, 00075 unsigned long widgetEvent, 00076 vtkAbstractWidget *w, CallbackType f); 00077 //void SetCallbackMethod(vtkWidgetEvent *vtkEvent, unsigned long widgetEvent, 00078 // vtkAbstractWidget *w, CallbackType f); 00080 00083 void InvokeCallback(unsigned long widgetEvent); 00084 00085 protected: 00086 vtkWidgetCallbackMapper(); 00087 ~vtkWidgetCallbackMapper(); 00088 00089 // Translates VTK events into widget events 00090 vtkWidgetEventTranslator *EventTranslator; 00091 00092 // Invoke the method associated with a particular widget event 00093 vtkCallbackMap *CallbackMap; 00094 00096 00100 void SetCallbackMethod(unsigned long widgetEvent, 00101 vtkAbstractWidget *w, CallbackType f); 00103 00104 00105 private: 00106 vtkWidgetCallbackMapper(const vtkWidgetCallbackMapper&); //Not implemented 00107 void operator=(const vtkWidgetCallbackMapper&); //Not implemented 00108 00109 }; 00110 00111 00112 #endif /* __vtkWidgetCallbackMapper_h */ 00113