Commit 0a45355b authored by jongdeok.kim's avatar jongdeok.kim Committed by Commit Bot

Add a border color to views::Border as a member.

This CL adds a border color to views::Border, and remove a color memeber in subclasses.

Bug: None
Change-Id: I5598325d4baac305c145b933889fea96de6d3bb9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1985635Reviewed-by: default avatarAhmed Fakhry <afakhry@chromium.org>
Reviewed-by: default avatarPeter Kasting <pkasting@chromium.org>
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/master@{#732957}
parent d066baec
...@@ -20,15 +20,15 @@ constexpr int kBorderPadding = 2; ...@@ -20,15 +20,15 @@ constexpr int kBorderPadding = 2;
} // namespace } // namespace
DesksBarItemBorder::DesksBarItemBorder(int corner_radius) DesksBarItemBorder::DesksBarItemBorder(int corner_radius)
: corner_radius_(corner_radius) {} : views::Border(SK_ColorTRANSPARENT), corner_radius_(corner_radius) {}
void DesksBarItemBorder::Paint(const views::View& view, gfx::Canvas* canvas) { void DesksBarItemBorder::Paint(const views::View& view, gfx::Canvas* canvas) {
if (color_ == SK_ColorTRANSPARENT) if (color() == SK_ColorTRANSPARENT)
return; return;
cc::PaintFlags flags; cc::PaintFlags flags;
flags.setStrokeWidth(kBorderSize); flags.setStrokeWidth(kBorderSize);
flags.setColor(color_); flags.setColor(color());
flags.setStyle(cc::PaintFlags::kStroke_Style); flags.setStyle(cc::PaintFlags::kStroke_Style);
flags.setAntiAlias(true); flags.setAntiAlias(true);
......
...@@ -21,8 +21,6 @@ class DesksBarItemBorder : public views::Border { ...@@ -21,8 +21,6 @@ class DesksBarItemBorder : public views::Border {
explicit DesksBarItemBorder(int corner_radius); explicit DesksBarItemBorder(int corner_radius);
~DesksBarItemBorder() override = default; ~DesksBarItemBorder() override = default;
void set_color(SkColor color) { color_ = color; }
// views::Border: // views::Border:
void Paint(const views::View& view, gfx::Canvas* canvas) override; void Paint(const views::View& view, gfx::Canvas* canvas) override;
gfx::Insets GetInsets() const override; gfx::Insets GetInsets() const override;
...@@ -31,8 +29,6 @@ class DesksBarItemBorder : public views::Border { ...@@ -31,8 +29,6 @@ class DesksBarItemBorder : public views::Border {
private: private:
const int corner_radius_; const int corner_radius_;
SkColor color_ = SK_ColorTRANSPARENT;
DISALLOW_COPY_AND_ASSIGN(DesksBarItemBorder); DISALLOW_COPY_AND_ASSIGN(DesksBarItemBorder);
}; };
......
...@@ -120,7 +120,7 @@ constexpr int kDangerIconOffset = 8; ...@@ -120,7 +120,7 @@ constexpr int kDangerIconOffset = 8;
class SeparatorBorder : public views::Border { class SeparatorBorder : public views::Border {
public: public:
explicit SeparatorBorder(SkColor separator_color) explicit SeparatorBorder(SkColor separator_color)
: separator_color_(separator_color) {} : views::Border(separator_color) {}
~SeparatorBorder() override {} ~SeparatorBorder() override {}
void Paint(const views::View& view, gfx::Canvas* canvas) override { void Paint(const views::View& view, gfx::Canvas* canvas) override {
...@@ -130,7 +130,7 @@ class SeparatorBorder : public views::Border { ...@@ -130,7 +130,7 @@ class SeparatorBorder : public views::Border {
int end_x = base::i18n::IsRTL() ? 0 : view.width() - 1; int end_x = base::i18n::IsRTL() ? 0 : view.width() - 1;
canvas->DrawLine(gfx::Point(end_x, kTopBottomPadding), canvas->DrawLine(gfx::Point(end_x, kTopBottomPadding),
gfx::Point(end_x, view.height() - kTopBottomPadding), gfx::Point(end_x, view.height() - kTopBottomPadding),
separator_color_); color());
} }
gfx::Insets GetInsets() const override { return gfx::Insets(0, 0, 0, 1); } gfx::Insets GetInsets() const override { return gfx::Insets(0, 0, 0, 1); }
...@@ -139,9 +139,6 @@ class SeparatorBorder : public views::Border { ...@@ -139,9 +139,6 @@ class SeparatorBorder : public views::Border {
return gfx::Size(1, 2 * kTopBottomPadding + 1); return gfx::Size(1, 2 * kTopBottomPadding + 1);
} }
private:
SkColor separator_color_;
DISALLOW_COPY_AND_ASSIGN(SeparatorBorder); DISALLOW_COPY_AND_ASSIGN(SeparatorBorder);
}; };
......
...@@ -26,7 +26,7 @@ ArrowBorder::ArrowBorder(int thickness, ...@@ -26,7 +26,7 @@ ArrowBorder::ArrowBorder(int thickness,
SkColor background_color, SkColor background_color,
const gfx::VectorIcon& arrow_icon, const gfx::VectorIcon& arrow_icon,
const Properties* properties) const Properties* properties)
: color_(color), : views::Border(color),
insets_(gfx::Insets(thickness) + properties->insets), insets_(gfx::Insets(thickness) + properties->insets),
arrow_border_insets_(properties->arrow_border_insets), arrow_border_insets_(properties->arrow_border_insets),
arrow_(gfx::CreateVectorIcon(arrow_icon, background_color)) { arrow_(gfx::CreateVectorIcon(arrow_icon, background_color)) {
...@@ -73,7 +73,7 @@ void ArrowBorder::Paint(const views::View& view, gfx::Canvas* canvas) { ...@@ -73,7 +73,7 @@ void ArrowBorder::Paint(const views::View& view, gfx::Canvas* canvas) {
arrow_bounds.Inset(arrow_border_insets_.Scale(dsf)); arrow_bounds.Inset(arrow_border_insets_.Scale(dsf));
canvas->sk_canvas()->clipRect(gfx::RectToSkRect(arrow_bounds), canvas->sk_canvas()->clipRect(gfx::RectToSkRect(arrow_bounds),
SkClipOp::kDifference, true); SkClipOp::kDifference, true);
canvas->DrawColor(color_); canvas->DrawColor(color());
} }
// Paint the arrow. // Paint the arrow.
......
...@@ -67,9 +67,6 @@ class ArrowBorder : public views::Border { ...@@ -67,9 +67,6 @@ class ArrowBorder : public views::Border {
gfx::Insets GetInsets() const override; gfx::Insets GetInsets() const override;
gfx::Size GetMinimumSize() const override; gfx::Size GetMinimumSize() const override;
// The color of the border.
const SkColor color_;
// The region occupied by the border. // The region occupied by the border.
const gfx::Insets insets_; const gfx::Insets insets_;
......
...@@ -33,15 +33,12 @@ class SolidSidedBorder : public Border { ...@@ -33,15 +33,12 @@ class SolidSidedBorder : public Border {
private: private:
const gfx::Insets insets_; const gfx::Insets insets_;
const SkColor color_;
DISALLOW_COPY_AND_ASSIGN(SolidSidedBorder); DISALLOW_COPY_AND_ASSIGN(SolidSidedBorder);
}; };
SolidSidedBorder::SolidSidedBorder(const gfx::Insets& insets, SkColor color) SolidSidedBorder::SolidSidedBorder(const gfx::Insets& insets, SkColor color)
: insets_(insets), : Border(color), insets_(insets) {}
color_(color) {
}
void SolidSidedBorder::Paint(const View& view, gfx::Canvas* canvas) { void SolidSidedBorder::Paint(const View& view, gfx::Canvas* canvas) {
// Undo DSF so that we can be sure to draw an integral number of pixels for // Undo DSF so that we can be sure to draw an integral number of pixels for
...@@ -63,7 +60,7 @@ void SolidSidedBorder::Paint(const View& view, gfx::Canvas* canvas) { ...@@ -63,7 +60,7 @@ void SolidSidedBorder::Paint(const View& view, gfx::Canvas* canvas) {
scaled_bounds.Inset(insets_.Scale(dsf)); scaled_bounds.Inset(insets_.Scale(dsf));
canvas->sk_canvas()->clipRect(gfx::RectFToSkRect(scaled_bounds), canvas->sk_canvas()->clipRect(gfx::RectFToSkRect(scaled_bounds),
SkClipOp::kDifference, true); SkClipOp::kDifference, true);
canvas->DrawColor(color_); canvas->DrawColor(color());
} }
gfx::Insets SolidSidedBorder::GetInsets() const { gfx::Insets SolidSidedBorder::GetInsets() const {
...@@ -91,7 +88,6 @@ class RoundedRectBorder : public Border { ...@@ -91,7 +88,6 @@ class RoundedRectBorder : public Border {
const int thickness_; const int thickness_;
const int corner_radius_; const int corner_radius_;
const gfx::Insets paint_insets_; const gfx::Insets paint_insets_;
const SkColor color_;
DISALLOW_COPY_AND_ASSIGN(RoundedRectBorder); DISALLOW_COPY_AND_ASSIGN(RoundedRectBorder);
}; };
...@@ -100,15 +96,15 @@ RoundedRectBorder::RoundedRectBorder(int thickness, ...@@ -100,15 +96,15 @@ RoundedRectBorder::RoundedRectBorder(int thickness,
int corner_radius, int corner_radius,
const gfx::Insets& paint_insets, const gfx::Insets& paint_insets,
SkColor color) SkColor color)
: thickness_(thickness), : Border(color),
thickness_(thickness),
corner_radius_(corner_radius), corner_radius_(corner_radius),
paint_insets_(paint_insets), paint_insets_(paint_insets) {}
color_(color) {}
void RoundedRectBorder::Paint(const View& view, gfx::Canvas* canvas) { void RoundedRectBorder::Paint(const View& view, gfx::Canvas* canvas) {
cc::PaintFlags flags; cc::PaintFlags flags;
flags.setStrokeWidth(thickness_); flags.setStrokeWidth(thickness_);
flags.setColor(color_); flags.setColor(color());
flags.setStyle(cc::PaintFlags::kStroke_Style); flags.setStyle(cc::PaintFlags::kStroke_Style);
flags.setAntiAlias(true); flags.setAntiAlias(true);
...@@ -228,6 +224,8 @@ gfx::Size BorderPainter::GetMinimumSize() const { ...@@ -228,6 +224,8 @@ gfx::Size BorderPainter::GetMinimumSize() const {
Border::Border() = default; Border::Border() = default;
Border::Border(SkColor color) : color_(color) {}
Border::~Border() = default; Border::~Border() = default;
std::unique_ptr<Border> NullBorder() { std::unique_ptr<Border> NullBorder() {
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "third_party/skia/include/core/SkColor.h" #include "third_party/skia/include/core/SkColor.h"
#include "ui/gfx/color_palette.h"
#include "ui/gfx/geometry/insets.h" #include "ui/gfx/geometry/insets.h"
#include "ui/views/views_export.h" #include "ui/views/views_export.h"
...@@ -41,6 +42,7 @@ class View; ...@@ -41,6 +42,7 @@ class View;
class VIEWS_EXPORT Border { class VIEWS_EXPORT Border {
public: public:
Border(); Border();
explicit Border(SkColor color);
virtual ~Border(); virtual ~Border();
// Renders the border for the specified view. // Renders the border for the specified view.
...@@ -57,7 +59,14 @@ class VIEWS_EXPORT Border { ...@@ -57,7 +59,14 @@ class VIEWS_EXPORT Border {
// content laid out relative to these images. // content laid out relative to these images.
virtual gfx::Size GetMinimumSize() const = 0; virtual gfx::Size GetMinimumSize() const = 0;
SkColor color() const { return color_; }
// Sets the border color.
void set_color(SkColor color) { color_ = color; }
private: private:
SkColor color_ = gfx::kPlaceholderColor;
DISALLOW_COPY_AND_ASSIGN(Border); DISALLOW_COPY_AND_ASSIGN(Border);
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment