| <link rel="stylesheet" href="../style.css" /> |
| |
| [TOC] |
| # fuchsia.ui.input |
| |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 7</span></div> |
| |
| ## **PROTOCOLS** |
| |
| ## ImeService {#ImeService} |
| *Defined in [fuchsia.ui.input/ime_service.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/ime_service.fidl;l=8)* |
| <p>The service provided by an IME</p> |
| |
| ### GetInputMethodEditor {#ImeService.GetInputMethodEditor} |
| |
| |
| #### Request {#ImeService.GetInputMethodEditor_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>keyboard_type</code></td> |
| <td> |
| <code><a class='link' href='#KeyboardType'>KeyboardType</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>action</code></td> |
| <td> |
| <code><a class='link' href='#InputMethodAction'>InputMethodAction</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>initial_state</code></td> |
| <td> |
| <code><a class='link' href='#TextInputState'>TextInputState</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>client</code></td> |
| <td> |
| <code><a class='link' href='#InputMethodEditorClient'>InputMethodEditorClient</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>editor</code></td> |
| <td> |
| <code>request<<a class='link' href='#InputMethodEditor'>InputMethodEditor</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### HideKeyboard {#ImeService.HideKeyboard} |
| |
| |
| #### Request {#ImeService.HideKeyboard_Request} |
| |
| <EMPTY> |
| |
| |
| ### ShowKeyboard {#ImeService.ShowKeyboard} |
| |
| |
| #### Request {#ImeService.ShowKeyboard_Request} |
| |
| <EMPTY> |
| |
| |
| ## InputDevice {#InputDevice} |
| *Defined in [fuchsia.ui.input/input_device_registry.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_device_registry.fidl;l=19)* |
| |
| ### DispatchReport {#InputDevice.DispatchReport} |
| |
| <p>Dispatch an <code>InputReport</code> from the device <code>token</code></p> |
| |
| #### Request {#InputDevice.DispatchReport_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>report</code></td> |
| <td> |
| <code><a class='link' href='#InputReport'>InputReport</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## InputDeviceRegistry {#InputDeviceRegistry} |
| *Defined in [fuchsia.ui.input/input_device_registry.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_device_registry.fidl;l=11)* |
| <p>Service to receive input events.</p> |
| <p>Input devices can describe their capabilities using <code>DeviceDescriptor</code> |
| and register themselves with the <code>InputDeviceRegistry</code>.</p> |
| |
| ### RegisterDevice {#InputDeviceRegistry.RegisterDevice} |
| |
| <p>Register a device with the capabilities described by <code>DeviceDescriptor</code></p> |
| |
| #### Request {#InputDeviceRegistry.RegisterDevice_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>descriptor</code></td> |
| <td> |
| <code><a class='link' href='#DeviceDescriptor'>DeviceDescriptor</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>input_device</code></td> |
| <td> |
| <code>request<<a class='link' href='#InputDevice'>InputDevice</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## InputMethodEditor {#InputMethodEditor} |
| *Defined in [fuchsia.ui.input/text_input.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/text_input.fidl;l=78)* |
| <p>A interface for interacting with a text input control.</p> |
| |
| ### DispatchKey3 {#InputMethodEditor.DispatchKey3} |
| |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Deprecated: 8</span></div> |
| #### Request {#InputMethodEditor.DispatchKey3_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>event</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.ui.input3/'>fuchsia.ui.input3</a>/<a class='link' href='../fuchsia.ui.input3/#KeyEvent'>KeyEvent</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#InputMethodEditor.DispatchKey3_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>handled</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| </tr> |
| </table> |
| |
| ### Hide {#InputMethodEditor.Hide} |
| |
| |
| #### Request {#InputMethodEditor.Hide_Request} |
| |
| <EMPTY> |
| |
| |
| ### InjectInput {#InputMethodEditor.InjectInput} |
| |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Deprecated: 8</span></div> |
| #### Request {#InputMethodEditor.InjectInput_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>event</code></td> |
| <td> |
| <code><a class='link' href='#InputEvent'>InputEvent</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### SetKeyboardType {#InputMethodEditor.SetKeyboardType} |
| |
| |
| #### Request {#InputMethodEditor.SetKeyboardType_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>keyboard_type</code></td> |
| <td> |
| <code><a class='link' href='#KeyboardType'>KeyboardType</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### SetState {#InputMethodEditor.SetState} |
| |
| |
| #### Request {#InputMethodEditor.SetState_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>state</code></td> |
| <td> |
| <code><a class='link' href='#TextInputState'>TextInputState</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### Show {#InputMethodEditor.Show} |
| |
| |
| #### Request {#InputMethodEditor.Show_Request} |
| |
| <EMPTY> |
| |
| |
| ## InputMethodEditorClient {#InputMethodEditorClient} |
| *Defined in [fuchsia.ui.input/text_input.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/text_input.fidl;l=108)* |
| <p>An interface to receive information from <code>TextInputService</code>.</p> |
| |
| ### DidUpdateState {#InputMethodEditorClient.DidUpdateState} |
| |
| |
| #### Request {#InputMethodEditorClient.DidUpdateState_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>state</code></td> |
| <td> |
| <code><a class='link' href='#TextInputState'>TextInputState</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>event</code></td> |
| <td> |
| <code><a class='link' href='#InputEvent'>InputEvent</a>?</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### OnAction {#InputMethodEditorClient.OnAction} |
| |
| |
| #### Request {#InputMethodEditorClient.OnAction_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>action</code></td> |
| <td> |
| <code><a class='link' href='#InputMethodAction'>InputMethodAction</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## PointerCaptureListener {#PointerCaptureListener} |
| *Defined in [fuchsia.ui.input/pointer_capture.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/pointer_capture.fidl;l=10)* |
| <p>A method of obtaining global pointer events, regardless of view focus. |
| DEPRECATED: Do not add new uses of this protocol.</p> |
| |
| ### OnPointerEvent {#PointerCaptureListener.OnPointerEvent} |
| |
| |
| #### Request {#PointerCaptureListener.OnPointerEvent_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>event</code></td> |
| <td> |
| <code><a class='link' href='#PointerEvent'>PointerEvent</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#PointerCaptureListener.OnPointerEvent_Response} |
| |
| <EMPTY> |
| |
| ## PointerCaptureListenerRegistry {#PointerCaptureListenerRegistry} |
| *Defined in [fuchsia.ui.input/pointer_capture.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/pointer_capture.fidl;l=20)* |
| <p>Injects a listener protocol, along with a ViewRef that defines the coordinate space of the |
| captured pointer events. |
| DEPRECATED: Do not add new uses of this protocol.</p> |
| |
| ### RegisterListener {#PointerCaptureListenerRegistry.RegisterListener} |
| |
| <p>This protocol will be subsumed by gesture disambiguation.</p> |
| |
| #### Request {#PointerCaptureListenerRegistry.RegisterListener_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>listener</code></td> |
| <td> |
| <code><a class='link' href='#PointerCaptureListener'>PointerCaptureListener</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>view_ref</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.ui.views/'>fuchsia.ui.views</a>/<a class='link' href='../fuchsia.ui.views/#ViewRef'>ViewRef</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#PointerCaptureListenerRegistry.RegisterListener_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>success</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## **STRUCTS** |
| |
| ### Axis {#Axis data-text="Axis"} |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=34)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="Axis.range"> |
| <td><code>range</code></td> |
| <td> |
| <code><a class='link' href='#Range'>Range</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="Axis.resolution"> |
| <td><code>resolution</code></td> |
| <td> |
| <code>int32</code> |
| </td> |
| <td></td> |
| <td>1</td> |
| </tr> |
| <tr id="Axis.scale"> |
| <td><code>scale</code></td> |
| <td> |
| <code><a class='link' href='#AxisScale'>AxisScale</a></code> |
| </td> |
| <td></td> |
| <td><a class='link' href='#AxisScale.LINEAR'>AxisScale.LINEAR</a></td> |
| </tr> |
| </table> |
| |
| ### AxisF {#AxisF data-text="AxisF"} |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=42)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="AxisF.range"> |
| <td><code>range</code></td> |
| <td> |
| <code><a class='link' href='#RangeF'>RangeF</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="AxisF.resolution"> |
| <td><code>resolution</code></td> |
| <td> |
| <code>float32</code> |
| </td> |
| <td></td> |
| <td>1</td> |
| </tr> |
| <tr id="AxisF.scale"> |
| <td><code>scale</code></td> |
| <td> |
| <code><a class='link' href='#AxisScale'>AxisScale</a></code> |
| </td> |
| <td></td> |
| <td><a class='link' href='#AxisScale.LINEAR'>AxisScale.LINEAR</a></td> |
| </tr> |
| </table> |
| |
| ### DeviceDescriptor {#DeviceDescriptor data-text="DeviceDescriptor"} |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=248)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="DeviceDescriptor.device_info"> |
| <td><code>device_info</code></td> |
| <td> |
| <code><a class='link' href='#DeviceInfo'>DeviceInfo</a>?</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="DeviceDescriptor.keyboard"> |
| <td><code>keyboard</code></td> |
| <td> |
| <code><a class='link' href='#KeyboardDescriptor'>KeyboardDescriptor</a>?</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="DeviceDescriptor.media_buttons"> |
| <td><code>media_buttons</code></td> |
| <td> |
| <code><a class='link' href='#MediaButtonsDescriptor'>MediaButtonsDescriptor</a>?</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="DeviceDescriptor.mouse"> |
| <td><code>mouse</code></td> |
| <td> |
| <code><a class='link' href='#MouseDescriptor'>MouseDescriptor</a>?</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="DeviceDescriptor.stylus"> |
| <td><code>stylus</code></td> |
| <td> |
| <code><a class='link' href='#StylusDescriptor'>StylusDescriptor</a>?</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="DeviceDescriptor.touchscreen"> |
| <td><code>touchscreen</code></td> |
| <td> |
| <code><a class='link' href='#TouchscreenDescriptor'>TouchscreenDescriptor</a>?</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="DeviceDescriptor.sensor"> |
| <td><code>sensor</code></td> |
| <td> |
| <code><a class='link' href='#SensorDescriptor'>SensorDescriptor</a>?</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### DeviceInfo {#DeviceInfo data-text="DeviceInfo"} |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=240)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="DeviceInfo.vendor_id"> |
| <td><code>vendor_id</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="DeviceInfo.product_id"> |
| <td><code>product_id</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="DeviceInfo.version"> |
| <td><code>version</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="DeviceInfo.name"> |
| <td><code>name</code></td> |
| <td> |
| <code>string</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### FocusEvent {#FocusEvent data-text="FocusEvent"} |
| *Defined in [fuchsia.ui.input/input_events.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_events.fidl;l=147)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="FocusEvent.event_time"> |
| <td><code>event_time</code></td> |
| <td> |
| <code>uint64</code> |
| </td> |
| <td><p>Time the event was delivered. The time is in nanoseconds and corresponds |
| to the monotonic time as determined by the zx_clock_get_monotonic syscall.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="FocusEvent.focused"> |
| <td><code>focused</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>Whether the view has gained input focused or not.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### InputReport {#InputReport data-text="InputReport"} |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=259)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="InputReport.event_time"> |
| <td><code>event_time</code></td> |
| <td> |
| <code>uint64</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="InputReport.keyboard"> |
| <td><code>keyboard</code></td> |
| <td> |
| <code><a class='link' href='#KeyboardReport'>KeyboardReport</a>?</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="InputReport.media_buttons"> |
| <td><code>media_buttons</code></td> |
| <td> |
| <code><a class='link' href='#MediaButtonsReport'>MediaButtonsReport</a>?</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="InputReport.mouse"> |
| <td><code>mouse</code></td> |
| <td> |
| <code><a class='link' href='#MouseReport'>MouseReport</a>?</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="InputReport.stylus"> |
| <td><code>stylus</code></td> |
| <td> |
| <code><a class='link' href='#StylusReport'>StylusReport</a>?</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="InputReport.touchscreen"> |
| <td><code>touchscreen</code></td> |
| <td> |
| <code><a class='link' href='#TouchscreenReport'>TouchscreenReport</a>?</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="InputReport.sensor"> |
| <td><code>sensor</code></td> |
| <td> |
| <code><a class='link' href='#SensorReport'>SensorReport</a>?</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="InputReport.trace_id"> |
| <td><code>trace_id</code></td> |
| <td> |
| <code>uint64</code> |
| </td> |
| <td></td> |
| <td>0</td> |
| </tr> |
| </table> |
| |
| ### KeyboardDescriptor {#KeyboardDescriptor data-text="KeyboardDescriptor"} |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=60)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="KeyboardDescriptor.keys"> |
| <td><code>keys</code></td> |
| <td> |
| <code>vector<uint32></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### KeyboardEvent {#KeyboardEvent data-text="KeyboardEvent"} |
| *Defined in [fuchsia.ui.input/input_events.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_events.fidl;l=31)* |
| <p><code>KeyboardEvent</code> represents event generated by a user's interaction with a |
| keyboard.</p> |
| <p>Those events are triggered by distinct pressed state changes of the keys.</p> |
| <p>The state transitions should be as follows: |
| PRESSED -> (REPEAT ->) RELEASED |
| or |
| PRESSED -> (REPEAT ->) CANCELLED</p> |
| <p>The input system will repeat those events automatically when a code_point is |
| available.</p> |
| <p>DEPRECATED: Will be removed in favor of <code>fuchsia.ui.input.KeyEvent</code>.</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="KeyboardEvent.event_time"> |
| <td><code>event_time</code></td> |
| <td> |
| <code>uint64</code> |
| </td> |
| <td><p>Time the event was delivered. The time is in nanoseconds and corresponds |
| to the monotonic time as determined by the zx_clock_get_monotonic syscall.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="KeyboardEvent.device_id"> |
| <td><code>device_id</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="KeyboardEvent.phase"> |
| <td><code>phase</code></td> |
| <td> |
| <code><a class='link' href='#KeyboardEventPhase'>KeyboardEventPhase</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="KeyboardEvent.hid_usage"> |
| <td><code>hid_usage</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td><p>Keyboard HID Usage |
| See https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="KeyboardEvent.code_point"> |
| <td><code>code_point</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td><p>The unicode code point represented by this key event, if any. |
| Dead keys are represented as Unicode combining characters.</p> |
| <p>If there is no unicode code point, this value is zero.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="KeyboardEvent.modifiers"> |
| <td><code>modifiers</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td><p>Key modifiers as defined by the different kModifier constants such as |
| <code>kModifierCapsLock</code> currently pressed</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### KeyboardReport {#KeyboardReport data-text="KeyboardReport"} |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=66)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="KeyboardReport.pressed_keys"> |
| <td><code>pressed_keys</code></td> |
| <td> |
| <code>vector<uint32></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### MediaButtonsDescriptor {#MediaButtonsDescriptor data-text="MediaButtonsDescriptor"} |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=51)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="MediaButtonsDescriptor.buttons"> |
| <td><code>buttons</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### MediaButtonsReport {#MediaButtonsReport data-text="MediaButtonsReport"} |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=229)* |
| <p><code>MediaButtonsReport</code> describes the media buttons event delivered from the event stream. |
| Each bool in the report represents a single button where true means the button |
| is being pressed. A single report should be sent on every state change.</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="MediaButtonsReport.volume_up"> |
| <td><code>volume_up</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="MediaButtonsReport.volume_down"> |
| <td><code>volume_down</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="MediaButtonsReport.mic_mute"> |
| <td><code>mic_mute</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="MediaButtonsReport.reset"> |
| <td><code>reset</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="MediaButtonsReport.pause"> |
| <td><code>pause</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="MediaButtonsReport.camera_disable"> |
| <td><code>camera_disable</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### MouseDescriptor {#MouseDescriptor data-text="MouseDescriptor"} |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=75)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="MouseDescriptor.rel_x"> |
| <td><code>rel_x</code></td> |
| <td> |
| <code><a class='link' href='#Axis'>Axis</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="MouseDescriptor.rel_y"> |
| <td><code>rel_y</code></td> |
| <td> |
| <code><a class='link' href='#Axis'>Axis</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="MouseDescriptor.vscroll"> |
| <td><code>vscroll</code></td> |
| <td> |
| <code><a class='link' href='#Axis'>Axis</a>?</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="MouseDescriptor.hscroll"> |
| <td><code>hscroll</code></td> |
| <td> |
| <code><a class='link' href='#Axis'>Axis</a>?</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="MouseDescriptor.buttons"> |
| <td><code>buttons</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### MouseReport {#MouseReport data-text="MouseReport"} |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=92)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="MouseReport.rel_x"> |
| <td><code>rel_x</code></td> |
| <td> |
| <code>int32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="MouseReport.rel_y"> |
| <td><code>rel_y</code></td> |
| <td> |
| <code>int32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="MouseReport.rel_hscroll"> |
| <td><code>rel_hscroll</code></td> |
| <td> |
| <code>int32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="MouseReport.rel_vscroll"> |
| <td><code>rel_vscroll</code></td> |
| <td> |
| <code>int32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="MouseReport.pressed_buttons"> |
| <td><code>pressed_buttons</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### PointerEvent {#PointerEvent data-text="PointerEvent"} |
| *Defined in [fuchsia.ui.input/input_events.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_events.fidl;l=114)* |
| <p>Pointers represent raw data about the user's interaction with the screen.</p> |
| <p>The state transitions should be as follows: |
| ADD (-> HOVER) -> DOWN -> MOVE -> UP (-> HOVER) -> REMOVE</p> |
| <p>At any point after the initial ADD, a transition to CANCEL is also possible.</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="PointerEvent.event_time"> |
| <td><code>event_time</code></td> |
| <td> |
| <code>uint64</code> |
| </td> |
| <td><p>Time the event was delivered. The time is in nanoseconds and corresponds |
| to the monotonic time as determined by the zx_clock_get_monotonic syscall.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="PointerEvent.device_id"> |
| <td><code>device_id</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="PointerEvent.pointer_id"> |
| <td><code>pointer_id</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="PointerEvent.type"> |
| <td><code>type</code></td> |
| <td> |
| <code><a class='link' href='#PointerEventType'>PointerEventType</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="PointerEvent.phase"> |
| <td><code>phase</code></td> |
| <td> |
| <code><a class='link' href='#PointerEventPhase'>PointerEventPhase</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="PointerEvent.x"> |
| <td><code>x</code></td> |
| <td> |
| <code>float32</code> |
| </td> |
| <td><p><code>x</code> and <code>y</code> are in the coordinate system of the View.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="PointerEvent.y"> |
| <td><code>y</code></td> |
| <td> |
| <code>float32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="PointerEvent.radius_major"> |
| <td><code>radius_major</code></td> |
| <td> |
| <code>float32</code> |
| </td> |
| <td></td> |
| <td>0</td> |
| </tr> |
| <tr id="PointerEvent.radius_minor"> |
| <td><code>radius_minor</code></td> |
| <td> |
| <code>float32</code> |
| </td> |
| <td></td> |
| <td>0</td> |
| </tr> |
| <tr id="PointerEvent.buttons"> |
| <td><code>buttons</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td><p>Currently pressed buttons as defined the kButton constants such as |
| <code>kMousePrimaryButton</code></p> |
| </td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### Range {#Range data-text="Range"} |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=18)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="Range.min"> |
| <td><code>min</code></td> |
| <td> |
| <code>int32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="Range.max"> |
| <td><code>max</code></td> |
| <td> |
| <code>int32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### RangeF {#RangeF data-text="RangeF"} |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=23)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="RangeF.min"> |
| <td><code>min</code></td> |
| <td> |
| <code>float32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="RangeF.max"> |
| <td><code>max</code></td> |
| <td> |
| <code>float32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### SendKeyboardInputCmd {#SendKeyboardInputCmd data-text="SendKeyboardInputCmd"} |
| *Defined in [fuchsia.ui.input/commands.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/commands.fidl;l=19)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="SendKeyboardInputCmd.compositor_id"> |
| <td><code>compositor_id</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="SendKeyboardInputCmd.keyboard_event"> |
| <td><code>keyboard_event</code></td> |
| <td> |
| <code><a class='link' href='#KeyboardEvent'>KeyboardEvent</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### SendPointerInputCmd {#SendPointerInputCmd data-text="SendPointerInputCmd"} |
| *Defined in [fuchsia.ui.input/commands.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/commands.fidl;l=24)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="SendPointerInputCmd.compositor_id"> |
| <td><code>compositor_id</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="SendPointerInputCmd.pointer_event"> |
| <td><code>pointer_event</code></td> |
| <td> |
| <code><a class='link' href='#PointerEvent'>PointerEvent</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### SensorDescriptor {#SensorDescriptor data-text="SensorDescriptor"} |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=201)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="SensorDescriptor.type"> |
| <td><code>type</code></td> |
| <td> |
| <code><a class='link' href='#SensorType'>SensorType</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="SensorDescriptor.loc"> |
| <td><code>loc</code></td> |
| <td> |
| <code><a class='link' href='#SensorLocation'>SensorLocation</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="SensorDescriptor.min_sampling_freq"> |
| <td><code>min_sampling_freq</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="SensorDescriptor.max_sampling_freq"> |
| <td><code>max_sampling_freq</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="SensorDescriptor.fifo_max_event_count"> |
| <td><code>fifo_max_event_count</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="SensorDescriptor.phys_min"> |
| <td><code>phys_min</code></td> |
| <td> |
| <code>int32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="SensorDescriptor.phys_max"> |
| <td><code>phys_max</code></td> |
| <td> |
| <code>int32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### SetHardKeyboardDeliveryCmd {#SetHardKeyboardDeliveryCmd data-text="SetHardKeyboardDeliveryCmd"} |
| *Defined in [fuchsia.ui.input/commands.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/commands.fidl;l=35)* |
| <p>Typically, clients should receive text inputs from an IME.</p> |
| <p>For cases where no IME mediation is desired (such as a game application), |
| this command requests Scenic to deliver hard keyboard events to the client.</p> |
| <p>By default, Scenic will <em>not</em> deliver hard keyboard events to a client.</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="SetHardKeyboardDeliveryCmd.delivery_request"> |
| <td><code>delivery_request</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### SetParallelDispatchCmd {#SetParallelDispatchCmd data-text="SetParallelDispatchCmd"} |
| *Defined in [fuchsia.ui.input/commands.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/commands.fidl;l=40)* |
| <p>Obsolete. This command is a no-op.</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="SetParallelDispatchCmd.parallel_dispatch"> |
| <td><code>parallel_dispatch</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### StylusDescriptor {#StylusDescriptor data-text="StylusDescriptor"} |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=108)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="StylusDescriptor.x"> |
| <td><code>x</code></td> |
| <td> |
| <code><a class='link' href='#Axis'>Axis</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="StylusDescriptor.y"> |
| <td><code>y</code></td> |
| <td> |
| <code><a class='link' href='#Axis'>Axis</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="StylusDescriptor.pressure"> |
| <td><code>pressure</code></td> |
| <td> |
| <code><a class='link' href='#Axis'>Axis</a>?</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="StylusDescriptor.is_invertible"> |
| <td><code>is_invertible</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td></td> |
| <td>false</td> |
| </tr> |
| <tr id="StylusDescriptor.buttons"> |
| <td><code>buttons</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### StylusReport {#StylusReport data-text="StylusReport"} |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=124)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="StylusReport.x"> |
| <td><code>x</code></td> |
| <td> |
| <code>int32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="StylusReport.y"> |
| <td><code>y</code></td> |
| <td> |
| <code>int32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="StylusReport.pressure"> |
| <td><code>pressure</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="StylusReport.is_in_contact"> |
| <td><code>is_in_contact</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="StylusReport.in_range"> |
| <td><code>in_range</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="StylusReport.is_inverted"> |
| <td><code>is_inverted</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="StylusReport.pressed_buttons"> |
| <td><code>pressed_buttons</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### TextInputState {#TextInputState data-text="TextInputState"} |
| *Defined in [fuchsia.ui.input/text_input.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/text_input.fidl;l=63)* |
| <p>The current text, selection, and composing state for editing a run of text.</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="TextInputState.revision"> |
| <td><code>revision</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td><p>Current state revision to avoid race conditions.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="TextInputState.text"> |
| <td><code>text</code></td> |
| <td> |
| <code>string</code> |
| </td> |
| <td><p>The current text being edited.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="TextInputState.selection"> |
| <td><code>selection</code></td> |
| <td> |
| <code><a class='link' href='#TextSelection'>TextSelection</a></code> |
| </td> |
| <td><p>The range of text that is currently selected.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="TextInputState.composing"> |
| <td><code>composing</code></td> |
| <td> |
| <code><a class='link' href='#TextRange'>TextRange</a></code> |
| </td> |
| <td><p>The range of text that is still being composed.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### TextRange {#TextRange data-text="TextRange"} |
| *Defined in [fuchsia.ui.input/text_editing.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/text_editing.fidl;l=33)* |
| <p>A range of characters in a string of text. Although strings in FIDL's wire |
| format are UTF-8 encoded, these indices are measured in UTF-16 code units |
| for legacy reasons. These text input APIs will eventually be replaced by |
| fuchsia.ui.text, which uses code points instead.</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="TextRange.start"> |
| <td><code>start</code></td> |
| <td> |
| <code>int64</code> |
| </td> |
| <td><p>The index of the first UTF-16 code unit in the range.</p> |
| <p>If <code>start</code> and <code>end</code> are both -1, the text range is empty.</p> |
| </td> |
| <td>-1</td> |
| </tr> |
| <tr id="TextRange.end"> |
| <td><code>end</code></td> |
| <td> |
| <code>int64</code> |
| </td> |
| <td><p>The next index after the last UTF-16 code unit in this range.</p> |
| <p>If <code>start</code> and <code>end</code> are both -1, the text range is empty.</p> |
| </td> |
| <td>-1</td> |
| </tr> |
| </table> |
| |
| ### TextSelection {#TextSelection data-text="TextSelection"} |
| *Defined in [fuchsia.ui.input/text_editing.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/text_editing.fidl;l=54)* |
| <p>A range of text that represents a selection. Although strings in FIDL's wire |
| format are UTF-8 encoded, these indices are measured in UTF-16 code units |
| for legacy reasons. These text input APIs will eventually be replaced by |
| fuchsia.ui.text, which uses code points instead.</p> |
| <p>Text selection is always directional. Direction should be determined by |
| comparing base and extent.</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="TextSelection.base"> |
| <td><code>base</code></td> |
| <td> |
| <code>int64</code> |
| </td> |
| <td><p>The offset at which the selection originates, as measured in UTF-16 code units.</p> |
| <p>Might be larger than, smaller than, or equal to extent.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="TextSelection.extent"> |
| <td><code>extent</code></td> |
| <td> |
| <code>int64</code> |
| </td> |
| <td><p>The offset at which the selection terminates, as measured in UTF-16 code units.</p> |
| <p>When the user uses the arrow keys to adjust the selection, this is the |
| value that changes. Similarly, if the current theme paints a caret on one |
| side of the selection, this is the location at which to paint the caret.</p> |
| <p>Might be larger than, smaller than, or equal to base.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="TextSelection.affinity"> |
| <td><code>affinity</code></td> |
| <td> |
| <code><a class='link' href='#TextAffinity'>TextAffinity</a></code> |
| </td> |
| <td><p>If the text range is collapsed and has more than one visual location |
| (e.g., occurs at a line break), which of the two locations to use when |
| painting the caret.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### Touch {#Touch data-text="Touch"} |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=159)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="Touch.finger_id"> |
| <td><code>finger_id</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="Touch.x"> |
| <td><code>x</code></td> |
| <td> |
| <code>int32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="Touch.y"> |
| <td><code>y</code></td> |
| <td> |
| <code>int32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="Touch.width"> |
| <td><code>width</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="Touch.height"> |
| <td><code>height</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### TouchscreenDescriptor {#TouchscreenDescriptor data-text="TouchscreenDescriptor"} |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=150)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="TouchscreenDescriptor.x"> |
| <td><code>x</code></td> |
| <td> |
| <code><a class='link' href='#Axis'>Axis</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="TouchscreenDescriptor.y"> |
| <td><code>y</code></td> |
| <td> |
| <code><a class='link' href='#Axis'>Axis</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="TouchscreenDescriptor.max_finger_id"> |
| <td><code>max_finger_id</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### TouchscreenReport {#TouchscreenReport data-text="TouchscreenReport"} |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=176)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="TouchscreenReport.touches"> |
| <td><code>touches</code></td> |
| <td> |
| <code>vector<<a class='link' href='#Touch'>Touch</a>></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| |
| ## **ENUMS** |
| |
| ### AxisScale [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#AxisScale data-text="AxisScale"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=28)* |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="AxisScale.LINEAR"> |
| <td><h3 id="AxisScale.LINEAR" class="add-link hide-from-toc">LINEAR</h3></td> |
| <td><code>0</code></td> |
| <td></td> |
| </tr> |
| <tr id="AxisScale.LOGARITHMIC"> |
| <td><h3 id="AxisScale.LOGARITHMIC" class="add-link hide-from-toc">LOGARITHMIC</h3></td> |
| <td><code>1</code></td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### InputMethodAction [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#InputMethodAction data-text="InputMethodAction"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.ui.input/text_input.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/text_input.fidl;l=36)* |
| <p>Determines what happens if the "action" key is pressed on the keyboard, |
| typically would either be the "Enter" key on a physical keyboard, or an |
| action button on a virtual keyboard, which is usually placed where Enter |
| would be, but with a custom label.</p> |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="InputMethodAction.UNSPECIFIED"> |
| <td><h3 id="InputMethodAction.UNSPECIFIED" class="add-link hide-from-toc">UNSPECIFIED</h3></td> |
| <td><code>0</code></td> |
| <td><p>The method action was not specified at all.</p> |
| </td> |
| </tr> |
| <tr id="InputMethodAction.NONE"> |
| <td><h3 id="InputMethodAction.NONE" class="add-link hide-from-toc">NONE</h3></td> |
| <td><code>1</code></td> |
| <td><p>No special action is requested.</p> |
| </td> |
| </tr> |
| <tr id="InputMethodAction.GO"> |
| <td><h3 id="InputMethodAction.GO" class="add-link hide-from-toc">GO</h3></td> |
| <td><code>2</code></td> |
| <td><p>The action is "Go", e.g. execute a command.</p> |
| </td> |
| </tr> |
| <tr id="InputMethodAction.SEARCH"> |
| <td><h3 id="InputMethodAction.SEARCH" class="add-link hide-from-toc">SEARCH</h3></td> |
| <td><code>3</code></td> |
| <td><p>The action is to invoke a search.</p> |
| </td> |
| </tr> |
| <tr id="InputMethodAction.SEND"> |
| <td><h3 id="InputMethodAction.SEND" class="add-link hide-from-toc">SEND</h3></td> |
| <td><code>4</code></td> |
| <td><p>The action is to invoke "send", e.g. if this is an email or a SMS |
| message.</p> |
| </td> |
| </tr> |
| <tr id="InputMethodAction.NEXT"> |
| <td><h3 id="InputMethodAction.NEXT" class="add-link hide-from-toc">NEXT</h3></td> |
| <td><code>5</code></td> |
| <td><p>The action is to move to the next field in the focus sequence.</p> |
| </td> |
| </tr> |
| <tr id="InputMethodAction.DONE"> |
| <td><h3 id="InputMethodAction.DONE" class="add-link hide-from-toc">DONE</h3></td> |
| <td><code>6</code></td> |
| <td><p>The action is to end the text editing.</p> |
| </td> |
| </tr> |
| <tr id="InputMethodAction.PREVIOUS"> |
| <td><h3 id="InputMethodAction.PREVIOUS" class="add-link hide-from-toc">PREVIOUS</h3></td> |
| <td><code>7</code></td> |
| <td><p>The action is to move to the previous field in the focus sequence.</p> |
| </td> |
| </tr> |
| <tr id="InputMethodAction.NEWLINE"> |
| <td><h3 id="InputMethodAction.NEWLINE" class="add-link hide-from-toc">NEWLINE</h3></td> |
| <td><code>8</code></td> |
| <td><p>Pressing the action key inserts a new line into the text field. In |
| contrast to other values, which all stop editing and invoke a specific |
| action.</p> |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 8</span></div></td> |
| </tr> |
| </table> |
| |
| ### KeyboardEventPhase [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#KeyboardEventPhase data-text="KeyboardEventPhase"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.ui.input/input_events.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_events.fidl;l=6)* |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="KeyboardEventPhase.PRESSED"> |
| <td><h3 id="KeyboardEventPhase.PRESSED" class="add-link hide-from-toc">PRESSED</h3></td> |
| <td><code>0</code></td> |
| <td><p>When key is pressed down.</p> |
| </td> |
| </tr> |
| <tr id="KeyboardEventPhase.RELEASED"> |
| <td><h3 id="KeyboardEventPhase.RELEASED" class="add-link hide-from-toc">RELEASED</h3></td> |
| <td><code>1</code></td> |
| <td><p>When key is released.</p> |
| </td> |
| </tr> |
| <tr id="KeyboardEventPhase.CANCELLED"> |
| <td><h3 id="KeyboardEventPhase.CANCELLED" class="add-link hide-from-toc">CANCELLED</h3></td> |
| <td><code>2</code></td> |
| <td><p>This key <code>PRESSED</code> is not directed to this input client anymore.</p> |
| </td> |
| </tr> |
| <tr id="KeyboardEventPhase.REPEAT"> |
| <td><h3 id="KeyboardEventPhase.REPEAT" class="add-link hide-from-toc">REPEAT</h3></td> |
| <td><code>3</code></td> |
| <td><p>Whether this is an automatically generated key repeat</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### KeyboardType [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#KeyboardType data-text="KeyboardType"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.ui.input/text_input.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/text_input.fidl;l=15)* |
| <p>Requests a specific keyboard type from the text editing subsystem.</p> |
| <p>This is most relevant for virtual keyboards which have some leeway in how |
| the keyboard is presented to the user, as well as which input is acceptable.</p> |
| <p>For example, a <code>NUMBER</code> keyboard type may only allow decimal numbers to be |
| entered. In addition, a virtual keyboard might only show a numeric keypad |
| for text entry.</p> |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="KeyboardType.TEXT"> |
| <td><h3 id="KeyboardType.TEXT" class="add-link hide-from-toc">TEXT</h3></td> |
| <td><code>0</code></td> |
| <td><p>Single-line text fields only. Use MULTILINE below for multiline text.</p> |
| </td> |
| </tr> |
| <tr id="KeyboardType.NUMBER"> |
| <td><h3 id="KeyboardType.NUMBER" class="add-link hide-from-toc">NUMBER</h3></td> |
| <td><code>1</code></td> |
| <td><p>A text field intended for entering numbers only.</p> |
| </td> |
| </tr> |
| <tr id="KeyboardType.PHONE"> |
| <td><h3 id="KeyboardType.PHONE" class="add-link hide-from-toc">PHONE</h3></td> |
| <td><code>2</code></td> |
| <td><p>A text field for entering phone numbers only (e.g. digits, limited |
| punctuation, perhaps some validation).</p> |
| </td> |
| </tr> |
| <tr id="KeyboardType.DATETIME"> |
| <td><h3 id="KeyboardType.DATETIME" class="add-link hide-from-toc">DATETIME</h3></td> |
| <td><code>3</code></td> |
| <td><p>A text field for entering date and time. For example, may have a |
| calendar widget on the side, to aid in date time entry.</p> |
| </td> |
| </tr> |
| <tr id="KeyboardType.MULTILINE"> |
| <td><h3 id="KeyboardType.MULTILINE" class="add-link hide-from-toc">MULTILINE</h3></td> |
| <td><code>4</code></td> |
| <td><p>Multi-line text.</p> |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 8</span></div></td> |
| </tr> |
| </table> |
| |
| ### PointerEventPhase [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#PointerEventPhase data-text="PointerEventPhase"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.ui.input/input_events.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_events.fidl;l=69)* |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="PointerEventPhase.ADD"> |
| <td><h3 id="PointerEventPhase.ADD" class="add-link hide-from-toc">ADD</h3></td> |
| <td><code>0</code></td> |
| <td><p>The device has started tracking the pointer.</p> |
| <p>For example, the pointer might be hovering above the device, having not yet |
| made contact with the surface of the device.</p> |
| </td> |
| </tr> |
| <tr id="PointerEventPhase.HOVER"> |
| <td><h3 id="PointerEventPhase.HOVER" class="add-link hide-from-toc">HOVER</h3></td> |
| <td><code>1</code></td> |
| <td><p>The pointer has moved with respect to the device while not in contact with |
| the device.</p> |
| </td> |
| </tr> |
| <tr id="PointerEventPhase.DOWN"> |
| <td><h3 id="PointerEventPhase.DOWN" class="add-link hide-from-toc">DOWN</h3></td> |
| <td><code>2</code></td> |
| <td><p>The pointer has made contact with the device.</p> |
| <p>For <code>MOUSE</code> devices, this is triggered when the primary button is pressed |
| down to emulate a touch on the screen.</p> |
| </td> |
| </tr> |
| <tr id="PointerEventPhase.MOVE"> |
| <td><h3 id="PointerEventPhase.MOVE" class="add-link hide-from-toc">MOVE</h3></td> |
| <td><code>3</code></td> |
| <td><p>The pointer has moved with respect to the device while in contact with the |
| device.</p> |
| </td> |
| </tr> |
| <tr id="PointerEventPhase.UP"> |
| <td><h3 id="PointerEventPhase.UP" class="add-link hide-from-toc">UP</h3></td> |
| <td><code>4</code></td> |
| <td><p>The pointer has stopped making contact with the device.</p> |
| <p>For <code>MOUSE</code> devices, this is triggered when the primary button is |
| released.</p> |
| </td> |
| </tr> |
| <tr id="PointerEventPhase.REMOVE"> |
| <td><h3 id="PointerEventPhase.REMOVE" class="add-link hide-from-toc">REMOVE</h3></td> |
| <td><code>5</code></td> |
| <td><p>The device is no longer tracking the pointer.</p> |
| <p>For example, the pointer might have drifted out of the device's hover |
| detection range or might have been disconnected from the system entirely.</p> |
| </td> |
| </tr> |
| <tr id="PointerEventPhase.CANCEL"> |
| <td><h3 id="PointerEventPhase.CANCEL" class="add-link hide-from-toc">CANCEL</h3></td> |
| <td><code>6</code></td> |
| <td><p>The input from the pointer is no longer directed towards this receiver.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### PointerEventType [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#PointerEventType data-text="PointerEventType"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.ui.input/input_events.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_events.fidl;l=55)* |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="PointerEventType.TOUCH"> |
| <td><h3 id="PointerEventType.TOUCH" class="add-link hide-from-toc">TOUCH</h3></td> |
| <td><code>0</code></td> |
| <td><p>A touch-based pointer device.</p> |
| </td> |
| </tr> |
| <tr id="PointerEventType.STYLUS"> |
| <td><h3 id="PointerEventType.STYLUS" class="add-link hide-from-toc">STYLUS</h3></td> |
| <td><code>1</code></td> |
| <td><p>A pointer device with a stylus.</p> |
| </td> |
| </tr> |
| <tr id="PointerEventType.INVERTED_STYLUS"> |
| <td><h3 id="PointerEventType.INVERTED_STYLUS" class="add-link hide-from-toc">INVERTED_STYLUS</h3></td> |
| <td><code>2</code></td> |
| <td><p>A pointer device with a stylus that has been inverted.</p> |
| </td> |
| </tr> |
| <tr id="PointerEventType.MOUSE"> |
| <td><h3 id="PointerEventType.MOUSE" class="add-link hide-from-toc">MOUSE</h3></td> |
| <td><code>3</code></td> |
| <td><p>A pointer device without a stylus.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### SensorLocation [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#SensorLocation data-text="SensorLocation"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=192)* |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="SensorLocation.UNKNOWN"> |
| <td><h3 id="SensorLocation.UNKNOWN" class="add-link hide-from-toc">UNKNOWN</h3></td> |
| <td><code>0</code></td> |
| <td></td> |
| </tr> |
| <tr id="SensorLocation.BASE"> |
| <td><h3 id="SensorLocation.BASE" class="add-link hide-from-toc">BASE</h3></td> |
| <td><code>1</code></td> |
| <td></td> |
| </tr> |
| <tr id="SensorLocation.LID"> |
| <td><h3 id="SensorLocation.LID" class="add-link hide-from-toc">LID</h3></td> |
| <td><code>2</code></td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### SensorType [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#SensorType data-text="SensorType"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=185)* |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="SensorType.ACCELEROMETER"> |
| <td><h3 id="SensorType.ACCELEROMETER" class="add-link hide-from-toc">ACCELEROMETER</h3></td> |
| <td><code>0</code></td> |
| <td></td> |
| </tr> |
| <tr id="SensorType.GYROSCOPE"> |
| <td><h3 id="SensorType.GYROSCOPE" class="add-link hide-from-toc">GYROSCOPE</h3></td> |
| <td><code>1</code></td> |
| <td></td> |
| </tr> |
| <tr id="SensorType.MAGNETOMETER"> |
| <td><h3 id="SensorType.MAGNETOMETER" class="add-link hide-from-toc">MAGNETOMETER</h3></td> |
| <td><code>2</code></td> |
| <td></td> |
| </tr> |
| <tr id="SensorType.LIGHTMETER"> |
| <td><h3 id="SensorType.LIGHTMETER" class="add-link hide-from-toc">LIGHTMETER</h3></td> |
| <td><code>3</code></td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### TextAffinity [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#TextAffinity data-text="TextAffinity"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.ui.input/text_editing.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/text_editing.fidl;l=15)* |
| <p>Whether a TextPosition is visually upstream or downstream of its offset.</p> |
| <p>For example, when a text position exists at a line break, a single offset has |
| two visual positions, one prior to the line break (at the end of the first |
| line) and one after the line break (at the start of the second line). A text |
| affinity disambiguates between those cases. (Something similar happens with |
| between runs of bidirectional text.)</p> |
| <p>We do not expect new values to be added to this enum.</p> |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="TextAffinity.UPSTREAM"> |
| <td><h3 id="TextAffinity.UPSTREAM" class="add-link hide-from-toc">UPSTREAM</h3></td> |
| <td><code>0</code></td> |
| <td><p>The position has affinity for the upstream side of the text position.</p> |
| <p>For example, if the offset of the text position is a line break, the |
| position represents the end of the first line.</p> |
| </td> |
| </tr> |
| <tr id="TextAffinity.DOWNSTREAM"> |
| <td><h3 id="TextAffinity.DOWNSTREAM" class="add-link hide-from-toc">DOWNSTREAM</h3></td> |
| <td><code>1</code></td> |
| <td><p>The position has affinity for the downstream side of the text position.</p> |
| <p>For example, if the offset of the text position is a line break, the |
| position represents the start of the second line.</p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## **TABLES** |
| |
| ### MediaButtonsEvent {#MediaButtonsEvent data-text="MediaButtonsEvent"} |
| |
| |
| *Defined in [fuchsia.ui.input/input_events.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_events.fidl;l=156)* |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="MediaButtonsEvent.volume"> |
| <td><h3 id="MediaButtonsEvent.volume" class="add-link hide-from-toc">1</h3></td> |
| <td><code>volume</code></td> |
| <td> |
| <code>int8</code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="MediaButtonsEvent.mic_mute"> |
| <td><h3 id="MediaButtonsEvent.mic_mute" class="add-link hide-from-toc">2</h3></td> |
| <td><code>mic_mute</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="MediaButtonsEvent.pause"> |
| <td><h3 id="MediaButtonsEvent.pause" class="add-link hide-from-toc">3</h3></td> |
| <td><code>pause</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="MediaButtonsEvent.camera_disable"> |
| <td><h3 id="MediaButtonsEvent.camera_disable" class="add-link hide-from-toc">4</h3></td> |
| <td><code>camera_disable</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| |
| ## **UNIONS** |
| |
| ### Command [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Command data-text="Command"} |
| *Defined in [fuchsia.ui.input/commands.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/commands.fidl;l=6)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Command.send_keyboard_input"> |
| <td><h3 id="Command.send_keyboard_input" class="add-link hide-from-toc">1</h3></td> |
| <td><code>send_keyboard_input</code></td> |
| <td> |
| <code><a class='link' href='#SendKeyboardInputCmd'>SendKeyboardInputCmd</a></code> |
| </td> |
| <td><p>Commands for conveying input events to a <code>Session</code>. |
| Structs defined in input_events.fidl.</p> |
| </td> |
| </tr> |
| <tr id="Command.send_pointer_input"> |
| <td><h3 id="Command.send_pointer_input" class="add-link hide-from-toc">2</h3></td> |
| <td><code>send_pointer_input</code></td> |
| <td> |
| <code><a class='link' href='#SendPointerInputCmd'>SendPointerInputCmd</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Command.set_hard_keyboard_delivery"> |
| <td><h3 id="Command.set_hard_keyboard_delivery" class="add-link hide-from-toc">3</h3></td> |
| <td><code>set_hard_keyboard_delivery</code></td> |
| <td> |
| <code><a class='link' href='#SetHardKeyboardDeliveryCmd'>SetHardKeyboardDeliveryCmd</a></code> |
| </td> |
| <td><p>Command to enable/disable delivery of hard keyboard events.</p> |
| </td> |
| </tr> |
| <tr id="Command.set_parallel_dispatch"> |
| <td><h3 id="Command.set_parallel_dispatch" class="add-link hide-from-toc">4</h3></td> |
| <td><code>set_parallel_dispatch</code></td> |
| <td> |
| <code><a class='link' href='#SetParallelDispatchCmd'>SetParallelDispatchCmd</a></code> |
| </td> |
| <td><p>Obsolete. This command is a no-op.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### InputEvent [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#InputEvent data-text="InputEvent"} |
| *Defined in [fuchsia.ui.input/input_events.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_events.fidl;l=164)* |
| <p>This union does not include MediaButtonsEvent because it's processed differently.</p> |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="InputEvent.pointer"> |
| <td><h3 id="InputEvent.pointer" class="add-link hide-from-toc">1</h3></td> |
| <td><code>pointer</code></td> |
| <td> |
| <code><a class='link' href='#PointerEvent'>PointerEvent</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="InputEvent.keyboard"> |
| <td><h3 id="InputEvent.keyboard" class="add-link hide-from-toc">2</h3></td> |
| <td><code>keyboard</code></td> |
| <td> |
| <code><a class='link' href='#KeyboardEvent'>KeyboardEvent</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="InputEvent.focus"> |
| <td><h3 id="InputEvent.focus" class="add-link hide-from-toc">3</h3></td> |
| <td><code>focus</code></td> |
| <td> |
| <code><a class='link' href='#FocusEvent'>FocusEvent</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### SensorReport [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#SensorReport data-text="SensorReport"} |
| *Defined in [fuchsia.ui.input/input_reports.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_reports.fidl;l=221)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="SensorReport.vector"> |
| <td><h3 id="SensorReport.vector" class="add-link hide-from-toc">1</h3></td> |
| <td><code>vector</code></td> |
| <td> |
| <code>int16[3]</code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="SensorReport.scalar"> |
| <td><h3 id="SensorReport.scalar" class="add-link hide-from-toc">2</h3></td> |
| <td><code>scalar</code></td> |
| <td> |
| <code>uint16</code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| |
| |
| ## **CONSTANTS** |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Type</th><th>Description</th></tr> |
| <tr id="kCameraDisable"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/usages.fidl;l=20">kCameraDisable</a></td> |
| <td> |
| <code>32</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kMicMute"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/usages.fidl;l=17">kMicMute</a></td> |
| <td> |
| <code>4</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kModifierAlt"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_event_constants.fidl;l=17">kModifierAlt</a></td> |
| <td> |
| <code>96</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kModifierCapsLock"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_event_constants.fidl;l=8">kModifierCapsLock</a></td> |
| <td> |
| <code>1</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kModifierControl"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_event_constants.fidl;l=14">kModifierControl</a></td> |
| <td> |
| <code>24</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kModifierLeftAlt"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_event_constants.fidl;l=15">kModifierLeftAlt</a></td> |
| <td> |
| <code>32</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kModifierLeftControl"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_event_constants.fidl;l=12">kModifierLeftControl</a></td> |
| <td> |
| <code>8</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kModifierLeftShift"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_event_constants.fidl;l=9">kModifierLeftShift</a></td> |
| <td> |
| <code>2</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kModifierLeftSuper"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_event_constants.fidl;l=18">kModifierLeftSuper</a></td> |
| <td> |
| <code>128</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kModifierNone"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_event_constants.fidl;l=7">kModifierNone</a></td> |
| <td> |
| <code>0</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td><p>Keyboard modifiers</p> |
| </td> |
| </tr> |
| <tr id="kModifierRightAlt"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_event_constants.fidl;l=16">kModifierRightAlt</a></td> |
| <td> |
| <code>64</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kModifierRightControl"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_event_constants.fidl;l=13">kModifierRightControl</a></td> |
| <td> |
| <code>16</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kModifierRightShift"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_event_constants.fidl;l=10">kModifierRightShift</a></td> |
| <td> |
| <code>4</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kModifierRightSuper"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_event_constants.fidl;l=19">kModifierRightSuper</a></td> |
| <td> |
| <code>256</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kModifierShift"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_event_constants.fidl;l=11">kModifierShift</a></td> |
| <td> |
| <code>6</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kModifierSuper"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_event_constants.fidl;l=20">kModifierSuper</a></td> |
| <td> |
| <code>384</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kMouseButtonPrimary"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/usages.fidl;l=7">kMouseButtonPrimary</a></td> |
| <td> |
| <code>1</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td><p>Common mouse buttons report constants</p> |
| </td> |
| </tr> |
| <tr id="kMouseButtonSecondary"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/usages.fidl;l=8">kMouseButtonSecondary</a></td> |
| <td> |
| <code>2</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kMouseButtonTertiary"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/usages.fidl;l=9">kMouseButtonTertiary</a></td> |
| <td> |
| <code>4</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kMousePrimaryButton"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_event_constants.fidl;l=23">kMousePrimaryButton</a></td> |
| <td> |
| <code>1</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td><p>Mouse buttons</p> |
| </td> |
| </tr> |
| <tr id="kMouseSecondaryButton"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_event_constants.fidl;l=24">kMouseSecondaryButton</a></td> |
| <td> |
| <code>2</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kMouseTertiaryButton"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_event_constants.fidl;l=25">kMouseTertiaryButton</a></td> |
| <td> |
| <code>4</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kPause"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/usages.fidl;l=19">kPause</a></td> |
| <td> |
| <code>16</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kReset"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/usages.fidl;l=18">kReset</a></td> |
| <td> |
| <code>8</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kStylusBarrel"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/usages.fidl;l=12">kStylusBarrel</a></td> |
| <td> |
| <code>1</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td><p>Common stylus buttons report constants</p> |
| </td> |
| </tr> |
| <tr id="kStylusPrimaryButton"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_event_constants.fidl;l=28">kStylusPrimaryButton</a></td> |
| <td> |
| <code>1</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td><p>Stylus buttons</p> |
| </td> |
| </tr> |
| <tr id="kStylusSecondaryButton"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/input_event_constants.fidl;l=29">kStylusSecondaryButton</a></td> |
| <td> |
| <code>2</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kVolumeDown"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/usages.fidl;l=16">kVolumeDown</a></td> |
| <td> |
| <code>2</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="kVolumeUp"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.ui.input/usages.fidl;l=15">kVolumeUp</a></td> |
| <td> |
| <code>1</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td><p>Used as mask bits (2^N) against ButtonDescriptor.buttons.</p> |
| </td> |
| </tr> |
| </table> |