| // Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| library fuchsia.ui.shortcut; |
| |
| using fuchsia.ui.input3; |
| using fuchsia.ui.focus; |
| |
| /// Shortcuts manager handles keyboard events, detects shortcut activations, |
| /// notifies clients. |
| /// |
| /// Typically this interface is used by RootPresenter to notify the manager |
| /// about events generated by other participants of the user interaction flow. |
| @discoverable |
| protocol Manager { |
| /// Detect shortcuts and notify clients of activations. |
| /// Returns true if shortcut was matched and client handled it, false otherwise. |
| HandleKey3Event(struct { |
| event fuchsia.ui.input3.KeyEvent; |
| }) -> (struct { |
| was_handled bool; |
| }); |
| |
| // Notify Shortcut manager service when the focused chain changes. |
| HandleFocusChange(resource struct { |
| focus_chain fuchsia.ui.focus.FocusChain; |
| }) -> (); |
| }; |