1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- // Copyright (c) 2012 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "ui/native_theme/common_theme.h"
- #include "base/logging.h"
- #include "base/notreached.h"
- #include "build/build_config.h"
- #include "build/chromeos_buildflags.h"
- #include "ui/base/resource/resource_bundle.h"
- #include "ui/color/color_provider.h"
- #include "ui/color/color_provider_utils.h"
- #include "ui/gfx/canvas.h"
- #include "ui/gfx/color_palette.h"
- #include "ui/gfx/color_utils.h"
- #include "ui/gfx/geometry/rect.h"
- #include "ui/gfx/geometry/skia_conversions.h"
- #include "ui/gfx/image/image_skia.h"
- namespace ui {
- void CommonThemePaintMenuItemBackground(
- const NativeTheme* theme,
- const ColorProvider* color_provider,
- cc::PaintCanvas* canvas,
- NativeTheme::State state,
- const gfx::Rect& rect,
- const NativeTheme::MenuItemExtraParams& menu_item) {
- DCHECK(color_provider);
- cc::PaintFlags flags;
- switch (state) {
- case NativeTheme::kNormal:
- case NativeTheme::kDisabled: {
- ui::ColorId id = kColorMenuBackground;
- #if BUILDFLAG(IS_CHROMEOS_ASH)
- id = kColorAshSystemUIMenuBackground;
- #endif
- flags.setColor(color_provider->GetColor(id));
- break;
- }
- case NativeTheme::kHovered: {
- ui::ColorId id = kColorMenuItemBackgroundSelected;
- #if BUILDFLAG(IS_CHROMEOS_ASH)
- id = kColorAshSystemUIMenuItemBackgroundSelected;
- #endif
- flags.setColor(color_provider->GetColor(id));
- break;
- }
- default:
- NOTREACHED() << "Invalid state " << state;
- break;
- }
- if (menu_item.corner_radius > 0) {
- const SkScalar radius = SkIntToScalar(menu_item.corner_radius);
- canvas->drawRoundRect(gfx::RectToSkRect(rect), radius, radius, flags);
- return;
- }
- canvas->drawRect(gfx::RectToSkRect(rect), flags);
- }
- } // namespace ui
|