ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
Menu.h
Go to the documentation of this file.
1
// ----------------------------------------------------------------------------
2
// - CloudViewer: www.cloudViewer.org -
3
// ----------------------------------------------------------------------------
4
// Copyright (c) 2018-2024 www.cloudViewer.org
5
// SPDX-License-Identifier: MIT
6
// ----------------------------------------------------------------------------
7
8
#pragma once
9
10
#include "
visualization/gui/MenuBase.h
"
11
12
namespace
cloudViewer
{
13
namespace
visualization {
14
namespace
gui {
15
16
struct
DrawContext;
17
struct
Theme;
18
24
class
Menu
:
public
MenuBase
{
25
friend
class
Application
;
26
27
public
:
28
Menu
();
29
virtual
~Menu
();
30
31
void
AddItem
(
const
char
*
name
,
32
ItemId
item_id =
NO_ITEM
,
33
KeyName
key =
KEY_NONE
)
override
;
34
void
AddMenu
(
const
char
*
name
, std::shared_ptr<MenuBase> submenu)
override
;
35
void
AddSeparator
()
override
;
36
37
void
InsertItem
(
int
index,
38
const
char
*
name
,
39
ItemId
item_id =
NO_ITEM
,
40
KeyName
key =
KEY_NONE
)
override
;
41
void
InsertMenu
(
int
index,
42
const
char
*
name
,
43
std::shared_ptr<MenuBase> submenu)
override
;
44
void
InsertSeparator
(
int
index)
override
;
45
46
int
GetNumberOfItems
()
const override
;
47
50
bool
IsEnabled
(
ItemId
item_id)
const override
;
53
void
SetEnabled
(
ItemId
item_id,
bool
enabled)
override
;
54
55
bool
IsChecked
(
ItemId
item_id)
const override
;
56
void
SetChecked
(
ItemId
item_id,
bool
checked)
override
;
57
58
int
CalcHeight
(
const
Theme
&
theme
)
const override
;
59
61
bool
CheckVisibilityChange
()
const override
;
62
63
ItemId
DrawMenuBar
(
const
DrawContext
&
context
,
bool
is_enabled)
override
;
64
ItemId
Draw
(
const
DrawContext
&
context
,
65
const
char
*
name
,
66
bool
is_enabled)
override
;
67
68
void
*
GetNativePointer
()
override
;
// nullptr if not using native menus
69
70
private
:
71
struct
Impl
;
72
std::unique_ptr<Impl> impl_;
73
};
74
75
}
// namespace gui
76
}
// namespace visualization
77
}
// namespace cloudViewer
name
std::string name
Definition:
FileIOFactory.cpp:129
MenuBase.h
cloudViewer::visualization::gui::Application
Definition:
Application.h:39
cloudViewer::visualization::gui::MenuBase
Definition:
MenuBase.h:26
cloudViewer::visualization::gui::MenuBase::NO_ITEM
static constexpr ItemId NO_ITEM
Definition:
MenuBase.h:29
cloudViewer::visualization::gui::MenuBase::ItemId
int ItemId
Definition:
MenuBase.h:28
cloudViewer::visualization::gui::Menu
Definition:
Menu.h:24
cloudViewer::visualization::gui::Menu::IsEnabled
bool IsEnabled(ItemId item_id) const override
Definition:
Menu.cpp:72
cloudViewer::visualization::gui::Menu::InsertItem
void InsertItem(int index, const char *name, ItemId item_id=NO_ITEM, KeyName key=KEY_NONE) override
Definition:
Menu.cpp:49
cloudViewer::visualization::gui::Menu::DrawMenuBar
ItemId DrawMenuBar(const DrawContext &context, bool is_enabled) override
Definition:
Menu.cpp:96
cloudViewer::visualization::gui::Menu::IsChecked
bool IsChecked(ItemId item_id) const override
Definition:
Menu.cpp:80
cloudViewer::visualization::gui::Menu::GetNumberOfItems
int GetNumberOfItems() const override
Definition:
Menu.cpp:70
cloudViewer::visualization::gui::Menu::AddMenu
void AddMenu(const char *name, std::shared_ptr< MenuBase > submenu) override
Definition:
Menu.cpp:37
cloudViewer::visualization::gui::Menu::SetEnabled
void SetEnabled(ItemId item_id, bool enabled) override
Definition:
Menu.cpp:76
cloudViewer::visualization::gui::Menu::InsertSeparator
void InsertSeparator(int index) override
Definition:
Menu.cpp:68
cloudViewer::visualization::gui::Menu::~Menu
virtual ~Menu()
Definition:
Menu.cpp:29
cloudViewer::visualization::gui::Menu::CalcHeight
int CalcHeight(const Theme &theme) const override
Definition:
Menu.cpp:88
cloudViewer::visualization::gui::Menu::GetNativePointer
void * GetNativePointer() override
Definition:
Menu.cpp:107
cloudViewer::visualization::gui::Menu::CheckVisibilityChange
bool CheckVisibilityChange() const override
Returns true if submenu visibility changed on last call to DrawMenuBar.
Definition:
Menu.cpp:92
cloudViewer::visualization::gui::Menu::AddItem
void AddItem(const char *name, ItemId item_id=NO_ITEM, KeyName key=KEY_NONE) override
Definition:
Menu.cpp:31
cloudViewer::visualization::gui::Menu::AddSeparator
void AddSeparator() override
Definition:
Menu.cpp:47
cloudViewer::visualization::gui::Menu::SetChecked
void SetChecked(ItemId item_id, bool checked) override
Definition:
Menu.cpp:84
cloudViewer::visualization::gui::Menu::InsertMenu
void InsertMenu(int index, const char *name, std::shared_ptr< MenuBase > submenu) override
Definition:
Menu.cpp:56
cloudViewer::visualization::gui::Menu::Menu
Menu()
Definition:
Menu.cpp:24
cloudViewer::visualization::gui::Menu::Draw
ItemId Draw(const DrawContext &context, const char *name, bool is_enabled) override
Definition:
Menu.cpp:101
context
ImGuiContext * context
Definition:
Window.cpp:76
theme
const Theme * theme
Definition:
Window.cpp:74
cloudViewer::visualization::gui::KeyName
KeyName
Definition:
Events.h:96
cloudViewer::visualization::gui::KEY_NONE
@ KEY_NONE
Definition:
Events.h:97
cloudViewer
Generic file read and write utility for python interface.
Definition:
AutoSegmentationTools.h:16
cloudViewer::visualization::gui::DrawContext
Definition:
Widget.h:37
cloudViewer::visualization::gui::Menu::Impl
Definition:
Menu.cpp:19
cloudViewer::visualization::gui::Theme
Definition:
Theme.h:20
libs
cloudViewer
visualization
gui
Menu.h
Generated on Wed Jan 28 2026 09:00:56 for ACloudViewer by
1.9.1