Class: HardwareUiControl<E, P>
An abstract implementation of a component that forms the base of a Garmin-like UI control system. Subclasses should
implement an appropriate event handler interface (using the utility type UiControlEventHandlers<Events>
) and have
their props implement the corresponding prop event handler interface (using the utility type
UiControlPropEventHandlers<Events>
).
Type parameters
Name | Type | Description |
---|---|---|
E | extends Record <string , any > = Record <string , any > | An event definition type for events supported by this control. |
P | extends HardwareUiControlProps = HardwareUiControlProps | The component prop type for this control. |
Hierarchy
↳
HardwareUiControl
Constructors
constructor
• new HardwareUiControl<E
, P
>(props
): HardwareUiControl
<E
, P
>
Creates an instance of a HardwareUiControl.
Type parameters
Name | Type |
---|---|
E | extends Record <string , any > = Record <string , any > |
P | extends HardwareUiControlProps = HardwareUiControlProps |
Parameters
Name | Type | Description |
---|---|---|
props | P | The props for this component. |
Returns
HardwareUiControl
<E
, P
>
Overrides
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:155
Properties
context
• Optional
context: [] = undefined
The context on this component, if any.
Inherited from
Defined in
src/sdk/components/FSComponent.ts:64
contextType
• Optional
Readonly
contextType: readonly [] = undefined
The type of context for this component, if any.
Inherited from
Defined in
src/sdk/components/FSComponent.ts:67
focusedIndex
• Protected
focusedIndex: number
= -1
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:139
props
• props: P
& ComponentProps
The properties of the component.
Inherited from
Defined in
src/sdk/components/FSComponent.ts:61
registeredControls
• Protected
registeredControls: undefined
| HardwareUiControl
<E
, HardwareUiControlProps
>[]
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:137
Accessors
isDisabled
• get
isDisabled(): boolean
Gets whether or not the control is currently disabled.
Returns
boolean
True if disabled, false otherwise.
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:177
isFocused
• get
isFocused(): boolean
Gets whether or not the control is currently focused.
Returns
boolean
True if disabled, false otherwise.
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:185
isIsolated
• get
isIsolated(): boolean
Gets whether or not the control is currently in scroll isolation.
Returns
boolean
True if currently in scroll isolation, false otherwise.
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:193
length
• get
length(): number
Gets the current number of registered child controls.
Returns
number
The current number of registered child controls.
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:165
Methods
blur
▸ blur(): void
Blurs, or removes focus, from the component.
Returns
void
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:593
clearRegistered
▸ clearRegistered(): void
Clears the list of registered components.
Returns
void
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:793
destroy
▸ destroy(): void
Destroys this component.
Returns
void
Overrides
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:923
focus
▸ focus(focusPosition
): boolean
Brings focus to the control. Focusing the control will also blur the currently focused control, if any.
Parameters
Name | Type | Description |
---|---|---|
focusPosition | FocusPosition | The focus position to activate for descendents of this control. |
Returns
boolean
Whether this control was successfully focused.
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:410
getChild
▸ getChild(index
): undefined
| HardwareUiControl
<E
, HardwareUiControlProps
>
Gets a child control at the specified index.
Parameters
Name | Type | Description |
---|---|---|
index | number | The index of the child control to get. |
Returns
undefined
| HardwareUiControl
<E
, HardwareUiControlProps
>
The specified child control.
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:859
getContext
▸ getContext(context
): never
Gets a context data subscription from the context collection.
Parameters
Name | Type | Description |
---|---|---|
context | never | The 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
Defined in
src/sdk/components/FSComponent.ts:106
getFocusPositionOnScroll
▸ getFocusPositionOnScroll(direction
): FocusPosition
Gets the focus position to apply when this control is focused from a scroll.
Parameters
Name | Type | Description |
---|---|---|
direction | ScrollDirection | The direction of the scroll. |
Returns
The focus position to apply when this control is focused from a scroll.
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:250
getFocusedIndex
▸ getFocusedIndex(): number
Gets the current focused index in the registered controls collection.
Returns
number
The index of the focused control in the collection of registered controls.
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:824
getMostRecentFocusedIndex
▸ getMostRecentFocusedIndex(): number
Gets the most recent focused index (including the current focused index, if one exists) in the registered controls collection.
Returns
number
The index of the most recently focused control in the collection of registered controls.
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:833
indexOf
▸ indexOf(child
): number
Gets the index of a specified child control within the registered child controls collection.
Parameters
Name | Type | Description |
---|---|---|
child | HardwareUiControl <E , HardwareUiControlProps > | The child to get the index of. |
Returns
number
The index of the child, or -1 if not found.
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:873
onAfterRender
▸ onAfterRender(thisNode
): void
A callback that is called after the component is rendered.
Parameters
Name | Type | Description |
---|---|---|
thisNode | VNode | The component's VNode. |
Returns
void
Overrides
DisplayComponent.onAfterRender
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:900
onAfterScroll
▸ onAfterScroll(control
, index
): void
An event called when a scroll operation has completed.
Parameters
Name | Type | Description |
---|---|---|
control | HardwareUiControl <E , HardwareUiControlProps > | The control that was scrolled to. |
index | number | The index of the control in the collection of registered controls. |
Returns
void
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:284
onBeforeRender
▸ onBeforeRender(): void
A callback that is called before the component is rendered.
Returns
void
Inherited from
DisplayComponent.onBeforeRender
Defined in
src/sdk/components/FSComponent.ts:80
onBlurred
▸ onBlurred(source
): void
An event called when the control is blurred.
Parameters
Name | Type | Description |
---|---|---|
source | HardwareUiControl <E , HardwareUiControlProps > | The control that emitted this event. |
Returns
void
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:209
onDisabled
▸ onDisabled(source
): void
An event called when the control is disabled.
Parameters
Name | Type | Description |
---|---|---|
source | HardwareUiControl <E , HardwareUiControlProps > | The control that emitted this event. |
Returns
void
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:225
onEnabled
▸ onEnabled(source
): void
An event called when the control is enabled.
Parameters
Name | Type | Description |
---|---|---|
source | HardwareUiControl <E , HardwareUiControlProps > | The control that emitted this event. |
Returns
void
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:217
onFocused
▸ onFocused(source
): void
An event called when the control receives focus.
Parameters
Name | Type | Description |
---|---|---|
source | HardwareUiControl <E , HardwareUiControlProps > | The control that emitted this event. |
Returns
void
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:201
onInteractionEvent
▸ onInteractionEvent(event
): boolean
A method which is called when this control receives an interaction event.
Parameters
Name | Type | Description |
---|---|---|
event | keyof E | The event. |
Returns
boolean
True if the event was handled, false otherwise.
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:337
onRegistered
▸ onRegistered(source
): void
An event called when a control is registered with this control.
Parameters
Name | Type | Description |
---|---|---|
source | HardwareUiControl <E , HardwareUiControlProps > | The control that emitted this event. |
Returns
void
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:233
onScroll
▸ onScroll(direction
): boolean
An event called when the control is scrolled.
Parameters
Name | Type | Description |
---|---|---|
direction | ScrollDirection | The direction that is being requested to scroll. |
Returns
boolean
True if this control handled this event, false otherwise.
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:263
onUnregistered
▸ onUnregistered(source
): void
An event called when a control is unregistered from this control.
Parameters
Name | Type | Description |
---|---|---|
source | HardwareUiControl <E , HardwareUiControlProps > | The control that emitted this event. |
Returns
void
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:241
reconcileChildBlur
▸ reconcileChildBlur(index
, child
): number
| BlurReconciliation
Reconciles the focus state of this control's children when this control is focused with no focused children after a child has been blurred.
Parameters
Name | Type | Description |
---|---|---|
index | number | The index of the child control that was blurred. If the child is no longer registered, then this is the index of the child prior to being unregistered. |
child | HardwareUiControl <E , HardwareUiControlProps > | The child control that was blurred. |
Returns
number
| BlurReconciliation
The index of the child control to focus.
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:688
register
▸ register(control
, index?
): void
Registers a child control with this control.
Parameters
Name | Type | Description |
---|---|---|
control | HardwareUiControl <E , HardwareUiControlProps > | The control to register. |
index? | number | The index at which to register the control. If none is provided, the control will be registered at the end of the collection of child controls. |
Returns
void
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:722
render
▸ render(): VNode
Renders the control.
Returns
The component VNode.
Overrides
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:916
scroll
▸ scroll(direction
): boolean
Scrolls the currently focused control in the supplied direction.
Parameters
Name | Type | Description |
---|---|---|
direction | ScrollDirection | The direction that is being requested to scroll. |
Returns
boolean
True if propagation should be stopped, false otherwise.
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:293
setDisabled
▸ setDisabled(isDisabled
): void
Sets the component to be disabled, removing the ability for the component to scroll. Setting a component to disabled will also blur the component and its children, if necessary.
Parameters
Name | Type | Description |
---|---|---|
isDisabled | boolean | Whether or not the component is disabled. |
Returns
void
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:705
setFocusedIndex
▸ setFocusedIndex(index
, focusPosition?
): void
Sets the current most recently focused child control index. If this control is focused and has children that have focus, this will also switch child focus to the new index.
Parameters
Name | Type | Default value | Description |
---|---|---|---|
index | number | undefined | The index of the child control to set most recent focus for. |
focusPosition | FocusPosition | FocusPosition.MostRecent | The focus position to focus the child for, if required. |
Returns
void
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:843
setIsolated
▸ setIsolated(isolated
): void
Sets whether or not this control is in scroll isolation. While scroll isolation is enabled, scroll events will not propagate to the control's parent when the control has focus.
Parameters
Name | Type | Description |
---|---|---|
isolated | boolean | Whether or not the control is isolated. |
Returns
void
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:895
setParent
▸ setParent(parent
): void
Sets the parent of this control.
Parameters
Name | Type | Description |
---|---|---|
parent | HardwareUiControl <E , HardwareUiControlProps > | The parent to set. |
Returns
void
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:885
triggerEvent
▸ triggerEvent(event
, source
, ...args
): boolean
Triggers an event on this control. The event will first be routed to the deepest focused descendent of this control and will propagate up the control tree until it is handled or there are no more controls to which to propagate.
Parameters
Name | Type | Description |
---|---|---|
event | keyof E | The event to trigger. |
source | HardwareUiControl <Record <string , any >, HardwareUiControlProps > | The source of the event. Defaults to this if not supplied. |
...args | any [] | Additional arguments to pass to the event handler. |
Returns
boolean
True if the event was handled, false otherwise.
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:348
unregister
▸ unregister(item
): void
Unregisters a child control with this control.
Parameters
Name | Type | Description |
---|---|---|
item | number | HardwareUiControl <E , HardwareUiControlProps > | The child control or index of a child control to unregister. If a child control is provided, it will attempt to be located in the control's child registry and then removed. If an index is provided, the child control at that registered index will be removed. |
Returns
void
Defined in
src/sdk/components/controls/HardwareUiControl.tsx:748