// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

[DartPackage="mojo_services"]
module mojo.ui;

// TODO(jeffbrown): Redesign input event representation later.
import "mojo/services/input_events/interfaces/input_events.mojom";

// The input connection service allows a view to receive input events
// such as key presses and pointer movements.

// This service can be retrieved from the |ViewHost| service provider.
//
// TODO(jeffbrown): Elaborate this.  Particularly need to think about
// how to handle focus and gestures.
[ServiceName="mojo::ui::InputConnection"]
interface InputConnection {
  // Sets the listener for receiving input events.
  //
  // If |listener| is null, then the previously set listener is removed.
  SetListener(InputListener? listener);
};

// An interface applications may implement to receive events from an
// input connection.
interface InputListener {
  // Called to deliver an input event.
  //
  // The |consumed| result should indicate whether the input event was
  // consumed by the connection.  If |consumed| is false, the system may
  // apply default behavior of its own in response to the event.
  OnEvent(mojo.Event event) => (bool consumed);
};
