• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_LOCK_WINDOW_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_LOCK_WINDOW_H_
7 
8 #include "base/basictypes.h"
9 
10 namespace views {
11 class Widget;
12 }
13 
14 namespace chromeos {
15 
16 // This is the interface which lock windows used for the WebUI screen locker
17 // implement.
18 class LockWindow {
19  public:
20   // This class provides an interface for the lock window to notify an observer
21   // about its status.
22   class Observer {
23    public:
24     // This method will be called when the lock window has finished all
25     // initialization.
26     virtual void OnLockWindowReady() = 0;
27   };
28 
29   LockWindow();
30 
31   // Attempt to grab inputs on the webview, the actual view displaying the lock
32   // screen WebView.
33   virtual void Grab() = 0;
34 
35   // Returns the actual widget for the lock window.
36   virtual views::Widget* GetWidget() = 0;
37 
38   // Sets the observer class which is notified on lock window events.
set_observer(Observer * observer)39   void set_observer(Observer* observer) {
40     observer_ = observer;
41   }
42 
43   // Creates an instance of the platform specific lock window.
44   static LockWindow* Create();
45 
46  protected:
47   // The observer's OnLockWindowReady method will be called when the lock
48   // window has finished all initialization.
49   Observer* observer_;
50 
51   DISALLOW_COPY_AND_ASSIGN(LockWindow);
52 };
53 
54 }  // namespace chromeos
55 
56 #endif  // CHROME_BROWSER_CHROMEOS_LOGIN_LOCK_WINDOW_H_
57