/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "nsISupports.idl" interface nsIDOMHTMLMenuItemElement; /** * An interface used to construct native toolbar or context menus from */ [scriptable, uuid(12724737-f7db-43b4-94ab-708a7b86e115)] interface nsIMenuBuilder : nsISupports { /** * Create the top level menu or a submenu. The implementation should create * a new context for this menu, so all subsequent methods will add new items * to this newly created menu. */ void openContainer(in DOMString aLabel); /** * Add a new menu item. All menu item details can be obtained from * the element. This method is not called for hidden elements or elements * with no or empty label. The icon should be loaded only if aCanLoadIcon * is true. */ void addItemFor(in nsIDOMHTMLMenuItemElement aElement, in boolean aCanLoadIcon); /** * Create a new separator. */ void addSeparator(); /** * Remove last added separator. * Sometimes it's needed to remove last added separator, otherwise it's not * possible to implement the postprocessing in one pass. * See http://www.whatwg.org/specs/web-apps/current-work/multipage/interactive-elements.html#building-menus-and-toolbars */ void undoAddSeparator(); /** * Set the context to the parent menu. */ void closeContainer(); };