// Copyright (c) 2010 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_OOBE_PROGRESS_BAR_H_
#define CHROME_BROWSER_CHROMEOS_LOGIN_OOBE_PROGRESS_BAR_H_
#pragma once
#include <vector>
#include "base/basictypes.h"
#include "ui/gfx/font.h"
#include "views/view.h"
class SkBitmap;
namespace chromeos {
// Special purpose progress bar with labeled steps that is used to show user's
// progress in OOBE process.
class OobeProgressBar : public views::View {
public:
// Construct progress bar with given labels as steps.
// |steps| is a vector of string IDs from resources.
explicit OobeProgressBar(const std::vector<int>& steps);
// Overridden from View:
virtual void OnPaint(gfx::Canvas* canvas);
// Set the current step for the progress bar. Must be one of the steps
// passed in the constructor.
void SetStep(int step);
protected:
// Overridden from View:
virtual void OnLocaleChanged();
private:
static void InitClass();
// Graphics.
static SkBitmap* dot_current_;
static SkBitmap* dot_empty_;
static SkBitmap* dot_filled_;
static SkBitmap* line_;
static SkBitmap* line_left_;
static SkBitmap* line_right_;
gfx::Font font_;
// Unique ids for progress bar steps. The order defines how the steps are
// enumerated on screen.
std::vector<int> steps_;
// Index of the current step.
size_t progress_;
DISALLOW_COPY_AND_ASSIGN(OobeProgressBar);
};
} // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_LOGIN_OOBE_PROGRESS_BAR_H_