| Index: views/controls/button/text_button.cc
|
| ===================================================================
|
| --- views/controls/button/text_button.cc (revision 53742)
|
| +++ views/controls/button/text_button.cc (working copy)
|
| @@ -188,9 +188,10 @@
|
| color_highlight_(kHighlightColor),
|
| color_hover_(kHoverColor),
|
| has_hover_icon_(false),
|
| + has_pushed_icon_(false),
|
| max_width_(0),
|
| normal_has_border_(false),
|
| - show_highlighted_(true),
|
| + show_multiple_states_(true),
|
| prefix_type_(PREFIX_NONE) {
|
| SetText(text);
|
| set_border(new TextButtonBorder);
|
| @@ -214,6 +215,11 @@
|
| has_hover_icon_ = true;
|
| }
|
|
|
| +void TextButton::SetPushedIcon(const SkBitmap& icon) {
|
| + icon_pushed_ = icon;
|
| + has_pushed_icon_ = true;
|
| +}
|
| +
|
| void TextButton::SetFont(const gfx::Font& font) {
|
| font_ = font;
|
| UpdateTextSize();
|
| @@ -245,15 +251,15 @@
|
| normal_has_border_ = normal_has_border;
|
| }
|
|
|
| -void TextButton::SetShowHighlighted(bool show_highlighted) {
|
| - show_highlighted_ = show_highlighted;
|
| +void TextButton::SetShowMultipleStates(bool show_multiple_states) {
|
| + show_multiple_states_ = show_multiple_states;
|
| }
|
|
|
| void TextButton::Paint(gfx::Canvas* canvas, bool for_drag) {
|
| if (!for_drag) {
|
| PaintBackground(canvas);
|
|
|
| - if (show_highlighted_ && hover_animation_->is_animating()) {
|
| + if (show_multiple_states_ && hover_animation_->is_animating()) {
|
| // Draw the hover bitmap into an offscreen buffer, then blend it
|
| // back into the current canvas.
|
| canvas->SaveLayerAlpha(
|
| @@ -262,7 +268,7 @@
|
| SkXfermode::kClear_Mode);
|
| PaintBorder(canvas);
|
| canvas->Restore();
|
| - } else if ((show_highlighted_ &&
|
| + } else if ((show_multiple_states_ &&
|
| (state_ == BS_HOT || state_ == BS_PUSHED)) ||
|
| (state_ == BS_NORMAL && normal_has_border_)) {
|
| PaintBorder(canvas);
|
| @@ -272,9 +278,10 @@
|
| }
|
|
|
| SkBitmap icon;
|
| - if (has_hover_icon_ && show_highlighted_ &&
|
| - (state() == BS_HOT || state() == BS_PUSHED))
|
| + if (show_multiple_states_ && has_hover_icon_ && (state() == BS_HOT))
|
| icon = icon_hover_;
|
| + else if (show_multiple_states_ && has_pushed_icon_ && (state() == BS_PUSHED))
|
| + icon = icon_pushed_;
|
| else
|
| icon = icon_;
|
|
|
| @@ -325,7 +332,7 @@
|
| text_bounds.set_x(MirroredLeftPointForRect(text_bounds));
|
|
|
| SkColor text_color;
|
| - if (show_highlighted_ && (state() == BS_HOT || state() == BS_PUSHED))
|
| + if (show_multiple_states_ && (state() == BS_HOT || state() == BS_PUSHED))
|
| text_color = color_hover_;
|
| else
|
| text_color = color_;
|
|
|