1 // Copyright 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 CC_LAYERS_SCROLLBAR_THEME_PAINTER_H_ 6 #define CC_LAYERS_SCROLLBAR_THEME_PAINTER_H_ 7 8 #include "cc/base/cc_export.h" 9 10 class SkCanvas; 11 12 namespace gfx { 13 class Rect; 14 } 15 16 namespace cc { 17 18 class CC_EXPORT ScrollbarThemePainter { 19 public: 20 virtual ~ScrollbarThemePainter() {} 21 22 virtual void PaintScrollbarBackground(SkCanvas* canvas, 23 const gfx::Rect& rect) = 0; 24 virtual void PaintTrackBackground(SkCanvas* canvas, 25 const gfx::Rect& rect) = 0; 26 virtual void PaintBackTrackPart(SkCanvas* canvas, 27 const gfx::Rect& rect) = 0; 28 virtual void PaintForwardTrackPart(SkCanvas* canvas, 29 const gfx::Rect& rect) = 0; 30 virtual void PaintBackButtonStart(SkCanvas* canvas, 31 const gfx::Rect& rect) = 0; 32 virtual void PaintBackButtonEnd(SkCanvas* canvas, 33 const gfx::Rect& rect) = 0; 34 virtual void PaintForwardButtonStart(SkCanvas* canvas, 35 const gfx::Rect& rect) = 0; 36 virtual void PaintForwardButtonEnd(SkCanvas* canvas, 37 const gfx::Rect& rect) = 0; 38 virtual void PaintTickmarks(SkCanvas* canvas, const gfx::Rect& rect) = 0; 39 virtual void PaintThumb(SkCanvas* canvas, const gfx::Rect& rect) = 0; 40 }; 41 42 } // namespace cc 43 44 #endif // CC_LAYERS_SCROLLBAR_THEME_PAINTER_H_ 45