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