> ## Documentation Index
> Fetch the complete documentation index at: https://rive.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ListenerContext

Provides access to the context that triggered a listener action.

(Coming soon)

A [ListenerContext](/scripting/api-reference/artboards/listener-context) can represent different event types (pointer, keyboard,
text input, focus, view model changes, or reported events). Use the
`is...` methods to check the type, and the corresponding `as...` methods
to retrieve the event data.

## Methods

### `isPointerEvent`

<div class="signature">
  ```lua theme={null}
  isPointerEvent() -> boolean
  ```
</div>

Returns true if the action was triggered by a pointer event.

### `isKeyboardEvent`

<div class="signature">
  ```lua theme={null}
  isKeyboardEvent() -> boolean
  ```
</div>

Returns true if the action was triggered by a keyboard event.

### `isTextInput`

<div class="signature">
  ```lua theme={null}
  isTextInput() -> boolean
  ```
</div>

Returns true if the action was triggered by a text input event.

### `isFocus`

<div class="signature">
  ```lua theme={null}
  isFocus() -> boolean
  ```
</div>

Returns true if the action was triggered by a focus change.

### `isReportedEvent`

<div class="signature">
  ```lua theme={null}
  isReportedEvent() -> boolean
  ```
</div>

Returns true if the action was triggered by a reported Rive event.

### `isViewModelChange`

<div class="signature">
  ```lua theme={null}
  isViewModelChange() -> boolean
  ```
</div>

Returns true if the action was triggered by a view model change.

### `isGamepadConnected`

<div class="signature">
  ```lua theme={null}
  isGamepadConnected() -> boolean
  ```
</div>

### `isGamepadEvent`

<div class="signature">
  ```lua theme={null}
  isGamepadEvent() -> boolean
  ```
</div>

### `isGamepadDisconnected`

<div class="signature">
  ```lua theme={null}
  isGamepadDisconnected() -> boolean
  ```
</div>

### `isNone`

<div class="signature">
  ```lua theme={null}
  isNone() -> boolean
  ```
</div>

Returns true if the action was triggered by an unknown or unsupported event type.

### `asPointerEvent`

<div class="signature">
  ```lua theme={null}
  asPointerEvent() -> PointerEvent?
  ```
</div>

Returns the pointer event if applicable, otherwise nil.

### `asKeyboardEvent`

<div class="signature">
  ```lua theme={null}
  asKeyboardEvent() -> KeyboardEvent?
  ```
</div>

Returns the keyboard event if applicable, otherwise nil.

### `asTextInput`

<div class="signature">
  ```lua theme={null}
  asTextInput() -> TextInput?
  ```
</div>

Returns the text input event if applicable, otherwise nil.

### `asFocus`

<div class="signature">
  ```lua theme={null}
  asFocus() -> FocusEvent?
  ```
</div>

Returns the focus event if applicable, otherwise nil.

### `asReportedEvent`

<div class="signature">
  ```lua theme={null}
  asReportedEvent() -> ReportedEvent?
  ```
</div>

Returns the reported event if applicable, otherwise nil.

### `asViewModelChange`

<div class="signature">
  ```lua theme={null}
  asViewModelChange() -> ViewModelChange?
  ```
</div>

Returns the view model change if applicable, otherwise nil.

### `asGamepadConnected`

<div class="signature">
  ```lua theme={null}
  asGamepadConnected() -> GamepadConnected?
  ```
</div>

### `asGamepadEvent`

<div class="signature">
  ```lua theme={null}
  asGamepadEvent() -> GamepadEvent?
  ```
</div>

### `asGamepadDisconnected`

<div class="signature">
  ```lua theme={null}
  asGamepadDisconnected() -> GamepadDisconnected?
  ```
</div>

### `asNone`

<div class="signature">
  ```lua theme={null}
  asNone() -> NoneEvent?
  ```
</div>

Returns a none event if applicable, otherwise nil.
