summaryrefslogtreecommitdiffstats
path: root/ui/views/controls
diff options
context:
space:
mode:
authoryefim@chromium.org <yefim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-20 00:52:29 +0000
committeryefim@chromium.org <yefim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-20 00:52:29 +0000
commita673f35eda3aa6859420688dae2e2b08fe126818 (patch)
treea55b37ba7dfd614d75855bd37f48a67f8d07d76b /ui/views/controls
parent3d95e54652070dacfdb9188c3f6f48111bcc007e (diff)
downloadchromium_src-a673f35eda3aa6859420688dae2e2b08fe126818.zip
chromium_src-a673f35eda3aa6859420688dae2e2b08fe126818.tar.gz
chromium_src-a673f35eda3aa6859420688dae2e2b08fe126818.tar.bz2
Added flag to enable new menu style.
Changed so far: menu background, no gutter, separator, border with round corners (corners are not transparent yet). This is work in progress, just want to keep change size manageable. BUG=157692 Review URL: https://chromiumcodereview.appspot.com/11348055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168671 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/views/controls')
-rw-r--r--ui/views/controls/menu/menu_config.cc11
-rw-r--r--ui/views/controls/menu/menu_config.h10
-rw-r--r--ui/views/controls/menu/menu_config_views.cc3
-rw-r--r--ui/views/controls/menu/menu_config_win.cc3
-rw-r--r--ui/views/controls/menu/menu_controller.cc2
-rw-r--r--ui/views/controls/menu/menu_item_view_win.cc22
-rw-r--r--ui/views/controls/menu/menu_scroll_view_container.cc26
-rw-r--r--ui/views/controls/menu/menu_separator_win.cc1
8 files changed, 45 insertions, 33 deletions
diff --git a/ui/views/controls/menu/menu_config.cc b/ui/views/controls/menu/menu_config.cc
index 5c951c8..84abe5d 100644
--- a/ui/views/controls/menu/menu_config.cc
+++ b/ui/views/controls/menu/menu_config.cc
@@ -13,8 +13,7 @@ namespace views {
MenuConfig::MenuConfig(const ui::NativeTheme* theme)
: text_color(SK_ColorBLACK),
arrow_color(SK_ColorBLACK),
- submenu_horizontal_margin_size(3),
- submenu_vertical_margin_size(3),
+ menu_border_size(3),
submenu_horizontal_inset(3),
item_top_margin(3),
item_bottom_margin(4),
@@ -57,4 +56,12 @@ MenuConfig::MenuConfig(const ui::NativeTheme* theme)
MenuConfig::~MenuConfig() {}
+void MenuConfig::AdjustForCommonTheme() {
+ render_gutter = false;
+ item_top_margin = 6;
+ item_bottom_margin = 6;
+ separator_height = 15;
+ menu_border_size = 2;
+}
+
} // namespace views
diff --git a/ui/views/controls/menu/menu_config.h b/ui/views/controls/menu/menu_config.h
index 9be9921..79a8659 100644
--- a/ui/views/controls/menu/menu_config.h
+++ b/ui/views/controls/menu/menu_config.h
@@ -32,11 +32,8 @@ struct VIEWS_EXPORT MenuConfig {
// Color for the arrow to scroll bookmarks.
SkColor arrow_color;
- // Submenu horizontal margin size.
- int submenu_horizontal_margin_size;
-
- // Submenu vertical margin size.
- int submenu_vertical_margin_size;
+ // Menu border size.
+ int menu_border_size;
// Submenu horizontal inset with parent menu. This is the horizontal overlap
// between the submenu and its parent menu, not including the borders of
@@ -134,6 +131,9 @@ struct VIEWS_EXPORT MenuConfig {
#if defined(USE_AURA)
void InitAura();
#endif
+
+ // Adjust some values for a new UI style.
+ void AdjustForCommonTheme();
};
} // namespace views
diff --git a/ui/views/controls/menu/menu_config_views.cc b/ui/views/controls/menu/menu_config_views.cc
index 15e849a..a0285d6 100644
--- a/ui/views/controls/menu/menu_config_views.cc
+++ b/ui/views/controls/menu/menu_config_views.cc
@@ -23,8 +23,7 @@ void MenuConfig::InitAura() {
ui::NativeTheme* theme = ui::NativeThemeAura::instance();
text_color = theme->GetSystemColor(
ui::NativeTheme::kColorId_EnabledMenuItemForegroundColor);
- submenu_horizontal_margin_size = 0;
- submenu_vertical_margin_size = 0;
+ menu_border_size = 0;
submenu_horizontal_inset = 1;
ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
arrow_to_edge_padding = 20;
diff --git a/ui/views/controls/menu/menu_config_win.cc b/ui/views/controls/menu/menu_config_win.cc
index d7ae562..c35e976 100644
--- a/ui/views/controls/menu/menu_config_win.cc
+++ b/ui/views/controls/menu/menu_config_win.cc
@@ -99,6 +99,9 @@ void MenuConfig::Init(const NativeTheme* theme) {
separator_height = GetSystemMetrics(SM_CYMENU) / 2 - 1;
}
+ if (NativeTheme::IsNewMenuStyleEnabled())
+ AdjustForCommonTheme();
+
// On Windows, having some menus use wider spacing than others looks wrong.
// See http://crbug.com/88875
item_no_icon_bottom_margin = item_bottom_margin;
diff --git a/ui/views/controls/menu/menu_controller.cc b/ui/views/controls/menu/menu_controller.cc
index 9151c34..d7077e9 100644
--- a/ui/views/controls/menu/menu_controller.cc
+++ b/ui/views/controls/menu/menu_controller.cc
@@ -1695,7 +1695,7 @@ gfx::Rect MenuController::CalculateMenuBounds(MenuItemView* item,
x = item_loc.x() + item->width() - submenu_horizontal_inset;
}
}
- y = item_loc.y() - menu_config.submenu_vertical_margin_size;
+ y = item_loc.y() - menu_config.menu_border_size;
if (state_.monitor_bounds.width() != 0) {
pref.set_height(std::min(pref.height(), state_.monitor_bounds.height()));
if (y + pref.height() > state_.monitor_bounds.bottom())
diff --git a/ui/views/controls/menu/menu_item_view_win.cc b/ui/views/controls/menu/menu_item_view_win.cc
index 5d543ba..461b9fe9 100644
--- a/ui/views/controls/menu/menu_item_view_win.cc
+++ b/ui/views/controls/menu/menu_item_view_win.cc
@@ -57,7 +57,17 @@ void MenuItemView::PaintButton(gfx::Canvas* canvas, PaintButtonMode mode) {
control_state = NativeTheme::kDisabled;
}
- // The gutter is rendered before the background.
+ // Render the background.
+ if (mode == PB_NORMAL) {
+ gfx::Rect item_bounds(0, 0, width(), height());
+ AdjustBoundsForRTLUI(&item_bounds);
+ NativeTheme::ExtraParams extra;
+ extra.menu_item.is_selected = render_selection;
+ config.native_theme->Paint(canvas->sk_canvas(),
+ NativeTheme::kMenuItemBackground, control_state, item_bounds, extra);
+ }
+
+ // Render the gutter.
if (config.render_gutter && mode == PB_NORMAL) {
gfx::Rect gutter_bounds(label_start_ - config.gutter_to_label -
config.gutter_width, 0, config.gutter_width,
@@ -71,16 +81,6 @@ void MenuItemView::PaintButton(gfx::Canvas* canvas, PaintButtonMode mode) {
extra);
}
- // Render the background.
- if (mode == PB_NORMAL) {
- gfx::Rect item_bounds(0, 0, width(), height());
- NativeTheme::ExtraParams extra;
- extra.menu_item.is_selected = render_selection;
- AdjustBoundsForRTLUI(&item_bounds);
- config.native_theme->Paint(canvas->sk_canvas(),
- NativeTheme::kMenuItemBackground, control_state, item_bounds, extra);
- }
-
int top_margin = GetTopMargin();
int bottom_margin = GetBottomMargin();
diff --git a/ui/views/controls/menu/menu_scroll_view_container.cc b/ui/views/controls/menu/menu_scroll_view_container.cc
index 8a85d60..73dbaca 100644
--- a/ui/views/controls/menu/menu_scroll_view_container.cc
+++ b/ui/views/controls/menu/menu_scroll_view_container.cc
@@ -4,12 +4,6 @@
#include "ui/views/controls/menu/menu_scroll_view_container.h"
-#if defined(OS_WIN)
-#include <windows.h>
-#include <uxtheme.h>
-#include <Vssym32.h>
-#endif
-
#include "third_party/skia/include/core/SkPaint.h"
#include "third_party/skia/include/core/SkPath.h"
#include "ui/base/accessibility/accessible_view_state.h"
@@ -20,6 +14,7 @@
#include "ui/views/controls/menu/menu_controller.h"
#include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/controls/menu/submenu_view.h"
+#include "ui/views/round_rect_painter.h"
using ui::NativeTheme;
@@ -179,11 +174,20 @@ MenuScrollViewContainer::MenuScrollViewContainer(SubmenuView* content_view)
const MenuConfig& menu_config =
content_view_->GetMenuItem()->GetMenuConfig();
- set_border(Border::CreateEmptyBorder(
- menu_config.submenu_vertical_margin_size,
- menu_config.submenu_horizontal_margin_size,
- menu_config.submenu_vertical_margin_size,
- menu_config.submenu_horizontal_margin_size));
+
+ if (NativeTheme::IsNewMenuStyleEnabled()) {
+ set_border(views::Border::CreateBorderPainter(
+ new views::RoundRectPainter(
+ ui::NativeTheme::instance()->GetSystemColor(
+ ui::NativeTheme::kColorId_MenuBorderColor)),
+ gfx::Insets(menu_config.menu_border_size, menu_config.menu_border_size,
+ menu_config.menu_border_size, menu_config.menu_border_size)));
+ } else {
+ set_border(Border::CreateEmptyBorder(menu_config.menu_border_size,
+ menu_config.menu_border_size,
+ menu_config.menu_border_size,
+ menu_config.menu_border_size));
+ }
}
void MenuScrollViewContainer::OnPaintBackground(gfx::Canvas* canvas) {
diff --git a/ui/views/controls/menu/menu_separator_win.cc b/ui/views/controls/menu/menu_separator_win.cc
index 89db94a..6f95334 100644
--- a/ui/views/controls/menu/menu_separator_win.cc
+++ b/ui/views/controls/menu/menu_separator_win.cc
@@ -30,7 +30,6 @@ void MenuSeparator::OnPaint(gfx::Canvas* canvas) {
}
#endif
- // The gutter is rendered before the background.
int start_x = 0;
if (config.render_gutter) {
// If render_gutter is true, we're on Vista and need to render the