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
 
Menu & operator= (const Menu &other)=delete
 
Menu & operator= (Menu &&other)=delete
 
constexpr const MenuHandle & Handle () const noexcept
 
constexpr const MenuItems & Items () const noexcept
 
constexpr MenuItems & Items () noexcept
 
const MenuItem * Item (int position) const noexcept
 
MenuItem * Item (int position) noexcept
 
Menu & AddStyle (DWORD style)
 
void Add (std::unique_ptr< MenuItem > &&menuItem)
 
void Remove (const MenuItem *menuItem)
 
TextMenuItem * AddMenuItem (const wchar_t *text)
 
template<typename Func >
requires std::is_invocable_v<Func, MenuItem*>
TextMenuItem * AddMenuItem (const wchar_t *text, Func &&func)
 
TextMenuItem * AddMenuItem (const WideString &text)
 
SeparatorMenuItem * AddSeparator ()
 
SubMenuItem * AddSubMenu (const wchar_t *text)
 
SubMenuItem * AddSubMenu (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 Menu * GetFromMenuMap (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: