blob: 550aad89a6998dab4b9ca9804abc4e2a5972cf71 [file] [log] [blame]
// 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();
};