// Copyright 2016 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 keyboard.mojom;

import "ui/gfx/geometry/mojo/geometry.mojom";

interface KeyboardObserver {
  // Sent any time state changes in the keyboard.
  OnKeyboardStateChanged(bool is_enabled,
                         bool is_visible,
                         uint64 display_id,
                         gfx.mojom.Rect bounds);
};

interface Keyboard {
  // TODO(sky): needs display id.
  Show();
  Hide();

  // Adds an observer. OnKeyboardStateChanged() is immediately called to give
  // the initial state.
  AddObserver(KeyboardObserver observer);
};
