Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / mojo / services / public / interfaces / native_viewport / native_viewport.mojom
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 module mojo;
6
7 import "mojo/services/public/interfaces/geometry/geometry.mojom";
8 import "mojo/services/public/interfaces/gpu/command_buffer.mojom";
9 import "mojo/services/public/interfaces/input_events/input_events.mojom";
10 import "mojo/services/public/interfaces/surfaces/surface_id.mojom";
11
12 [Client=NativeViewportClient]
13 interface NativeViewport {
14   // TODO(sky): having a create function is awkward. Should there be a factory
15   // to create the NativeViewport that takes the size?
16   Create(Size size) => (uint64 native_viewport_id);
17   Show();
18   Hide();
19   Close();
20   SetSize(Size size);
21   SubmittedFrame(SurfaceId surface_id);
22   SetEventDispatcher(NativeViewportEventDispatcher dispatcher);
23 };
24
25 interface NativeViewportEventDispatcher {
26   OnEvent(Event event) => ();
27 };
28
29 interface NativeViewportClient {
30   // OnSizeChanged() is sent at least once after the callback from Create() is
31   // called.
32   OnSizeChanged(Size size);
33   OnDestroyed();
34 };