| // Copyright 2017 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_GFX_SHADOW_UTIL_H_ |
| #define UI_GFX_SHADOW_UTIL_H_ |
| |
| #include "ui/gfx/gfx_export.h" |
| #include "ui/gfx/image/image_skia.h" |
| #include "ui/gfx/shadow_value.h" |
| |
| namespace gfx { |
| |
| // A struct that describes a vector of shadows and their depiction as an image |
| // suitable for ninebox tiling. |
| struct GFX_EXPORT ShadowDetails { |
| ShadowDetails(); |
| ShadowDetails(const ShadowDetails& other); |
| ~ShadowDetails(); |
| |
| // Returns a cached ShadowDetails for the given elevation (which controls |
| // style) and corner radius. Creates the ShadowDetails first if necessary. |
| static const ShadowDetails& Get(int elevation, int radius); |
| |
| // Description of the shadows. |
| gfx::ShadowValues values; |
| // Cached ninebox image based on |values|. |
| gfx::ImageSkia ninebox_image; |
| }; |
| |
| } // namespace gfx |
| |
| #endif // UI_GFX_SHADOW_UTIL_H_ |