VTK  9.3.1
vtkWidgetCallbackMapper.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
17 #ifndef vtkWidgetCallbackMapper_h
18 #define vtkWidgetCallbackMapper_h
19 
20 #include "vtkInteractionWidgetsModule.h" // For export macro
21 #include "vtkObject.h"
22 
23 VTK_ABI_NAMESPACE_BEGIN
24 class vtkWidgetEvent;
25 class vtkAbstractWidget;
27 class vtkCallbackMap; // PIMPL encapsulation of STL map
28 class vtkEventData;
29 
30 class VTKINTERACTIONWIDGETS_EXPORT vtkWidgetCallbackMapper : public vtkObject
31 {
32 public:
36  static vtkWidgetCallbackMapper* New();
37 
39 
43  void PrintSelf(ostream& os, vtkIndent indent) override;
45 
47 
50  void SetEventTranslator(vtkWidgetEventTranslator* t);
51  vtkGetObjectMacro(EventTranslator, vtkWidgetEventTranslator);
53 
57  typedef void (*CallbackType)(vtkAbstractWidget*);
58 
60 
70  void SetCallbackMethod(
71  unsigned long VTKEvent, unsigned long widgetEvent, vtkAbstractWidget* w, CallbackType f);
72  void SetCallbackMethod(unsigned long VTKEvent, int modifiers, char keyCode, int repeatCount,
73  const char* keySym, unsigned long widgetEvent, vtkAbstractWidget* w, CallbackType f);
74  void SetCallbackMethod(unsigned long VTKEvent, vtkEventData* ed, unsigned long widgetEvent,
75  vtkAbstractWidget* w, CallbackType f);
76  // void SetCallbackMethod(vtkWidgetEvent *vtkEvent, unsigned long widgetEvent,
77  // vtkAbstractWidget *w, CallbackType f);
79 
84  void InvokeCallback(unsigned long widgetEvent);
85 
86 protected:
88  ~vtkWidgetCallbackMapper() override;
89 
90  // Translates VTK events into widget events
92 
93  // Invoke the method associated with a particular widget event
94  vtkCallbackMap* CallbackMap;
95 
101  void SetCallbackMethod(unsigned long widgetEvent, vtkAbstractWidget* w, CallbackType f);
102 
103 private:
105  void operator=(const vtkWidgetCallbackMapper&) = delete;
106 };
107 
108 VTK_ABI_NAMESPACE_END
109 #endif /* vtkWidgetCallbackMapper_h */
abstract base class for most VTK objects
Definition: vtkObject.h:51
vtkWidgetEventTranslator * EventTranslator
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
map VTK events into widget events
define widget events
a simple class to control print indentation
Definition: vtkIndent.h:28
define the API for widget / widget representation
map widget events into callbacks
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...