TeaWeb/shared/js/ui/frames/menu-bar/index.ts

44 lines
No EOL
928 B
TypeScript

import {ClientIcon} from "svg-sprites/client-icons";
import {RemoteIconInfo} from "tc-shared/file/Icons";
export type MenuBarEntrySeparator = {
uniqueId?: string,
type: "separator"
};
export type MenuBarEntryNormal = {
uniqueId?: string,
type: "normal",
label: string,
disabled?: boolean,
visible?: boolean,
icon?: ClientIcon | RemoteIconInfo,
click?: () => void,
children?: MenuBarEntry[]
};
export type MenuBarEntry = MenuBarEntrySeparator | MenuBarEntryNormal;
export interface MenuBarDriver {
/**
* Separators on top level might not be rendered.
* @param entries
*/
setEntries(entries: MenuBarEntry[]);
/**
* Removes the menu bar
*/
clearEntries();
}
let driver: MenuBarDriver;
export function getMenuBarDriver() : MenuBarDriver {
return driver;
}
export function setMenuBarDriver(driver_: MenuBarDriver) {
driver = driver_;
}