ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
cloudViewer::visualization::gui::Menu Class Reference

#include <Menu.h>

Inheritance diagram for cloudViewer::visualization::gui::Menu:
Collaboration diagram for cloudViewer::visualization::gui::Menu:

Classes

struct  Impl
 

Public Member Functions

 Menu ()
 
virtual ~Menu ()
 
void AddItem (const char *name, ItemId item_id=NO_ITEM, KeyName key=KEY_NONE) override
 
void AddMenu (const char *name, std::shared_ptr< MenuBase > submenu) override
 
void AddSeparator () override
 
void InsertItem (int index, const char *name, ItemId item_id=NO_ITEM, KeyName key=KEY_NONE) override
 
void InsertMenu (int index, const char *name, std::shared_ptr< MenuBase > submenu) override
 
void InsertSeparator (int index) override
 
int GetNumberOfItems () const override
 
bool IsEnabled (ItemId item_id) const override
 
void SetEnabled (ItemId item_id, bool enabled) override
 
bool IsChecked (ItemId item_id) const override
 
void SetChecked (ItemId item_id, bool checked) override
 
int CalcHeight (const Theme &theme) const override
 
bool CheckVisibilityChange () const override
 Returns true if submenu visibility changed on last call to DrawMenuBar. More...
 
ItemId DrawMenuBar (const DrawContext &context, bool is_enabled) override
 
ItemId Draw (const DrawContext &context, const char *name, bool is_enabled) override
 
void * GetNativePointer () override
 
- Public Member Functions inherited from cloudViewer::visualization::gui::MenuBase
 MenuBase ()
 
virtual ~MenuBase ()
 

Additional Inherited Members

- Public Types inherited from cloudViewer::visualization::gui::MenuBase
using ItemId = int
 
- Static Public Attributes inherited from cloudViewer::visualization::gui::MenuBase
static constexpr ItemId NO_ITEM = -1
 

Detailed Description

The menu item action is handled by Window, rather than by registering a a callback function with (non-existent) Menu::SetOnClicked(). This is because on macOS the menubar is global over all application windows, so any callback would need to go find the data object corresponding to the active window.

Definition at line 24 of file Menu.h.

Constructor & Destructor Documentation

◆ Menu()

cloudViewer::visualization::gui::Menu::Menu ( )

◆ ~Menu()

cloudViewer::visualization::gui::Menu::~Menu ( )
virtual

Definition at line 29 of file Menu.cpp.

Member Function Documentation

◆ AddItem()

void cloudViewer::visualization::gui::Menu::AddItem ( const char *  name,
ItemId  item_id = NO_ITEM,
KeyName  key = KEY_NONE 
)
overridevirtual

Implements cloudViewer::visualization::gui::MenuBase.

Definition at line 31 of file Menu.cpp.

References name.

◆ AddMenu()

void cloudViewer::visualization::gui::Menu::AddMenu ( const char *  name,
std::shared_ptr< MenuBase submenu 
)
overridevirtual

Implements cloudViewer::visualization::gui::MenuBase.

Definition at line 37 of file Menu.cpp.

References name.

◆ AddSeparator()

void cloudViewer::visualization::gui::Menu::AddSeparator ( )
overridevirtual

◆ CalcHeight()

int cloudViewer::visualization::gui::Menu::CalcHeight ( const Theme theme) const
overridevirtual

Implements cloudViewer::visualization::gui::MenuBase.

Definition at line 88 of file Menu.cpp.

References theme.

◆ CheckVisibilityChange()

bool cloudViewer::visualization::gui::Menu::CheckVisibilityChange ( ) const
overridevirtual

Returns true if submenu visibility changed on last call to DrawMenuBar.

Implements cloudViewer::visualization::gui::MenuBase.

Definition at line 92 of file Menu.cpp.

◆ Draw()

MenuBase::ItemId cloudViewer::visualization::gui::Menu::Draw ( const DrawContext context,
const char *  name,
bool  is_enabled 
)
overridevirtual

Implements cloudViewer::visualization::gui::MenuBase.

Definition at line 101 of file Menu.cpp.

References context, and name.

◆ DrawMenuBar()

MenuBase::ItemId cloudViewer::visualization::gui::Menu::DrawMenuBar ( const DrawContext context,
bool  is_enabled 
)
overridevirtual

Implements cloudViewer::visualization::gui::MenuBase.

Definition at line 96 of file Menu.cpp.

References context.

◆ GetNativePointer()

void * cloudViewer::visualization::gui::Menu::GetNativePointer ( )
overridevirtual

Implements cloudViewer::visualization::gui::MenuBase.

Definition at line 107 of file Menu.cpp.

◆ GetNumberOfItems()

int cloudViewer::visualization::gui::Menu::GetNumberOfItems ( ) const
overridevirtual

Implements cloudViewer::visualization::gui::MenuBase.

Definition at line 70 of file Menu.cpp.

◆ InsertItem()

void cloudViewer::visualization::gui::Menu::InsertItem ( int  index,
const char *  name,
ItemId  item_id = NO_ITEM,
KeyName  key = KEY_NONE 
)
overridevirtual

Implements cloudViewer::visualization::gui::MenuBase.

Definition at line 49 of file Menu.cpp.

References name.

◆ InsertMenu()

void cloudViewer::visualization::gui::Menu::InsertMenu ( int  index,
const char *  name,
std::shared_ptr< MenuBase submenu 
)
overridevirtual

Implements cloudViewer::visualization::gui::MenuBase.

Definition at line 56 of file Menu.cpp.

References name.

◆ InsertSeparator()

void cloudViewer::visualization::gui::Menu::InsertSeparator ( int  index)
overridevirtual

Implements cloudViewer::visualization::gui::MenuBase.

Definition at line 68 of file Menu.cpp.

◆ IsChecked()

bool cloudViewer::visualization::gui::Menu::IsChecked ( ItemId  item_id) const
overridevirtual

Implements cloudViewer::visualization::gui::MenuBase.

Definition at line 80 of file Menu.cpp.

◆ IsEnabled()

bool cloudViewer::visualization::gui::Menu::IsEnabled ( ItemId  item_id) const
overridevirtual

Searches the menu hierarchy down from this menu to find the item and returns true if the item is enabled.

Implements cloudViewer::visualization::gui::MenuBase.

Definition at line 72 of file Menu.cpp.

◆ SetChecked()

void cloudViewer::visualization::gui::Menu::SetChecked ( ItemId  item_id,
bool  checked 
)
overridevirtual

Implements cloudViewer::visualization::gui::MenuBase.

Definition at line 84 of file Menu.cpp.

◆ SetEnabled()

void cloudViewer::visualization::gui::Menu::SetEnabled ( ItemId  item_id,
bool  enabled 
)
overridevirtual

Searches the menu hierarchy down from this menu to find the item and set it enabled according to enabled.

Implements cloudViewer::visualization::gui::MenuBase.

Definition at line 76 of file Menu.cpp.


The documentation for this class was generated from the following files: