VTK  9.3.1
vtkCallbackCommand.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
32 #ifndef vtkCallbackCommand_h
33 #define vtkCallbackCommand_h
34 
35 #include "vtkCommand.h"
36 #include "vtkCommonCoreModule.h" // For export macro
37 
38 VTK_ABI_NAMESPACE_BEGIN
39 class VTKCOMMONCORE_EXPORT vtkCallbackCommand : public vtkCommand
40 {
41 public:
43 
44  static vtkCallbackCommand* New() { return new vtkCallbackCommand; }
45 
52  void Execute(vtkObject* caller, unsigned long eid, void* callData) override;
53 
58  virtual void SetClientData(void* cd) { this->ClientData = cd; }
59  virtual void* GetClientData() { return this->ClientData; }
60  virtual void SetCallback(
61  void (*f)(vtkObject* caller, unsigned long eid, void* clientdata, void* calldata))
62  {
63  this->Callback = f;
64  }
65  virtual void SetClientDataDeleteCallback(void (*f)(void*)) { this->ClientDataDeleteCallback = f; }
66 
72  void SetAbortFlagOnExecute(int f) { this->AbortFlagOnExecute = f; }
73  int GetAbortFlagOnExecute() { return this->AbortFlagOnExecute; }
74  void AbortFlagOnExecuteOn() { this->SetAbortFlagOnExecute(1); }
75  void AbortFlagOnExecuteOff() { this->SetAbortFlagOnExecute(0); }
76 
77  void (*Callback)(vtkObject*, unsigned long, void*, void*);
78  void (*ClientDataDeleteCallback)(void*);
79 
80 protected:
82  void* ClientData;
83 
85  ~vtkCallbackCommand() override;
86 };
87 
88 VTK_ABI_NAMESPACE_END
89 #endif
90 
91 // VTK-HeaderTest-Exclude: vtkCallbackCommand.h
virtual void Execute(vtkObject *caller, unsigned long eventId, void *callData)=0
All derived classes of vtkCommand must implement this method.
virtual void SetClientData(void *cd)
Methods to set and get client and callback information, and the callback function.
abstract base class for most VTK objects
Definition: vtkObject.h:51
static vtkCallbackCommand * New()
virtual void SetClientDataDeleteCallback(void(*f)(void *))
void SetAbortFlagOnExecute(int f)
Set/Get the abort flag on execute.
virtual void * GetClientData()
superclass for callback/observer methods
Definition: vtkCommand.h:383
supports function callbacks
virtual void SetCallback(void(*f)(vtkObject *caller, unsigned long eid, void *clientdata, void *calldata))