// 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. #ifndef ASH_KEYBOARD_KEYBOARD_UI_H_ #define ASH_KEYBOARD_KEYBOARD_UI_H_ #include "ash/ash_export.h" #include "base/macros.h" #include "base/memory/scoped_ptr.h" #include "base/observer_list.h" namespace ash { class KeyboardUIObserver; // KeyboardUI wraps the appropriate keyboard ui depending upon whether ash is // running in mus or non-mus. class ASH_EXPORT KeyboardUI { public: virtual ~KeyboardUI(); static scoped_ptr Create(); virtual void Show() = 0; virtual void Hide() = 0; // Returns true if the keyboard is enabled. virtual bool IsEnabled() = 0; void AddObserver(KeyboardUIObserver* observer); void RemoveObserver(KeyboardUIObserver* observer); // Applist also queries this for bounds. If app list remains in ash then // we need to plumb bounds through here too. protected: KeyboardUI(); base::ObserverList* observers() { return &observers_; } private: base::ObserverList observers_; }; } // namespace ash #endif // ASH_KEYBOARD_KEYBOARD_UI_H_