// 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.input2;

using fuchsia.ui.views;

/// Components may request this service from their namespace to
/// be notified of physical key events.
[Discoverable]
protocol Keyboard {
    /// Set key event listener for the specified View.
    SetListener(fuchsia.ui.views.ViewRef view_ref, KeyListener listener) -> ();
};

/// Client should implement this protocol to get notified of key events.
/// Returning HANDLED will stop event propagation to other clients.
/// This notification is triggered on the following conditions:
/// 1. Component is focused (ViewRef is on FocusChain)
/// 2. Parent Views get the event first, child views last
/// 3. Client returning HANDLED stops the propagation to subsequent clients
protocol KeyListener {
    OnKeyEvent(KeyEvent event) -> (Status result);
};

/// Return type for clients key events listener.
enum Status {
    HANDLED = 1;
    NOT_HANDLED = 2;
};
