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
12namespace gfx {
13
14class Canvas;
15class Insets;
16class Rect;
17
18class 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