Index: views/controls/button/text_button.cc |
=================================================================== |
--- views/controls/button/text_button.cc (revision 88686) |
+++ views/controls/button/text_button.cc (working copy) |
@@ -653,13 +653,7 @@ |
void TextButton::PaintButton(gfx::Canvas* canvas, PaintButtonMode mode) { |
TextButtonBase::PaintButton(canvas, mode); |
- SkBitmap icon = icon_; |
- if (show_multiple_icon_states_) { |
- if (has_hover_icon_ && (state() == BS_HOT)) |
- icon = icon_hover_; |
- else if (has_pushed_icon_ && (state() == BS_PUSHED)) |
- icon = icon_pushed_; |
- } |
+ const SkBitmap& icon = GetImageToPaint(); |
if (icon.width() > 0) { |
gfx::Rect text_bounds = GetTextBounds(); |
@@ -702,14 +696,7 @@ |
gfx::Rect TextButton::GetTextBounds() const { |
int extra_width = 0; |
- SkBitmap icon = icon_; |
- if (show_multiple_icon_states_) { |
- if (has_hover_icon_ && (state() == BS_HOT)) |
- icon = icon_hover_; |
- else if (has_pushed_icon_ && (state() == BS_PUSHED)) |
- icon = icon_pushed_; |
- } |
- |
+ const SkBitmap& icon = GetImageToPaint(); |
if (icon.width() > 0) |
extra_width = icon.width() + (text_.empty() ? 0 : icon_text_spacing_); |
@@ -727,4 +714,14 @@ |
return bounds; |
} |
+const SkBitmap& TextButton::GetImageToPaint() const { |
+ if (show_multiple_icon_states_) { |
+ if (has_hover_icon_ && (state() == BS_HOT)) |
+ return icon_hover_; |
+ if (has_pushed_icon_ && (state() == BS_PUSHED)) |
+ return icon_pushed_; |
+ } |
+ return icon_; |
+} |
+ |
} // namespace views |