| // Copyright 2014 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. |
| |
| module mojo; |
| |
| import "mojo/services/geometry/public/interfaces/geometry.mojom"; |
| import "mojo/services/gpu/public/interfaces/command_buffer.mojom"; |
| import "mojo/services/input_events/public/interfaces/input_events.mojom"; |
| import "mojo/services/surfaces/public/interfaces/surface_id.mojom"; |
| |
| [Client=NativeViewportClient] |
| interface NativeViewport { |
| // TODO(sky): having a create function is awkward. Should there be a factory |
| // to create the NativeViewport that takes the size? |
| Create(Size size) => (uint64 native_viewport_id); |
| Show(); |
| Hide(); |
| Close(); |
| SetSize(Size size); |
| SubmittedFrame(SurfaceId surface_id); |
| SetEventDispatcher(NativeViewportEventDispatcher dispatcher); |
| }; |
| |
| interface NativeViewportEventDispatcher { |
| OnEvent(Event event) => (); |
| }; |
| |
| interface NativeViewportClient { |
| // OnSizeChanged() is sent at least once after the callback from Create() is |
| // called. |
| OnSizeChanged(Size size); |
| OnDestroyed(); |
| }; |