| // 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 "base/memory/scoped_ptr.h" |
| #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 a empty image for used in macro for creating 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 scoped_ptr<gfx::NineImagePainter> CreateNineImagePainter( |
| const int image_ids[]); |
| |
| } // namespace ui |
| |
| #endif // UI_BASE_NINE_IMAGE_PAINTER_FACTORY_H_ |