class CCL::MenuBuilder

#include <menubuilder.h>

class MenuBuilder
{
public:
    // classes

    class ParamMenuItemObserver;

    // construction

    MenuBuilder (IMenu& menu, IUnknown* controller = nullptr);

    // methods

    IMenu* addSubMenu (StringRef title);

    IMenuItem* addSubMenuWithView (
        StringRef title,
        StringID formName,
        IAttributeList* arguments = nullptr
    );

    IMenuItem* addViewItem (StringID formName, IAttributeList* arguments = nullptr);
    void setItemIcon (IMenuItem* menuItem, StringID iconName);

    void setItemValueFromParam (
        IMenuItem* item,
        IParameter* param,
        bool closeOnChange
    );

    IMenu* operator -> ();
};