// 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/public/interfaces/geometry/geometry.mojom"; import "mojo/services/public/interfaces/gpu/command_buffer.mojom"; import "mojo/services/public/interfaces/input_events/input_events.mojom"; import "mojo/services/public/interfaces/surfaces/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(); };