summaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-04 20:01:30 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-04 20:01:30 +0000
commit7568877302c9ef1e69e2939d345a52a91872a086 (patch)
tree958bb658b902609395fd00bcc6ffdc81ae8b234a /ui
parent3796cc671dd40528aebf231fcd284062446908ff (diff)
downloadchromium_src-7568877302c9ef1e69e2939d345a52a91872a086.zip
chromium_src-7568877302c9ef1e69e2939d345a52a91872a086.tar.gz
chromium_src-7568877302c9ef1e69e2939d345a52a91872a086.tar.bz2
Allow CHECKBOX and RADIO MenuItemViews to have icons.
BUG=179493 Review URL: https://codereview.chromium.org/12385058 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@185950 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui')
-rw-r--r--ui/views/controls/menu/menu_item_view.cc9
-rw-r--r--ui/views/controls/menu/menu_item_view_win.cc5
2 files changed, 11 insertions, 3 deletions
diff --git a/ui/views/controls/menu/menu_item_view.cc b/ui/views/controls/menu/menu_item_view.cc
index 3337807..4fe0f53 100644
--- a/ui/views/controls/menu/menu_item_view.cc
+++ b/ui/views/controls/menu/menu_item_view.cc
@@ -312,13 +312,13 @@ MenuItemView* MenuItemView::AppendMenuItemFromModel(ui::MenuModel* model,
int index,
int id) {
gfx::Image icon;
+ model->GetIconAt(index, &icon);
string16 label;
ui::MenuSeparatorType separator_style = ui::NORMAL_SEPARATOR;
MenuItemView::Type type;
ui::MenuModel::ItemType menu_type = model->GetTypeAt(index);
switch (menu_type) {
case ui::MenuModel::TYPE_COMMAND:
- model->GetIconAt(index, &icon);
type = MenuItemView::NORMAL;
label = model->GetLabelAt(index);
break;
@@ -331,11 +331,11 @@ MenuItemView* MenuItemView::AppendMenuItemFromModel(ui::MenuModel* model,
label = model->GetLabelAt(index);
break;
case ui::MenuModel::TYPE_SEPARATOR:
+ icon = gfx::Image();
type = MenuItemView::SEPARATOR;
separator_style = model->GetSeparatorTypeAt(index);
break;
case ui::MenuModel::TYPE_SUBMENU:
- model->GetIconAt(index, &icon);
type = MenuItemView::SUBMENU;
label = model->GetLabelAt(index);
break;
@@ -560,6 +560,8 @@ void MenuItemView::Layout() {
gfx::Size size = icon_view_->GetPreferredSize();
int x = config.item_left_margin + left_icon_margin_ +
(icon_area_width_ - size.width()) / 2;
+ if (type_ == CHECKBOX || type_ == RADIO)
+ x = label_start_;
int y =
(height() + GetTopMargin() - GetBottomMargin() - size.height()) / 2;
icon_view_->SetPosition(gfx::Point(x, y));
@@ -831,6 +833,9 @@ void MenuItemView::PaintButtonCommon(gfx::Canvas* canvas,
const gfx::Font& font = GetFont();
int accel_width = parent_menu_item_->GetSubmenu()->max_accelerator_width();
int label_start = label_start_ + left_icon_margin_ + right_icon_margin_;
+ if ((type_ == CHECKBOX || type_ == RADIO) && icon_view_)
+ label_start += icon_view_->size().width() + config.icon_to_label_padding;
+
int width = this->width() - label_start - accel_width -
(!GetDelegate() ||
GetDelegate()->ShouldReserveSpaceForSubmenuIndicator() ?
diff --git a/ui/views/controls/menu/menu_item_view_win.cc b/ui/views/controls/menu/menu_item_view_win.cc
index 03e9b8b..b28b3af 100644
--- a/ui/views/controls/menu/menu_item_view_win.cc
+++ b/ui/views/controls/menu/menu_item_view_win.cc
@@ -103,7 +103,10 @@ void MenuItemView::PaintButton(gfx::Canvas* canvas, PaintButtonMode mode) {
int width = this->width() - item_right_margin_ - label_start_ - accel_width;
int height = this->height() - GetTopMargin() - GetBottomMargin();
int flags = GetDrawStringFlags();
- gfx::Rect text_bounds(label_start_, top_margin, width, height);
+ int label_start = label_start_;
+ if ((type_ == CHECKBOX || type_ == RADIO) && icon_view_)
+ label_start += icon_view_->size().width() + config.icon_to_label_padding;
+ gfx::Rect text_bounds(label_start, top_margin, width, height);
text_bounds.set_x(GetMirroredXForRect(text_bounds));
if (mode == PB_FOR_DRAG) {
// With different themes, it's difficult to tell what the correct