import DropDownMenu = require("./DropDownMenu"); import { _WidgetBaseConstructor } from "./_WidgetBase"; /** * A context menu you can assign to multiple elements */ interface Menu extends DropDownMenu { /** * Array of dom node ids of nodes to attach to. * Fill this with nodeIds upon widget creation and it becomes context menu for those nodes. */ targetNodeIds: string[]; /** * CSS expression to apply this Menu to descendants of targetNodeIds, rather than to * the nodes specified by targetNodeIds themselves. Useful for applying a Menu to * a range of rows in a table, tree, etc. * * The application must require() an appropriate level of dojo/query to handle the selector. */ selector: string; /** * If true, right clicking anywhere on the window will cause this context menu to open. * If false, must specify targetNodeIds. */ contextMenuForWindow: boolean; /** * If true, menu will open on left click instead of right click, similar to a file menu. */ leftClickToOpen: boolean; /** * When this menu closes, re-focus the element which had focus before it was opened. */ refocus: boolean; /** * Attach menu to given node */ bindDomNode(node: string | Node): void; /** * Detach menu from given node */ unBindDomNode(nodeName: string | Node): void; } interface MenuConstructor extends _WidgetBaseConstructor