1effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
2effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// found in the LICENSE file.
4effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
5effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#ifndef UI_KEYBOARD_KEYBOARD_LAYOUT_MANAGER_H_
6effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#define UI_KEYBOARD_KEYBOARD_LAYOUT_MANAGER_H_
7effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
8effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "ui/aura/layout_manager.h"
9effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "ui/aura/window.h"
10effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
11effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochnamespace keyboard {
12effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
13effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochclass KeyboardController;
14effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
15effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// LayoutManager for the virtual keyboard container. Manages a single window
16effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// (the virtual keyboard) and keeps it positioned at the bottom of the
17effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// owner window.
18effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochclass KeyboardLayoutManager : public aura::LayoutManager {
19effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch public:
20effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  explicit KeyboardLayoutManager(KeyboardController* controller)
21effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      : controller_(controller), keyboard_(NULL) {
22effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  }
23effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
24effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  // Overridden from aura::LayoutManager
25effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  virtual void OnWindowResized() OVERRIDE;
26effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  virtual void OnWindowAddedToLayout(aura::Window* child) OVERRIDE;
27effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  virtual void OnWillRemoveWindowFromLayout(aura::Window* child) OVERRIDE {}
28effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  virtual void OnWindowRemovedFromLayout(aura::Window* child) OVERRIDE {}
29effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  virtual void OnChildWindowVisibilityChanged(aura::Window* child,
30effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch                                              bool visible) OVERRIDE {}
31effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  virtual void SetChildBounds(aura::Window* child,
32effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch                              const gfx::Rect& requested_bounds) OVERRIDE;
33effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
34effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch private:
35effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  KeyboardController* controller_;
36effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  aura::Window* keyboard_;
37effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
38effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  DISALLOW_COPY_AND_ASSIGN(KeyboardLayoutManager);
39effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch};
40effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
41effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch}  // namespace keyboard
42effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
43effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#endif  // UI_KEYBOARD_KEYBOARD_LAYOUT_MANAGER_H_
44