UNPKG

smoosic

Version:

<sub>[Github site](https://github.com/Smoosic/smoosic) | [source documentation](https://smoosic.github.io/Smoosic/release/docs/modules.html) | [change notes](https://aarondavidnewman.github.io/Smoosic/changes.html) | [application](https://smoosic.github.i

82 lines 2.8 kB
import { SuiScoreViewOperations } from '../../render/sui/scoreViewOperations'; import { BrowserEventSource } from '../eventSource'; import { SuiMenuManager } from '../menus/manager'; import { CompleteNotifier } from '../common'; /** * Button actions are one of the following. * - collapse... buttons are used to expand/collapse button groups in a ribbon. * all buttons with these classes have 'ctor' constructor, and perform actions based on * their bind method * - menu brings up a modal menu with class 'ctor' * - modal brings up a modal dialog with class 'ctor' * - collapseChildMenu brings up a modal menu, and is also collapsable. * * Buttons here refer to buttons on the top ribbon, buttons in dialogs are a dialog component */ export type ButtonAction = 'menu' | 'modal' | 'collapseChild' | 'collapseChildMenu' | 'collapseParent' | 'collapseGrandchild' | 'collapseMore'; /** * structure of a button object. * @param leftText - can be used in place of an icon for display * @param rightText - usually used to represent a keyboard shortcut * @param classes - to control button display * @param icon - icon for the button face * @param action - indicates to the button the action to perform * @param ctor - the constructor of the button object * @param group - the logical group, used to group the ribbon buttons * @param id - unique ID for DOM selector * @param dataElements - can be used to give buttons in a group basic parameters * @category SuiButton */ export interface ButtonDefinition { leftText: string; rightText: string; classes: string; icon: string; action: ButtonAction; ctor: string; group: string; id: string; hotKey?: string; dataElements?: { interval: string; direction: string; }; } /** * @category SuiButton */ export interface ButtonLabel { buttonId: string; buttonText: string; } /** * Buttons perform any variety of functions, so they need access to all the rendering logic * as well as all the event sources. * Sometimes they invoke menus which invoke modals, etc. * @category SuiButton */ export interface SuiButtonParams { ctor: string; buttonId: string; buttonElement: string; buttonData: ButtonDefinition; view: SuiScoreViewOperations; eventSource: BrowserEventSource; menus: SuiMenuManager; completeNotifier: CompleteNotifier; } /** * @category SuiButton */ export declare abstract class SuiButton { buttonId: string; buttonElement: string; view: SuiScoreViewOperations; buttonData: ButtonDefinition; eventSource: BrowserEventSource; menus: SuiMenuManager; completeNotifier: CompleteNotifier | null; constructor(params: SuiButtonParams); abstract bind(): void; } //# sourceMappingURL=button.d.ts.map