// 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/services/public/interfaces/geometry/geometry.mojom";

module mojo {

interface IWindowManager {
  CloseWindow(uint32 node_id);

  // Shows the keyboard for the specified view. |bounds| is the bounds of the
  // view that is showing focus. |bounds| is relative to the bounds of the node.
  // Events from the keyboard are routed to the view with id |view_id|.
  ShowKeyboard(uint32 view_id, mojo.Rect? bounds);

  // Hides the keyboard. This is ignored if |view_id| is not the view that was
  // last passed to ShowKeyboard().
  HideKeyboard(uint32 view_id);
};

}
