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

Side by Side Diff: third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Issue 2845773002: Make TextDecoration an enum class. (Closed)
Patch Set: Rebase Created 3 years, 7 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Antti Koivisto (koivisto@kde.org) 3 * (C) 2000 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2003, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights 5 * Copyright (C) 2003, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights
6 * reserved. 6 * reserved.
7 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com) 7 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com)
8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved.
9 * (http://www.torchmobile.com/) 9 * (http://www.torchmobile.com/)
10 * 10 *
(...skipping 15 matching lines...) Expand all
26 */ 26 */
27 27
28 #ifndef ComputedStyleConstants_h 28 #ifndef ComputedStyleConstants_h
29 #define ComputedStyleConstants_h 29 #define ComputedStyleConstants_h
30 30
31 #include "core/ComputedStyleBaseConstants.h" 31 #include "core/ComputedStyleBaseConstants.h"
32 #include <cstddef> 32 #include <cstddef>
33 33
34 namespace blink { 34 namespace blink {
35 35
36 template <typename Enum>
37 inline bool EnumHasFlags(Enum v, Enum mask) {
38 return static_cast<unsigned>(v) & static_cast<unsigned>(mask);
39 }
40
36 // Some enums are automatically generated in ComputedStyleBaseConstants 41 // Some enums are automatically generated in ComputedStyleBaseConstants
37 42
38 // TODO(sashab): Change these enums to enum classes with an unsigned underlying 43 // TODO(sashab): Change these enums to enum classes with an unsigned underlying
39 // type. Enum classes provide better type safety, and forcing an unsigned 44 // type. Enum classes provide better type safety, and forcing an unsigned
40 // underlying type prevents msvc from interpreting enums as negative numbers. 45 // underlying type prevents msvc from interpreting enums as negative numbers.
41 // See: crbug.com/628043 46 // See: crbug.com/628043
42 47
43 // Sides used when drawing borders and outlines. The values should run clockwise 48 // Sides used when drawing borders and outlines. The values should run clockwise
44 // from top. 49 // from top.
45 enum BoxSide { kBSTop, kBSRight, kBSBottom, kBSLeft }; 50 enum BoxSide { kBSTop, kBSRight, kBSBottom, kBSLeft };
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 kLineBreakAfterWhiteSpace 239 kLineBreakAfterWhiteSpace
235 }; 240 };
236 241
237 enum EResize { RESIZE_NONE, RESIZE_BOTH, RESIZE_HORIZONTAL, RESIZE_VERTICAL }; 242 enum EResize { RESIZE_NONE, RESIZE_BOTH, RESIZE_HORIZONTAL, RESIZE_VERTICAL };
238 243
239 enum QuoteType { OPEN_QUOTE, CLOSE_QUOTE, NO_OPEN_QUOTE, NO_CLOSE_QUOTE }; 244 enum QuoteType { OPEN_QUOTE, CLOSE_QUOTE, NO_OPEN_QUOTE, NO_CLOSE_QUOTE };
240 245
241 enum EAnimPlayState { kAnimPlayStatePlaying, kAnimPlayStatePaused }; 246 enum EAnimPlayState { kAnimPlayStatePlaying, kAnimPlayStatePaused };
242 247
243 static const size_t kTextDecorationBits = 4; 248 static const size_t kTextDecorationBits = 4;
244 enum TextDecoration { 249 enum class TextDecoration : unsigned {
245 kTextDecorationNone = 0x0, 250 kNone = 0x0,
246 kTextDecorationUnderline = 0x1, 251 kUnderline = 0x1,
247 kTextDecorationOverline = 0x2, 252 kOverline = 0x2,
248 kTextDecorationLineThrough = 0x4, 253 kLineThrough = 0x4,
249 kTextDecorationBlink = 0x8 254 kBlink = 0x8
250 }; 255 };
251 inline TextDecoration operator|(TextDecoration a, TextDecoration b) { 256 inline TextDecoration operator|(TextDecoration a, TextDecoration b) {
252 return TextDecoration(int(a) | int(b)); 257 return static_cast<TextDecoration>(static_cast<unsigned>(a) |
258 static_cast<unsigned>(b));
253 } 259 }
254 inline TextDecoration& operator|=(TextDecoration& a, TextDecoration b) { 260 inline TextDecoration& operator|=(TextDecoration& a, TextDecoration b) {
255 return a = a | b; 261 return a = static_cast<TextDecoration>(static_cast<unsigned>(a) |
262 static_cast<unsigned>(b));
263 }
264 inline TextDecoration& operator^=(TextDecoration& a, TextDecoration b) {
265 return a = static_cast<TextDecoration>(static_cast<unsigned>(a) ^
266 static_cast<unsigned>(b));
256 } 267 }
257 268
258 enum TextDecorationStyle { 269 enum TextDecorationStyle {
259 kTextDecorationStyleSolid, 270 kTextDecorationStyleSolid,
260 kTextDecorationStyleDouble, 271 kTextDecorationStyleDouble,
261 kTextDecorationStyleDotted, 272 kTextDecorationStyleDotted,
262 kTextDecorationStyleDashed, 273 kTextDecorationStyleDashed,
263 kTextDecorationStyleWavy 274 kTextDecorationStyleWavy
264 }; 275 };
265 276
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 // fraction, which leaves 20 bits for the integer part, making 1048575 488 // fraction, which leaves 20 bits for the integer part, making 1048575
478 // the largest number. 489 // the largest number.
479 490
480 static const int kBorderWidthFractionalBits = 6; 491 static const int kBorderWidthFractionalBits = 6;
481 static const int kBorderWidthDenominator = 1 << kBorderWidthFractionalBits; 492 static const int kBorderWidthDenominator = 1 << kBorderWidthFractionalBits;
482 static const int kMaxForBorderWidth = ((1 << 26) - 1) / kBorderWidthDenominator; 493 static const int kMaxForBorderWidth = ((1 << 26) - 1) / kBorderWidthDenominator;
483 494
484 } // namespace blink 495 } // namespace blink
485 496
486 #endif // ComputedStyleConstants_h 497 #endif // ComputedStyleConstants_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698