| Index: chrome/browser/ui/views/toolbar/reload_button.cc
|
| diff --git a/chrome/browser/ui/views/toolbar/reload_button.cc b/chrome/browser/ui/views/toolbar/reload_button.cc
|
| index 195afbdf5fab4edcd46eb4be9e90a98a06126443..80366ea1d34ad96c9d9470c1b08d5600e3b212d6 100644
|
| --- a/chrome/browser/ui/views/toolbar/reload_button.cc
|
| +++ b/chrome/browser/ui/views/toolbar/reload_button.cc
|
| @@ -22,11 +22,6 @@
|
|
|
| namespace {
|
|
|
| -const int kReloadImages[] =
|
| - { IDR_RELOAD, IDR_RELOAD_H, IDR_RELOAD_P, IDR_RELOAD_D };
|
| -
|
| -const int kStopImages[] = { IDR_STOP, IDR_STOP_H, IDR_STOP_P, IDR_STOP_D };
|
| -
|
| // Contents of the Reload drop-down menu.
|
| const int kReloadMenuItems[] = {
|
| IDS_RELOAD_MENU_NORMAL_RELOAD_ITEM,
|
| @@ -44,7 +39,7 @@ const char ReloadButton::kViewClassName[] = "ReloadButton";
|
|
|
| ReloadButton::ReloadButton(LocationBarView* location_bar,
|
| CommandUpdater* command_updater)
|
| - : ButtonDropDown(this, CreateMenuModel()),
|
| + : ToolbarButton(this, CreateMenuModel()),
|
| location_bar_(location_bar),
|
| command_updater_(command_updater),
|
| intended_mode_(MODE_RELOAD),
|
| @@ -71,7 +66,8 @@ void ReloadButton::ChangeMode(Mode mode, bool force) {
|
| !double_click_timer_.IsRunning() : (visible_mode_ != MODE_STOP))) {
|
| double_click_timer_.Stop();
|
| stop_to_reload_timer_.Stop();
|
| - ChangeModeInternal(mode);
|
| + if (mode != visible_mode_)
|
| + ChangeModeInternal(mode);
|
| SetEnabled(true);
|
|
|
| // We want to disable the button if we're preventing a change from stop to
|
| @@ -92,26 +88,14 @@ void ReloadButton::ChangeMode(Mode mode, bool force) {
|
| }
|
|
|
| void ReloadButton::LoadImages() {
|
| - DCHECK_EQ(static_cast<int>(arraysize(kReloadImages)), STATE_COUNT);
|
| - DCHECK_EQ(static_cast<int>(arraysize(kStopImages)), STATE_COUNT);
|
| -
|
| - gfx::ImageSkia* reload_images = images_;
|
| - gfx::ImageSkia* stop_images = alternate_images_;
|
| - if (visible_mode_ == MODE_STOP)
|
| - std::swap(reload_images, stop_images);
|
| -
|
| - ui::ThemeProvider* tp = GetThemeProvider();
|
| - for (int i = 0; i < STATE_COUNT; i++) {
|
| - reload_images[i] = *(tp->GetImageSkiaNamed(kReloadImages[i]));
|
| - stop_images[i] = *(tp->GetImageSkiaNamed(kStopImages[i]));
|
| - }
|
| + ChangeModeInternal(visible_mode_);
|
|
|
| SchedulePaint();
|
| PreferredSizeChanged();
|
| }
|
|
|
| void ReloadButton::OnMouseExited(const ui::MouseEvent& event) {
|
| - ButtonDropDown::OnMouseExited(event);
|
| + ToolbarButton::OnMouseExited(event);
|
| if (!IsMenuShowing())
|
| ChangeMode(intended_mode_, true);
|
| }
|
| @@ -132,7 +116,7 @@ const char* ReloadButton::GetClassName() const {
|
|
|
| void ReloadButton::GetAccessibleState(ui::AccessibleViewState* state) {
|
| if (menu_enabled_)
|
| - ButtonDropDown::GetAccessibleState(state);
|
| + ToolbarButton::GetAccessibleState(state);
|
| else
|
| CustomButton::GetAccessibleState(state);
|
| }
|
| @@ -142,7 +126,7 @@ bool ReloadButton::ShouldShowMenu() {
|
| }
|
|
|
| void ReloadButton::ShowDropDownMenu(ui::MenuSourceType source_type) {
|
| - ButtonDropDown::ShowDropDownMenu(source_type); // Blocks.
|
| + ToolbarButton::ShowDropDownMenu(source_type); // Blocks.
|
| ChangeMode(intended_mode_, true);
|
| }
|
|
|
| @@ -249,11 +233,15 @@ void ReloadButton::ExecuteBrowserCommand(int command, int event_flags) {
|
| }
|
|
|
| void ReloadButton::ChangeModeInternal(Mode mode) {
|
| - if (visible_mode_ == mode)
|
| - return;
|
| + ui::ThemeProvider* tp = GetThemeProvider();
|
| + // |tp| can be NULL in unit tests.
|
| + if (tp) {
|
| + SetImage(views::Button::STATE_NORMAL, *(tp->GetImageSkiaNamed(
|
| + (mode == MODE_RELOAD) ? IDR_RELOAD : IDR_STOP)));
|
| + SetImage(views::Button::STATE_DISABLED, *(tp->GetImageSkiaNamed(
|
| + (mode == MODE_RELOAD) ? IDR_RELOAD_D : IDR_STOP_D)));
|
| + }
|
|
|
| - for (size_t i = 0; i < STATE_COUNT; ++i)
|
| - std::swap(images_[i], alternate_images_[i]);
|
| visible_mode_ = mode;
|
| SchedulePaint();
|
| }
|
|
|