Chromium Code Reviews| Index: ui/gfx/shadow_value.cc |
| diff --git a/ui/gfx/shadow_value.cc b/ui/gfx/shadow_value.cc |
| index 2599fdbe446cd4089540533ed7477f4170190a0a..54c00b544bfceddf978100bee8f7edaec627cdff 100644 |
| --- a/ui/gfx/shadow_value.cc |
| +++ b/ui/gfx/shadow_value.cc |
| @@ -14,6 +14,33 @@ |
| namespace gfx { |
| +namespace { |
| + |
| +Insets GetInsets(const ShadowValues& shadows, bool include_inner_blur) { |
| + int left = 0; |
| + int top = 0; |
| + int right = 0; |
| + int bottom = 0; |
| + |
| + for (size_t i = 0; i < shadows.size(); ++i) { |
| + const ShadowValue& shadow = shadows[i]; |
| + |
| + double blur = shadow.blur(); |
| + if (!include_inner_blur) |
| + blur /= 2; |
| + // Add 0.5 to round up to the next integer. |
| + int blur_length = static_cast<int>(blur + 0.5); |
| + |
| + left = std::max(left, blur_length - shadow.x()); |
| + top = std::max(top, blur_length - shadow.y()); |
| + right = std::max(right, blur_length + shadow.x()); |
| + bottom = std::max(bottom, blur_length + shadow.y()); |
| + } |
| + |
| + return Insets(top, left, bottom, right); |
| +} |
| +} |
|
sky
2016/12/07 16:39:32
// namespace
Evan Stade
2016/12/07 18:55:00
Done.
|
| + |
| ShadowValue::ShadowValue() |
| : blur_(0), |
| color_(0) { |
| @@ -47,24 +74,13 @@ std::string ShadowValue::ToString() const { |
| // static |
| Insets ShadowValue::GetMargin(const ShadowValues& shadows) { |
| - int left = 0; |
| - int top = 0; |
| - int right = 0; |
| - int bottom = 0; |
| - |
| - for (size_t i = 0; i < shadows.size(); ++i) { |
| - const ShadowValue& shadow = shadows[i]; |
| - |
| - // Add 0.5 to round up to the next integer. |
| - int blur = static_cast<int>(shadow.blur() / 2 + 0.5); |
| - |
| - left = std::max(left, blur - shadow.x()); |
| - top = std::max(top, blur - shadow.y()); |
| - right = std::max(right, blur + shadow.x()); |
| - bottom = std::max(bottom, blur + shadow.y()); |
| - } |
| + gfx::Insets margins = GetInsets(shadows, false); |
| + return -margins; |
| +} |
| - return Insets(-top, -left, -bottom, -right); |
| +// static |
| +Insets ShadowValue::GetBlurRegion(const ShadowValues& shadows) { |
| + return GetInsets(shadows, true); |
| } |
| } // namespace gfx |