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