Harlinn.Windows 0.1
Loading...
Searching...
No Matches
Harlinn::Windows::Menu Class Reference

#include <HWMenu.h>

Inheritance diagram for Harlinn::Windows::Menu:
[legend]
Collaboration diagram for Harlinn::Windows::Menu:
[legend]

Public Member Functions

 Menu (MenuHandle menuHandle)
 
virtual ~Menu ()
 
 Menu (const Menu &other)=delete
 
 Menu (Menu &&other)=delete
 
Menuoperator= (const Menu &other)=delete
 
Menuoperator= (Menu &&other)=delete
 
constexpr const MenuHandleHandle () const noexcept
 
constexpr const MenuItemsItems () const noexcept
 
constexpr MenuItemsItems () noexcept
 
const MenuItemItem (int position) const noexcept
 
MenuItemItem (int position) noexcept
 
MenuAddStyle (DWORD style)
 
void Add (std::unique_ptr< MenuItem > &&menuItem)
 
void Remove (const MenuItem *menuItem)
 
TextMenuItemAddMenuItem (const wchar_t *text)
 
template<typename Func >
requires std::is_invocable_v<Func, MenuItem*>
TextMenuItemAddMenuItem (const wchar_t *text, Func &&func)
 
TextMenuItemAddMenuItem (const WideString &text)
 
SeparatorMenuItemAddSeparator ()
 
SubMenuItemAddSubMenu (const wchar_t *text)
 
SubMenuItemAddSubMenu (const WideString &text)
 

Public Attributes

boost::signals2::signal< void(Message &message)> OnMenuCommand
 
boost::signals2::signal< void(Message &message)> OnInitMenu
 
boost::signals2::signal< void(Message &message)> OnInitMenuPopup
 

Protected Member Functions

virtual HW_EXPORT void DoOnInitMenu (Message &message)
 
virtual HW_EXPORT void DoOnInitMenuPopup (Message &message)
 
virtual HW_EXPORT void DoOnMenuCommand (Message &message)
 

Static Private Member Functions

static HW_EXPORT void AddToMenuMap (HMENU hMenu, Menu *menu)
 
static HW_EXPORT void RemoveFromMenuMap (HMENU hMenu)
 
static HW_EXPORT MenuGetFromMenuMap (HMENU hMenu)
 

Private Attributes

MenuHandle handle_
 
MenuItems items_
 

Static Private Attributes

static std::unordered_map< HMENU, Menu * > menuMap_
 

Friends

class MenuItems
 
class Control
 

Constructor & Destructor Documentation

◆ Menu() [1/3]

Harlinn::Windows::Menu::Menu ( MenuHandle menuHandle)
inline

◆ ~Menu()

virtual Harlinn::Windows::Menu::~Menu ( )
inlinevirtual

◆ Menu() [2/3]

Harlinn::Windows::Menu::Menu ( const Menu & other)
delete

◆ Menu() [3/3]

Harlinn::Windows::Menu::Menu ( Menu && other)
delete

Member Function Documentation

◆ Add()

void Harlinn::Windows::Menu::Add ( std::unique_ptr< MenuItem > && menuItem)
inline

◆ AddMenuItem() [1/3]

TextMenuItem * Harlinn::Windows::Menu::AddMenuItem ( const wchar_t * text)
inline

◆ AddMenuItem() [2/3]

template<typename Func >
requires std::is_invocable_v<Func, MenuItem*>
TextMenuItem * Harlinn::Windows::Menu::AddMenuItem ( const wchar_t * text,
Func && func )
inline

◆ AddMenuItem() [3/3]

TextMenuItem * Harlinn::Windows::Menu::AddMenuItem ( const WideString & text)
inline

◆ AddSeparator()

SeparatorMenuItem * Harlinn::Windows::Menu::AddSeparator ( )
inline

◆ AddStyle()

Menu & Harlinn::Windows::Menu::AddStyle ( DWORD style)
inline

◆ AddSubMenu() [1/2]

SubMenuItem * Harlinn::Windows::Menu::AddSubMenu ( const wchar_t * text)
inline

◆ AddSubMenu() [2/2]

SubMenuItem * Harlinn::Windows::Menu::AddSubMenu ( const WideString & text)
inline

◆ AddToMenuMap()

void Harlinn::Windows::Menu::AddToMenuMap ( HMENU hMenu,
Menu * menu )
staticprivate

◆ DoOnInitMenu()

void Harlinn::Windows::Menu::DoOnInitMenu ( Message & message)
protectedvirtual

◆ DoOnInitMenuPopup()

void Harlinn::Windows::Menu::DoOnInitMenuPopup ( Message & message)
protectedvirtual

◆ DoOnMenuCommand()

void Harlinn::Windows::Menu::DoOnMenuCommand ( Message & message)
protectedvirtual

◆ GetFromMenuMap()

Menu * Harlinn::Windows::Menu::GetFromMenuMap ( HMENU hMenu)
staticprivate

◆ Handle()

const MenuHandle & Harlinn::Windows::Menu::Handle ( ) const
inlineconstexprnoexcept

◆ Item() [1/2]

const MenuItem * Harlinn::Windows::Menu::Item ( int position) const
inlinenoexcept

◆ Item() [2/2]

MenuItem * Harlinn::Windows::Menu::Item ( int position)
inlinenoexcept

◆ Items() [1/2]

const MenuItems & Harlinn::Windows::Menu::Items ( ) const
inlineconstexprnoexcept

◆ Items() [2/2]

MenuItems & Harlinn::Windows::Menu::Items ( )
inlineconstexprnoexcept

◆ operator=() [1/2]

Menu & Harlinn::Windows::Menu::operator= ( const Menu & other)
delete

◆ operator=() [2/2]

Menu & Harlinn::Windows::Menu::operator= ( Menu && other)
delete

◆ Remove()

void Harlinn::Windows::Menu::Remove ( const MenuItem * menuItem)
inline

◆ RemoveFromMenuMap()

void Harlinn::Windows::Menu::RemoveFromMenuMap ( HMENU hMenu)
staticprivate

Friends And Related Symbol Documentation

◆ Control

friend class Control
friend

◆ MenuItems

friend class MenuItems
friend

Member Data Documentation

◆ handle_

MenuHandle Harlinn::Windows::Menu::handle_
private

◆ items_

MenuItems Harlinn::Windows::Menu::items_
private

◆ menuMap_

std::unordered_map< HMENU, Menu * > Harlinn::Windows::Menu::menuMap_
staticprivate

◆ OnInitMenu

boost::signals2::signal<void( Message& message )> Harlinn::Windows::Menu::OnInitMenu

◆ OnInitMenuPopup

boost::signals2::signal<void( Message& message )> Harlinn::Windows::Menu::OnInitMenuPopup

◆ OnMenuCommand

boost::signals2::signal<void( Message& message )> Harlinn::Windows::Menu::OnMenuCommand

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