1 // Copyright 2014 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_GFX_NINE_IMAGE_PAINTER_H_ 6 #define UI_GFX_NINE_IMAGE_PAINTER_H_ 7 8 #include "base/logging.h" 9 #include "ui/gfx/gfx_export.h" 10 #include "ui/gfx/image/image_skia.h" 11 12 namespace gfx { 13 14 class Canvas; 15 class Insets; 16 class Rect; 17 18 class GFX_EXPORT NineImagePainter { 19 public: 20 explicit NineImagePainter(const std::vector<ImageSkia>& images); 21 NineImagePainter(const ImageSkia& image, const Insets& insets); 22 ~NineImagePainter(); 23 24 bool IsEmpty() const; 25 Size GetMinimumSize() const; 26 void Paint(Canvas* canvas, const Rect& bounds); 27 void Paint(Canvas* canvas, const Rect& bounds, uint8 alpha); 28 29 private: 30 // Images are numbered as depicted below. 31 // ____________________ 32 // |__i0__|__i1__|__i2__| 33 // |__i3__|__i4__|__i5__| 34 // |__i6__|__i7__|__i8__| 35 ImageSkia images_[9]; 36 37 DISALLOW_COPY_AND_ASSIGN(NineImagePainter); 38 }; 39 40 } // namespace gfx 41 42 #endif // UI_GFX_NINE_IMAGE_PAINTER_H_ 43