hswidget
Version:
Helpful Scripts UI widgets
45 lines (44 loc) • 1.71 kB
TypeScript
import m from "mithril";
import { EnabledWidget, EnabledWidgetAtrrs, Vnode } from './Widget';
import { ViewResult } from './Widget';
import { Stateful } from "./support/State";
export interface OptionClick {
(buttonIndex: number, newValue: number, states: number[]): void;
}
export interface OptionButtonsAttrs extends EnabledWidgetAtrrs {
onclick: OptionClick;
initial?: number | number[];
transition?: Transitions;
remoteSet?: (r: RemoteSet) => void;
}
export interface RemoteSet {
(buttonIndex: number, newValue: number): void;
}
export interface Transitions {
(buttonIndex: number, newValue: number, states: Stateful[]): number[];
}
export declare class OptionButtons extends EnabledWidget {
static transitions: {
[name: string]: Transitions;
};
stateAccess: Stateful[];
setAccessFn: (stateful: Stateful, buttonIndex: number) => void;
onclick: OptionClick;
transition: Transitions;
setButton(buttonIndex: number, newValue: number): void;
oninit(node: Vnode<OptionButtonsAttrs, this>): void;
view(node: Vnode<OptionButtonsAttrs, this>): ViewResult;
}
export interface RadioButtonsAttrs extends OptionButtonsAttrs {
}
export declare class RadioButtons extends OptionButtons {
oninit(node: Vnode<RadioButtonsAttrs, this>): void;
view(node: Vnode<RadioButtonsAttrs, this>): string | number | boolean | void | m.Vnode<any, any> | m.ChildArray;
}
export interface IconbuttonsAttrs extends EnabledWidgetAtrrs {
onclick: (buttonIndex: number, newValue: number, states: number[]) => void;
radioMode: boolean;
}
export declare class IconButtons extends EnabledWidget {
view(node: Vnode<IconbuttonsAttrs, this>): ViewResult;
}