diff options
author | yefim@chromium.org <yefim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-13 19:17:16 +0000 |
---|---|---|
committer | yefim@chromium.org <yefim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-13 19:17:16 +0000 |
commit | 12b74d86a3123cf08ab5b227951f52f61156404a (patch) | |
tree | 176d4d8dca3f76d86869037d9a96064a925e8744 /ui/views | |
parent | 0e5b5b9893827784b141f47e1c3591a3c36bbd3e (diff) | |
download | chromium_src-12b74d86a3123cf08ab5b227951f52f61156404a.zip chromium_src-12b74d86a3123cf08ab5b227951f52f61156404a.tar.gz chromium_src-12b74d86a3123cf08ab5b227951f52f61156404a.tar.bz2 |
Fixed position of plus image on action box button; added ICON_CENTERED placement to TextButton
BUG=147330
Review URL: https://chromiumcodereview.appspot.com/10933049
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156599 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/views')
-rw-r--r-- | ui/views/controls/button/text_button.cc | 9 | ||||
-rw-r--r-- | ui/views/controls/button/text_button.h | 5 |
2 files changed, 10 insertions, 4 deletions
diff --git a/ui/views/controls/button/text_button.cc b/ui/views/controls/button/text_button.cc index 1a4c4e7..93644c3 100644 --- a/ui/views/controls/button/text_button.cc +++ b/ui/views/controls/button/text_button.cc @@ -730,13 +730,16 @@ void TextButton::PaintButton(gfx::Canvas* canvas, PaintButtonMode mode) { gfx::Rect text_bounds = GetTextBounds(); int icon_x; int spacing = text_.empty() ? 0 : icon_text_spacing_; + gfx::Insets insets = GetInsets(); if (icon_placement_ == ICON_ON_LEFT) { icon_x = text_bounds.x() - icon.width() - spacing; - } else { + } else if (icon_placement_ == ICON_ON_RIGHT) { icon_x = text_bounds.right() + spacing; + } else { // ICON_CENTERED + DCHECK(text_.empty()); + icon_x = (width() - insets.width() - icon.width()) / 2 + insets.left(); } - gfx::Insets insets = GetInsets(); int available_height = height() - insets.height(); int icon_y = (available_height - icon.height()) / 2 + insets.top(); @@ -785,7 +788,7 @@ gfx::Rect TextButton::GetTextBounds() const { // Make sure the icon is always fully visible. if (icon_placement_ == ICON_ON_LEFT) { bounds.Inset(extra_width, 0, 0, 0); - } else { + } else if (icon_placement_ == ICON_ON_RIGHT) { bounds.Inset(0, 0, extra_width, 0); } } diff --git a/ui/views/controls/button/text_button.h b/ui/views/controls/button/text_button.h index 99feea6..233d791 100644 --- a/ui/views/controls/button/text_button.h +++ b/ui/views/controls/button/text_button.h @@ -328,11 +328,14 @@ class VIEWS_EXPORT TextButton : public TextButtonBase { // Meanings are reversed for right-to-left layouts. enum IconPlacement { ICON_ON_LEFT, - ICON_ON_RIGHT + ICON_ON_RIGHT, + ICON_CENTERED // Centered is valid only when text is empty. }; IconPlacement icon_placement() { return icon_placement_; } void set_icon_placement(IconPlacement icon_placement) { + // ICON_CENTERED works only when |text_| is empty. + DCHECK((icon_placement != ICON_CENTERED) || text_.empty()); icon_placement_ = icon_placement; } |