class Controller

Defined at line 104 of file fidling/gen/sdk/fidl/fuchsia.input.virtualkeyboard/fuchsia.input.virtualkeyboard/cpp/fidl/fuchsia.input.virtualkeyboard/cpp/markers.h

Provides the ability to control a virtual keyboard.

# Abstract model

The virtual keyboard is "owned" by at most one Controller at a time.

The owner is the Controller whose associated `View` is focused. If no such

Controller exists, the virtual keyboard is unowned (and hidden).

Only the owning Controller may modify the virtual keyboard's configuration.

When the owning Controller loses focus, the implementer of this protocol

will automatically dismiss the virtual keyboard.

# Roles

This protocol will typically be:

* Implemented by platform components which control keyboard visibility.

* Consumed by application runtimes. For example, Flutter, Chromium.

# Related protocols

* This protocol does not provide access to the output of the virtual

keyboard. For that, see one of the following protocols:

* `fuchsia.ui.input3.Keyboard` (for keystrokes)

* `fuchsia.ui.input.InputMethodEditor` (for text editing)

* This protocol is tended for the consumer/user of a virtual keyboard.

The implementer/owner of the keyboard should use `Manager` below.

# Note for implementers

Calls to this protocol's methods would, ideally, only be allowed when the

associated `View` has focus. However, the implementer and consumer of this

protocol receive focus change notifications independently, with no guarantee

that the `Controller` implementer will learn of the focus change

before the `Controller` consumer.

Hence, disallowing calls when the `View` is not focused would run the risk

of spuriously rejecting valid calls, due to the race condition above.

Instead, implementations _should_ buffer requests as described in the

per-method comments.

Public Members

static Openness kOpenness

Records