172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// found in the LICENSE file. 4bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 5bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#ifndef CHROME_BROWSER_PRINTING_CLOUD_PRINT_CLOUD_PRINT_SETUP_MESSAGE_HANDLER_H_ 6bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#define CHROME_BROWSER_PRINTING_CLOUD_PRINT_CLOUD_PRINT_SETUP_MESSAGE_HANDLER_H_ 7bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 8bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include <string> 9bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 10bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include "base/values.h" 11dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "chrome/browser/ui/webui/html_dialog_ui.h" 12bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 13bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass CloudPrintSetupFlow; 14bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 15bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// This class is used to handle DOM messages from the setup dialog. 1672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsenclass CloudPrintSetupMessageHandler : public WebUIMessageHandler { 17bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen public: 18bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen explicit CloudPrintSetupMessageHandler(CloudPrintSetupFlow* flow) 19bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen : flow_(flow) {} 20bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen virtual ~CloudPrintSetupMessageHandler() {} 21bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 2272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen // WebUIMessageHandler implementation. 2372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen virtual WebUIMessageHandler* Attach(WebUI* web_ui); 24bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 25bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen protected: 2672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen // WebUIMessageHandler implementation. 27bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen virtual void RegisterMessages(); 28bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 29bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Callbacks from the page. 30bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen void HandleSubmitAuth(const ListValue* args); 31201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch void HandlePrintTestPage(const ListValue* args); 32201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch void HandleLearnMore(const ListValue* args); 33bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 34bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen private: 35bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen CloudPrintSetupFlow* flow_; 36bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 37bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen DISALLOW_COPY_AND_ASSIGN(CloudPrintSetupMessageHandler); 38bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 39bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 40bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#endif // CHROME_BROWSER_PRINTING_CLOUD_PRINT_CLOUD_PRINT_SETUP_MESSAGE_HANDLER_H_ 41