blob: 8a0afbf3819005493cee99ee9150a0d8d8555d7f [file] [log] [blame]
// 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 |View| 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);
};