struct CCL::IContextMenu

Overview

#include <icontextmenu.h>

struct IContextMenu: public CCL::IUnknown
{
    // methods

    virtual tresult CCL_API addHeaderItem (StringRef title) = 0;

    virtual tresult CCL_API addCommandItem (
        StringRef title,
        CStringRef category,
        CStringRef name,
        ICommandHandler* handler
    ) = 0;

    virtual tresult CCL_API removeCommandItem (CStringRef category, CStringRef name) = 0;
    virtual tresult CCL_API addSeparatorItem () = 0;
    virtual tbool CCL_API hasCommandHandler (ICommandHandler* handler) const = 0;
    virtual tbool CCL_API hasCommandItem (CStringRef category, CStringRef name) const = 0;
    virtual IContextMenu*CCL_API addSubContextMenu (StringRef title) = 0;
    virtual tresult CCL_API setInitialSubMenu (StringRef path) = 0;
    virtual void CCL_API setContextID (StringID id) = 0;
    virtual StringID CCL_API getContextID () const = 0;
    virtual void CCL_API setFocusItem (IUnknown* item) = 0;
    virtual IUnknown*CCL_API getFocusItem () const = 0;

    IContextMenu tresult addCommandItem (
        const CommandWithTitle& cwt,
        ICommandHandler* handler,
        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

Methods

virtual tresult CCL_API addHeaderItem (StringRef title) = 0

Add a header.

virtual tresult CCL_API addCommandItem (
    StringRef title,
    CStringRef category,
    CStringRef name,
    ICommandHandler* handler
) = 0

Add an item that fires a command.

virtual tresult CCL_API removeCommandItem (CStringRef category, CStringRef name) = 0

Remove an item.

virtual tresult CCL_API addSeparatorItem () = 0

Add a separator.

Separators are managed internally to avoid consecutive occurances.

virtual tbool CCL_API hasCommandHandler (ICommandHandler* handler) const = 0

Check if command handler is already in context menu.

virtual tbool CCL_API hasCommandItem (CStringRef category, CStringRef name) const = 0

Check if command is already in context menu.

virtual IContextMenu*CCL_API addSubContextMenu (StringRef title) = 0

Add sub menu.

Caller does not own the menu.

virtual tresult CCL_API setInitialSubMenu (StringRef path) = 0

Specify a sub menu that should be opened initially (path of IMenu::kMenuName, separated by ‘/’).

virtual void CCL_API setContextID (StringID id) = 0

Set context ID.

This ID can help a component to distinguish different views.

virtual StringID CCL_API getContextID () const = 0

Get context ID.

virtual void CCL_API setFocusItem (IUnknown* item) = 0

Set focus item (item that was mouse-clicked).

virtual IUnknown*CCL_API getFocusItem () const = 0

Get focus item.