VTK  9.6.20260415
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
10
11#ifndef vtkVRMenuWidget_h
12#define vtkVRMenuWidget_h
13
14#include "vtkAbstractWidget.h"
15#include "vtkRenderingVRModule.h" // For export macro
16#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
17#include <deque> // for ivar
18
19VTK_ABI_NAMESPACE_BEGIN
20class vtkEventData;
22
23class VTKRENDERINGVR_EXPORT VTK_MARSHALAUTO vtkVRMenuWidget : public vtkAbstractWidget
24{
25public:
30
32
36 void PrintSelf(ostream& os, vtkIndent indent) override;
38
45
50
52
55 vtkGetMacro(WidgetState, int);
57
58 // Manage the state of the widget
60 {
61 Start = 0,
63 };
64
66
69 void PushFrontMenuItem(const char* name, const char* text, vtkCommand* cmd);
70 void RenameMenuItem(const char* name, const char* text);
71 void RemoveMenuItem(const char* name);
74
75 void Show(vtkEventData* ed);
77
78protected:
80 ~vtkVRMenuWidget() override;
81
83
84 class InternalElement;
85 std::deque<InternalElement*> Menus;
86
87 // These are the callbacks for this widget
91
93 static void EventCallback(
94 vtkObject* object, unsigned long event, void* clientdata, void* calldata);
95
100
101private:
102 vtkVRMenuWidget(const vtkVRMenuWidget&) = delete;
103 void operator=(const vtkVRMenuWidget&) = delete;
104};
105VTK_ABI_NAMESPACE_END
106#endif
supports function callbacks
superclass for callback/observer methods
Definition vtkCommand.h:385
a simple class to control print indentation
Definition vtkIndent.h:108
Widget representation for vtkVRMenuWidget Implementation of the popup panel representation for the vt...
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
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.
static vtkVRMenuWidget * New()
Instantiate the object.
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 *)
#define VTK_MARSHALAUTO