# MultiModalInjectionScope

Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/MultiModalInjectionScope.kt+class:androidx.compose.ui.test.MultiModalInjectionScope) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0) Common/AllAndroid/JVM
- Cmn

  ```
  sealed interface MultiModalInjectionScope : InjectionScope
  ```

*** ** * ** ***

The receiver scope of the multi-modal input injection lambda from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performMultiModalInput(kotlin.Function1)`.

`https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope` brings together the receiver scopes of all individual modalities, allowing you to inject gestures that consist of events from different modalities, like touch and mouse. For each modality, there is a function to which you pass a lambda in which you can inject events for that modality: currently, we have `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#touch(kotlin.Function1)`, `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#mouse(kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#key(kotlin.Function1)` functions. See their respective docs for more information.

Note that all events generated by the gesture methods are batched together and sent as a whole after `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performMultiModalInput(kotlin.Function1)` has executed its code block.

Example of performing a click via touch input followed by drag and drop via mouse input:

```kotlin
import androidx.compose.ui.test.click
import androidx.compose.ui.test.dragAndDrop
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performMultiModalInput

composeTestRule.onNodeWithTag("myComponent").performMultiModalInput {
    touch { click(center) }
    advanceEventTime(500)
    mouse { dragAndDrop(topLeft, bottomRight) }
}
```

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TouchInjectionScope` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/RotaryInjectionScope` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope` |   |

## Summary

| ### Public functions |
|---|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#indirectPointer(androidx.compose.ui.input.indirect.IndirectPointerEventPrimaryDirectionalMotionAxis,androidx.compose.ui.unit.IntSize,kotlin.Function1)( indirectPointerEventPrimaryDirectionalMotionAxis: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/indirect/IndirectPointerEventPrimaryDirectionalMotionAxis, inputDeviceSize: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntSize, block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Injects all indirect pointer events sent by the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#indirectPointer(androidx.compose.ui.input.indirect.IndirectPointerEventPrimaryDirectionalMotionAxis,androidx.compose.ui.unit.IntSize,kotlin.Function1)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#key(kotlin.Function1)(block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Injects all key events sent by the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#key(kotlin.Function1)` | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#mouse(kotlin.Function1)(block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Injects all mouse events sent by the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#mouse(kotlin.Function1)` | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#rotary(kotlin.Function1)(block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/RotaryInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Injects all rotary events sent by the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#rotary(kotlin.Function1)` | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#touch(kotlin.Function1)(block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TouchInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Injects all touch events sent by the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#touch(kotlin.Function1)` | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#trackpad(kotlin.Function1)(block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Injects all trackpad events sent by the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#trackpad(kotlin.Function1)` | Cmn |

| ### Inherited functions |
|---|
| From [androidx.compose.ui.unit.Density](https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Density) |---|---|---| | `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp.https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Density#(androidx.compose.ui.unit.Dp).roundToPx()()` Convert `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` to `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` by rounding | Cmn | | `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit.https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Density#(androidx.compose.ui.unit.TextUnit).roundToPx()()` Convert Sp to `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` by rounding | Cmn | | `open https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html.https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Density#(kotlin.Int).toDp()()` Convert an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` pixel value to `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. | Cmn | | `open https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html.https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Density#(kotlin.Float).toDp()()` Convert a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` pixel value to a Dp | Cmn | | `open https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpSize` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Size.https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Density#(androidx.compose.ui.geometry.Size).toDpSize()()` Convert a `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Size` to a `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpSize`. | Cmn | | `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp.https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Density#(androidx.compose.ui.unit.Dp).toPx()()` Convert `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` to pixels. | Cmn | | `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit.https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Density#(androidx.compose.ui.unit.TextUnit).toPx()()` Convert Sp to pixels. | Cmn | | `open https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Rect` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpRect.https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Density#(androidx.compose.ui.unit.DpRect).toRect()()` Convert a `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpRect` to a `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Rect`. | Cmn | | `open https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Size` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpSize.https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Density#(androidx.compose.ui.unit.DpSize).toSize()()` Convert a `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpSize` to a `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Size`. | Cmn | | `open https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit` | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html.https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Density#(kotlin.Int).toSp()()` Convert an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` pixel value to Sp. | Cmn | | `open https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit` | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html.https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Density#(kotlin.Float).toSp()()` Convert a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` pixel value to a Sp | Cmn | |
| From [androidx.compose.ui.unit.FontScaling](https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/FontScaling) |---|---|---| | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit.https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/FontScaling#(androidx.compose.ui.unit.TextUnit).toDp()()` Convert Sp to `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. | Cmn | | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/TextUnit` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp.https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/FontScaling#(androidx.compose.ui.unit.Dp).toSp()()` Convert `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` to Sp. | Cmn | |
| From [androidx.compose.ui.test.InjectionScope](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope) |---|---|---| | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#advanceEventTime(kotlin.Long)(durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Adds the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#advanceEventTime(kotlin.Long)` to the current event time, delaying the next event by that time. | Cmn | | `open https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#percentOffset(kotlin.Float,kotlin.Float)(x: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, y: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)` Creates an `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` relative to the size of the node we're interacting with. | Cmn | |

| ### Inherited properties |
|---|
| From [androidx.compose.ui.unit.Density](https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Density) |---|---|---| | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Density#density()` The logical density of the display. | Cmn | |
| From [androidx.compose.ui.unit.FontScaling](https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/FontScaling) |---|---|---| | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/FontScaling#fontScale()` Current user preference for the scaling factor for fonts. | Cmn | |
| From [androidx.compose.ui.test.InjectionScope](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope) |---|---|---| | `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#bottom()` The y-coordinate for the bottom of the node we're interacting with in px, in the node's local coordinate system, where (0, 0) is the top left corner of the node. | Cmn | | `open https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#bottomCenter()` The center of the bottom edge of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node. | Cmn | | `open https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#bottomLeft()` The bottom left corner of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node. | Cmn | | `open https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#bottomRight()` The bottom right corner of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node. | Cmn | | `open https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#center()` The center of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node. | Cmn | | `open https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#centerLeft()` The center of the left edge of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node. | Cmn | | `open https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#centerRight()` The center of the right edge of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node. | Cmn | | `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#centerX()` The x-coordinate for the center of the node we're interacting with in px, in the node's local coordinate system, where (0, 0) is the top left corner of the node. | Cmn | | `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#centerY()` The y-coordinate for the center of the node we're interacting with in px, in the node's local coordinate system, where (0, 0) is the top left corner of the node. | Cmn | | `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#eventPeriodMillis()` The default time between two successive events. | Cmn | | `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#height()` The height of the node in px. | Cmn | | `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#left()` The x-coordinate for the left edge of the node we're interacting with in px, in the node's local coordinate system, where (0, 0) is the top left corner of the node. | Cmn | | `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#right()` The x-coordinate for the right edge of the node we're interacting with in px, in the node's local coordinate system, where (0, 0) is the top left corner of the node. | Cmn | | `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#top()` The y-coordinate for the top of the node we're interacting with in px, in the node's local coordinate system, where (0, 0) is the top left corner of the node. | Cmn | | `open https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#topCenter()` The center of the top edge of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node. | Cmn | | `open https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#topLeft()` The top left corner of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node. | Cmn | | `open https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#topRight()` The top right corner of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node. | Cmn | | `https://developer.android.com/reference/kotlin/androidx/compose/ui/platform/ViewConfiguration` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#viewConfiguration()` The `https://developer.android.com/reference/kotlin/androidx/compose/ui/platform/ViewConfiguration` in use by the `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsNode` from the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` on which the input injection method is called. | Cmn | | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntSize` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#visibleSize()` The size of the visible part of the node we're interacting with in px, i.e. its clipped bounds. | Cmn | | `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#width()` The width of the node in px. | Cmn | |

## Public functions

### indirectPointer

Cmn

```
fun indirectPointer(
    indirectPointerEventPrimaryDirectionalMotionAxis: IndirectPointerEventPrimaryDirectionalMotionAxis,
    inputDeviceSize: IntSize,
    block: IndirectPointerInjectionScope.() -> Unit
): Unit
```

Injects all indirect pointer events sent by the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#indirectPointer(androidx.compose.ui.input.indirect.IndirectPointerEventPrimaryDirectionalMotionAxis,androidx.compose.ui.unit.IntSize,kotlin.Function1)`. This API requires an active focus state meaning developers need to request focus to the component or a child of the component via SemanticsNodeInteraction.requestFocus() before calling this function. If no component is currently focused, the event will not trigger.

| Parameters |
|---|---|
| `indirectPointerEventPrimaryDirectionalMotionAxis: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/indirect/IndirectPointerEventPrimaryDirectionalMotionAxis` | The main movement axis (horizontal or vertical) for single-directional scrolling when using the touchpad `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#indirectPointer(androidx.compose.ui.input.indirect.IndirectPointerEventPrimaryDirectionalMotionAxis,androidx.compose.ui.unit.IntSize,kotlin.Function1)`. For instance, if the primary axis is set to X, a display prioritizes scrolling its content (for both horizontal and vertical containers) based on the device's X-axis movement. Note that this input axis may not correspond directly to the resulting scrolling axis on the display (e.g., X-axis movement causing vertical scrolling). |
| `inputDeviceSize: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntSize` | The dimensions of the external indirect pointer input device that provide the boundaries for indirect input. If you go outside these dimensions, the tests will throw an exception. Note: This is not related to the screen coordinates. |
| `block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Block of code/events to execute in indirect scope |

### key

Cmn Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.2.0)

```
fun key(block: KeyInjectionScope.() -> Unit): Unit
```

Injects all key events sent by the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#key(kotlin.Function1)`

### mouse

Cmn Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun mouse(block: MouseInjectionScope.() -> Unit): Unit
```

Injects all mouse events sent by the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#mouse(kotlin.Function1)`

### rotary

Cmn Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.2.0)

```
fun rotary(block: RotaryInjectionScope.() -> Unit): Unit
```

Injects all rotary events sent by the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#rotary(kotlin.Function1)`

### touch

Cmn Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun touch(block: TouchInjectionScope.() -> Unit): Unit
```

Injects all touch events sent by the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#touch(kotlin.Function1)`

### trackpad

Cmn Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.11.0)

```
fun trackpad(block: TrackpadInjectionScope.() -> Unit): Unit
```

Injects all trackpad events sent by the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#trackpad(kotlin.Function1)`