VTK  9.3.0
vtkVRMenuWidget.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
11 #ifndef vtkVRMenuWidget_h
12 #define vtkVRMenuWidget_h
13 
14 #include "vtkAbstractWidget.h"
15 #include "vtkDeprecation.h" // For VTK_DEPRECATED_IN_9_2_0
16 #include "vtkRenderingVRModule.h" // For export macro
17 #include <deque> // for ivar
18 
19 VTK_ABI_NAMESPACE_BEGIN
20 class vtkEventData;
22 
23 class VTKRENDERINGVR_EXPORT vtkVRMenuWidget : public vtkAbstractWidget
24 {
25 public:
29  static vtkVRMenuWidget* New();
30 
32 
36  void PrintSelf(ostream& os, vtkIndent indent) override;
38 
45 
49  void CreateDefaultRepresentation() override;
50 
52 
55  vtkGetMacro(WidgetState, int);
57 
58  // Manage the state of the widget
60  {
61  Start = 0,
62  Active
63  };
64 #if !defined(VTK_LEGACY_REMOVE)
65  VTK_DEPRECATED_IN_9_2_0("because leading underscore is reserved")
67 #endif
68 
70 
73  void PushFrontMenuItem(const char* name, const char* text, vtkCommand* cmd);
74  void RenameMenuItem(const char* name, const char* text);
75  void RemoveMenuItem(const char* name);
78 
79  void Show(vtkEventData* ed);
81 
82 protected:
84  ~vtkVRMenuWidget() override;
85 
87 
88  class InternalElement;
89  std::deque<InternalElement*> Menus;
90 
91  // These are the callbacks for this widget
95 
97  static void EventCallback(
98  vtkObject* object, unsigned long event, void* clientdata, void* calldata);
99 
103  static void Update(vtkAbstractWidget*);
104 
105 private:
106  vtkVRMenuWidget(const vtkVRMenuWidget&) = delete;
107  void operator=(const vtkVRMenuWidget&) = delete;
108 };
109 VTK_ABI_NAMESPACE_END
110 #endif
define the API for widget / widget representation
supports function callbacks
superclass for callback/observer methods
Definition: vtkCommand.h:384
a simple class to control print indentation
Definition: vtkIndent.h:38
abstract base class for most VTK objects
Definition: vtkObject.h:61
Widget representation for vtkVRMenuWidget Implementation of the popup panel representation for the vt...
3D widget to display a menu in VR
void CreateDefaultRepresentation() override
Create the default widget representation if one is not set.
static void Update(vtkAbstractWidget *)
Update callback to check for the hovered prop.
void SetRepresentation(vtkVRMenuRepresentation *rep)
Specify an instance of vtkWidgetRepresentation used to represent this widget in the scene.
static void MoveAction(vtkAbstractWidget *)
static void SelectMenuAction(vtkAbstractWidget *)
void RemoveMenuItem(const char *name)
Methods to add/remove items to the menu, called by the menu widget.
~vtkVRMenuWidget() override
vtkCallbackCommand * EventCommand
static vtkVRMenuWidget * New()
Instantiate the object.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard vtkObject methods.
std::deque< InternalElement * > Menus
void RenameMenuItem(const char *name, const char *text)
Methods to add/remove items to the menu, called by the menu widget.
void ShowSubMenu(vtkVRMenuWidget *)
void PushFrontMenuItem(const char *name, const char *text, vtkCommand *cmd)
Methods to add/remove items to the menu, called by the menu widget.
static void EventCallback(vtkObject *object, unsigned long event, void *clientdata, void *calldata)
void RemoveAllMenuItems()
Methods to add/remove items to the menu, called by the menu widget.
void Show(vtkEventData *ed)
static void StartMenuAction(vtkAbstractWidget *)
@ name
Definition: vtkX3D.h:219
#define VTK_DEPRECATED_IN_9_2_0(reason)