| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/views/border.h" | 5 #include "ui/views/border.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 } | 130 } |
| 131 | 131 |
| 132 gfx::Insets EmptyBorder::GetInsets() const { | 132 gfx::Insets EmptyBorder::GetInsets() const { |
| 133 return insets_; | 133 return insets_; |
| 134 } | 134 } |
| 135 | 135 |
| 136 gfx::Size EmptyBorder::GetMinimumSize() const { | 136 gfx::Size EmptyBorder::GetMinimumSize() const { |
| 137 return gfx::Size(); | 137 return gfx::Size(); |
| 138 } | 138 } |
| 139 | 139 |
| 140 class ExtraInsetsBorder : public Border { |
| 141 public: |
| 142 ExtraInsetsBorder(std::unique_ptr<Border> border, const gfx::Insets& insets); |
| 143 |
| 144 // Overridden from Border: |
| 145 void Paint(const View& view, gfx::Canvas* canvas) override; |
| 146 gfx::Insets GetInsets() const override; |
| 147 gfx::Size GetMinimumSize() const override; |
| 148 |
| 149 private: |
| 150 std::unique_ptr<Border> border_; |
| 151 const gfx::Insets extra_insets_; |
| 152 |
| 153 DISALLOW_COPY_AND_ASSIGN(ExtraInsetsBorder); |
| 154 }; |
| 155 |
| 156 ExtraInsetsBorder::ExtraInsetsBorder(std::unique_ptr<Border> border, |
| 157 const gfx::Insets& insets) |
| 158 : border_(std::move(border)), extra_insets_(insets) {} |
| 159 |
| 160 void ExtraInsetsBorder::Paint(const View& view, gfx::Canvas* canvas) { |
| 161 border_->Paint(view, canvas); |
| 162 } |
| 163 |
| 164 gfx::Insets ExtraInsetsBorder::GetInsets() const { |
| 165 return border_->GetInsets() + extra_insets_; |
| 166 } |
| 167 |
| 168 gfx::Size ExtraInsetsBorder::GetMinimumSize() const { |
| 169 gfx::Size size = border_->GetMinimumSize(); |
| 170 size.Enlarge(extra_insets_.width(), extra_insets_.height()); |
| 171 return size; |
| 172 } |
| 173 |
| 140 class BorderPainter : public Border { | 174 class BorderPainter : public Border { |
| 141 public: | 175 public: |
| 142 BorderPainter(std::unique_ptr<Painter> painter, const gfx::Insets& insets); | 176 BorderPainter(std::unique_ptr<Painter> painter, const gfx::Insets& insets); |
| 143 | 177 |
| 144 // Overridden from Border: | 178 // Overridden from Border: |
| 145 void Paint(const View& view, gfx::Canvas* canvas) override; | 179 void Paint(const View& view, gfx::Canvas* canvas) override; |
| 146 gfx::Insets GetInsets() const override; | 180 gfx::Insets GetInsets() const override; |
| 147 gfx::Size GetMinimumSize() const override; | 181 gfx::Size GetMinimumSize() const override; |
| 148 | 182 |
| 149 private: | 183 private: |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 std::unique_ptr<Border> Border::CreateSolidSidedBorder(int top, | 248 std::unique_ptr<Border> Border::CreateSolidSidedBorder(int top, |
| 215 int left, | 249 int left, |
| 216 int bottom, | 250 int bottom, |
| 217 int right, | 251 int right, |
| 218 SkColor color) { | 252 SkColor color) { |
| 219 return base::MakeUnique<SolidSidedBorder>( | 253 return base::MakeUnique<SolidSidedBorder>( |
| 220 gfx::Insets(top, left, bottom, right), color); | 254 gfx::Insets(top, left, bottom, right), color); |
| 221 } | 255 } |
| 222 | 256 |
| 223 // static | 257 // static |
| 258 std::unique_ptr<Border> Border::CreatePaddedBorder( |
| 259 std::unique_ptr<Border> border, |
| 260 const gfx::Insets& insets) { |
| 261 return base::MakeUnique<ExtraInsetsBorder>(std::move(border), insets); |
| 262 } |
| 263 |
| 264 // static |
| 224 std::unique_ptr<Border> Border::CreateBorderPainter( | 265 std::unique_ptr<Border> Border::CreateBorderPainter( |
| 225 std::unique_ptr<Painter> painter, | 266 std::unique_ptr<Painter> painter, |
| 226 const gfx::Insets& insets) { | 267 const gfx::Insets& insets) { |
| 227 return base::WrapUnique(new BorderPainter(std::move(painter), insets)); | 268 return base::WrapUnique(new BorderPainter(std::move(painter), insets)); |
| 228 } | 269 } |
| 229 | 270 |
| 230 } // namespace views | 271 } // namespace views |
| OLD | NEW |