iniquity

A re-imagining of the iconic BBS software.

View on GitHub

Class: IQMenu

core/menu.IQMenu

IQMenu - Interactive menu system

Table of contents

Constructors

Properties

Methods

Constructors

constructor

• new IQMenu(options, output, artworkFn?, getRuntime?)

Parameters

Name Type
options IQMenuOptions
output IQOutput
artworkFn? (options?: { basepath?: string }) => { render: (opts: any) => Promise<any> }
getRuntime? () => { getLastRenderedMenuArtKey: () => null | string ; processSnacks: () => void ; setLastRenderedMenuArtKey: (key: string) => void ; setPromptPosition: (x: number, y: number) => void }

Defined in

core/src/menu.ts:157

Properties

art

• Optional art: IQMenuArtOptions

Defined in

core/src/menu.ts:131


autoRenderItems

• autoRenderItems: boolean

Defined in

core/src/menu.ts:138


basepath

• Optional basepath: string

Defined in

core/src/menu.ts:132


commands

• commands: IMenuCommands

Defined in

core/src/menu.ts:129


data

• data: any

Defined in

core/src/menu.ts:130


description

• description: string

Defined in

core/src/menu.ts:128


hotkeys

• hotkeys: boolean

Defined in

core/src/menu.ts:141


itemFormat

• itemFormat: string

Defined in

core/src/menu.ts:139


items

• items: IQMenuItem[] = []

Defined in

core/src/menu.ts:140


itemsX

• Optional itemsX: number

Defined in

core/src/menu.ts:136


itemsY

• Optional itemsY: number

Defined in

core/src/menu.ts:137


mouse

• mouse: boolean

Defined in

core/src/menu.ts:142


mouseHighlightFormat

• mouseHighlightFormat: undefined | string

Defined in

core/src/menu.ts:143


name

• name: string

Defined in

core/src/menu.ts:127


promptText

• promptText: string

Defined in

core/src/menu.ts:133


promptX

• Optional promptX: number

Defined in

core/src/menu.ts:134


promptY

• Optional promptY: number

Defined in

core/src/menu.ts:135

Methods

addItem

▸ addItem(item): IQMenu

Add a menu item

Parameters

Name Type
item IQMenuItem

Returns

IQMenu

Defined in

core/src/menu.ts:193


addItems

▸ addItems(items): IQMenu

Add multiple menu items

Parameters

Name Type
items IQMenuItem[]

Returns

IQMenu

Defined in

core/src/menu.ts:210


back

▸ back(): string

Go back to parent menu

Returns

string

Defined in

core/src/menu.ts:628


executeCommand

▸ executeCommand(key): Promise<any>

Execute a command by key

Parameters

Name Type
key string

Returns

Promise<any>

Defined in

core/src/menu.ts:378


getParent

▸ getParent(): null | IQMenu

Get parent menu

Returns

null | IQMenu

Defined in

core/src/menu.ts:226


prompt

▸ prompt(options): IQMenuPromptFunctions

Set up a prompt for user input

Parameters

Name Type
options IQMenuPromptOptions

Returns

IQMenuPromptFunctions

Defined in

core/src/menu.ts:233


render

▸ render(callback, options?): Promise<void>

Render the menu with a loop (legacy API)

Parameters

Name Type
callback (res: IQMenuLoopMessageResponse, cmdkey: Function, data?: any) => void
options? IQMenuLoopOptions

Returns

Promise<void>

Defined in

core/src/menu.ts:636


setParent

▸ setParent(parent): IQMenu

Set parent menu (for back navigation)

Parameters

Name Type
parent IQMenu

Returns

IQMenu

Defined in

core/src/menu.ts:218


show

▸ show(): Promise<string>

Display the menu and wait for input

Returns

Promise<string>

Defined in

core/src/menu.ts:394


stop

▸ stop(): void

Stop the menu loop

Returns

void

Defined in

core/src/menu.ts:621


waitForKey

▸ waitForKey(): Promise<string>

Wait for user command input and return the key Uses non-blocking input with event processing loop

Returns

Promise<string>

Defined in

core/src/menu.ts:294