/** * @license * Copyright 2020 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import type { ToolboxInfo } from '../utils/toolbox.js'; import type { WorkspaceSvg } from '../workspace_svg.js'; import type { IFlyout } from './i_flyout.js'; import type { IFocusableTree } from './i_focusable_tree.js'; import type { IRegistrable } from './i_registrable.js'; import type { IToolboxItem } from './i_toolbox_item.js'; /** * Interface for a toolbox. */ export interface IToolbox extends IRegistrable, IFocusableTree { /** Initializes the toolbox. */ init(): void; /** * Fills the toolbox with new toolbox items and removes any old contents. * * @param toolboxDef Object holding information for creating a toolbox. */ render(toolboxDef: ToolboxInfo): void; /** * Gets the width of the toolbox. * * @returns The width of the toolbox. */ getWidth(): number; /** * Gets the height of the toolbox. * * @returns The height of the toolbox. */ getHeight(): number; /** * Gets the toolbox flyout. * * @returns The toolbox flyout. */ getFlyout(): IFlyout | null; /** * Gets the workspace for the toolbox. * * @returns The parent workspace for the toolbox. */ getWorkspace(): WorkspaceSvg; /** * Gets whether or not the toolbox is horizontal. * * @returns True if the toolbox is horizontal, false if the toolbox is * vertical. */ isHorizontal(): boolean; /** * Positions the toolbox based on whether it is a horizontal toolbox and * whether the workspace is in rtl. */ position(): void; /** Handles resizing the toolbox when a toolbox item resizes. */ handleToolboxItemResize(): void; /** Unhighlights any previously selected item. */ clearSelection(): void; /** * Updates the category colours and background colour of selected categories. */ refreshTheme(): void; /** * Updates the flyout's content without closing it. Should be used in * response to a change in one of the dynamic categories, such as variables or * procedures. */ refreshSelection(): void; /** * Sets the visibility of the toolbox. * * @param isVisible True if toolbox should be visible. */ setVisible(isVisible: boolean): void; /** * Selects the toolbox item by its position in the list of toolbox items. * * @param position The position of the item to select. */ selectItemByPosition(position: number): void; /** * Gets the selected item. * * @returns The selected item, or null if no item is currently selected. */ getSelectedItem(): IToolboxItem | null; /** * Sets the selected item. * * @param item The toolbox item to select, or null to remove the current * selection. */ setSelectedItem(item: IToolboxItem | null): void; /** Disposes of this toolbox. */ dispose(): void; } //# sourceMappingURL=i_toolbox.d.ts.map