#ifndef CHROME_BROWSER_UI_WEBUI_CHROMEOS_FIRST_RUN_FIRST_RUN_HANDLER_H_
#define CHROME_BROWSER_UI_WEBUI_CHROMEOS_FIRST_RUN_FIRST_RUN_HANDLER_H_
#include <string>
#include "base/compiler_specific.h"
#include "chrome/browser/ui/webui/chromeos/first_run/first_run_actor.h"
#include "content/public/browser/web_ui_message_handler.h"
namespace chromeos {
class StepPosition;
class FirstRunHandler : public FirstRunActor,
public content::WebUIMessageHandler {
public:
FirstRunHandler();
virtual bool IsInitialized() OVERRIDE;
virtual void SetBackgroundVisible(bool visible) OVERRIDE;
virtual void AddRectangularHole(int x, int y, int width, int height) OVERRIDE;
virtual void AddRoundHole(int x, int y, float radius) OVERRIDE;
virtual void RemoveBackgroundHoles() OVERRIDE;
virtual void ShowStepPositioned(const std::string& name,
const StepPosition& position) OVERRIDE;
virtual void ShowStepPointingTo(const std::string& name,
int x,
int y,
int offset) OVERRIDE;
virtual void HideCurrentStep() OVERRIDE;
virtual void Finalize() OVERRIDE;
virtual bool IsFinalizing() OVERRIDE;
private:
virtual void RegisterMessages() OVERRIDE;
void HandleInitialized(const base::ListValue* args);
void HandleNextButtonClicked(const base::ListValue* args);
void HandleHelpButtonClicked(const base::ListValue* args);
void HandleStepShown(const base::ListValue* args);
void HandleStepHidden(const base::ListValue* args);
void HandleFinalized(const base::ListValue* args);
bool is_initialized_;
bool is_finalizing_;
DISALLOW_COPY_AND_ASSIGN(FirstRunHandler);
};
}
#endif