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

// TODO(sky): rethink these, and if we do in fact need it come up with a better
// name.

[Client=WindowManagerClient2]
interface WindowManagerService2 {
  SetCapture(uint32 view_id) => (bool success);
  FocusWindow(uint32 view_id) => (bool success);
  ActivateWindow(uint32 view_id) => (bool success);
};

[Client=WindowManagerService2]
interface WindowManagerClient2 {
  // Called when the window manager is ready to use (in the event a client
  // connects to it before it has been initialized).
  OnWindowManagerReady();

  // TODO(beng): how is the WM supposed to know if a view is known to a client
  //             or not?
  OnCaptureChanged(uint32 old_capture_view_id, uint32 new_capture_view_id);

  OnFocusChanged(uint32 old_focused_node_id, uint32 new_focused_node_id);
  OnActiveWindowChanged(uint32 old_focused_window, uint32 new_focused_window);
};

}
