| // Copyright 2014 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. | 
 |  | 
 | #ifndef UI_BASE_NINE_IMAGE_PAINTER_FACTORY_H_ | 
 | #define UI_BASE_NINE_IMAGE_PAINTER_FACTORY_H_ | 
 |  | 
 | #include <memory> | 
 |  | 
 | #include "ui/base/ui_base_export.h" | 
 |  | 
 | // A macro to define arrays of IDR constants used with CreateImageGridPainter. | 
 | #define IMAGE_GRID(x) { x ## _TOP_LEFT,    x ## _TOP,    x ## _TOP_RIGHT, \ | 
 |                         x ## _LEFT,        x ## _CENTER, x ## _RIGHT, \ | 
 |                         x ## _BOTTOM_LEFT, x ## _BOTTOM, x ## _BOTTOM_RIGHT, } | 
 |  | 
 | // Defines an empty image for use in macros for creating an image grid for a | 
 | // ring of eight images. | 
 | #define EMPTY_IMAGE 0 | 
 |  | 
 | // A macro to define arrays of IDR constants used with CreateImageGridPainter | 
 | // where only a ring of eight images is provided and center image is empty. | 
 | #define IMAGE_GRID_NO_CENTER(x) { x ## _TOP_LEFT, x ## _TOP, x ## _TOP_RIGHT, \ | 
 |       x ## _LEFT, EMPTY_IMAGE, x ## _RIGHT, \ | 
 |       x ## _BOTTOM_LEFT, x ## _BOTTOM, x ## _BOTTOM_RIGHT, } | 
 |  | 
 | // A macro to define arrays of IDR constants used with CreateImageGridPainter | 
 | // where it can only be streched horizontally. | 
 | #define IMAGE_GRID_HORIZONTAL(x) { x ## _LEFT, x ## _CENTER, x ## _RIGHT, \ | 
 |       EMPTY_IMAGE, EMPTY_IMAGE, EMPTY_IMAGE, \ | 
 |       EMPTY_IMAGE, EMPTY_IMAGE, EMPTY_IMAGE} | 
 |  | 
 | // A macro to define arrays of IDR constants used with CreateImageGridPainter | 
 | // where it can only be streched vertically. | 
 | #define IMAGE_GRID_VERTICAL(x) { x ## _TOP, EMPTY_IMAGE, EMPTY_IMAGE, \ | 
 |         x ## _CENTER, EMPTY_IMAGE, EMPTY_IMAGE, \ | 
 |         x ## _BOTTOM, EMPTY_IMAGE, EMPTY_IMAGE} | 
 |  | 
 | namespace gfx { | 
 | class NineImagePainter; | 
 | } | 
 |  | 
 | namespace ui { | 
 |  | 
 | // Creates a NineImagePainter from an array of image ids. It's expected the | 
 | // array came from the IMAGE_GRID macro. | 
 | UI_BASE_EXPORT std::unique_ptr<gfx::NineImagePainter> CreateNineImagePainter( | 
 |     const int image_ids[]); | 
 |  | 
 | }  // namespace ui | 
 |  | 
 | #endif  // UI_BASE_NINE_IMAGE_PAINTER_FACTORY_H_ |