asciitorium
Version:
an ASCII CLUI framework
42 lines (41 loc) • 1.28 kB
TypeScript
import { Component, ComponentProps } from '../core/Component.js';
import { State } from '../core/State.js';
export type MobileButtonId = 'btn-up' | 'btn-down' | 'btn-left' | 'btn-right' | 'btn-a' | 'btn-b' | 'btn-x' | 'btn-y' | 'btn-menu';
export interface MobileControllerProps extends ComponentProps {
dpad?: {
up?: () => void;
down?: () => void;
left?: () => void;
right?: () => void;
};
buttons?: {
a?: () => void;
b?: () => void;
x?: () => void;
y?: () => void;
};
menu?: () => void;
enabled?: State<boolean> | boolean;
priority?: number;
}
export declare class MobileController extends Component {
readonly priority: number;
private disabledState?;
private staticDisabled;
private actionMap;
private registrationAttempted;
private timeoutId?;
private destroyed;
constructor(props: MobileControllerProps);
get disabled(): boolean;
/**
* Handle a button press
* @returns true if this controller handled the button, false otherwise
*/
handleButton(buttonId: MobileButtonId): boolean;
setParent(parent: Component): void;
private registerWithApp;
destroy(): void;
private unregisterWithApp;
draw(): string[][];
}