1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef UI_NATIVE_THEME_COMMON_THEME_H_ 6#define UI_NATIVE_THEME_COMMON_THEME_H_ 7 8#include "base/memory/scoped_ptr.h" 9#include "ui/native_theme/native_theme.h" 10 11class SkCanvas; 12 13namespace gfx { 14class Canvas; 15} 16 17namespace ui { 18 19// Drawing code that is common for all platforms. 20 21// Returns true and |color| if |color_id| is found, or false otherwise. 22bool NATIVE_THEME_EXPORT CommonThemeGetSystemColor( 23 NativeTheme::ColorId color_id, 24 SkColor* color); 25 26gfx::Size NATIVE_THEME_EXPORT CommonThemeGetPartSize( 27 NativeTheme::Part part, 28 NativeTheme::State state, 29 const NativeTheme::ExtraParams& extra); 30 31void NATIVE_THEME_EXPORT CommonThemePaintComboboxArrow( 32 SkCanvas* canvas, 33 const gfx::Rect& rect); 34 35void NATIVE_THEME_EXPORT CommonThemePaintMenuSeparator( 36 SkCanvas* canvas, 37 const gfx::Rect& rect, 38 const NativeTheme::MenuSeparatorExtraParams& extra); 39 40void NATIVE_THEME_EXPORT CommonThemePaintMenuGutter(SkCanvas* canvas, 41 const gfx::Rect& rect); 42 43void NATIVE_THEME_EXPORT CommonThemePaintMenuBackground(SkCanvas* canvas, 44 const gfx::Rect& rect); 45 46void NATIVE_THEME_EXPORT CommonThemePaintMenuItemBackground( 47 SkCanvas* canvas, 48 NativeTheme::State state, 49 const gfx::Rect& rect); 50 51// Creates a gfx::Canvas wrapping an SkCanvas. 52scoped_ptr<gfx::Canvas> NATIVE_THEME_EXPORT CommonThemeCreateCanvas( 53 SkCanvas* sk_canvas); 54 55} // namespace ui 56 57#endif // UI_NATIVE_THEME_COMMON_THEME_H_ 58