| 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 a1a4b153bea7eba0f22d04add1947c219a4c6244..ff2737ea9a89771ed999dba162082f258d34fd55 100644
|
| --- a/ui/views/controls/menu/menu_item_view.cc
|
| +++ b/ui/views/controls/menu/menu_item_view.cc
|
| @@ -240,7 +240,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);
|
| @@ -418,7 +418,7 @@ int MenuItemView::GetHeightForWidth(int width) const {
|
|
|
| int height = child_at(0)->GetHeightForWidth(width);
|
| if (!icon_view_ && GetRootMenuItem()->has_icons())
|
| - height = std::max(height, MenuConfig::instance().check_height);
|
| + height = std::max(height, GetMenuConfig().check_height);
|
| height += GetBottomMargin() + GetTopMargin();
|
|
|
| return height;
|
| @@ -545,7 +545,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();
|
| @@ -567,6 +567,10 @@ void MenuItemView::SetMargins(int top_margin, int bottom_margin) {
|
| invalidate_dimensions();
|
| }
|
|
|
| +const MenuConfig& MenuItemView::GetMenuConfig() const {
|
| + return MenuConfig::instance(GetNativeTheme());
|
| +}
|
| +
|
| MenuItemView::MenuItemView(MenuItemView* parent,
|
| int command,
|
| MenuItemView::Type type)
|
| @@ -605,7 +609,7 @@ const char* MenuItemView::GetClassName() const {
|
| //
|
| // This is invoked prior to Running a menu.
|
| void MenuItemView::UpdateMenuPartSizes() {
|
| - 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;
|
| @@ -683,8 +687,7 @@ int MenuItemView::GetDrawStringFlags() {
|
| flags |= gfx::Canvas::TEXT_ALIGN_LEFT;
|
|
|
| if (GetRootMenuItem()->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;
|
| @@ -700,7 +703,7 @@ const gfx::FontList& MenuItemView::GetFontList() const {
|
| if (font_list)
|
| return *font_list;
|
| }
|
| - return MenuConfig::instance().font_list;
|
| + return GetMenuConfig().font_list;
|
| }
|
|
|
| void MenuItemView::AddEmptyMenus() {
|
| @@ -740,7 +743,7 @@ void MenuItemView::AdjustBoundsForRTLUI(gfx::Rect* rect) const {
|
| }
|
|
|
| void MenuItemView::PaintButton(gfx::Canvas* canvas, PaintButtonMode mode) {
|
| - const MenuConfig& config = MenuConfig::instance();
|
| + const MenuConfig& config = GetMenuConfig();
|
| bool render_selection =
|
| (mode == PB_NORMAL && IsSelected() &&
|
| parent_menu_item_->GetSubmenu()->GetShowSelection(this) &&
|
| @@ -866,7 +869,7 @@ void MenuItemView::PaintMinorText(gfx::Canvas* canvas,
|
| int available_height = height() - GetTopMargin() - GetBottomMargin();
|
| int max_accel_width =
|
| parent_menu_item_->GetSubmenu()->max_minor_text_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,
|
| @@ -905,8 +908,8 @@ int MenuItemView::GetTopMargin() const {
|
|
|
| const 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() const {
|
| @@ -915,8 +918,8 @@ int MenuItemView::GetBottomMargin() const {
|
|
|
| const 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() const {
|
| @@ -954,8 +957,8 @@ MenuItemView::MenuItemDimensions MenuItemView::CalculateDimensions() const {
|
| // Adjust item content height if menu has both items with and without icons.
|
| // This way all menu items will have the same height.
|
| if (!icon_view_ && GetRootMenuItem()->has_icons()) {
|
| - dimensions.height =
|
| - std::max(dimensions.height, MenuConfig::instance().check_height);
|
| + dimensions.height = std::max(dimensions.height,
|
| + GetMenuConfig().check_height);
|
| }
|
| dimensions.height += GetBottomMargin() + GetTopMargin();
|
|
|
| @@ -997,13 +1000,13 @@ MenuItemView::MenuItemDimensions MenuItemView::CalculateDimensions() const {
|
| std::max(dimensions.height,
|
| (subtitle_.empty() ? 0 : font_list.GetHeight()) +
|
| font_list.GetHeight() + GetBottomMargin() + GetTopMargin());
|
| - dimensions.height =
|
| - std::max(dimensions.height, MenuConfig::instance().item_min_height);
|
| + dimensions.height = std::max(dimensions.height,
|
| + GetMenuConfig().item_min_height);
|
| return dimensions;
|
| }
|
|
|
| int MenuItemView::GetLabelStartForThisItem() const {
|
| - const MenuConfig& config = MenuConfig::instance();
|
| + const MenuConfig& config = GetMenuConfig();
|
| int label_start = label_start_ + left_icon_margin_ + right_icon_margin_;
|
| if ((config.icons_in_label || type_ == CHECKBOX || type_ == RADIO) &&
|
| icon_view_)
|
| @@ -1019,9 +1022,8 @@ base::string16 MenuItemView::GetMinorText() const {
|
| }
|
|
|
| ui::Accelerator accelerator;
|
| - if (MenuConfig::instance().show_accelerators && GetDelegate() &&
|
| - GetCommand() &&
|
| - GetDelegate()->GetAccelerator(GetCommand(), &accelerator)) {
|
| + if (GetMenuConfig().show_accelerators && GetDelegate() && GetCommand() &&
|
| + GetDelegate()->GetAccelerator(GetCommand(), &accelerator)) {
|
| return accelerator.GetShortcutText();
|
| }
|
|
|
| @@ -1052,8 +1054,7 @@ int MenuItemView::GetMaxIconViewWidth() const {
|
| continue;
|
| } else if (menu_item->HasSubmenu()) {
|
| temp_width = menu_item->GetMaxIconViewWidth();
|
| - } else if (menu_item->icon_view() &&
|
| - !MenuConfig::instance().icons_in_label) {
|
| + } else if (menu_item->icon_view() && !GetMenuConfig().icons_in_label) {
|
| temp_width = menu_item->icon_view()->GetPreferredSize().width();
|
| }
|
| width = std::max(width, temp_width);
|
|
|