/**
* Creates a toolbar inside a given DOM node. The toolbar may contain icons,
* buttons and combo boxes.
*
* ### Event: mxEvent.SELECT
*
* Fires when an item was selected in the toolbar. The function
* property contains the function that was selected in .
*
* @class mxToolbar
* @extends {mxEventSource}
*/
declare class mxToolbar extends mxEventSource {
/**
* Constructs a toolbar in the specified container.
*
* @param {HTMLElement} container - DOM node that contains the toolbar.
*/
constructor(container: HTMLElement);
/**
* Reference to the DOM nodes that contains the toolbar.
*/
container: HTMLElement | null;
/**
* Specifies if events are handled. Default is true.
*/
enabled: boolean;
/**
* Specifies if requires a forced flag of true for resetting
* the current mode in the toolbar. Default is false. This is set to true
* if the toolbar item is double clicked to avoid a reset after a single
* use of the item.
*/
noReset: boolean;
/**
* Boolean indicating if the default mode should be the last selected
* switch mode or the first inserted switch mode. Default is true, that
* is the last selected switch mode is the default mode. The default mode
* is the mode to be selected after a reset of the toolbar. If this is
* false, then the default mode is the first inserted mode item regardless
* of what was last selected. Otherwise, the selected item after a reset is
* the previously selected item.
*/
updateDefaultMode: boolean;
/**
* Adds the given function as an image with the specified title and icon
* and returns the new image node.
*
* @param title - Optional string that is used as the tooltip.
* @param icon - Optional URL of the image to be used. If no URL is given, then a
* button is created.
* @param funct - Function to execute on a mouse click.
* @param pressedIcon - Optional URL of the pressed image. Default is a gray
* background.
* @param style - Optional style classname. Default is mxToolbarItem.
* @param factoryMethod - Optional factory method for popup menu, eg.
* `function(menu, evt, cell) { menu.addItem('Hello, World!'); }`
*/
addItem(
title: string | null,
icon?: string,
funct?: null | ((event: MouseEvent) => void),
pressedIcon?: string,
style?: string,
factoryMethod?: (menu: any, evt: Event, cell: mxCell) => void
): HTMLImageElement | HTMLButtonElement;
/**
* Adds and returns a new SELECT element using the given style. The element
* is placed inside a DIV with the mxToolbarComboContainer style classname.
*
* @param style - Optional style classname. Default is mxToolbarCombo.
*/
addCombo(style?: string): HTMLSelectElement;
/**
* Adds and returns a new SELECT element using the given title as the
* default element. The selection is reset to this element after each
* change.
*
* @param title - String that specifies the title of the default element.
* @param style - Optional style classname. Default is mxToolbarCombo.
*/
addActionCombo(title: string, style?: string): HTMLSelectElement;
/**
* Adds and returns a new OPTION element inside the given SELECT element.
* If the given value is a function then it is stored in the option's funct
* field.
*
* @param combo - SELECT element that will contain the new entry.
* @param title - String that specifies the title of the option.
* @param value - Specifies the value associated with this option.
*/
addOption(combo: HTMLSelectElement, title: string, value: string): HTMLOptionElement;
/**
* Adds a new selectable item to the toolbar. Only one switch mode item may
* be selected at a time. The currently selected item is the default item
* after a reset of the toolbar.
*/
addSwitchMode(
title: string | null,
icon: string,
funct: Function,
pressedIcon?: string,
style?: string
): HTMLImageElement;
/**
* Adds a new item to the toolbar. The selection is typically reset after
* the item has been consumed, for example by adding a new vertex to the
* graph. The reset is not carried out if the item is double clicked.
*
* The function argument uses the following signature: funct(evt, cell) where
* evt is the native mouse event and cell is the cell under the mouse.
*/
addMode(
title: string | null,
icon: string,
funct: Function,
pressedIcon?: string,
style?: string,
toggle?: boolean
): HTMLImageElement | HTMLButtonElement;
/**
* Resets the state of the previously selected mode and displays the given
* DOM node as selected. This function fires a select event with the given
* function as a parameter.
*/
selectMode(domNode: HTMLImageElement, funct: Function): void;
/**
* Selects the default mode and resets the state of the previously selected
* mode.
*/
resetMode(forced: boolean): void;
/**
* Adds the specifies image as a separator.
*
* Parameters:
*
* @param icon - URL of the separator icon.
*/
addSeparator(icon: string): HTMLImageElement;
/**
* Adds a break to the container.
*/
addBreak(): void;
/**
* Adds a horizontal line to the container.
*/
addLine(): void;
/**
* Removes the toolbar and all its associated resources.
*/
destroy(): void;
}