| Index: ui/views/controls/menu/menu_item_view.cc
|
| diff --git a/ui/views/controls/menu/menu_item_view.cc b/ui/views/controls/menu/menu_item_view.cc
|
| index 574d04c3b8b9cef287e154eeb32837688f969fe5..385e6c0f05ad75cff21bd2b80599d13616087250 100644
|
| --- a/ui/views/controls/menu/menu_item_view.cc
|
| +++ b/ui/views/controls/menu/menu_item_view.cc
|
| @@ -219,7 +219,7 @@ MenuItemView* MenuItemView::AddMenuItemAt(
|
| CreateSubmenu();
|
| DCHECK_GE(submenu_->child_count(), index);
|
| if (type == SEPARATOR) {
|
| - submenu_->AddChildViewAt(new MenuSeparator(separator_style), index);
|
| + submenu_->AddChildViewAt(new MenuSeparator(this, separator_style), index);
|
| return NULL;
|
| }
|
| MenuItemView* item = new MenuItemView(this, item_id, type);
|
| @@ -530,7 +530,7 @@ void MenuItemView::Layout() {
|
| x -= width - kChildXPadding;
|
| }
|
| // Position |icon_view|.
|
| - const MenuConfig& config = MenuConfig::instance();
|
| + const MenuConfig& config = GetMenuConfig();
|
| if (icon_view_) {
|
| icon_view_->SizeToPreferredSize();
|
| gfx::Size size = icon_view_->GetPreferredSize();
|
| @@ -550,6 +550,14 @@ void MenuItemView::SetMargins(int top_margin, int bottom_margin) {
|
| pref_size_.SetSize(0,0);
|
| }
|
|
|
| +const MenuConfig& MenuItemView::GetMenuConfig() const {
|
| + const MenuItemView* root_menu_item = GetRootMenuItem();
|
| + if (root_menu_item->menu_config_.get())
|
| + return *(root_menu_item->menu_config_);
|
| +
|
| + return MenuConfig::instance();
|
| +}
|
| +
|
| MenuItemView::MenuItemView(MenuItemView* parent,
|
| int command,
|
| MenuItemView::Type type)
|
| @@ -586,7 +594,7 @@ std::string MenuItemView::GetClassName() const {
|
| // This is invoked prior to Running a menu.
|
| void MenuItemView::UpdateMenuPartSizes() {
|
| MenuConfig::Reset();
|
| - const MenuConfig& config = MenuConfig::instance();
|
| + const MenuConfig& config = GetMenuConfig();
|
|
|
| item_right_margin_ = config.label_to_arrow_padding + config.arrow_width +
|
| config.arrow_to_edge_padding;
|
| @@ -606,7 +614,7 @@ void MenuItemView::UpdateMenuPartSizes() {
|
| if (config.render_gutter)
|
| label_start_ += config.gutter_width + config.gutter_to_label;
|
|
|
| - MenuItemView menu_item(NULL);
|
| + MenuItemView menu_item(this, 0, NORMAL);
|
| menu_item.SetTitle(ASCIIToUTF16("blah")); // Text doesn't matter here.
|
| pref_menu_height_ = menu_item.GetPreferredSize().height();
|
| }
|
| @@ -664,8 +672,7 @@ int MenuItemView::GetDrawStringFlags() {
|
| flags |= gfx::Canvas::TEXT_ALIGN_LEFT;
|
|
|
| if (has_mnemonics_) {
|
| - if (MenuConfig::instance().show_mnemonics ||
|
| - GetRootMenuItem()->show_mnemonics_) {
|
| + if (GetMenuConfig().show_mnemonics || GetRootMenuItem()->show_mnemonics_) {
|
| flags |= gfx::Canvas::SHOW_PREFIX;
|
| } else {
|
| flags |= gfx::Canvas::HIDE_PREFIX;
|
| @@ -678,7 +685,7 @@ const gfx::Font& MenuItemView::GetFont() {
|
| // Check for item-specific font.
|
| const MenuDelegate* delegate = GetDelegate();
|
| return delegate ?
|
| - delegate->GetLabelFont(GetCommand()) : MenuConfig::instance().font;
|
| + delegate->GetLabelFont(GetCommand()) : GetMenuConfig().font;
|
| }
|
|
|
| void MenuItemView::AddEmptyMenus() {
|
| @@ -726,7 +733,7 @@ void MenuItemView::PaintAccelerator(gfx::Canvas* canvas) {
|
| int available_height = height() - GetTopMargin() - GetBottomMargin();
|
| int max_accel_width =
|
| parent_menu_item_->GetSubmenu()->max_accelerator_width();
|
| - const MenuConfig& config = MenuConfig::instance();
|
| + const MenuConfig& config = GetMenuConfig();
|
| int accel_right_margin = config.align_arrow_and_shortcut ?
|
| config.arrow_to_edge_padding : item_right_margin_;
|
| gfx::Rect accel_bounds(width() - accel_right_margin - max_accel_width,
|
| @@ -763,8 +770,8 @@ int MenuItemView::GetTopMargin() {
|
|
|
| MenuItemView* root = GetRootMenuItem();
|
| return root && root->has_icons_
|
| - ? MenuConfig::instance().item_top_margin :
|
| - MenuConfig::instance().item_no_icon_top_margin;
|
| + ? GetMenuConfig().item_top_margin :
|
| + GetMenuConfig().item_no_icon_top_margin;
|
| }
|
|
|
| int MenuItemView::GetBottomMargin() {
|
| @@ -773,8 +780,8 @@ int MenuItemView::GetBottomMargin() {
|
|
|
| MenuItemView* root = GetRootMenuItem();
|
| return root && root->has_icons_
|
| - ? MenuConfig::instance().item_bottom_margin :
|
| - MenuConfig::instance().item_no_icon_bottom_margin;
|
| + ? GetMenuConfig().item_bottom_margin :
|
| + GetMenuConfig().item_no_icon_bottom_margin;
|
| }
|
|
|
| gfx::Size MenuItemView::GetChildPreferredSize() {
|
| @@ -829,7 +836,7 @@ MenuItemView::MenuItemDimensions MenuItemView::GetPreferredDimensions() {
|
| dimensions.height = std::max(dimensions.height,
|
| font.GetHeight() + GetBottomMargin() + GetTopMargin());
|
| dimensions.height = std::max(dimensions.height,
|
| - MenuConfig::instance().item_min_height);
|
| + GetMenuConfig().item_min_height);
|
| return dimensions;
|
| }
|
|
|
| @@ -845,7 +852,7 @@ string16 MenuItemView::GetAcceleratorText() {
|
| return string16();
|
| }
|
|
|
| - if(!MenuConfig::instance().show_accelerators)
|
| + if(!GetMenuConfig().show_accelerators)
|
| return string16();
|
|
|
| ui::Accelerator accelerator;
|
|
|