Skip to main content

Class: CursorInput<M>

Defined in: src/workingtitle-instruments-g3x-touch/html_ui/Shared/Components/CursorInput/CursorInput.tsx:102

An input display with a scrolling cursor.

Each input has zero or more child slots of type CursorInputSlot (though to be practically useful, at least one slot is required). When editing is active, the input's cursor selects either one slot or one character (a slot may have more than one character) at a time. The input supports incrementing or decrementing the value of a selected slot, or directly setting/deleting the value of a selected character.

Each input is bound to a composite value. This value is computed from the values of the input's individual slots, and vice versa, so that changes in either will be reflected in the other.

Extends

Type Parameters

Type Parameter
M extends MutableSubscribable<any>

Constructors

Constructor

new CursorInput<M>(props): CursorInput<M>

Defined in: src/sdk/components/FSComponent.ts:73

Creates an instance of a DisplayComponent.

Parameters

ParameterTypeDescription
propsCursorInputPropsThe propertis of the component.

Returns

CursorInput<M>

Inherited from

DisplayComponent<CursorInputProps<M>>.constructor

Properties

context?

optional context: [] = undefined

Defined in: src/sdk/components/FSComponent.ts:64

The context on this component, if any.

Inherited from

DisplayComponent.context


contextType?

readonly optional contextType: readonly [] = undefined

Defined in: src/sdk/components/FSComponent.ts:67

The type of context for this component, if any.

Inherited from

DisplayComponent.contextType


cursorPosition

readonly cursorPosition: Subscribable<number>

Defined in: src/workingtitle-instruments-g3x-touch/html_ui/Shared/Components/CursorInput/CursorInput.tsx:158

The index of the character position currently selected by this input's cursor.


isEditingActive

readonly isEditingActive: Subscribable<boolean>

Defined in: src/workingtitle-instruments-g3x-touch/html_ui/Shared/Components/CursorInput/CursorInput.tsx:162

Whether editing is active for this input.


isSelectionPerSlot

readonly isSelectionPerSlot: Subscribable<boolean>

Defined in: src/workingtitle-instruments-g3x-touch/html_ui/Shared/Components/CursorInput/CursorInput.tsx:166

Whether this input's cursor selection mode is per-slot.


props

props: CursorInputProps<M> & ComponentProps

Defined in: src/sdk/components/FSComponent.ts:61

The properties of the component.

Inherited from

DisplayComponent.props

Methods

activateEditing()

activateEditing(isSelectionPerSlot, charToSet?): boolean

Defined in: src/workingtitle-instruments-g3x-touch/html_ui/Shared/Components/CursorInput/CursorInput.tsx:359

Activates editing for this input.

Parameters

ParameterTypeDescription
isSelectionPerSlotbooleanWhether cursor selection should be initialized to per-slot mode. If false, cursor selection will be initialized to per-character mode instead.
charToSet?null | stringThe value to set at the cursor's selected character position as the initial edit. If defined and the character position cannot accept the value, editing will not be activated. Ignored if isSelectionPerSlot is true.

Returns

boolean

Whether editing is active.

Throws

Error if this input is not initialized.


backspace()

backspace(selectionPerSlot?): void

Defined in: src/workingtitle-instruments-g3x-touch/html_ui/Shared/Components/CursorInput/CursorInput.tsx:725

Removes the character at the cursor's current position. If backfill is allowed, this will also shift all non-empty characters to the left of the cursor's current position one position to the right. If backfill is not allowed, this will shift the cursor one position to the left after the character is removed.

Parameters

ParameterTypeDescription
selectionPerSlot?booleanThe selection per slot state to apply before carrying out the backspace operation. If not defined, the selection per slot state will remain unchanged from its current value.

Returns

void

Throws

Error if this input is not initialized.


changeSlotValue()

changeSlotValue(direction): boolean

Defined in: src/workingtitle-instruments-g3x-touch/html_ui/Shared/Components/CursorInput/CursorInput.tsx:594

Increments or decrements the value of the slot currently selected by the cursor. If editing is not active, it will be activated instead of changing any slot value. If cursor selection is in per-character mode, it will be forced to per-slot mode. If the cursor is past the last slot, this method does nothing.

Parameters

ParameterTypeDescription
direction-1 | 1The direction in which to change the slot value (1 = increment, -1 = decrement).

Returns

boolean

Whether the value of the slot was changed.

Throws

Error if this input is not initialized.


deactivateEditing()

deactivateEditing(): void

Defined in: src/workingtitle-instruments-g3x-touch/html_ui/Shared/Components/CursorInput/CursorInput.tsx:411

Deactivates editing for this input.

Returns

void

Throws

Error if this input is not initialized.


destroy()

destroy(): void

Defined in: src/workingtitle-instruments-g3x-touch/html_ui/Shared/Components/CursorInput/CursorInput.tsx:997

Returns

void

Inherit Doc

Overrides

DisplayComponent.destroy


getContext()

protected getContext(context): never

Defined in: src/sdk/components/FSComponent.ts:106

Gets a context data subscription from the context collection.

Parameters

ParameterTypeDescription
contextneverThe context to get the subscription for.

Returns

never

The requested context.

Throws

An error if no data for the specified context type could be found.

Inherited from

DisplayComponent.getContext


isInitialized()

isInitialized(): boolean

Defined in: src/workingtitle-instruments-g3x-touch/html_ui/Shared/Components/CursorInput/CursorInput.tsx:276

Checks whether this input is initialized.

Returns

boolean

Whether this input is initialized.


moveCursor()

moveCursor(direction, forceSelectionPerSlot): void

Defined in: src/workingtitle-instruments-g3x-touch/html_ui/Shared/Components/CursorInput/CursorInput.tsx:429

Moves the cursor.

Parameters

ParameterTypeDescription
direction-1 | 1The direction in which to move (1 = to the right, -1 = to the left).
forceSelectionPerSlotbooleanWhether to force cursor selection to per slot mode.

Returns

void

Throws

Error if this input is not initialized.


onAfterRender()

onAfterRender(): void

Defined in: src/workingtitle-instruments-g3x-touch/html_ui/Shared/Components/CursorInput/CursorInput.tsx:179

Returns

void

Inherit Doc

Overrides

DisplayComponent.onAfterRender


onBeforeRender()

onBeforeRender(): void

Defined in: src/sdk/components/FSComponent.ts:80

A callback that is called before the component is rendered.

Returns

void

Inherited from

DisplayComponent.onBeforeRender


placeCursor()

placeCursor(index, forceSelectionPerSlot): void

Defined in: src/workingtitle-instruments-g3x-touch/html_ui/Shared/Components/CursorInput/CursorInput.tsx:562

Places the cursor at a specific character position.

Parameters

ParameterTypeDescription
indexnumberThe index of the character position at which to place the cursor.
forceSelectionPerSlotbooleanWhether to force cursor selection to per slot mode.

Returns

void

Throws

Error if this input is not initialized.

Throws

RangeError if index does not point to a valid character position.


populateCharsFromValue()

populateCharsFromValue(): void

Defined in: src/workingtitle-instruments-g3x-touch/html_ui/Shared/Components/CursorInput/CursorInput.tsx:856

Populates all of this input's character positions with non-empty values, if possible, using this input's value digitizer function and the current composite value as a template.

Returns

void


refresh()

refresh(): void

Defined in: src/workingtitle-instruments-g3x-touch/html_ui/Shared/Components/CursorInput/CursorInput.tsx:865

Refreshes this input, updating the size and position of the cursor.

Returns

void


render()

render(): VNode

Defined in: src/workingtitle-instruments-g3x-touch/html_ui/Shared/Components/CursorInput/CursorInput.tsx:970

Returns

VNode

Inherit Doc

Overrides

DisplayComponent.render


setSlotCharacterValue()

setSlotCharacterValue(value): boolean

Defined in: src/workingtitle-instruments-g3x-touch/html_ui/Shared/Components/CursorInput/CursorInput.tsx:632

Sets the value of the slot character currently selected by the cursor. If editing is not active, it will be activated before setting the value (unless the selected character cannot accept the value, in which case the operation will be aborted). If cursor selection is in per-slot mode, it will be forced to per-character mode, and the first character of the slot will be selected before setting the value. If the cursor is past the last slot, this method does nothing.

Parameters

ParameterTypeDescription
valuestringThe value to set.

Returns

boolean

Whether the operation was accepted.

Throws

Error if this input is not initialized.


setValue()

setValue(value): SubscribableType<M>

Defined in: src/workingtitle-instruments-g3x-touch/html_ui/Shared/Components/CursorInput/CursorInput.tsx:290

Sets the composite value of this input. As part of the operation, all of this input's child slots will have their values set according to this input's value digitizer, and all slot characters will be set to non-null representations of their slot's value, if possible. The composite value of this input after the operation is complete may differ from the requested value depending on whether the requested value can be accurately represented by this input.

Parameters

ParameterTypeDescription
valueSubscribableType<M>The new composite value.

Returns

SubscribableType<M>

The composite value of this input after the operation is complete.

Throws

Error if this input is not initialized.