summaryrefslogtreecommitdiffstats
path: root/ui/views
diff options
context:
space:
mode:
authoryefim@chromium.org <yefim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-13 19:17:16 +0000
committeryefim@chromium.org <yefim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-13 19:17:16 +0000
commit12b74d86a3123cf08ab5b227951f52f61156404a (patch)
tree176d4d8dca3f76d86869037d9a96064a925e8744 /ui/views
parent0e5b5b9893827784b141f47e1c3591a3c36bbd3e (diff)
downloadchromium_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.cc9
-rw-r--r--ui/views/controls/button/text_button.h5
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;
}