Home | History | Annotate | Download | only in login
      1 // Copyright (c) 2013 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_UI_WEBUI_CHROMEOS_LOGIN_SCREEN_MANAGER_HANDLER_H_
      6 #define CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_SCREEN_MANAGER_HANDLER_H_
      7 
      8 #include <string>
      9 
     10 #include "base/basictypes.h"
     11 #include "base/compiler_specific.h"
     12 #include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h"
     13 
     14 namespace base {
     15 class DictionaryValue;
     16 }
     17 
     18 namespace chromeos {
     19 
     20 class ScreenManagerHandler : public BaseScreenHandler {
     21  public:
     22   class Delegate {
     23    public:
     24     virtual ~Delegate() {}
     25 
     26     virtual void OnButtonPressed(const std::string& screen_name,
     27                                  const std::string& button_id) = 0;
     28     virtual void OnContextChanged(const std::string& screen_name,
     29                                   const base::DictionaryValue* diff) = 0;
     30   };
     31 
     32   ScreenManagerHandler();
     33   virtual ~ScreenManagerHandler();
     34 
     35   void SetDelegate(Delegate* delegate);
     36 
     37   // BaseScreenHandler implementation:
     38   virtual void DeclareLocalizedValues(LocalizedValuesBuilder* builder) OVERRIDE;
     39   virtual void Initialize() OVERRIDE;
     40 
     41   // WebUIMessageHandler implementation.
     42   virtual void RegisterMessages() OVERRIDE;
     43 
     44  private:
     45   void HandleButtonPressed(const std::string& screen_name,
     46                            const std::string& button_id);
     47   void HandleContextChanged(const std::string& screen_name,
     48                             const base::DictionaryValue* diff);
     49 
     50   Delegate* delegate_;
     51 
     52   DISALLOW_COPY_AND_ASSIGN(ScreenManagerHandler);
     53 };
     54 
     55 }  // namespace chromeos
     56 
     57 #endif  // CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_SCREEN_MANAGER_HANDLER_H_
     58