summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvan Stade <estade@chromium.org>2016-03-18 14:31:29 -0700
committerEvan Stade <estade@chromium.org>2016-03-18 21:34:02 +0000
commit64c5f170e8d2af4fbb889e36f35652516c4636a1 (patch)
treefdf2f25d16dc937183186d11afdd4e80d9e92d77
parent0b7080ff51fc8f6c7bc0f2d6d60c158ede2fdf9b (diff)
downloadchromium_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.cc30
-rw-r--r--ui/native_theme/common_theme.h10
-rw-r--r--ui/native_theme/native_theme_aura.cc2
-rw-r--r--ui/native_theme/native_theme_win.cc33
-rw-r--r--ui/native_theme/native_theme_win.h5
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,