diff options
author | Evan Stade <estade@chromium.org> | 2016-03-18 14:31:29 -0700 |
---|---|---|
committer | Evan Stade <estade@chromium.org> | 2016-03-18 21:34:02 +0000 |
commit | 64c5f170e8d2af4fbb889e36f35652516c4636a1 (patch) | |
tree | fdf2f25d16dc937183186d11afdd4e80d9e92d77 | |
parent | 0b7080ff51fc8f6c7bc0f2d6d60c158ede2fdf9b (diff) | |
download | chromium_src-64c5f170e8d2af4fbb889e36f35652516c4636a1.zip chromium_src-64c5f170e8d2af4fbb889e36f35652516c4636a1.tar.gz chromium_src-64c5f170e8d2af4fbb889e36f35652516c4636a1.tar.bz2 |
Move theme part drawing functions only used on Windows to NativeThemeWin
Also use the platform-specific color in CommonThemePaintMenuItemBackground
This should fix a regression introduced by ff6ab32f0ee2963f
BUG=570698
Review URL: https://codereview.chromium.org/1797053002
Cr-Commit-Position: refs/heads/master@{#381658}
(cherry picked from commit 84a503faa847b9193c688fb093c36bc98f0f46f9)
Review URL: https://codereview.chromium.org/1814333002 .
Cr-Commit-Position: refs/branch-heads/2661@{#286}
Cr-Branched-From: ef6f6ae5e4c96622286b563658d5cd62a6cf1197-refs/heads/master@{#378081}
-rw-r--r-- | ui/native_theme/common_theme.cc | 30 | ||||
-rw-r--r-- | ui/native_theme/common_theme.h | 10 | ||||
-rw-r--r-- | ui/native_theme/native_theme_aura.cc | 2 | ||||
-rw-r--r-- | ui/native_theme/native_theme_win.cc | 33 | ||||
-rw-r--r-- | ui/native_theme/native_theme_win.h | 5 |
5 files changed, 40 insertions, 40 deletions
diff --git a/ui/native_theme/common_theme.cc b/ui/native_theme/common_theme.cc index 50dba80..3f4c4ce 100644 --- a/ui/native_theme/common_theme.cc +++ b/ui/native_theme/common_theme.cc @@ -437,30 +437,8 @@ void CommonThemePaintComboboxArrow(SkCanvas* canvas, const gfx::Rect& rect) { CommonThemeCreateCanvas(canvas)->DrawImageInt(*arrow, rect.x(), rect.y()); } -void CommonThemePaintMenuSeparator(SkCanvas* canvas, const gfx::Rect& rect) { - SkPaint paint; - paint.setColor( - GetAuraColor(NativeTheme::kColorId_MenuSeparatorColor, nullptr)); - int position_y = rect.y() + rect.height() / 2; - canvas->drawLine(rect.x(), position_y, rect.right(), position_y, paint); -} - -void CommonThemePaintMenuGutter(SkCanvas* canvas, const gfx::Rect& rect) { - SkPaint paint; - paint.setColor( - GetAuraColor(NativeTheme::kColorId_MenuSeparatorColor, nullptr)); - int position_x = rect.x() + rect.width() / 2; - canvas->drawLine(position_x, rect.y(), position_x, rect.bottom(), paint); -} - -void CommonThemePaintMenuBackground(SkCanvas* canvas, const gfx::Rect& rect) { - SkPaint paint; - paint.setColor( - GetAuraColor(NativeTheme::kColorId_MenuBackgroundColor, nullptr)); - canvas->drawRect(gfx::RectToSkRect(rect), paint); -} - void CommonThemePaintMenuItemBackground( + const NativeTheme* theme, SkCanvas* canvas, NativeTheme::State state, const gfx::Rect& rect, @@ -470,11 +448,11 @@ void CommonThemePaintMenuItemBackground( case NativeTheme::kNormal: case NativeTheme::kDisabled: paint.setColor( - GetAuraColor(NativeTheme::kColorId_MenuBackgroundColor, nullptr)); + theme->GetSystemColor(NativeTheme::kColorId_MenuBackgroundColor)); break; case NativeTheme::kHovered: - paint.setColor(GetAuraColor( - NativeTheme::kColorId_FocusedMenuItemBackgroundColor, nullptr)); + paint.setColor(theme->GetSystemColor( + NativeTheme::kColorId_FocusedMenuItemBackgroundColor)); break; default: NOTREACHED() << "Invalid state " << state; diff --git a/ui/native_theme/common_theme.h b/ui/native_theme/common_theme.h index ca40765..eba9cc2 100644 --- a/ui/native_theme/common_theme.h +++ b/ui/native_theme/common_theme.h @@ -33,16 +33,8 @@ void NATIVE_THEME_EXPORT CommonThemePaintComboboxArrow( SkCanvas* canvas, const gfx::Rect& rect); -void NATIVE_THEME_EXPORT - CommonThemePaintMenuSeparator(SkCanvas* canvas, const gfx::Rect& rect); - -void NATIVE_THEME_EXPORT CommonThemePaintMenuGutter(SkCanvas* canvas, - const gfx::Rect& rect); - -void NATIVE_THEME_EXPORT CommonThemePaintMenuBackground(SkCanvas* canvas, - const gfx::Rect& rect); - void NATIVE_THEME_EXPORT CommonThemePaintMenuItemBackground( + const NativeTheme* theme, SkCanvas* canvas, NativeTheme::State state, const gfx::Rect& rect, diff --git a/ui/native_theme/native_theme_aura.cc b/ui/native_theme/native_theme_aura.cc index 0afdd11..74edcd5 100644 --- a/ui/native_theme/native_theme_aura.cc +++ b/ui/native_theme/native_theme_aura.cc @@ -131,7 +131,7 @@ void NativeThemeAura::PaintMenuItemBackground( State state, const gfx::Rect& rect, const MenuItemExtraParams& menu_item) const { - CommonThemePaintMenuItemBackground(canvas, state, rect, menu_item); + CommonThemePaintMenuItemBackground(this, canvas, state, rect, menu_item); } void NativeThemeAura::PaintArrowButton(SkCanvas* canvas, diff --git a/ui/native_theme/native_theme_win.cc b/ui/native_theme/native_theme_win.cc index 745af69..a0c16f4 100644 --- a/ui/native_theme/native_theme_win.cc +++ b/ui/native_theme/native_theme_win.cc @@ -30,6 +30,7 @@ #include "ui/gfx/gdi_util.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/rect_conversions.h" +#include "ui/gfx/skia_util.h" #include "ui/gfx/win/dpi.h" #include "ui/native_theme/common_theme.h" @@ -248,16 +249,17 @@ void NativeThemeWin::Paint(SkCanvas* canvas, CommonThemePaintComboboxArrow(canvas, rect); return; case kMenuPopupGutter: - CommonThemePaintMenuGutter(canvas, rect); + PaintMenuGutter(canvas, rect); return; case kMenuPopupSeparator: - CommonThemePaintMenuSeparator(canvas, rect); + PaintMenuSeparator(canvas, rect); return; case kMenuPopupBackground: - CommonThemePaintMenuBackground(canvas, rect); + PaintMenuBackground(canvas, rect); return; case kMenuItemBackground: - CommonThemePaintMenuItemBackground(canvas, state, rect, extra.menu_item); + CommonThemePaintMenuItemBackground(this, canvas, state, rect, + extra.menu_item); return; default: break; @@ -361,6 +363,29 @@ void NativeThemeWin::UpdateSystemColors() { system_colors_[kSystemColor] = color_utils::GetSysSkColor(kSystemColor); } +void NativeThemeWin::PaintMenuSeparator(SkCanvas* canvas, + const gfx::Rect& rect) const { + SkPaint paint; + paint.setColor(GetSystemColor(NativeTheme::kColorId_MenuSeparatorColor)); + int position_y = rect.y() + rect.height() / 2; + canvas->drawLine(rect.x(), position_y, rect.right(), position_y, paint); +} + +void NativeThemeWin::PaintMenuGutter(SkCanvas* canvas, + const gfx::Rect& rect) const { + SkPaint paint; + paint.setColor(GetSystemColor(NativeTheme::kColorId_MenuSeparatorColor)); + int position_x = rect.x() + rect.width() / 2; + canvas->drawLine(position_x, rect.y(), position_x, rect.bottom(), paint); +} + +void NativeThemeWin::PaintMenuBackground(SkCanvas* canvas, + const gfx::Rect& rect) const { + SkPaint paint; + paint.setColor(GetSystemColor(NativeTheme::kColorId_MenuBackgroundColor)); + canvas->drawRect(gfx::RectToSkRect(rect), paint); +} + void NativeThemeWin::PaintDirect(SkCanvas* canvas, Part part, State state, diff --git a/ui/native_theme/native_theme_win.h b/ui/native_theme/native_theme_win.h index 8a1c3bf..0348365 100644 --- a/ui/native_theme/native_theme_win.h +++ b/ui/native_theme/native_theme_win.h @@ -125,6 +125,11 @@ class NATIVE_THEME_EXPORT NativeThemeWin : public NativeTheme, // Update the locally cached set of system colors. void UpdateSystemColors(); + // Painting functions that paint to SkCanvas. + void PaintMenuSeparator(SkCanvas* canvas, const gfx::Rect& rect) const; + void PaintMenuGutter(SkCanvas* canvas, const gfx::Rect& rect) const; + void PaintMenuBackground(SkCanvas* canvas, const gfx::Rect& rect) const; + // Paint directly to canvas' HDC. void PaintDirect(SkCanvas* canvas, Part part, |