ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
cloudViewer::visualization::gui::MenuBase Class Referenceabstract

#include <MenuBase.h>

Inheritance diagram for cloudViewer::visualization::gui::MenuBase:

Public Types

using ItemId = int
 

Public Member Functions

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

Static Public Attributes

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 26 of file MenuBase.h.

Member Typedef Documentation

◆ ItemId

Definition at line 28 of file MenuBase.h.

Constructor & Destructor Documentation

◆ MenuBase()

cloudViewer::visualization::gui::MenuBase::MenuBase ( )
inline

Definition at line 31 of file MenuBase.h.

◆ ~MenuBase()

virtual cloudViewer::visualization::gui::MenuBase::~MenuBase ( )
inlinevirtual

Definition at line 32 of file MenuBase.h.

Member Function Documentation

◆ AddItem()

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

◆ AddMenu()

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

◆ AddSeparator()

virtual void cloudViewer::visualization::gui::MenuBase::AddSeparator ( )
pure virtual

◆ CalcHeight()

virtual int cloudViewer::visualization::gui::MenuBase::CalcHeight ( const Theme theme) const
pure virtual

◆ CheckVisibilityChange()

virtual bool cloudViewer::visualization::gui::MenuBase::CheckVisibilityChange ( ) const
pure virtual

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

Implemented in cloudViewer::visualization::gui::MenuMacOS, cloudViewer::visualization::gui::MenuImgui, and cloudViewer::visualization::gui::Menu.

◆ Draw()

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

◆ DrawMenuBar()

virtual ItemId cloudViewer::visualization::gui::MenuBase::DrawMenuBar ( const DrawContext context,
bool  is_enabled 
)
pure virtual

◆ GetNativePointer()

virtual void* cloudViewer::visualization::gui::MenuBase::GetNativePointer ( )
pure virtual

◆ GetNumberOfItems()

virtual int cloudViewer::visualization::gui::MenuBase::GetNumberOfItems ( ) const
pure virtual

◆ InsertItem()

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

◆ InsertMenu()

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

◆ InsertSeparator()

virtual void cloudViewer::visualization::gui::MenuBase::InsertSeparator ( int  index)
pure virtual

◆ IsChecked()

virtual bool cloudViewer::visualization::gui::MenuBase::IsChecked ( ItemId  item_id) const
pure virtual

◆ IsEnabled()

virtual bool cloudViewer::visualization::gui::MenuBase::IsEnabled ( ItemId  item_id) const
pure virtual

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

Implemented in cloudViewer::visualization::gui::MenuMacOS, cloudViewer::visualization::gui::MenuImgui, and cloudViewer::visualization::gui::Menu.

◆ SetChecked()

virtual void cloudViewer::visualization::gui::MenuBase::SetChecked ( ItemId  item_id,
bool  checked 
)
pure virtual

◆ SetEnabled()

virtual void cloudViewer::visualization::gui::MenuBase::SetEnabled ( ItemId  item_id,
bool  enabled 
)
pure virtual

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

Implemented in cloudViewer::visualization::gui::MenuMacOS, cloudViewer::visualization::gui::MenuImgui, and cloudViewer::visualization::gui::Menu.

Member Data Documentation

◆ NO_ITEM

constexpr ItemId cloudViewer::visualization::gui::MenuBase::NO_ITEM = -1
staticconstexpr

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