Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(82)

Unified Diff: third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp

Issue 2845773002: Make TextDecoration an enum class. (Closed)
Patch Set: Address comments Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp
diff --git a/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp b/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp
index 80a7b90c9b77fd15493499141bc206560a440f0a..461d06ed4e99ad462d1c6f018b3ff58acf0ee1e7 100644
--- a/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp
+++ b/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp
@@ -81,7 +81,8 @@ static LineLayoutItem EnclosingUnderlineObject(
return nullptr;
const ComputedStyle& style_to_use = current.StyleRef(first_line);
- if (style_to_use.GetTextDecoration() & kTextDecorationUnderline)
+ if (EnumHasFlags(style_to_use.GetTextDecoration(),
+ TextDecoration::kUnderline))
return current;
current = current.Parent();
@@ -591,10 +592,10 @@ static void PaintDecorationsExceptLineThrough(
for (const AppliedTextDecoration& decoration : decorations) {
TextDecoration lines = decoration.Lines();
if (flip_underline_and_overline) {
- lines = static_cast<TextDecoration>(
- lines ^ (kTextDecorationUnderline | kTextDecorationOverline));
+ lines ^= (TextDecoration::kUnderline | TextDecoration::kOverline);
}
- if ((lines & kTextDecorationUnderline) && decoration_info.font_data) {
+ if (EnumHasFlags(lines, TextDecoration::kUnderline) &&
+ decoration_info.font_data) {
const int underline_offset =
ComputeUnderlineOffset(underline_position, *decoration_info.style,
decoration_info.font_data->GetFontMetrics(),
@@ -612,7 +613,7 @@ static void PaintDecorationsExceptLineThrough(
}
decoration_painter.Paint();
}
- if (lines & kTextDecorationOverline) {
+ if (EnumHasFlags(lines, TextDecoration::kOverline)) {
const int overline_offset =
ComputeOverlineOffset(*decoration_info.style, &box);
AppliedDecorationPainter decoration_painter(
@@ -630,7 +631,8 @@ static void PaintDecorationsExceptLineThrough(
}
// We could instead build a vector of the TextDecoration instances needing
// line-through but this is a rare case so better to avoid vector overhead.
- has_line_through_decoration |= ((lines & kTextDecorationLineThrough) != 0);
+ has_line_through_decoration |=
+ EnumHasFlags(lines, TextDecoration::kLineThrough);
}
}
@@ -644,7 +646,7 @@ static void PaintDecorationsOnlyLineThrough(
context.SetStrokeThickness(decoration_info.thickness);
for (const AppliedTextDecoration& decoration : decorations) {
TextDecoration lines = decoration.Lines();
- if (lines & kTextDecorationLineThrough) {
+ if (EnumHasFlags(lines, TextDecoration::kLineThrough)) {
const float line_through_offset = 2 * decoration_info.baseline / 3;
AppliedDecorationPainter decoration_painter(
context, decoration_info, line_through_offset, decoration,
@@ -860,7 +862,7 @@ void InlineTextBoxPainter::Paint(const PaintInfo& paint_info,
// Paint text decorations except line-through.
DecorationInfo decoration_info;
bool has_line_through_decoration = false;
- if (style_to_use.TextDecorationsInEffect() != kTextDecorationNone &&
+ if (style_to_use.TextDecorationsInEffect() != TextDecoration::kNone &&
inline_text_box_.Truncation() != kCFullTruncation) {
ComputeDecorationInfo(decoration_info, inline_text_box_, box_origin,
style_to_use.AppliedTextDecorations());

Powered by Google App Engine
This is Rietveld 408576698