| // 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); |
| }; |