// Copyright (c) 2011 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 CHROME_BROWSER_CHROMEOS_LOGIN_LOCK_WINDOW_H_ #define CHROME_BROWSER_CHROMEOS_LOGIN_LOCK_WINDOW_H_ #include "base/basictypes.h" namespace views { class Widget; } namespace chromeos { // This is the interface which lock windows used for the WebUI screen locker // implement. class LockWindow { public: // This class provides an interface for the lock window to notify an observer // about its status. class Observer { public: // This method will be called when the lock window has finished all // initialization. virtual void OnLockWindowReady() = 0; }; LockWindow(); // Attempt to grab inputs on the webview, the actual view displaying the lock // screen WebView. virtual void Grab() = 0; // Returns the actual widget for the lock window. virtual views::Widget* GetWidget() = 0; // Sets the observer class which is notified on lock window events. void set_observer(Observer* observer) { observer_ = observer; } // Creates an instance of the platform specific lock window. static LockWindow* Create(); protected: // The observer's OnLockWindowReady method will be called when the lock // window has finished all initialization. Observer* observer_; DISALLOW_COPY_AND_ASSIGN(LockWindow); }; } // namespace chromeos #endif // CHROME_BROWSER_CHROMEOS_LOGIN_LOCK_WINDOW_H_