UNPKG

@bitblit/asyncglk

Version:
210 lines (209 loc) 11.3 kB
import { Blorb } from '../blorb/blorb.js'; import { CachingDialogWrapper } from '../dialog/common/cache.js'; import type { GlkOte } from '../glkote/common/glkote.js'; import * as Const from './constants.js'; import { FileRef } from './filerefs.js'; import * as Interface from './interface.js'; import type { GlkArray, GlkApiOptions, GlkByteArray, GlkSchannel, GlkWordArray, RefBoxArg, RefStructArg, RefStructValue } from './interface.js'; import { DidNotReturn } from './interface.js'; import { type Stream } from './streams.js'; import { type Window } from './windows.js'; export declare class RefBox implements Interface.RefBox { private value; get_value(): Interface.RefStructValue; set_value(val: RefStructValue): void; } export declare class RefStruct implements Interface.RefStruct { private fields; get_field(index: number): RefStructValue; get_fields(): RefStructValue[]; push_field(val: RefStructValue): void; set_field(index: number, val: RefStructValue): void; } export declare class AsyncGlk implements Interface.GlkApi { private Blorb?; private Dialog; private GiDispa?; private GlkOte; private VM; private before_select_hook; private gestalt_hook; private disprock_counter; private do_autosave; private exited; private first_fref; private gen; private metrics; private partial_inputs?; private selectref?; private special?; private special_data?; private current_stream; private first_stream; private stylehints; private support; private timer; version: string; private first_window; private root_window; private windows_changed; init(options: GlkApiOptions): void; call_may_not_return(id: number): boolean; fatal_error(msg: string): void; getlibrary(class_name: string): Blorb | Interface.GiDispa | Interface.GlkVM | GlkOte | CachingDialogWrapper | null; inited(): boolean; restore_allstate(_state: any): void; save_allstate(): void; update(): void; Const: typeof Const; DidNotReturn: { dummy: string; }; RefBox: typeof RefBox; RefStruct: typeof RefStruct; byte_array_to_string(arr: GlkByteArray): string; glk_put_jstring(val: string, _all_bytes?: boolean): void; glk_put_jstring_stream(str: Stream, val: string, _all_bytes?: boolean): void; uni_array_to_string(arr: GlkWordArray): string; glk_buffer_canon_decompose_uni(buf: GlkWordArray, initlen: number): number; glk_buffer_canon_normalize_uni(buf: GlkWordArray, initlen: number): number; glk_buffer_to_lower_case_uni(buf: GlkWordArray, initlen: number): number; glk_buffer_to_title_case_uni(buf: GlkWordArray, initlen: number, lowerrest: number): number; glk_buffer_to_upper_case_uni(buf: GlkWordArray, initlen: number): number; glk_cancel_char_event(win: Window): void; glk_cancel_hyperlink_event(win: Window): void; glk_cancel_line_event(win: Window, ev?: RefStructArg): void; glk_cancel_mouse_event(win: Window): void; glk_char_to_lower(val: number): number; glk_char_to_upper(val: number): number; glk_current_simple_time(factor: number): number; glk_current_time(struct: RefStruct): void; glk_date_to_simple_time_local(struct: RefStruct, factor: number): number; glk_date_to_simple_time_utc(struct: RefStruct, factor: number): number; glk_date_to_time_local(datestruct: RefStruct, timestruct: RefStruct): void; glk_date_to_time_utc(datestruct: RefStruct, timestruct: RefStruct): void; glk_exit(): typeof DidNotReturn; glk_fileref_create_by_name(usage: number, filename: string, rock: number): FileRef; glk_fileref_create_by_prompt(usage: number, fmode: number, rock: number): typeof DidNotReturn; glk_fileref_create_from_fileref(usage: number, oldfref: FileRef, rock: number): FileRef; glk_fileref_create_temp(usage: number, rock: number): FileRef; glk_fileref_delete_file(fref: FileRef): void; glk_fileref_destroy(fref: FileRef): void; glk_fileref_does_file_exist(fref: FileRef): boolean; glk_fileref_get_rock(fref: FileRef): number; glk_fileref_iterate(fref?: FileRef, rockbox?: RefBoxArg): FileRef | null; glk_gestalt(sel: number, val: number): number; glk_gestalt_ext(sel: number, val: number, arr: GlkArray | null): number; glk_get_buffer_stream(str: Stream, buf: GlkByteArray): number; glk_get_buffer_stream_uni(str: Stream, buf: GlkWordArray): number; glk_get_char_stream(str: Stream): number; glk_get_char_stream_uni(str: Stream): number; glk_get_line_stream(str: Stream, buf: GlkByteArray): number; glk_get_line_stream_uni(str: Stream, buf: GlkWordArray): number; glk_image_draw(win: Window, imgid: number, val1: number, val2: number): number; glk_image_draw_scaled(win: Window, imgid: number, val1: number, val2: number, width: number, height: number): number; glk_image_get_info(imgid: number, width?: RefBoxArg, height?: RefBoxArg): number; glk_put_buffer(val: GlkByteArray): void; glk_put_buffer_stream(str: Stream, val: GlkByteArray): void; glk_put_buffer_stream_uni(str: Stream, val: GlkWordArray): void; glk_put_buffer_uni(val: GlkWordArray): void; glk_put_char(val: number): void; glk_put_char_stream(str: Stream, val: number): void; glk_put_char_stream_uni(str: Stream, val: number): void; glk_put_char_uni(val: number): void; glk_put_string(val: string): void; glk_put_string_stream(str: Stream, val: string): void; glk_put_string_stream_uni(str: Stream, val: string): void; glk_put_string_uni(val: string): void; glk_request_char_event(win: Window): void; glk_request_char_event_uni(win: Window): void; glk_request_hyperlink_event(win: Window): void; glk_request_line_event(win: Window, buf: GlkByteArray, initlen?: number): void; glk_request_line_event_uni(win: Window, buf: GlkWordArray, initlen?: number): void; glk_request_mouse_event(win: Window): void; glk_request_timer_events(msecs: number): void; glk_schannel_create(_rock: number): GlkSchannel | null; glk_schannel_create_ext(_rock: number, _volume: number): GlkSchannel | null; glk_schannel_destroy(_schannel: GlkSchannel): void; glk_schannel_get_rock(_schannel: GlkSchannel): number; glk_schannel_iterate(_schannel?: GlkSchannel, rockbox?: RefBoxArg): GlkSchannel | null; glk_schannel_pause(_schannel: GlkSchannel): void; glk_schannel_play(_schannel: GlkSchannel, _sound: number): number; glk_schannel_play_ext(_schannel: GlkSchannel, _sound: number, _repeats: number, _notify: number): number; glk_schannel_play_multi(_schannels: GlkSchannel[], _sounds: GlkArray, _notify: number): number; glk_schannel_set_volume(_schannel: GlkSchannel, _volume: number): void; glk_schannel_set_volume_ext(_schannel: GlkSchannel, _volume: number, __duration: number, notify: number): void; glk_schannel_stop(_schannel: GlkSchannel): void; glk_schannel_unpause(_schannel: GlkSchannel): void; glk_select(ev: RefStruct): typeof DidNotReturn; glk_select_poll(ev: RefStruct): void; glk_set_echo_line_event(win: Window, val: number): void; glk_set_hyperlink(val: number): void; glk_set_hyperlink_stream(str: Stream, val: number): void; glk_set_style(style: number): void; glk_set_style_stream(str: Stream, style: number): void; glk_set_terminators_line_event(win: Window, keycodes: GlkArray | null): void; glk_set_window(win?: Window): void; glk_sound_load_hint(_sound: number, _load: number): void; glk_stream_close(str: Stream, result?: RefStructArg): void; glk_stream_get_current(): Stream | null; glk_stream_get_position(str: Stream): number; glk_stream_get_rock(str: Stream): number; glk_stream_iterate(str?: Stream, rockbox?: RefBoxArg): Stream | null; glk_stream_open_file(fref: FileRef, mode: number, rock: number): Stream | null; glk_stream_open_file_uni(fref: FileRef, mode: number, rock: number): Stream | null; glk_stream_open_memory(buf: GlkByteArray | null, mode: number, rock: number): Stream; glk_stream_open_memory_uni(buf: GlkWordArray | null, mode: number, rock: number): Stream; glk_stream_open_resource(filenum: number, rock: number): Stream | null; glk_stream_open_resource_uni(filenum: number, rock: number): Stream | null; glk_stream_set_current(str: Stream | null): void; glk_stream_set_position(str: Stream, pos: number, seekmode: number): void; glk_style_distinguish(_win: Window, _style1: number, _style2: number): number; glk_style_measure(_win: Window, _style: number, _hint: number, result?: RefBoxArg): number; glk_stylehint_clear(wintype: number, style: number, hint: number): void; glk_stylehint_set(wintype: number, style: number, hint: number, value: number): void; glk_tick(): void; glk_simple_time_to_date_local(time: number, factor: number, struct: RefStruct): void; glk_simple_time_to_date_utc(time: number, factor: number, struct: RefStruct): void; glk_time_to_date_local(timestruct: RefStruct, datestruct: RefStruct): void; glk_time_to_date_utc(timestruct: RefStruct, datestruct: RefStruct): void; glk_window_clear(win: Window): void; glk_window_close(win: Window, stats?: RefStructArg): void; glk_window_erase_rect(win: Window, left: number, top: number, width: number, height: number): void; glk_window_fill_rect(win: Window, colour: number, left: number, top: number, width: number, height: number): void; glk_window_flow_break(win: Window): void; glk_window_get_arrangement(win: Window, method?: RefBoxArg, size?: RefBoxArg, keywin?: RefBoxArg): void; glk_window_get_echo_stream(win: Window): Stream | null; glk_window_get_parent(win: Window): Window | null; glk_window_get_rock(win: Window): number; glk_window_get_root(): Window | null; glk_window_get_sibling(win: Window): Window | null; glk_window_get_size(win: Window, widthbox?: RefBoxArg, heightbox?: RefBoxArg): void; glk_window_get_stream(win: Window): Stream; glk_window_get_type(win: Window): number; glk_window_iterate(win?: Window, rockbox?: RefBoxArg): Window | null; glk_window_move_cursor(win: Window, xpos: number, ypos: number): void; glk_window_open(splitwin: Window | null, method: number, size: number, wintype: number, rock: number): Window | null; glk_window_set_arrangement(win: Window, method: number, size: number, keywin?: Window): void; glk_window_set_background_color(win: Window, colour: number): void; glk_window_set_echo_stream(win: Window, stream: Stream | null): void; garglk_set_reversevideo(val: number): void; garglk_set_reversevideo_stream(str: Stream, val: number): void; garglk_set_zcolors(fg: number, bg: number): void; garglk_set_zcolors_stream(str: Stream, fg: number, bg: number): void; /** Process an input event */ private accept; private create_fileref; private create_file_stream; private create_memory_stream; private create_resource_stream; private draw_image; private handle_line_input; private rearrange_window; private register_stream; private register_window; private remove_window; private request_char_event; private request_line_event; private unregister_stream; }