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