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_BASE_NINE_IMAGE_PAINTER_FACTORY_H_ 6 #define UI_BASE_NINE_IMAGE_PAINTER_FACTORY_H_ 7 8 #include "base/memory/scoped_ptr.h" 9 #include "ui/base/ui_base_export.h" 10 11 // A macro to define arrays of IDR constants used with CreateImageGridPainter. 12 #define IMAGE_GRID(x) { x ## _TOP_LEFT, x ## _TOP, x ## _TOP_RIGHT, \ 13 x ## _LEFT, x ## _CENTER, x ## _RIGHT, \ 14 x ## _BOTTOM_LEFT, x ## _BOTTOM, x ## _BOTTOM_RIGHT, } 15 16 // Defines a empty image for used in macro for creating image grid for a ring of 17 // eight images. 18 #define EMPTY_IMAGE 0 19 20 // A macro to define arrays of IDR constants used with CreateImageGridPainter 21 // where only a ring of eight images is provided and center image is empty. 22 #define IMAGE_GRID_NO_CENTER(x) { x ## _TOP_LEFT, x ## _TOP, x ## _TOP_RIGHT, \ 23 x ## _LEFT, EMPTY_IMAGE, x ## _RIGHT, \ 24 x ## _BOTTOM_LEFT, x ## _BOTTOM, x ## _BOTTOM_RIGHT, } 25 26 27 namespace gfx { 28 class NineImagePainter; 29 } 30 31 namespace ui { 32 33 // Creates a NineImagePainter from an array of image ids. It's expected the 34 // array came from the IMAGE_GRID macro. 35 UI_BASE_EXPORT scoped_ptr<gfx::NineImagePainter> CreateNineImagePainter( 36 const int image_ids[]); 37 38 } // namespace ui 39 40 #endif // UI_BASE_NINE_IMAGE_PAINTER_FACTORY_H_ 41