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 27namespace gfx { 28class NineImagePainter; 29} 30 31namespace ui { 32 33// Creates a NineImagePainter from an array of image ids. It's expected the 34// array came from the IMAGE_GRID macro. 35UI_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