7 #include "../../../../lib/cstring.h" 15 namespace Standalone {
35 bool isDisabled ()
const {
return (flags & Flags::disabled) != 0; }
36 bool isSeparator ()
const {
return (flags & Flags::separator) != 0; }
37 bool isSubmenu ()
const {
return (flags & Flags::submenu) != 0; }
39 void disable () { flags |= Flags::disabled; }
40 void enable () { flags &= ~Flags::disabled; }
42 virtual Win32Menu* asMenu () {
return nullptr; }
48 using SubMenuPtr = std::shared_ptr<Win32Menu>;
49 using ItemPtr = std::shared_ptr<Win32MenuItem>;
50 using Items = std::vector<ItemPtr>;
55 size_t addSeparator ();
56 size_t addItem (ItemPtr&& item);
57 size_t addItem (
UTF8StringView title, char16_t key = 0, uint32_t
id = 0);
58 size_t addSubMenu (
const SubMenuPtr& subMenu);
60 ItemPtr itemAtIndex (
size_t index)
const;
62 using ValidateFunc = std::function<bool (Win32MenuItem& item)>;
63 void validateMenuItems (
const ValidateFunc& func);
65 operator HMENU ()
const {
return menu; }
66 Win32Menu* asMenu ()
override {
return this; }
Definition: customcontrols.cpp:8
a view on a null terminated UTF-8 String
Definition: cstring.h:172
holds an UTF8 encoded string and a platform representation of it
Definition: cstring.h:56