struct CCL::IMenu
Overview
Menu interface. More…
#include <imenu.h> struct IMenu: public CCL::IUnknown { // enums enum MenuAttribute; // fields static const String strSeparator = CCLSTR ("-"); static const String strLargeVariant = CCLSTR ("large"); static const String strFollowIndicator = CCLSTR ("..."); // methods virtual UIDRef CCL_API getMenuClass () const = 0; virtual IMenu*CCL_API createMenu () const = 0; virtual IUnknown*CCL_API getParentUnknown () const = 0; virtual tbool CCL_API getMenuAttribute (Variant& value, MenuAttribute id) const = 0; virtual tbool CCL_API setMenuAttribute (MenuAttribute id, VariantRef value) = 0; virtual int CCL_API countItems () const = 0; virtual IMenuItem*CCL_API getItem (int index) const = 0; virtual int CCL_API getItemIndex (const IMenuItem* item) const = 0; virtual void CCL_API setInsertPosition (int index) = 0; virtual IMenuItem*CCL_API addCommandItem ( StringRef title, CStringRef category = nullptr, CStringRef name = nullptr, ICommandHandler* handler = nullptr ) = 0; virtual IMenuItem*CCL_API findICommandItem ( CStringRef category = nullptr, CStringRef name = nullptr, tbool deep = false ) const = 0; virtual void CCL_API addSeparatorItem () = 0; virtual IMenuItem*CCL_API addMenu (IMenu* menu) = 0; virtual void CCL_API removeItem (IMenuItem* item) = 0; virtual void CCL_API removeAll () = 0; virtual tbool CCL_API loadItems ( UrlRef path, ICommandHandler* handler = nullptr, IMenuExtension* extension = nullptr, ITranslationTable* stringTable = nullptr ) = 0; virtual tbool CCL_API loadItems (const IAttributeList& a) = 0; virtual tbool CCL_API saveItems (IAttributeList& a) const = 0; virtual void CCL_API initWithHandler (ICommandHandler* handler) = 0; bool isNativeMenu () const; bool isExtendedMenu () const; IMenuItem* addCommandItem ( const CommandWithTitle& cwt, ICommandHandler* handler = nullptr, bool followIndicator = false ); };
Inherited Members
public: // methods virtual tresult CCL_API queryInterface (UIDRef iid, void** ptr) = 0; virtual unsigned int CCL_API retain () = 0; virtual unsigned int CCL_API release () = 0;
Detailed Documentation
Menu interface.
Fields
static const String strSeparator = CCLSTR ("-")
menu separator
static const String strLargeVariant = CCLSTR ("large")
large menu variant
static const String strFollowIndicator = CCLSTR ("...")
menu follow indicator
Methods
virtual UIDRef CCL_API getMenuClass () const = 0
Get menu implementation class.
virtual IMenu*CCL_API createMenu () const = 0
Create compatible menu instance.
Call addMenu() to use it as sub menu.
virtual IUnknown*CCL_API getParentUnknown () const = 0
Get parent of this menu (could be IMenu or IMenuBar).
virtual tbool CCL_API getMenuAttribute (Variant& value, MenuAttribute id) const = 0
Get menu attribute.
virtual tbool CCL_API setMenuAttribute (MenuAttribute id, VariantRef value) = 0
Set menu attribute.
virtual int CCL_API countItems () const = 0
Get number of menu items.
virtual IMenuItem*CCL_API getItem (int index) const = 0
Get menu item at index.
virtual int CCL_API getItemIndex (const IMenuItem* item) const = 0
Get index of given menu item.
virtual void CCL_API setInsertPosition (int index) = 0
Set position for adding new items (incremented automatically, set to -1 when done).
virtual IMenuItem*CCL_API addCommandItem ( StringRef title, CStringRef category = nullptr, CStringRef name = nullptr, ICommandHandler* handler = nullptr ) = 0
Add an item that fires a command.
virtual IMenuItem*CCL_API findICommandItem ( CStringRef category = nullptr, CStringRef name = nullptr, tbool deep = false ) const = 0
Find existing command item.
virtual void CCL_API addSeparatorItem () = 0
Add separator item.
Separators are managed internally to avoid consecutive occurances.
virtual IMenuItem*CCL_API addMenu (IMenu* menu) = 0
Add sub menu.
virtual void CCL_API removeItem (IMenuItem* item) = 0
Remove menu item.
virtual void CCL_API removeAll () = 0
Remove all menu items.
virtual tbool CCL_API loadItems ( UrlRef path, ICommandHandler* handler = nullptr, IMenuExtension* extension = nullptr, ITranslationTable* stringTable = nullptr ) = 0
Load menu items from XML description (optional: handler, extensions, translations).
virtual tbool CCL_API loadItems (const IAttributeList& a) = 0
Load menu items from simple attributes.
virtual tbool CCL_API saveItems (IAttributeList& a) const = 0
Save menu items to simple attributes.
virtual void CCL_API initWithHandler (ICommandHandler* handler) = 0
Assign command handler recursively after loadItems().