VTK  9.3.20240328
vtkAbstractContextItem.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
3 
15 #ifndef vtkAbstractContextItem_h
16 #define vtkAbstractContextItem_h
17 
18 #include "vtkObject.h"
19 #include "vtkRenderingContext2DModule.h" // For export macro
20 
21 VTK_ABI_NAMESPACE_BEGIN
22 class vtkContext2D;
24 class vtkContextKeyEvent;
25 class vtkContextScene;
27 class vtkVector2f;
28 
29 class VTKRENDERINGCONTEXT2D_EXPORT vtkAbstractContextItem : public vtkObject
30 {
31 public:
33  void PrintSelf(ostream& os, vtkIndent indent) override;
34 
40  virtual void Update();
41 
45  virtual bool Paint(vtkContext2D* painter);
46 
51  virtual bool PaintChildren(vtkContext2D* painter);
52 
57  virtual void ReleaseGraphicsResources();
58 
64 
71 
78 
84 
90 
95 
99  void ClearItems();
100 
107 
115 
122 
129  virtual vtkIdType StackUnder(vtkIdType child, vtkIdType above);
130 
134  virtual bool Hit(const vtkContextMouseEvent& mouse);
135 
141 
147  virtual bool MouseEnterEvent(const vtkContextMouseEvent& mouse);
148 
154  virtual bool MouseMoveEvent(const vtkContextMouseEvent& mouse);
155 
161  virtual bool MouseLeaveEvent(const vtkContextMouseEvent& mouse);
162 
168  virtual bool MouseButtonPressEvent(const vtkContextMouseEvent& mouse);
169 
175  virtual bool MouseButtonReleaseEvent(const vtkContextMouseEvent& mouse);
176 
182  virtual bool MouseDoubleClickEvent(const vtkContextMouseEvent& mouse);
183 
189  virtual bool MouseWheelEvent(const vtkContextMouseEvent& mouse, int delta);
190 
194  virtual bool KeyPressEvent(const vtkContextKeyEvent& key);
195 
199  virtual bool KeyReleaseEvent(const vtkContextKeyEvent& key);
200 
204  virtual void SetScene(vtkContextScene* scene);
205 
209  vtkContextScene* GetScene() { return this->Scene; }
210 
215  virtual void SetParent(vtkAbstractContextItem* parent);
216 
221  vtkAbstractContextItem* GetParent() { return this->Parent; }
222 
227 
232 
237 
242 
244 
247  virtual bool GetVisible()
248  {
249  vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning Visible of "
250  << this->Visible);
251  return this->Visible;
252  }
253 
255 
257 
261  vtkSetMacro(Visible, bool);
263 
265 
268  vtkGetMacro(Interactive, bool);
270 
272 
275  vtkSetMacro(Interactive, bool);
277 
278 protected:
281 
285  virtual void ReleaseGraphicsCache();
286 
291 
296 
303 
307  bool Visible;
308 
313 
314 private:
316  void operator=(const vtkAbstractContextItem&) = delete;
317 };
318 
319 VTK_ABI_NAMESPACE_END
320 #endif // vtkContextItem_h
base class for items that are part of a vtkContextScene.
virtual bool MouseDoubleClickEvent(const vtkContextMouseEvent &mouse)
Mouse button double click event.
virtual vtkVector2f MapToParent(const vtkVector2f &point)
Maps the point to the parent coordinate system.
vtkContextScene * Scene
Point to the scene the item is on - can be null.
bool RemoveItem(vtkIdType index)
Remove child item from this item.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkContextScenePrivate * Children
This structure provides a list of children, along with convenience functions to paint the children et...
virtual bool MouseMoveEvent(const vtkContextMouseEvent &mouse)
Mouse move event.
vtkAbstractContextItem * GetItem(vtkIdType index)
Get the item at the specified index.
virtual vtkAbstractContextItem * GetPickedItem(const vtkContextMouseEvent &mouse)
Return the item under the mouse.
virtual bool PaintChildren(vtkContext2D *painter)
Paint the children of the item, should be called whenever the children need to be rendered.
virtual bool MouseButtonReleaseEvent(const vtkContextMouseEvent &mouse)
Mouse button release event.
virtual vtkVector2f MapFromScene(const vtkVector2f &point)
Maps the point from the scene coordinate system.
bool Interactive
Store whether the item should respond to interactions (default is true).
vtkAbstractContextItem * Parent
Point to the parent item - can be null.
virtual bool KeyReleaseEvent(const vtkContextKeyEvent &key)
Key release event.
vtkIdType Lower(vtkIdType index)
Lowers the child to the bottom of the item's stack.
virtual void SetParent(vtkAbstractContextItem *parent)
Set the parent item.
virtual vtkIdType StackUnder(vtkIdType child, vtkIdType above)
Lowers the child under the above sibling.
vtkAbstractContextItem * GetParent()
Get the parent item.
virtual bool MouseEnterEvent(const vtkContextMouseEvent &mouse)
Mouse enter event.
virtual bool GetVisible()
Get the visibility of the item (should it be drawn).
~vtkAbstractContextItem() override
vtkIdType AddItem(vtkAbstractContextItem *item)
Add child items to this item.
virtual bool KeyPressEvent(const vtkContextKeyEvent &key)
Key press event.
virtual bool MouseLeaveEvent(const vtkContextMouseEvent &mouse)
Mouse leave event.
bool Visible
Store the visibility of the item (default is true).
virtual vtkVector2f MapFromParent(const vtkVector2f &point)
Maps the point from the parent coordinate system.
vtkIdType Raise(vtkIdType index)
Raises the child to the top of the item's stack.
virtual bool MouseWheelEvent(const vtkContextMouseEvent &mouse, int delta)
Mouse wheel event, positive delta indicates forward movement of the wheel.
virtual bool MouseButtonPressEvent(const vtkContextMouseEvent &mouse)
Mouse button down event Return true if the item holds the event, false if the event can be propagated...
virtual void ReleaseGraphicsCache()
Release cache entries created by this context item.
vtkContextScene * GetScene()
Get the vtkContextScene for the item, always set for an item in a scene.
virtual vtkVector2f MapToScene(const vtkVector2f &point)
Maps the point to the scene coordinate system.
virtual vtkIdType StackAbove(vtkIdType index, vtkIdType under)
Raises the child above the under sibling.
virtual void ReleaseGraphicsResources()
Release graphics resources hold by the item.
virtual bool Paint(vtkContext2D *painter)
Paint event for the item, called whenever the item needs to be drawn.
virtual void Update()
Perform any updates to the item that may be necessary before rendering.
vtkIdType GetItemIndex(vtkAbstractContextItem *item)
Get the index of the specified item in itemIndex.
vtkIdType GetNumberOfItems()
Get the number of child items.
void ClearItems()
Remove all child items from this item.
virtual void SetScene(vtkContextScene *scene)
Set the vtkContextScene for the item, always set for an item in a scene.
virtual bool Hit(const vtkContextMouseEvent &mouse)
Return true if the supplied x, y coordinate is inside the item.
bool RemoveItem(vtkAbstractContextItem *item)
Remove child item from this item.
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:69
data structure to represent key events.
data structure to represent mouse events.
Private implementation for scene/items.
Provides a 2D scene for vtkContextItem objects.
a simple class to control print indentation
Definition: vtkIndent.h:108
const char * GetClassName() const
Return the class name as a string.
abstract base class for most VTK objects
Definition: vtkObject.h:161
@ Scene
Definition: vtkX3D.h:154
@ point
Definition: vtkX3D.h:236
@ key
Definition: vtkX3D.h:257
@ index
Definition: vtkX3D.h:246
int vtkIdType
Definition: vtkType.h:315