// 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.

import "mojo/public/interfaces/application/service_provider.mojom";
import "mojo/services/public/interfaces/input_events/input_events.mojom";

module mojo {

interface WindowManager {
  // Requests the WindowManager to embed the app for |url| at an appropriate
  // View. See ViewManger::Embed() for details on |service_provider|.
  Embed(string url, ServiceProvider&? service_provider);
};

// WindowManagerInternalService provides high level window management policies
// and is used by the ViewManager. This interface is marked as internal as only
// the view manager is allowed to connect to this.
[Client=WindowManagerInternalClient]
interface WindowManagerInternalService {
  // Called when an input event is received from the native system. It's
  // expected that when this is received the WindowManagerInternalService will
  // call back to WindowManagerInternalServieClient will call
  // DispatchInputEventToView().
  // TODO(sky): nuke this and instead have an interface specifically for
  // dispatching events in the NativeViewportService.
  OnViewInputEvent(mojo.Event event);
};

// ViewManager provides this interface for functionality only exposed to the
// WindowManagerInternalServie.
[Client=WindowManagerInternalService]
interface WindowManagerInternalClient {
  // Dispatches the specified input event to the specified view.
  DispatchInputEventToView(uint32 view_id, mojo.Event event);
};

}
