2 * Copyright (C) 2007 Alexey Proskuryakov <ap@nypop.com>.
3 * Copyright (C) 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
4 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved.
5 * (http://www.torchmobile.com/)
6 * Copyright (C) 2009 Jeff Schiller <codedread@gmail.com>
7 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in the
17 * documentation and/or other materials provided with the distribution.
19 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 #ifndef CSSPrimitiveValueMappings_h
32 #define CSSPrimitiveValueMappings_h
34 #include "core/CSSValueKeywords.h"
35 #include "core/css/CSSCalculationValue.h"
36 #include "core/css/CSSIdentifierValue.h"
37 #include "core/css/CSSPrimitiveValue.h"
38 #include "core/css/CSSReflectionDirection.h"
39 #include "core/css/CSSToLengthConversionData.h"
40 #include "core/style/ComputedStyleConstants.h"
41 #include "core/style/LineClampValue.h"
42 #include "core/style/SVGComputedStyleDefs.h"
43 #include "platform/Length.h"
44 #include "platform/ThemeTypes.h"
45 #include "platform/fonts/FontDescription.h"
46 #include "platform/fonts/FontSmoothingMode.h"
47 #include "platform/fonts/TextRenderingMode.h"
48 #include "platform/graphics/GraphicsTypes.h"
49 #include "platform/scroll/ScrollableArea.h"
50 #include "platform/text/TextDirection.h"
51 #include "platform/text/TextRun.h"
52 #include "platform/text/UnicodeBidi.h"
53 #include "platform/text/WritingMode.h"
54 #include "public/platform/WebBlendMode.h"
55 #include "wtf/MathExtras.h"
59 // TODO(sashab): Move these to CSSPrimitiveValue.h.
61 inline short CSSPrimitiveValue::convertTo() const {
63 return clampTo<short>(getDoubleValue());
67 inline unsigned short CSSPrimitiveValue::convertTo() const {
69 return clampTo<unsigned short>(getDoubleValue());
73 inline int CSSPrimitiveValue::convertTo() const {
75 return clampTo<int>(getDoubleValue());
79 inline unsigned CSSPrimitiveValue::convertTo() const {
81 return clampTo<unsigned>(getDoubleValue());
85 inline float CSSPrimitiveValue::convertTo() const {
87 return clampTo<float>(getDoubleValue());
91 inline CSSPrimitiveValue::CSSPrimitiveValue(LineClampValue i)
92 : CSSValue(PrimitiveClass) {
93 init(i.isPercentage() ? UnitType::Percentage : UnitType::Integer);
94 m_value.num = static_cast<double>(i.value());
98 inline LineClampValue CSSPrimitiveValue::convertTo() const {
99 if (type() == UnitType::Integer)
100 return LineClampValue(clampTo<int>(m_value.num), LineClampLineCount);
102 if (type() == UnitType::Percentage)
103 return LineClampValue(clampTo<int>(m_value.num), LineClampPercentage);
105 ASSERT_NOT_REACHED();
106 return LineClampValue();
109 // TODO(sashab): Move these to CSSIdentifierValueMappings.h, and update to use
112 inline CSSIdentifierValue::CSSIdentifierValue(CSSReflectionDirection e)
113 : CSSValue(IdentifierClass) {
115 case ReflectionAbove:
116 m_valueID = CSSValueAbove;
118 case ReflectionBelow:
119 m_valueID = CSSValueBelow;
122 m_valueID = CSSValueLeft;
124 case ReflectionRight:
125 m_valueID = CSSValueRight;
130 inline CSSReflectionDirection CSSIdentifierValue::convertTo() const {
133 return ReflectionAbove;
135 return ReflectionBelow;
137 return ReflectionLeft;
139 return ReflectionRight;
144 ASSERT_NOT_REACHED();
145 return ReflectionBelow;
149 inline CSSIdentifierValue::CSSIdentifierValue(ColumnFill columnFill)
150 : CSSValue(IdentifierClass) {
151 switch (columnFill) {
153 m_valueID = CSSValueAuto;
155 case ColumnFillBalance:
156 m_valueID = CSSValueBalance;
162 inline ColumnFill CSSIdentifierValue::convertTo() const {
163 if (m_valueID == CSSValueBalance)
164 return ColumnFillBalance;
165 if (m_valueID == CSSValueAuto)
166 return ColumnFillAuto;
167 ASSERT_NOT_REACHED();
168 return ColumnFillBalance;
172 inline CSSIdentifierValue::CSSIdentifierValue(ColumnSpan columnSpan)
173 : CSSValue(IdentifierClass) {
174 switch (columnSpan) {
176 m_valueID = CSSValueAll;
179 m_valueID = CSSValueNone;
185 inline ColumnSpan CSSIdentifierValue::convertTo() const {
188 return ColumnSpanAll;
190 ASSERT_NOT_REACHED();
193 return ColumnSpanNone;
198 inline CSSIdentifierValue::CSSIdentifierValue(PrintColorAdjust value)
199 : CSSValue(IdentifierClass) {
201 case PrintColorAdjustExact:
202 m_valueID = CSSValueExact;
204 case PrintColorAdjustEconomy:
205 m_valueID = CSSValueEconomy;
211 inline PrintColorAdjust CSSIdentifierValue::convertTo() const {
213 case CSSValueEconomy:
214 return PrintColorAdjustEconomy;
216 return PrintColorAdjustExact;
221 ASSERT_NOT_REACHED();
222 return PrintColorAdjustEconomy;
226 inline CSSIdentifierValue::CSSIdentifierValue(EBorderStyle e)
227 : CSSValue(IdentifierClass) {
229 case BorderStyleNone:
230 m_valueID = CSSValueNone;
232 case BorderStyleHidden:
233 m_valueID = CSSValueHidden;
235 case BorderStyleInset:
236 m_valueID = CSSValueInset;
238 case BorderStyleGroove:
239 m_valueID = CSSValueGroove;
241 case BorderStyleRidge:
242 m_valueID = CSSValueRidge;
244 case BorderStyleOutset:
245 m_valueID = CSSValueOutset;
247 case BorderStyleDotted:
248 m_valueID = CSSValueDotted;
250 case BorderStyleDashed:
251 m_valueID = CSSValueDashed;
253 case BorderStyleSolid:
254 m_valueID = CSSValueSolid;
256 case BorderStyleDouble:
257 m_valueID = CSSValueDouble;
263 inline EBorderStyle CSSIdentifierValue::convertTo() const {
264 if (m_valueID == CSSValueAuto) // Valid for CSS outline-style
265 return BorderStyleDotted;
266 return (EBorderStyle)(m_valueID - CSSValueNone);
270 inline OutlineIsAuto CSSIdentifierValue::convertTo() const {
271 if (m_valueID == CSSValueAuto)
272 return OutlineIsAutoOn;
273 return OutlineIsAutoOff;
277 inline CSSIdentifierValue::CSSIdentifierValue(CompositeOperator e)
278 : CSSValue(IdentifierClass) {
281 m_valueID = CSSValueClear;
284 m_valueID = CSSValueCopy;
286 case CompositeSourceOver:
287 m_valueID = CSSValueSourceOver;
289 case CompositeSourceIn:
290 m_valueID = CSSValueSourceIn;
292 case CompositeSourceOut:
293 m_valueID = CSSValueSourceOut;
295 case CompositeSourceAtop:
296 m_valueID = CSSValueSourceAtop;
298 case CompositeDestinationOver:
299 m_valueID = CSSValueDestinationOver;
301 case CompositeDestinationIn:
302 m_valueID = CSSValueDestinationIn;
304 case CompositeDestinationOut:
305 m_valueID = CSSValueDestinationOut;
307 case CompositeDestinationAtop:
308 m_valueID = CSSValueDestinationAtop;
311 m_valueID = CSSValueXor;
313 case CompositePlusLighter:
314 m_valueID = CSSValuePlusLighter;
317 ASSERT_NOT_REACHED();
323 inline CompositeOperator CSSIdentifierValue::convertTo() const {
326 return CompositeClear;
328 return CompositeCopy;
329 case CSSValueSourceOver:
330 return CompositeSourceOver;
331 case CSSValueSourceIn:
332 return CompositeSourceIn;
333 case CSSValueSourceOut:
334 return CompositeSourceOut;
335 case CSSValueSourceAtop:
336 return CompositeSourceAtop;
337 case CSSValueDestinationOver:
338 return CompositeDestinationOver;
339 case CSSValueDestinationIn:
340 return CompositeDestinationIn;
341 case CSSValueDestinationOut:
342 return CompositeDestinationOut;
343 case CSSValueDestinationAtop:
344 return CompositeDestinationAtop;
347 case CSSValuePlusLighter:
348 return CompositePlusLighter;
353 ASSERT_NOT_REACHED();
354 return CompositeClear;
358 inline CSSIdentifierValue::CSSIdentifierValue(ControlPart e)
359 : CSSValue(IdentifierClass) {
362 m_valueID = CSSValueNone;
365 m_valueID = CSSValueCheckbox;
368 m_valueID = CSSValueRadio;
371 m_valueID = CSSValuePushButton;
373 case SquareButtonPart:
374 m_valueID = CSSValueSquareButton;
377 m_valueID = CSSValueButton;
379 case ButtonBevelPart:
380 m_valueID = CSSValueButtonBevel;
382 case InnerSpinButtonPart:
383 m_valueID = CSSValueInnerSpinButton;
386 m_valueID = CSSValueListbox;
389 m_valueID = CSSValueListitem;
391 case MediaEnterFullscreenButtonPart:
392 m_valueID = CSSValueMediaEnterFullscreenButton;
394 case MediaExitFullscreenButtonPart:
395 m_valueID = CSSValueMediaExitFullscreenButton;
397 case MediaPlayButtonPart:
398 m_valueID = CSSValueMediaPlayButton;
400 case MediaOverlayPlayButtonPart:
401 m_valueID = CSSValueMediaOverlayPlayButton;
403 #if defined(OS_TIZEN)
404 case MediaSeekBackButtonPart:
405 m_valueID = CSSValueMediaSeekBackButton;
407 case MediaSeekForwardButtonPart:
408 m_valueID = CSSValueMediaSeekForwardButton;
411 case MediaRotateButtonPart:
412 m_valueID = CSSValueMediaRotateButton;
414 case MediaOverlaySpinnerPart:
415 m_valueID = CSSValueMediaOverlaySpinner;
417 case MediaMuteButtonPart:
418 m_valueID = CSSValueMediaMuteButton;
420 case MediaToggleClosedCaptionsButtonPart:
421 m_valueID = CSSValueMediaToggleClosedCaptionsButton;
423 case MediaCastOffButtonPart:
424 m_valueID = CSSValueInternalMediaCastOffButton;
426 case MediaOverlayCastOffButtonPart:
427 m_valueID = CSSValueInternalMediaOverlayCastOffButton;
429 case MediaSliderPart:
430 m_valueID = CSSValueMediaSlider;
432 case MediaSliderThumbPart:
433 m_valueID = CSSValueMediaSliderthumb;
435 case MediaVolumeSliderContainerPart:
436 m_valueID = CSSValueMediaVolumeSliderContainer;
438 case MediaVolumeSliderPart:
439 m_valueID = CSSValueMediaVolumeSlider;
441 case MediaVolumeSliderThumbPart:
442 m_valueID = CSSValueMediaVolumeSliderthumb;
444 case MediaControlsBackgroundPart:
445 m_valueID = CSSValueMediaControlsBackground;
447 case MediaControlsFullscreenBackgroundPart:
448 m_valueID = CSSValueMediaControlsFullscreenBackground;
450 case MediaFullscreenVolumeSliderPart:
451 m_valueID = CSSValueMediaFullscreenVolumeSlider;
453 case MediaFullscreenVolumeSliderThumbPart:
454 m_valueID = CSSValueMediaFullscreenVolumeSliderThumb;
456 case MediaCurrentTimePart:
457 m_valueID = CSSValueMediaCurrentTimeDisplay;
459 case MediaTimeRemainingPart:
460 m_valueID = CSSValueMediaTimeRemainingDisplay;
462 case MediaTrackSelectionCheckmarkPart:
463 m_valueID = CSSValueInternalMediaTrackSelectionCheckmark;
465 case MediaClosedCaptionsIconPart:
466 m_valueID = CSSValueInternalMediaClosedCaptionsIcon;
468 case MediaSubtitlesIconPart:
469 m_valueID = CSSValueInternalMediaSubtitlesIcon;
471 case MediaOverflowMenuButtonPart:
472 m_valueID = CSSValueInternalMediaOverflowButton;
474 case MediaDownloadIconPart:
475 m_valueID = CSSValueInternalMediaDownloadButton;
478 m_valueID = CSSValueMenulist;
480 case MenulistButtonPart:
481 m_valueID = CSSValueMenulistButton;
483 case MenulistTextPart:
484 m_valueID = CSSValueMenulistText;
486 case MenulistTextFieldPart:
487 m_valueID = CSSValueMenulistTextfield;
490 m_valueID = CSSValueMeter;
492 case ProgressBarPart:
493 m_valueID = CSSValueProgressBar;
495 case ProgressBarValuePart:
496 m_valueID = CSSValueProgressBarValue;
498 case SliderHorizontalPart:
499 m_valueID = CSSValueSliderHorizontal;
501 case SliderVerticalPart:
502 m_valueID = CSSValueSliderVertical;
504 case SliderThumbHorizontalPart:
505 m_valueID = CSSValueSliderthumbHorizontal;
507 case SliderThumbVerticalPart:
508 m_valueID = CSSValueSliderthumbVertical;
511 m_valueID = CSSValueCaret;
513 case SearchFieldPart:
514 m_valueID = CSSValueSearchfield;
516 case SearchFieldCancelButtonPart:
517 m_valueID = CSSValueSearchfieldCancelButton;
520 m_valueID = CSSValueTextfield;
523 m_valueID = CSSValueTextarea;
525 case CapsLockIndicatorPart:
526 m_valueID = CSSValueCapsLockIndicator;
532 inline ControlPart CSSIdentifierValue::convertTo() const {
533 if (m_valueID == CSSValueNone)
534 return NoControlPart;
535 return ControlPart(m_valueID - CSSValueCheckbox + 1);
539 inline CSSIdentifierValue::CSSIdentifierValue(EBackfaceVisibility e)
540 : CSSValue(IdentifierClass) {
542 case BackfaceVisibilityVisible:
543 m_valueID = CSSValueVisible;
545 case BackfaceVisibilityHidden:
546 m_valueID = CSSValueHidden;
552 inline EBackfaceVisibility CSSIdentifierValue::convertTo() const {
554 case CSSValueVisible:
555 return BackfaceVisibilityVisible;
557 return BackfaceVisibilityHidden;
562 ASSERT_NOT_REACHED();
563 return BackfaceVisibilityHidden;
567 inline CSSIdentifierValue::CSSIdentifierValue(EFillAttachment e)
568 : CSSValue(IdentifierClass) {
570 case ScrollBackgroundAttachment:
571 m_valueID = CSSValueScroll;
573 case LocalBackgroundAttachment:
574 m_valueID = CSSValueLocal;
576 case FixedBackgroundAttachment:
577 m_valueID = CSSValueFixed;
583 inline EFillAttachment CSSIdentifierValue::convertTo() const {
586 return ScrollBackgroundAttachment;
588 return LocalBackgroundAttachment;
590 return FixedBackgroundAttachment;
595 ASSERT_NOT_REACHED();
596 return ScrollBackgroundAttachment;
600 inline CSSIdentifierValue::CSSIdentifierValue(EFillBox e)
601 : CSSValue(IdentifierClass) {
604 m_valueID = CSSValueBorderBox;
607 m_valueID = CSSValuePaddingBox;
610 m_valueID = CSSValueContentBox;
613 m_valueID = CSSValueText;
619 inline EFillBox CSSIdentifierValue::convertTo() const {
622 case CSSValueBorderBox:
623 return BorderFillBox;
624 case CSSValuePadding:
625 case CSSValuePaddingBox:
626 return PaddingFillBox;
627 case CSSValueContent:
628 case CSSValueContentBox:
629 return ContentFillBox;
636 ASSERT_NOT_REACHED();
637 return BorderFillBox;
641 inline CSSIdentifierValue::CSSIdentifierValue(EFillRepeat e)
642 : CSSValue(IdentifierClass) {
645 m_valueID = CSSValueRepeat;
648 m_valueID = CSSValueNoRepeat;
651 m_valueID = CSSValueRound;
654 m_valueID = CSSValueSpace;
660 inline EFillRepeat CSSIdentifierValue::convertTo() const {
664 case CSSValueNoRepeat:
674 ASSERT_NOT_REACHED();
679 inline CSSIdentifierValue::CSSIdentifierValue(EBoxPack e)
680 : CSSValue(IdentifierClass) {
683 m_valueID = CSSValueStart;
686 m_valueID = CSSValueCenter;
689 m_valueID = CSSValueEnd;
692 m_valueID = CSSValueJustify;
698 inline EBoxPack CSSIdentifierValue::convertTo() const {
705 return BoxPackCenter;
706 case CSSValueJustify:
707 return BoxPackJustify;
712 ASSERT_NOT_REACHED();
713 return BoxPackJustify;
717 inline CSSIdentifierValue::CSSIdentifierValue(EBoxAlignment e)
718 : CSSValue(IdentifierClass) {
721 m_valueID = CSSValueStretch;
724 m_valueID = CSSValueStart;
727 m_valueID = CSSValueCenter;
730 m_valueID = CSSValueEnd;
733 m_valueID = CSSValueBaseline;
739 inline EBoxAlignment CSSIdentifierValue::convertTo() const {
741 case CSSValueStretch:
749 case CSSValueBaseline:
755 ASSERT_NOT_REACHED();
760 inline CSSIdentifierValue::CSSIdentifierValue(EBoxDecorationBreak e)
761 : CSSValue(IdentifierClass) {
763 case BoxDecorationBreakSlice:
764 m_valueID = CSSValueSlice;
766 case BoxDecorationBreakClone:
767 m_valueID = CSSValueClone;
773 inline EBoxDecorationBreak CSSIdentifierValue::convertTo() const {
776 return BoxDecorationBreakSlice;
778 return BoxDecorationBreakClone;
783 ASSERT_NOT_REACHED();
784 return BoxDecorationBreakSlice;
788 inline CSSIdentifierValue::CSSIdentifierValue(BackgroundEdgeOrigin e)
789 : CSSValue(IdentifierClass) {
792 m_valueID = CSSValueTop;
795 m_valueID = CSSValueRight;
798 m_valueID = CSSValueBottom;
801 m_valueID = CSSValueLeft;
807 inline BackgroundEdgeOrigin CSSIdentifierValue::convertTo() const {
821 ASSERT_NOT_REACHED();
826 inline CSSIdentifierValue::CSSIdentifierValue(EBoxSizing e)
827 : CSSValue(IdentifierClass) {
829 case BoxSizingBorderBox:
830 m_valueID = CSSValueBorderBox;
832 case BoxSizingContentBox:
833 m_valueID = CSSValueContentBox;
839 inline EBoxSizing CSSIdentifierValue::convertTo() const {
841 case CSSValueBorderBox:
842 return BoxSizingBorderBox;
843 case CSSValueContentBox:
844 return BoxSizingContentBox;
849 ASSERT_NOT_REACHED();
850 return BoxSizingBorderBox;
854 inline CSSIdentifierValue::CSSIdentifierValue(EBoxDirection e)
855 : CSSValue(IdentifierClass) {
858 m_valueID = CSSValueNormal;
861 m_valueID = CSSValueReverse;
867 inline EBoxDirection CSSIdentifierValue::convertTo() const {
871 case CSSValueReverse:
877 ASSERT_NOT_REACHED();
882 inline CSSIdentifierValue::CSSIdentifierValue(EBoxLines e)
883 : CSSValue(IdentifierClass) {
886 m_valueID = CSSValueSingle;
889 m_valueID = CSSValueMultiple;
895 inline EBoxLines CSSIdentifierValue::convertTo() const {
899 case CSSValueMultiple:
905 ASSERT_NOT_REACHED();
910 inline CSSIdentifierValue::CSSIdentifierValue(EBoxOrient e)
911 : CSSValue(IdentifierClass) {
914 m_valueID = CSSValueHorizontal;
917 m_valueID = CSSValueVertical;
923 inline EBoxOrient CSSIdentifierValue::convertTo() const {
925 case CSSValueHorizontal:
926 case CSSValueInlineAxis:
928 case CSSValueVertical:
929 case CSSValueBlockAxis:
935 ASSERT_NOT_REACHED();
940 inline CSSIdentifierValue::CSSIdentifierValue(ECaptionSide e)
941 : CSSValue(IdentifierClass) {
943 case ECaptionSide::Left:
944 m_valueID = CSSValueLeft;
946 case ECaptionSide::Right:
947 m_valueID = CSSValueRight;
949 case ECaptionSide::Top:
950 m_valueID = CSSValueTop;
952 case ECaptionSide::Bottom:
953 m_valueID = CSSValueBottom;
959 inline ECaptionSide CSSIdentifierValue::convertTo() const {
962 return ECaptionSide::Left;
964 return ECaptionSide::Right;
966 return ECaptionSide::Top;
968 return ECaptionSide::Bottom;
973 ASSERT_NOT_REACHED();
974 return ECaptionSide::Top;
978 inline CSSIdentifierValue::CSSIdentifierValue(EClear e)
979 : CSSValue(IdentifierClass) {
982 m_valueID = CSSValueNone;
985 m_valueID = CSSValueLeft;
988 m_valueID = CSSValueRight;
991 m_valueID = CSSValueBoth;
997 inline EClear CSSIdentifierValue::convertTo() const {
1011 ASSERT_NOT_REACHED();
1016 inline CSSIdentifierValue::CSSIdentifierValue(ECursor e)
1017 : CSSValue(IdentifierClass) {
1020 m_valueID = CSSValueAuto;
1022 case ECursor::Cross:
1023 m_valueID = CSSValueCrosshair;
1025 case ECursor::Default:
1026 m_valueID = CSSValueDefault;
1028 case ECursor::Pointer:
1029 m_valueID = CSSValuePointer;
1032 m_valueID = CSSValueMove;
1035 m_valueID = CSSValueCell;
1037 case ECursor::VerticalText:
1038 m_valueID = CSSValueVerticalText;
1040 case ECursor::ContextMenu:
1041 m_valueID = CSSValueContextMenu;
1043 case ECursor::Alias:
1044 m_valueID = CSSValueAlias;
1047 m_valueID = CSSValueCopy;
1050 m_valueID = CSSValueNone;
1052 case ECursor::Progress:
1053 m_valueID = CSSValueProgress;
1055 case ECursor::NoDrop:
1056 m_valueID = CSSValueNoDrop;
1058 case ECursor::NotAllowed:
1059 m_valueID = CSSValueNotAllowed;
1061 case ECursor::ZoomIn:
1062 m_valueID = CSSValueZoomIn;
1064 case ECursor::ZoomOut:
1065 m_valueID = CSSValueZoomOut;
1067 case ECursor::EResize:
1068 m_valueID = CSSValueEResize;
1070 case ECursor::NeResize:
1071 m_valueID = CSSValueNeResize;
1073 case ECursor::NwResize:
1074 m_valueID = CSSValueNwResize;
1076 case ECursor::NResize:
1077 m_valueID = CSSValueNResize;
1079 case ECursor::SeResize:
1080 m_valueID = CSSValueSeResize;
1082 case ECursor::SwResize:
1083 m_valueID = CSSValueSwResize;
1085 case ECursor::SResize:
1086 m_valueID = CSSValueSResize;
1088 case ECursor::WResize:
1089 m_valueID = CSSValueWResize;
1091 case ECursor::EwResize:
1092 m_valueID = CSSValueEwResize;
1094 case ECursor::NsResize:
1095 m_valueID = CSSValueNsResize;
1097 case ECursor::NeswResize:
1098 m_valueID = CSSValueNeswResize;
1100 case ECursor::NwseResize:
1101 m_valueID = CSSValueNwseResize;
1103 case ECursor::ColResize:
1104 m_valueID = CSSValueColResize;
1106 case ECursor::RowResize:
1107 m_valueID = CSSValueRowResize;
1110 m_valueID = CSSValueText;
1113 m_valueID = CSSValueWait;
1116 m_valueID = CSSValueHelp;
1118 case ECursor::AllScroll:
1119 m_valueID = CSSValueAllScroll;
1121 case ECursor::WebkitGrab:
1122 m_valueID = CSSValueWebkitGrab;
1124 case ECursor::WebkitGrabbing:
1125 m_valueID = CSSValueWebkitGrabbing;
1131 inline ECursor CSSIdentifierValue::convertTo() const {
1132 switch (m_valueID) {
1134 return ECursor::Copy;
1135 case CSSValueWebkitZoomIn:
1136 return ECursor::ZoomIn;
1137 case CSSValueWebkitZoomOut:
1138 return ECursor::ZoomOut;
1140 return ECursor::None;
1142 return static_cast<ECursor>(m_valueID - CSSValueAuto);
1147 inline CSSIdentifierValue::CSSIdentifierValue(EDisplay e)
1148 : CSSValue(IdentifierClass) {
1150 case EDisplay::Inline:
1151 m_valueID = CSSValueInline;
1153 case EDisplay::Block:
1154 m_valueID = CSSValueBlock;
1156 case EDisplay::ListItem:
1157 m_valueID = CSSValueListItem;
1159 case EDisplay::InlineBlock:
1160 m_valueID = CSSValueInlineBlock;
1162 case EDisplay::Table:
1163 m_valueID = CSSValueTable;
1165 case EDisplay::InlineTable:
1166 m_valueID = CSSValueInlineTable;
1168 case EDisplay::TableRowGroup:
1169 m_valueID = CSSValueTableRowGroup;
1171 case EDisplay::TableHeaderGroup:
1172 m_valueID = CSSValueTableHeaderGroup;
1174 case EDisplay::TableFooterGroup:
1175 m_valueID = CSSValueTableFooterGroup;
1177 case EDisplay::TableRow:
1178 m_valueID = CSSValueTableRow;
1180 case EDisplay::TableColumnGroup:
1181 m_valueID = CSSValueTableColumnGroup;
1183 case EDisplay::TableColumn:
1184 m_valueID = CSSValueTableColumn;
1186 case EDisplay::TableCell:
1187 m_valueID = CSSValueTableCell;
1189 case EDisplay::TableCaption:
1190 m_valueID = CSSValueTableCaption;
1193 m_valueID = CSSValueWebkitBox;
1195 case EDisplay::InlineBox:
1196 m_valueID = CSSValueWebkitInlineBox;
1198 case EDisplay::Flex:
1199 m_valueID = CSSValueFlex;
1201 case EDisplay::InlineFlex:
1202 m_valueID = CSSValueInlineFlex;
1204 case EDisplay::Grid:
1205 m_valueID = CSSValueGrid;
1207 case EDisplay::InlineGrid:
1208 m_valueID = CSSValueInlineGrid;
1210 case EDisplay::Contents:
1211 m_valueID = CSSValueContents;
1213 case EDisplay::None:
1214 m_valueID = CSSValueNone;
1220 inline EDisplay CSSIdentifierValue::convertTo() const {
1221 if (m_valueID == CSSValueNone)
1222 return EDisplay::None;
1224 if (m_valueID == CSSValueWebkitFlex)
1225 return EDisplay::Flex;
1226 if (m_valueID == CSSValueWebkitInlineFlex)
1227 return EDisplay::InlineFlex;
1229 EDisplay display = static_cast<EDisplay>(m_valueID - CSSValueInline);
1230 // TODO(sashab): Check display is a valid EDisplay here.
1235 inline CSSIdentifierValue::CSSIdentifierValue(EEmptyCells e)
1236 : CSSValue(IdentifierClass) {
1238 case EEmptyCells::Show:
1239 m_valueID = CSSValueShow;
1241 case EEmptyCells::Hide:
1242 m_valueID = CSSValueHide;
1248 inline EEmptyCells CSSIdentifierValue::convertTo() const {
1249 switch (m_valueID) {
1251 return EEmptyCells::Show;
1253 return EEmptyCells::Hide;
1258 ASSERT_NOT_REACHED();
1259 return EEmptyCells::Show;
1263 inline CSSIdentifierValue::CSSIdentifierValue(EFlexDirection e)
1264 : CSSValue(IdentifierClass) {
1267 m_valueID = CSSValueRow;
1269 case FlowRowReverse:
1270 m_valueID = CSSValueRowReverse;
1273 m_valueID = CSSValueColumn;
1275 case FlowColumnReverse:
1276 m_valueID = CSSValueColumnReverse;
1282 inline EFlexDirection CSSIdentifierValue::convertTo() const {
1283 switch (m_valueID) {
1286 case CSSValueRowReverse:
1287 return FlowRowReverse;
1288 case CSSValueColumn:
1290 case CSSValueColumnReverse:
1291 return FlowColumnReverse;
1296 ASSERT_NOT_REACHED();
1301 inline CSSIdentifierValue::CSSIdentifierValue(EFlexWrap e)
1302 : CSSValue(IdentifierClass) {
1305 m_valueID = CSSValueNowrap;
1308 m_valueID = CSSValueWrap;
1310 case FlexWrapReverse:
1311 m_valueID = CSSValueWrapReverse;
1317 inline EFlexWrap CSSIdentifierValue::convertTo() const {
1318 switch (m_valueID) {
1319 case CSSValueNowrap:
1323 case CSSValueWrapReverse:
1324 return FlexWrapReverse;
1329 ASSERT_NOT_REACHED();
1334 inline CSSIdentifierValue::CSSIdentifierValue(EFloat e)
1335 : CSSValue(IdentifierClass) {
1338 m_valueID = CSSValueNone;
1341 m_valueID = CSSValueLeft;
1344 m_valueID = CSSValueRight;
1350 inline EFloat CSSIdentifierValue::convertTo() const {
1351 switch (m_valueID) {
1353 return EFloat::Left;
1355 return EFloat::Right;
1357 return EFloat::None;
1362 ASSERT_NOT_REACHED();
1363 return EFloat::None;
1367 inline CSSIdentifierValue::CSSIdentifierValue(Hyphens e)
1368 : CSSValue(IdentifierClass) {
1371 m_valueID = CSSValueAuto;
1374 m_valueID = CSSValueManual;
1377 m_valueID = CSSValueNone;
1383 inline Hyphens CSSIdentifierValue::convertTo() const {
1384 switch (m_valueID) {
1387 case CSSValueManual:
1388 return HyphensManual;
1396 return HyphensManual;
1400 inline CSSIdentifierValue::CSSIdentifierValue(LineBreak e)
1401 : CSSValue(IdentifierClass) {
1404 m_valueID = CSSValueAuto;
1406 case LineBreakLoose:
1407 m_valueID = CSSValueLoose;
1409 case LineBreakNormal:
1410 m_valueID = CSSValueNormal;
1412 case LineBreakStrict:
1413 m_valueID = CSSValueStrict;
1415 case LineBreakAfterWhiteSpace:
1416 m_valueID = CSSValueAfterWhiteSpace;
1422 inline LineBreak CSSIdentifierValue::convertTo() const {
1423 switch (m_valueID) {
1425 return LineBreakAuto;
1427 return LineBreakLoose;
1428 case CSSValueNormal:
1429 return LineBreakNormal;
1430 case CSSValueStrict:
1431 return LineBreakStrict;
1432 case CSSValueAfterWhiteSpace:
1433 return LineBreakAfterWhiteSpace;
1438 ASSERT_NOT_REACHED();
1439 return LineBreakAuto;
1443 inline CSSIdentifierValue::CSSIdentifierValue(EListStylePosition e)
1444 : CSSValue(IdentifierClass) {
1446 case EListStylePosition::Outside:
1447 m_valueID = CSSValueOutside;
1449 case EListStylePosition::Inside:
1450 m_valueID = CSSValueInside;
1456 inline EListStylePosition CSSIdentifierValue::convertTo() const {
1457 switch (m_valueID) {
1458 case CSSValueOutside:
1459 return EListStylePosition::Outside;
1460 case CSSValueInside:
1461 return EListStylePosition::Inside;
1466 ASSERT_NOT_REACHED();
1467 return EListStylePosition::Outside;
1471 inline CSSIdentifierValue::CSSIdentifierValue(EListStyleType e)
1472 : CSSValue(IdentifierClass) {
1474 case EListStyleType::ArabicIndic:
1475 m_valueID = CSSValueArabicIndic;
1477 case EListStyleType::Armenian:
1478 m_valueID = CSSValueArmenian;
1480 case EListStyleType::Bengali:
1481 m_valueID = CSSValueBengali;
1483 case EListStyleType::Cambodian:
1484 m_valueID = CSSValueCambodian;
1486 case EListStyleType::Circle:
1487 m_valueID = CSSValueCircle;
1489 case EListStyleType::CjkEarthlyBranch:
1490 m_valueID = CSSValueCjkEarthlyBranch;
1492 case EListStyleType::CjkHeavenlyStem:
1493 m_valueID = CSSValueCjkHeavenlyStem;
1495 case EListStyleType::CJKIdeographic:
1496 m_valueID = CSSValueCjkIdeographic;
1498 case EListStyleType::DecimalLeadingZero:
1499 m_valueID = CSSValueDecimalLeadingZero;
1501 case EListStyleType::DecimalListStyle:
1502 m_valueID = CSSValueDecimal;
1504 case EListStyleType::Devanagari:
1505 m_valueID = CSSValueDevanagari;
1507 case EListStyleType::Disc:
1508 m_valueID = CSSValueDisc;
1510 case EListStyleType::EthiopicHalehame:
1511 m_valueID = CSSValueEthiopicHalehame;
1513 case EListStyleType::EthiopicHalehameAm:
1514 m_valueID = CSSValueEthiopicHalehameAm;
1516 case EListStyleType::EthiopicHalehameTiEt:
1517 m_valueID = CSSValueEthiopicHalehameTiEt;
1519 case EListStyleType::EthiopicHalehameTiEr:
1520 m_valueID = CSSValueEthiopicHalehameTiEr;
1522 case EListStyleType::Georgian:
1523 m_valueID = CSSValueGeorgian;
1525 case EListStyleType::Gujarati:
1526 m_valueID = CSSValueGujarati;
1528 case EListStyleType::Gurmukhi:
1529 m_valueID = CSSValueGurmukhi;
1531 case EListStyleType::Hangul:
1532 m_valueID = CSSValueHangul;
1534 case EListStyleType::HangulConsonant:
1535 m_valueID = CSSValueHangulConsonant;
1537 case EListStyleType::KoreanHangulFormal:
1538 m_valueID = CSSValueKoreanHangulFormal;
1540 case EListStyleType::KoreanHanjaFormal:
1541 m_valueID = CSSValueKoreanHanjaFormal;
1543 case EListStyleType::KoreanHanjaInformal:
1544 m_valueID = CSSValueKoreanHanjaInformal;
1546 case EListStyleType::Hebrew:
1547 m_valueID = CSSValueHebrew;
1549 case EListStyleType::Hiragana:
1550 m_valueID = CSSValueHiragana;
1552 case EListStyleType::HiraganaIroha:
1553 m_valueID = CSSValueHiraganaIroha;
1555 case EListStyleType::Kannada:
1556 m_valueID = CSSValueKannada;
1558 case EListStyleType::Katakana:
1559 m_valueID = CSSValueKatakana;
1561 case EListStyleType::KatakanaIroha:
1562 m_valueID = CSSValueKatakanaIroha;
1564 case EListStyleType::Khmer:
1565 m_valueID = CSSValueKhmer;
1567 case EListStyleType::Lao:
1568 m_valueID = CSSValueLao;
1570 case EListStyleType::LowerAlpha:
1571 m_valueID = CSSValueLowerAlpha;
1573 case EListStyleType::LowerArmenian:
1574 m_valueID = CSSValueLowerArmenian;
1576 case EListStyleType::LowerGreek:
1577 m_valueID = CSSValueLowerGreek;
1579 case EListStyleType::LowerLatin:
1580 m_valueID = CSSValueLowerLatin;
1582 case EListStyleType::LowerRoman:
1583 m_valueID = CSSValueLowerRoman;
1585 case EListStyleType::Malayalam:
1586 m_valueID = CSSValueMalayalam;
1588 case EListStyleType::Mongolian:
1589 m_valueID = CSSValueMongolian;
1591 case EListStyleType::Myanmar:
1592 m_valueID = CSSValueMyanmar;
1594 case EListStyleType::NoneListStyle:
1595 m_valueID = CSSValueNone;
1597 case EListStyleType::Oriya:
1598 m_valueID = CSSValueOriya;
1600 case EListStyleType::Persian:
1601 m_valueID = CSSValuePersian;
1603 case EListStyleType::SimpChineseFormal:
1604 m_valueID = CSSValueSimpChineseFormal;
1606 case EListStyleType::SimpChineseInformal:
1607 m_valueID = CSSValueSimpChineseInformal;
1609 case EListStyleType::Square:
1610 m_valueID = CSSValueSquare;
1612 case EListStyleType::Telugu:
1613 m_valueID = CSSValueTelugu;
1615 case EListStyleType::Thai:
1616 m_valueID = CSSValueThai;
1618 case EListStyleType::Tibetan:
1619 m_valueID = CSSValueTibetan;
1621 case EListStyleType::TradChineseFormal:
1622 m_valueID = CSSValueTradChineseFormal;
1624 case EListStyleType::TradChineseInformal:
1625 m_valueID = CSSValueTradChineseInformal;
1627 case EListStyleType::UpperAlpha:
1628 m_valueID = CSSValueUpperAlpha;
1630 case EListStyleType::UpperArmenian:
1631 m_valueID = CSSValueUpperArmenian;
1633 case EListStyleType::UpperLatin:
1634 m_valueID = CSSValueUpperLatin;
1636 case EListStyleType::UpperRoman:
1637 m_valueID = CSSValueUpperRoman;
1639 case EListStyleType::Urdu:
1640 m_valueID = CSSValueUrdu;
1646 inline EListStyleType CSSIdentifierValue::convertTo() const {
1647 switch (m_valueID) {
1649 return EListStyleType::NoneListStyle;
1650 case CSSValueArabicIndic:
1651 return EListStyleType::ArabicIndic;
1652 case CSSValueArmenian:
1653 return EListStyleType::Armenian;
1654 case CSSValueBengali:
1655 return EListStyleType::Bengali;
1656 case CSSValueCambodian:
1657 return EListStyleType::Cambodian;
1658 case CSSValueCircle:
1659 return EListStyleType::Circle;
1660 case CSSValueCjkEarthlyBranch:
1661 return EListStyleType::CjkEarthlyBranch;
1662 case CSSValueCjkHeavenlyStem:
1663 return EListStyleType::CjkHeavenlyStem;
1664 case CSSValueCjkIdeographic:
1665 return EListStyleType::CJKIdeographic;
1666 case CSSValueDecimalLeadingZero:
1667 return EListStyleType::DecimalLeadingZero;
1668 case CSSValueDecimal:
1669 return EListStyleType::DecimalListStyle;
1670 case CSSValueDevanagari:
1671 return EListStyleType::Devanagari;
1673 return EListStyleType::Disc;
1674 case CSSValueEthiopicHalehame:
1675 return EListStyleType::EthiopicHalehame;
1676 case CSSValueEthiopicHalehameAm:
1677 return EListStyleType::EthiopicHalehameAm;
1678 case CSSValueEthiopicHalehameTiEt:
1679 return EListStyleType::EthiopicHalehameTiEt;
1680 case CSSValueEthiopicHalehameTiEr:
1681 return EListStyleType::EthiopicHalehameTiEr;
1682 case CSSValueGeorgian:
1683 return EListStyleType::Georgian;
1684 case CSSValueGujarati:
1685 return EListStyleType::Gujarati;
1686 case CSSValueGurmukhi:
1687 return EListStyleType::Gurmukhi;
1688 case CSSValueHangul:
1689 return EListStyleType::Hangul;
1690 case CSSValueHangulConsonant:
1691 return EListStyleType::HangulConsonant;
1692 case CSSValueKoreanHangulFormal:
1693 return EListStyleType::KoreanHangulFormal;
1694 case CSSValueKoreanHanjaFormal:
1695 return EListStyleType::KoreanHanjaFormal;
1696 case CSSValueKoreanHanjaInformal:
1697 return EListStyleType::KoreanHanjaInformal;
1698 case CSSValueHebrew:
1699 return EListStyleType::Hebrew;
1700 case CSSValueHiragana:
1701 return EListStyleType::Hiragana;
1702 case CSSValueHiraganaIroha:
1703 return EListStyleType::HiraganaIroha;
1704 case CSSValueKannada:
1705 return EListStyleType::Kannada;
1706 case CSSValueKatakana:
1707 return EListStyleType::Katakana;
1708 case CSSValueKatakanaIroha:
1709 return EListStyleType::KatakanaIroha;
1711 return EListStyleType::Khmer;
1713 return EListStyleType::Lao;
1714 case CSSValueLowerAlpha:
1715 return EListStyleType::LowerAlpha;
1716 case CSSValueLowerArmenian:
1717 return EListStyleType::LowerArmenian;
1718 case CSSValueLowerGreek:
1719 return EListStyleType::LowerGreek;
1720 case CSSValueLowerLatin:
1721 return EListStyleType::LowerLatin;
1722 case CSSValueLowerRoman:
1723 return EListStyleType::LowerRoman;
1724 case CSSValueMalayalam:
1725 return EListStyleType::Malayalam;
1726 case CSSValueMongolian:
1727 return EListStyleType::Mongolian;
1728 case CSSValueMyanmar:
1729 return EListStyleType::Myanmar;
1731 return EListStyleType::Oriya;
1732 case CSSValuePersian:
1733 return EListStyleType::Persian;
1734 case CSSValueSimpChineseFormal:
1735 return EListStyleType::SimpChineseFormal;
1736 case CSSValueSimpChineseInformal:
1737 return EListStyleType::SimpChineseInformal;
1738 case CSSValueSquare:
1739 return EListStyleType::Square;
1740 case CSSValueTelugu:
1741 return EListStyleType::Telugu;
1743 return EListStyleType::Thai;
1744 case CSSValueTibetan:
1745 return EListStyleType::Tibetan;
1746 case CSSValueTradChineseFormal:
1747 return EListStyleType::TradChineseFormal;
1748 case CSSValueTradChineseInformal:
1749 return EListStyleType::TradChineseInformal;
1750 case CSSValueUpperAlpha:
1751 return EListStyleType::UpperAlpha;
1752 case CSSValueUpperArmenian:
1753 return EListStyleType::UpperArmenian;
1754 case CSSValueUpperLatin:
1755 return EListStyleType::UpperLatin;
1756 case CSSValueUpperRoman:
1757 return EListStyleType::UpperRoman;
1759 return EListStyleType::Urdu;
1765 return EListStyleType::NoneListStyle;
1769 inline CSSIdentifierValue::CSSIdentifierValue(EMarginCollapse e)
1770 : CSSValue(IdentifierClass) {
1772 case MarginCollapseCollapse:
1773 m_valueID = CSSValueCollapse;
1775 case MarginCollapseSeparate:
1776 m_valueID = CSSValueSeparate;
1778 case MarginCollapseDiscard:
1779 m_valueID = CSSValueDiscard;
1785 inline EMarginCollapse CSSIdentifierValue::convertTo() const {
1786 switch (m_valueID) {
1787 case CSSValueCollapse:
1788 return MarginCollapseCollapse;
1789 case CSSValueSeparate:
1790 return MarginCollapseSeparate;
1791 case CSSValueDiscard:
1792 return MarginCollapseDiscard;
1797 ASSERT_NOT_REACHED();
1798 return MarginCollapseCollapse;
1802 inline CSSIdentifierValue::CSSIdentifierValue(EOverflow e)
1803 : CSSValue(IdentifierClass) {
1805 case OverflowVisible:
1806 m_valueID = CSSValueVisible;
1808 case OverflowHidden:
1809 m_valueID = CSSValueHidden;
1811 case OverflowScroll:
1812 m_valueID = CSSValueScroll;
1815 m_valueID = CSSValueAuto;
1817 case OverflowOverlay:
1818 m_valueID = CSSValueOverlay;
1820 case OverflowPagedX:
1821 m_valueID = CSSValueWebkitPagedX;
1823 case OverflowPagedY:
1824 m_valueID = CSSValueWebkitPagedY;
1830 inline EOverflow CSSIdentifierValue::convertTo() const {
1831 switch (m_valueID) {
1832 case CSSValueVisible:
1833 return OverflowVisible;
1834 case CSSValueHidden:
1835 return OverflowHidden;
1836 case CSSValueScroll:
1837 return OverflowScroll;
1839 return OverflowAuto;
1840 case CSSValueOverlay:
1841 return OverflowOverlay;
1842 case CSSValueWebkitPagedX:
1843 return OverflowPagedX;
1844 case CSSValueWebkitPagedY:
1845 return OverflowPagedY;
1850 ASSERT_NOT_REACHED();
1851 return OverflowVisible;
1855 inline CSSIdentifierValue::CSSIdentifierValue(EBreak e)
1856 : CSSValue(IdentifierClass) {
1859 ASSERT_NOT_REACHED();
1861 m_valueID = CSSValueAuto;
1864 m_valueID = CSSValueAlways;
1867 m_valueID = CSSValueAvoid;
1869 case BreakAvoidPage:
1870 m_valueID = CSSValueAvoidPage;
1873 m_valueID = CSSValuePage;
1876 m_valueID = CSSValueLeft;
1879 m_valueID = CSSValueRight;
1882 m_valueID = CSSValueRecto;
1885 m_valueID = CSSValueVerso;
1887 case BreakAvoidColumn:
1888 m_valueID = CSSValueAvoidColumn;
1891 m_valueID = CSSValueColumn;
1897 inline EBreak CSSIdentifierValue::convertTo() const {
1898 switch (m_valueID) {
1900 ASSERT_NOT_REACHED();
1905 case CSSValueAlways:
1907 case CSSValueAvoidPage:
1908 return BreakAvoidPage;
1919 case CSSValueAvoidColumn:
1920 return BreakAvoidColumn;
1921 case CSSValueColumn:
1927 inline CSSIdentifierValue::CSSIdentifierValue(EPosition e)
1928 : CSSValue(IdentifierClass) {
1930 case StaticPosition:
1931 m_valueID = CSSValueStatic;
1933 case RelativePosition:
1934 m_valueID = CSSValueRelative;
1936 case AbsolutePosition:
1937 m_valueID = CSSValueAbsolute;
1940 m_valueID = CSSValueFixed;
1942 case StickyPosition:
1943 m_valueID = CSSValueSticky;
1949 inline EPosition CSSIdentifierValue::convertTo() const {
1950 switch (m_valueID) {
1951 case CSSValueStatic:
1952 return StaticPosition;
1953 case CSSValueRelative:
1954 return RelativePosition;
1955 case CSSValueAbsolute:
1956 return AbsolutePosition;
1958 return FixedPosition;
1959 case CSSValueSticky:
1960 return StickyPosition;
1965 ASSERT_NOT_REACHED();
1966 return StaticPosition;
1970 inline CSSIdentifierValue::CSSIdentifierValue(EResize e)
1971 : CSSValue(IdentifierClass) {
1974 m_valueID = CSSValueBoth;
1976 case RESIZE_HORIZONTAL:
1977 m_valueID = CSSValueHorizontal;
1979 case RESIZE_VERTICAL:
1980 m_valueID = CSSValueVertical;
1983 m_valueID = CSSValueNone;
1989 inline EResize CSSIdentifierValue::convertTo() const {
1990 switch (m_valueID) {
1993 case CSSValueHorizontal:
1994 return RESIZE_HORIZONTAL;
1995 case CSSValueVertical:
1996 return RESIZE_VERTICAL;
1998 // Depends on settings, thus should be handled by the caller.
2007 ASSERT_NOT_REACHED();
2012 inline CSSIdentifierValue::CSSIdentifierValue(ETableLayout e)
2013 : CSSValue(IdentifierClass) {
2015 case TableLayoutAuto:
2016 m_valueID = CSSValueAuto;
2018 case TableLayoutFixed:
2019 m_valueID = CSSValueFixed;
2025 inline ETableLayout CSSIdentifierValue::convertTo() const {
2026 switch (m_valueID) {
2028 return TableLayoutFixed;
2030 return TableLayoutAuto;
2035 ASSERT_NOT_REACHED();
2036 return TableLayoutAuto;
2040 inline CSSIdentifierValue::CSSIdentifierValue(ETextAlign e)
2041 : CSSValue(IdentifierClass) {
2044 m_valueID = CSSValueStart;
2047 m_valueID = CSSValueEnd;
2050 m_valueID = CSSValueLeft;
2053 m_valueID = CSSValueRight;
2056 m_valueID = CSSValueCenter;
2059 m_valueID = CSSValueJustify;
2062 m_valueID = CSSValueWebkitLeft;
2065 m_valueID = CSSValueWebkitRight;
2068 m_valueID = CSSValueWebkitCenter;
2074 inline ETextAlign CSSIdentifierValue::convertTo() const {
2075 switch (m_valueID) {
2076 case CSSValueWebkitAuto: // Legacy -webkit-auto. Eqiuvalent to start.
2081 case CSSValueInternalCenter:
2084 return static_cast<ETextAlign>(m_valueID - CSSValueLeft);
2089 inline CSSIdentifierValue::CSSIdentifierValue(TextAlignLast e)
2090 : CSSValue(IdentifierClass) {
2092 case TextAlignLastStart:
2093 m_valueID = CSSValueStart;
2095 case TextAlignLastEnd:
2096 m_valueID = CSSValueEnd;
2098 case TextAlignLastLeft:
2099 m_valueID = CSSValueLeft;
2101 case TextAlignLastRight:
2102 m_valueID = CSSValueRight;
2104 case TextAlignLastCenter:
2105 m_valueID = CSSValueCenter;
2107 case TextAlignLastJustify:
2108 m_valueID = CSSValueJustify;
2110 case TextAlignLastAuto:
2111 m_valueID = CSSValueAuto;
2117 inline TextAlignLast CSSIdentifierValue::convertTo() const {
2118 switch (m_valueID) {
2120 return TextAlignLastAuto;
2122 return TextAlignLastStart;
2124 return TextAlignLastEnd;
2126 return TextAlignLastLeft;
2128 return TextAlignLastRight;
2129 case CSSValueCenter:
2130 return TextAlignLastCenter;
2131 case CSSValueJustify:
2132 return TextAlignLastJustify;
2137 ASSERT_NOT_REACHED();
2138 return TextAlignLastAuto;
2142 inline CSSIdentifierValue::CSSIdentifierValue(TextJustify e)
2143 : CSSValue(IdentifierClass) {
2145 case TextJustifyAuto:
2146 m_valueID = CSSValueAuto;
2148 case TextJustifyNone:
2149 m_valueID = CSSValueNone;
2151 case TextJustifyInterWord:
2152 m_valueID = CSSValueInterWord;
2154 case TextJustifyDistribute:
2155 m_valueID = CSSValueDistribute;
2161 inline TextJustify CSSIdentifierValue::convertTo() const {
2162 switch (m_valueID) {
2164 return TextJustifyAuto;
2166 return TextJustifyNone;
2167 case CSSValueInterWord:
2168 return TextJustifyInterWord;
2169 case CSSValueDistribute:
2170 return TextJustifyDistribute;
2175 ASSERT_NOT_REACHED();
2176 return TextJustifyAuto;
2180 inline TextDecoration CSSIdentifierValue::convertTo() const {
2181 switch (m_valueID) {
2183 return TextDecorationNone;
2184 case CSSValueUnderline:
2185 return TextDecorationUnderline;
2186 case CSSValueOverline:
2187 return TextDecorationOverline;
2188 case CSSValueLineThrough:
2189 return TextDecorationLineThrough;
2191 return TextDecorationBlink;
2196 ASSERT_NOT_REACHED();
2197 return TextDecorationNone;
2201 inline TextDecorationStyle CSSIdentifierValue::convertTo() const {
2202 switch (m_valueID) {
2204 return TextDecorationStyleSolid;
2205 case CSSValueDouble:
2206 return TextDecorationStyleDouble;
2207 case CSSValueDotted:
2208 return TextDecorationStyleDotted;
2209 case CSSValueDashed:
2210 return TextDecorationStyleDashed;
2212 return TextDecorationStyleWavy;
2217 ASSERT_NOT_REACHED();
2218 return TextDecorationStyleSolid;
2222 inline CSSIdentifierValue::CSSIdentifierValue(TextUnderlinePosition e)
2223 : CSSValue(IdentifierClass) {
2225 case TextUnderlinePositionAuto:
2226 m_valueID = CSSValueAuto;
2228 case TextUnderlinePositionUnder:
2229 m_valueID = CSSValueUnder;
2233 // FIXME: Implement support for 'under left' and 'under right' values.
2237 inline TextUnderlinePosition CSSIdentifierValue::convertTo() const {
2238 switch (m_valueID) {
2240 return TextUnderlinePositionAuto;
2242 return TextUnderlinePositionUnder;
2247 // FIXME: Implement support for 'under left' and 'under right' values.
2249 ASSERT_NOT_REACHED();
2250 return TextUnderlinePositionAuto;
2254 inline TextDecorationSkip CSSIdentifierValue::convertTo() const {
2255 switch (m_valueID) {
2256 case CSSValueObjects:
2257 return TextDecorationSkipObjects;
2259 return TextDecorationSkipInk;
2265 return TextDecorationSkipObjects;
2269 inline CSSIdentifierValue::CSSIdentifierValue(ETextSecurity e)
2270 : CSSValue(IdentifierClass) {
2273 m_valueID = CSSValueNone;
2276 m_valueID = CSSValueDisc;
2279 m_valueID = CSSValueCircle;
2282 m_valueID = CSSValueSquare;
2288 inline ETextSecurity CSSIdentifierValue::convertTo() const {
2289 switch (m_valueID) {
2294 case CSSValueCircle:
2296 case CSSValueSquare:
2302 ASSERT_NOT_REACHED();
2307 inline CSSIdentifierValue::CSSIdentifierValue(ETextTransform e)
2308 : CSSValue(IdentifierClass) {
2311 m_valueID = CSSValueCapitalize;
2314 m_valueID = CSSValueUppercase;
2317 m_valueID = CSSValueLowercase;
2320 m_valueID = CSSValueNone;
2326 inline ETextTransform CSSIdentifierValue::convertTo() const {
2327 switch (m_valueID) {
2328 case CSSValueCapitalize:
2330 case CSSValueUppercase:
2332 case CSSValueLowercase:
2340 ASSERT_NOT_REACHED();
2345 inline CSSIdentifierValue::CSSIdentifierValue(EUnicodeBidi e)
2346 : CSSValue(IdentifierClass) {
2349 m_valueID = CSSValueNormal;
2352 m_valueID = CSSValueEmbed;
2355 m_valueID = CSSValueBidiOverride;
2358 m_valueID = CSSValueIsolate;
2360 case IsolateOverride:
2361 m_valueID = CSSValueIsolateOverride;
2364 m_valueID = CSSValuePlaintext;
2370 inline EUnicodeBidi CSSIdentifierValue::convertTo() const {
2371 switch (m_valueID) {
2372 case CSSValueNormal:
2376 case CSSValueBidiOverride:
2378 case CSSValueIsolate:
2379 case CSSValueWebkitIsolate:
2381 case CSSValueIsolateOverride:
2382 case CSSValueWebkitIsolateOverride:
2383 return IsolateOverride;
2384 case CSSValuePlaintext:
2385 case CSSValueWebkitPlaintext:
2391 ASSERT_NOT_REACHED();
2396 inline CSSIdentifierValue::CSSIdentifierValue(EUserDrag e)
2397 : CSSValue(IdentifierClass) {
2400 m_valueID = CSSValueAuto;
2403 m_valueID = CSSValueNone;
2406 m_valueID = CSSValueElement;
2414 inline EUserDrag CSSIdentifierValue::convertTo() const {
2415 switch (m_valueID) {
2420 case CSSValueElement:
2421 return DRAG_ELEMENT;
2426 ASSERT_NOT_REACHED();
2431 inline CSSIdentifierValue::CSSIdentifierValue(EUserModify e)
2432 : CSSValue(IdentifierClass) {
2435 m_valueID = CSSValueReadOnly;
2438 m_valueID = CSSValueReadWrite;
2440 case READ_WRITE_PLAINTEXT_ONLY:
2441 m_valueID = CSSValueReadWritePlaintextOnly;
2447 inline EUserModify CSSIdentifierValue::convertTo() const {
2448 switch (m_valueID) {
2449 case CSSValueReadOnly:
2451 case CSSValueReadWrite:
2453 case CSSValueReadWritePlaintextOnly:
2454 return READ_WRITE_PLAINTEXT_ONLY;
2459 ASSERT_NOT_REACHED();
2464 inline CSSIdentifierValue::CSSIdentifierValue(EUserSelect e)
2465 : CSSValue(IdentifierClass) {
2468 m_valueID = CSSValueNone;
2471 m_valueID = CSSValueText;
2474 m_valueID = CSSValueAll;
2480 inline EUserSelect CSSIdentifierValue::convertTo() const {
2481 switch (m_valueID) {
2494 ASSERT_NOT_REACHED();
2499 inline CSSIdentifierValue::CSSIdentifierValue(EVerticalAlign a)
2500 : CSSValue(IdentifierClass) {
2502 case VerticalAlignTop:
2503 m_valueID = CSSValueTop;
2505 case VerticalAlignBottom:
2506 m_valueID = CSSValueBottom;
2508 case VerticalAlignMiddle:
2509 m_valueID = CSSValueMiddle;
2511 case VerticalAlignBaseline:
2512 m_valueID = CSSValueBaseline;
2514 case VerticalAlignTextBottom:
2515 m_valueID = CSSValueTextBottom;
2517 case VerticalAlignTextTop:
2518 m_valueID = CSSValueTextTop;
2520 case VerticalAlignSub:
2521 m_valueID = CSSValueSub;
2523 case VerticalAlignSuper:
2524 m_valueID = CSSValueSuper;
2526 case VerticalAlignBaselineMiddle:
2527 m_valueID = CSSValueWebkitBaselineMiddle;
2529 case VerticalAlignLength:
2530 m_valueID = CSSValueInvalid;
2535 inline EVerticalAlign CSSIdentifierValue::convertTo() const {
2536 switch (m_valueID) {
2538 return VerticalAlignTop;
2539 case CSSValueBottom:
2540 return VerticalAlignBottom;
2541 case CSSValueMiddle:
2542 return VerticalAlignMiddle;
2543 case CSSValueBaseline:
2544 return VerticalAlignBaseline;
2545 case CSSValueTextBottom:
2546 return VerticalAlignTextBottom;
2547 case CSSValueTextTop:
2548 return VerticalAlignTextTop;
2550 return VerticalAlignSub;
2552 return VerticalAlignSuper;
2553 case CSSValueWebkitBaselineMiddle:
2554 return VerticalAlignBaselineMiddle;
2559 ASSERT_NOT_REACHED();
2560 return VerticalAlignTop;
2564 inline CSSIdentifierValue::CSSIdentifierValue(EVisibility e)
2565 : CSSValue(IdentifierClass) {
2567 case EVisibility::Visible:
2568 m_valueID = CSSValueVisible;
2570 case EVisibility::Hidden:
2571 m_valueID = CSSValueHidden;
2573 case EVisibility::Collapse:
2574 m_valueID = CSSValueCollapse;
2580 inline EVisibility CSSIdentifierValue::convertTo() const {
2581 switch (m_valueID) {
2582 case CSSValueHidden:
2583 return EVisibility::Hidden;
2584 case CSSValueVisible:
2585 return EVisibility::Visible;
2586 case CSSValueCollapse:
2587 return EVisibility::Collapse;
2592 ASSERT_NOT_REACHED();
2593 return EVisibility::Visible;
2597 inline CSSIdentifierValue::CSSIdentifierValue(EWhiteSpace e)
2598 : CSSValue(IdentifierClass) {
2601 m_valueID = CSSValueNormal;
2604 m_valueID = CSSValuePre;
2607 m_valueID = CSSValuePreWrap;
2610 m_valueID = CSSValuePreLine;
2613 m_valueID = CSSValueNowrap;
2616 m_valueID = CSSValueWebkitNowrap;
2622 inline EWhiteSpace CSSIdentifierValue::convertTo() const {
2623 switch (m_valueID) {
2624 case CSSValueWebkitNowrap:
2625 return KHTML_NOWRAP;
2626 case CSSValueNowrap:
2630 case CSSValuePreWrap:
2632 case CSSValuePreLine:
2634 case CSSValueNormal:
2640 ASSERT_NOT_REACHED();
2645 inline CSSIdentifierValue::CSSIdentifierValue(EWordBreak e)
2646 : CSSValue(IdentifierClass) {
2648 case NormalWordBreak:
2649 m_valueID = CSSValueNormal;
2651 case BreakAllWordBreak:
2652 m_valueID = CSSValueBreakAll;
2654 case BreakWordBreak:
2655 m_valueID = CSSValueBreakWord;
2657 case KeepAllWordBreak:
2658 m_valueID = CSSValueKeepAll;
2664 inline EWordBreak CSSIdentifierValue::convertTo() const {
2665 switch (m_valueID) {
2666 case CSSValueBreakAll:
2667 return BreakAllWordBreak;
2668 case CSSValueBreakWord:
2669 return BreakWordBreak;
2670 case CSSValueNormal:
2671 return NormalWordBreak;
2672 case CSSValueKeepAll:
2673 return KeepAllWordBreak;
2678 ASSERT_NOT_REACHED();
2679 return NormalWordBreak;
2683 inline CSSIdentifierValue::CSSIdentifierValue(EOverflowAnchor e)
2684 : CSSValue(IdentifierClass) {
2687 m_valueID = CSSValueVisible;
2690 m_valueID = CSSValueNone;
2693 m_valueID = CSSValueAuto;
2699 inline EOverflowAnchor CSSIdentifierValue::convertTo() const {
2700 switch (m_valueID) {
2701 case CSSValueVisible:
2702 return AnchorVisible;
2716 inline CSSIdentifierValue::CSSIdentifierValue(EOverflowWrap e)
2717 : CSSValue(IdentifierClass) {
2719 case NormalOverflowWrap:
2720 m_valueID = CSSValueNormal;
2722 case BreakOverflowWrap:
2723 m_valueID = CSSValueBreakWord;
2729 inline EOverflowWrap CSSIdentifierValue::convertTo() const {
2730 switch (m_valueID) {
2731 case CSSValueBreakWord:
2732 return BreakOverflowWrap;
2733 case CSSValueNormal:
2734 return NormalOverflowWrap;
2739 ASSERT_NOT_REACHED();
2740 return NormalOverflowWrap;
2744 inline CSSIdentifierValue::CSSIdentifierValue(TextDirection e)
2745 : CSSValue(IdentifierClass) {
2748 m_valueID = CSSValueLtr;
2751 m_valueID = CSSValueRtl;
2757 inline TextDirection CSSIdentifierValue::convertTo() const {
2758 switch (m_valueID) {
2767 ASSERT_NOT_REACHED();
2772 inline CSSIdentifierValue::CSSIdentifierValue(WritingMode e)
2773 : CSSValue(IdentifierClass) {
2775 case TopToBottomWritingMode:
2776 m_valueID = CSSValueHorizontalTb;
2778 case RightToLeftWritingMode:
2779 m_valueID = CSSValueVerticalRl;
2781 case LeftToRightWritingMode:
2782 m_valueID = CSSValueVerticalLr;
2788 inline WritingMode CSSIdentifierValue::convertTo() const {
2789 switch (m_valueID) {
2790 case CSSValueHorizontalTb:
2795 return TopToBottomWritingMode;
2796 case CSSValueVerticalRl:
2799 return RightToLeftWritingMode;
2800 case CSSValueVerticalLr:
2801 return LeftToRightWritingMode;
2806 ASSERT_NOT_REACHED();
2807 return TopToBottomWritingMode;
2811 inline CSSIdentifierValue::CSSIdentifierValue(TextCombine e)
2812 : CSSValue(IdentifierClass) {
2814 case TextCombineNone:
2815 m_valueID = CSSValueNone;
2817 case TextCombineAll:
2818 m_valueID = CSSValueAll;
2824 inline TextCombine CSSIdentifierValue::convertTo() const {
2825 switch (m_valueID) {
2827 return TextCombineNone;
2829 case CSSValueHorizontal: // -webkit-text-combine
2830 return TextCombineAll;
2835 ASSERT_NOT_REACHED();
2836 return TextCombineNone;
2840 inline CSSIdentifierValue::CSSIdentifierValue(RubyPosition position)
2841 : CSSValue(IdentifierClass) {
2843 case RubyPositionBefore:
2844 m_valueID = CSSValueBefore;
2846 case RubyPositionAfter:
2847 m_valueID = CSSValueAfter;
2853 inline RubyPosition CSSIdentifierValue::convertTo() const {
2854 switch (m_valueID) {
2855 case CSSValueBefore:
2856 return RubyPositionBefore;
2858 return RubyPositionAfter;
2863 ASSERT_NOT_REACHED();
2864 return RubyPositionBefore;
2868 inline CSSIdentifierValue::CSSIdentifierValue(TextEmphasisPosition position)
2869 : CSSValue(IdentifierClass) {
2871 case TextEmphasisPositionOver:
2872 m_valueID = CSSValueOver;
2874 case TextEmphasisPositionUnder:
2875 m_valueID = CSSValueUnder;
2881 inline TextEmphasisPosition CSSIdentifierValue::convertTo() const {
2882 switch (m_valueID) {
2884 return TextEmphasisPositionOver;
2886 return TextEmphasisPositionUnder;
2891 ASSERT_NOT_REACHED();
2892 return TextEmphasisPositionOver;
2896 inline CSSIdentifierValue::CSSIdentifierValue(TextOverflow overflow)
2897 : CSSValue(IdentifierClass) {
2899 case TextOverflowClip:
2900 m_valueID = CSSValueClip;
2902 case TextOverflowEllipsis:
2903 m_valueID = CSSValueEllipsis;
2909 inline TextOverflow CSSIdentifierValue::convertTo() const {
2910 switch (m_valueID) {
2912 return TextOverflowClip;
2913 case CSSValueEllipsis:
2914 return TextOverflowEllipsis;
2919 ASSERT_NOT_REACHED();
2920 return TextOverflowClip;
2924 inline CSSIdentifierValue::CSSIdentifierValue(TextEmphasisFill fill)
2925 : CSSValue(IdentifierClass) {
2927 case TextEmphasisFillFilled:
2928 m_valueID = CSSValueFilled;
2930 case TextEmphasisFillOpen:
2931 m_valueID = CSSValueOpen;
2937 inline TextEmphasisFill CSSIdentifierValue::convertTo() const {
2938 switch (m_valueID) {
2939 case CSSValueFilled:
2940 return TextEmphasisFillFilled;
2942 return TextEmphasisFillOpen;
2947 ASSERT_NOT_REACHED();
2948 return TextEmphasisFillFilled;
2952 inline CSSIdentifierValue::CSSIdentifierValue(TextEmphasisMark mark)
2953 : CSSValue(IdentifierClass) {
2955 case TextEmphasisMarkDot:
2956 m_valueID = CSSValueDot;
2958 case TextEmphasisMarkCircle:
2959 m_valueID = CSSValueCircle;
2961 case TextEmphasisMarkDoubleCircle:
2962 m_valueID = CSSValueDoubleCircle;
2964 case TextEmphasisMarkTriangle:
2965 m_valueID = CSSValueTriangle;
2967 case TextEmphasisMarkSesame:
2968 m_valueID = CSSValueSesame;
2970 case TextEmphasisMarkNone:
2971 case TextEmphasisMarkAuto:
2972 case TextEmphasisMarkCustom:
2973 ASSERT_NOT_REACHED();
2974 m_valueID = CSSValueNone;
2980 inline TextEmphasisMark CSSIdentifierValue::convertTo() const {
2981 switch (m_valueID) {
2983 return TextEmphasisMarkNone;
2985 return TextEmphasisMarkDot;
2986 case CSSValueCircle:
2987 return TextEmphasisMarkCircle;
2988 case CSSValueDoubleCircle:
2989 return TextEmphasisMarkDoubleCircle;
2990 case CSSValueTriangle:
2991 return TextEmphasisMarkTriangle;
2992 case CSSValueSesame:
2993 return TextEmphasisMarkSesame;
2998 ASSERT_NOT_REACHED();
2999 return TextEmphasisMarkNone;
3003 inline CSSIdentifierValue::CSSIdentifierValue(TextOrientation e)
3004 : CSSValue(IdentifierClass) {
3006 case TextOrientationSideways:
3007 m_valueID = CSSValueSideways;
3009 case TextOrientationMixed:
3010 m_valueID = CSSValueMixed;
3012 case TextOrientationUpright:
3013 m_valueID = CSSValueUpright;
3019 inline TextOrientation CSSIdentifierValue::convertTo() const {
3020 switch (m_valueID) {
3021 case CSSValueSideways:
3022 case CSSValueSidewaysRight:
3023 return TextOrientationSideways;
3025 case CSSValueVerticalRight: // -webkit-text-orientation
3026 return TextOrientationMixed;
3027 case CSSValueUpright:
3028 return TextOrientationUpright;
3033 ASSERT_NOT_REACHED();
3034 return TextOrientationMixed;
3038 inline CSSIdentifierValue::CSSIdentifierValue(EPointerEvents e)
3039 : CSSValue(IdentifierClass) {
3042 m_valueID = CSSValueNone;
3045 m_valueID = CSSValueStroke;
3048 m_valueID = CSSValueFill;
3051 m_valueID = CSSValuePainted;
3054 m_valueID = CSSValueVisible;
3056 case PE_VISIBLE_STROKE:
3057 m_valueID = CSSValueVisibleStroke;
3059 case PE_VISIBLE_FILL:
3060 m_valueID = CSSValueVisibleFill;
3062 case PE_VISIBLE_PAINTED:
3063 m_valueID = CSSValueVisiblePainted;
3066 m_valueID = CSSValueAuto;
3069 m_valueID = CSSValueAll;
3071 case PE_BOUNDINGBOX:
3072 m_valueID = CSSValueBoundingBox;
3078 inline EPointerEvents CSSIdentifierValue::convertTo() const {
3079 switch (m_valueID) {
3086 case CSSValueVisiblePainted:
3087 return PE_VISIBLE_PAINTED;
3088 case CSSValueVisibleFill:
3089 return PE_VISIBLE_FILL;
3090 case CSSValueVisibleStroke:
3091 return PE_VISIBLE_STROKE;
3092 case CSSValueVisible:
3094 case CSSValuePainted:
3098 case CSSValueStroke:
3100 case CSSValueBoundingBox:
3101 return PE_BOUNDINGBOX;
3106 ASSERT_NOT_REACHED();
3111 inline CSSIdentifierValue::CSSIdentifierValue(FontDescription::Kerning kerning)
3112 : CSSValue(IdentifierClass) {
3114 case FontDescription::AutoKerning:
3115 m_valueID = CSSValueAuto;
3117 case FontDescription::NormalKerning:
3118 m_valueID = CSSValueNormal;
3120 case FontDescription::NoneKerning:
3121 m_valueID = CSSValueNone;
3125 ASSERT_NOT_REACHED();
3126 m_valueID = CSSValueAuto;
3130 inline FontDescription::Kerning CSSIdentifierValue::convertTo() const {
3131 switch (m_valueID) {
3133 return FontDescription::AutoKerning;
3134 case CSSValueNormal:
3135 return FontDescription::NormalKerning;
3137 return FontDescription::NoneKerning;
3142 ASSERT_NOT_REACHED();
3143 return FontDescription::AutoKerning;
3147 inline CSSIdentifierValue::CSSIdentifierValue(ObjectFit fit)
3148 : CSSValue(IdentifierClass) {
3151 m_valueID = CSSValueFill;
3153 case ObjectFitContain:
3154 m_valueID = CSSValueContain;
3156 case ObjectFitCover:
3157 m_valueID = CSSValueCover;
3160 m_valueID = CSSValueNone;
3162 case ObjectFitScaleDown:
3163 m_valueID = CSSValueScaleDown;
3169 inline ObjectFit CSSIdentifierValue::convertTo() const {
3170 switch (m_valueID) {
3172 return ObjectFitFill;
3173 case CSSValueContain:
3174 return ObjectFitContain;
3176 return ObjectFitCover;
3178 return ObjectFitNone;
3179 case CSSValueScaleDown:
3180 return ObjectFitScaleDown;
3182 ASSERT_NOT_REACHED();
3183 return ObjectFitFill;
3188 inline CSSIdentifierValue::CSSIdentifierValue(EFillSizeType fillSize)
3189 : CSSValue(IdentifierClass) {
3192 m_valueID = CSSValueContain;
3195 m_valueID = CSSValueCover;
3198 m_valueID = CSSValueNone;
3202 ASSERT_NOT_REACHED();
3207 inline CSSIdentifierValue::CSSIdentifierValue(FontSmoothingMode smoothing)
3208 : CSSValue(IdentifierClass) {
3209 switch (smoothing) {
3211 m_valueID = CSSValueAuto;
3214 m_valueID = CSSValueNone;
3217 m_valueID = CSSValueAntialiased;
3219 case SubpixelAntialiased:
3220 m_valueID = CSSValueSubpixelAntialiased;
3224 ASSERT_NOT_REACHED();
3225 m_valueID = CSSValueAuto;
3229 inline FontSmoothingMode CSSIdentifierValue::convertTo() const {
3230 switch (m_valueID) {
3232 return AutoSmoothing;
3235 case CSSValueAntialiased:
3237 case CSSValueSubpixelAntialiased:
3238 return SubpixelAntialiased;
3243 ASSERT_NOT_REACHED();
3244 return AutoSmoothing;
3248 inline CSSIdentifierValue::CSSIdentifierValue(FontWeight weight)
3249 : CSSValue(IdentifierClass) {
3252 m_valueID = CSSValue900;
3255 m_valueID = CSSValue800;
3258 m_valueID = CSSValueBold;
3261 m_valueID = CSSValue600;
3264 m_valueID = CSSValue500;
3267 m_valueID = CSSValueNormal;
3270 m_valueID = CSSValue300;
3273 m_valueID = CSSValue200;
3276 m_valueID = CSSValue100;
3280 ASSERT_NOT_REACHED();
3281 m_valueID = CSSValueNormal;
3285 inline FontWeight CSSIdentifierValue::convertTo() const {
3286 switch (m_valueID) {
3288 return FontWeightBold;
3289 case CSSValueNormal:
3290 return FontWeightNormal;
3292 return FontWeight900;
3294 return FontWeight800;
3296 return FontWeight700;
3298 return FontWeight600;
3300 return FontWeight500;
3302 return FontWeight400;
3304 return FontWeight300;
3306 return FontWeight200;
3308 return FontWeight100;
3313 ASSERT_NOT_REACHED();
3314 return FontWeightNormal;
3318 inline CSSIdentifierValue::CSSIdentifierValue(FontStyle italic)
3319 : CSSValue(IdentifierClass) {
3321 case FontStyleNormal:
3322 m_valueID = CSSValueNormal;
3324 case FontStyleOblique:
3325 m_valueID = CSSValueOblique;
3327 case FontStyleItalic:
3328 m_valueID = CSSValueItalic;
3332 ASSERT_NOT_REACHED();
3333 m_valueID = CSSValueNormal;
3337 inline FontStyle CSSIdentifierValue::convertTo() const {
3338 switch (m_valueID) {
3339 case CSSValueOblique:
3340 return FontStyleOblique;
3341 case CSSValueItalic:
3342 return FontStyleItalic;
3343 case CSSValueNormal:
3344 return FontStyleNormal;
3348 ASSERT_NOT_REACHED();
3349 return FontStyleNormal;
3353 inline CSSIdentifierValue::CSSIdentifierValue(FontStretch stretch)
3354 : CSSValue(IdentifierClass) {
3356 case FontStretchUltraCondensed:
3357 m_valueID = CSSValueUltraCondensed;
3359 case FontStretchExtraCondensed:
3360 m_valueID = CSSValueExtraCondensed;
3362 case FontStretchCondensed:
3363 m_valueID = CSSValueCondensed;
3365 case FontStretchSemiCondensed:
3366 m_valueID = CSSValueSemiCondensed;
3368 case FontStretchNormal:
3369 m_valueID = CSSValueNormal;
3371 case FontStretchSemiExpanded:
3372 m_valueID = CSSValueSemiExpanded;
3374 case FontStretchExpanded:
3375 m_valueID = CSSValueExpanded;
3377 case FontStretchExtraExpanded:
3378 m_valueID = CSSValueExtraExpanded;
3380 case FontStretchUltraExpanded:
3381 m_valueID = CSSValueUltraExpanded;
3385 ASSERT_NOT_REACHED();
3386 m_valueID = CSSValueNormal;
3390 inline FontStretch CSSIdentifierValue::convertTo() const {
3391 switch (m_valueID) {
3392 case CSSValueUltraCondensed:
3393 return FontStretchUltraCondensed;
3394 case CSSValueExtraCondensed:
3395 return FontStretchExtraCondensed;
3396 case CSSValueCondensed:
3397 return FontStretchCondensed;
3398 case CSSValueSemiCondensed:
3399 return FontStretchSemiCondensed;
3400 case CSSValueNormal:
3401 return FontStretchNormal;
3402 case CSSValueSemiExpanded:
3403 return FontStretchSemiExpanded;
3404 case CSSValueExpanded:
3405 return FontStretchExpanded;
3406 case CSSValueExtraExpanded:
3407 return FontStretchExtraExpanded;
3408 case CSSValueUltraExpanded:
3409 return FontStretchUltraExpanded;
3414 ASSERT_NOT_REACHED();
3415 return FontStretchNormal;
3419 inline CSSIdentifierValue::CSSIdentifierValue(TextRenderingMode e)
3420 : CSSValue(IdentifierClass) {
3422 case AutoTextRendering:
3423 m_valueID = CSSValueAuto;
3426 m_valueID = CSSValueOptimizeSpeed;
3428 case OptimizeLegibility:
3429 m_valueID = CSSValueOptimizeLegibility;
3431 case GeometricPrecision:
3432 m_valueID = CSSValueGeometricPrecision;
3438 inline TextRenderingMode CSSIdentifierValue::convertTo() const {
3439 switch (m_valueID) {
3441 return AutoTextRendering;
3442 case CSSValueOptimizeSpeed:
3443 return OptimizeSpeed;
3444 case CSSValueOptimizeLegibility:
3445 return OptimizeLegibility;
3446 case CSSValueGeometricPrecision:
3447 return GeometricPrecision;
3452 ASSERT_NOT_REACHED();
3453 return AutoTextRendering;
3457 inline CSSIdentifierValue::CSSIdentifierValue(ESpeak e)
3458 : CSSValue(IdentifierClass) {
3461 m_valueID = CSSValueNone;
3464 m_valueID = CSSValueNormal;
3467 m_valueID = CSSValueSpellOut;
3470 m_valueID = CSSValueDigits;
3472 case SpeakLiteralPunctuation:
3473 m_valueID = CSSValueLiteralPunctuation;
3475 case SpeakNoPunctuation:
3476 m_valueID = CSSValueNoPunctuation;
3482 inline Order CSSIdentifierValue::convertTo() const {
3483 switch (m_valueID) {
3484 case CSSValueLogical:
3485 return LogicalOrder;
3486 case CSSValueVisual:
3492 ASSERT_NOT_REACHED();
3493 return LogicalOrder;
3497 inline CSSIdentifierValue::CSSIdentifierValue(Order e)
3498 : CSSValue(IdentifierClass) {
3501 m_valueID = CSSValueLogical;
3504 m_valueID = CSSValueVisual;
3510 inline ESpeak CSSIdentifierValue::convertTo() const {
3511 switch (m_valueID) {
3514 case CSSValueNormal:
3516 case CSSValueSpellOut:
3517 return SpeakSpellOut;
3518 case CSSValueDigits:
3520 case CSSValueLiteralPunctuation:
3521 return SpeakLiteralPunctuation;
3522 case CSSValueNoPunctuation:
3523 return SpeakNoPunctuation;
3528 ASSERT_NOT_REACHED();
3533 inline CSSIdentifierValue::CSSIdentifierValue(WebBlendMode blendMode)
3534 : CSSValue(IdentifierClass) {
3535 switch (blendMode) {
3536 case WebBlendModeNormal:
3537 m_valueID = CSSValueNormal;
3539 case WebBlendModeMultiply:
3540 m_valueID = CSSValueMultiply;
3542 case WebBlendModeScreen:
3543 m_valueID = CSSValueScreen;
3545 case WebBlendModeOverlay:
3546 m_valueID = CSSValueOverlay;
3548 case WebBlendModeDarken:
3549 m_valueID = CSSValueDarken;
3551 case WebBlendModeLighten:
3552 m_valueID = CSSValueLighten;
3554 case WebBlendModeColorDodge:
3555 m_valueID = CSSValueColorDodge;
3557 case WebBlendModeColorBurn:
3558 m_valueID = CSSValueColorBurn;
3560 case WebBlendModeHardLight:
3561 m_valueID = CSSValueHardLight;
3563 case WebBlendModeSoftLight:
3564 m_valueID = CSSValueSoftLight;
3566 case WebBlendModeDifference:
3567 m_valueID = CSSValueDifference;
3569 case WebBlendModeExclusion:
3570 m_valueID = CSSValueExclusion;
3572 case WebBlendModeHue:
3573 m_valueID = CSSValueHue;
3575 case WebBlendModeSaturation:
3576 m_valueID = CSSValueSaturation;
3578 case WebBlendModeColor:
3579 m_valueID = CSSValueColor;
3581 case WebBlendModeLuminosity:
3582 m_valueID = CSSValueLuminosity;
3588 inline WebBlendMode CSSIdentifierValue::convertTo() const {
3589 switch (m_valueID) {
3590 case CSSValueNormal:
3591 return WebBlendModeNormal;
3592 case CSSValueMultiply:
3593 return WebBlendModeMultiply;
3594 case CSSValueScreen:
3595 return WebBlendModeScreen;
3596 case CSSValueOverlay:
3597 return WebBlendModeOverlay;
3598 case CSSValueDarken:
3599 return WebBlendModeDarken;
3600 case CSSValueLighten:
3601 return WebBlendModeLighten;
3602 case CSSValueColorDodge:
3603 return WebBlendModeColorDodge;
3604 case CSSValueColorBurn:
3605 return WebBlendModeColorBurn;
3606 case CSSValueHardLight:
3607 return WebBlendModeHardLight;
3608 case CSSValueSoftLight:
3609 return WebBlendModeSoftLight;
3610 case CSSValueDifference:
3611 return WebBlendModeDifference;
3612 case CSSValueExclusion:
3613 return WebBlendModeExclusion;
3615 return WebBlendModeHue;
3616 case CSSValueSaturation:
3617 return WebBlendModeSaturation;
3619 return WebBlendModeColor;
3620 case CSSValueLuminosity:
3621 return WebBlendModeLuminosity;
3626 ASSERT_NOT_REACHED();
3627 return WebBlendModeNormal;
3631 inline CSSIdentifierValue::CSSIdentifierValue(LineCap e)
3632 : CSSValue(IdentifierClass) {
3635 m_valueID = CSSValueButt;
3638 m_valueID = CSSValueRound;
3641 m_valueID = CSSValueSquare;
3647 inline LineCap CSSIdentifierValue::convertTo() const {
3648 switch (m_valueID) {
3653 case CSSValueSquare:
3659 ASSERT_NOT_REACHED();
3664 inline CSSIdentifierValue::CSSIdentifierValue(LineJoin e)
3665 : CSSValue(IdentifierClass) {
3668 m_valueID = CSSValueMiter;
3671 m_valueID = CSSValueRound;
3674 m_valueID = CSSValueBevel;
3680 inline LineJoin CSSIdentifierValue::convertTo() const {
3681 switch (m_valueID) {
3692 ASSERT_NOT_REACHED();
3697 inline CSSIdentifierValue::CSSIdentifierValue(WindRule e)
3698 : CSSValue(IdentifierClass) {
3701 m_valueID = CSSValueNonzero;
3704 m_valueID = CSSValueEvenodd;
3710 inline WindRule CSSIdentifierValue::convertTo() const {
3711 switch (m_valueID) {
3712 case CSSValueNonzero:
3713 return RULE_NONZERO;
3714 case CSSValueEvenodd:
3715 return RULE_EVENODD;
3720 ASSERT_NOT_REACHED();
3721 return RULE_NONZERO;
3725 inline CSSIdentifierValue::CSSIdentifierValue(EAlignmentBaseline e)
3726 : CSSValue(IdentifierClass) {
3729 m_valueID = CSSValueAuto;
3732 m_valueID = CSSValueBaseline;
3734 case AB_BEFORE_EDGE:
3735 m_valueID = CSSValueBeforeEdge;
3737 case AB_TEXT_BEFORE_EDGE:
3738 m_valueID = CSSValueTextBeforeEdge;
3741 m_valueID = CSSValueMiddle;
3744 m_valueID = CSSValueCentral;
3747 m_valueID = CSSValueAfterEdge;
3749 case AB_TEXT_AFTER_EDGE:
3750 m_valueID = CSSValueTextAfterEdge;
3752 case AB_IDEOGRAPHIC:
3753 m_valueID = CSSValueIdeographic;
3756 m_valueID = CSSValueAlphabetic;
3759 m_valueID = CSSValueHanging;
3761 case AB_MATHEMATICAL:
3762 m_valueID = CSSValueMathematical;
3768 inline EAlignmentBaseline CSSIdentifierValue::convertTo() const {
3769 switch (m_valueID) {
3772 case CSSValueBaseline:
3774 case CSSValueBeforeEdge:
3775 return AB_BEFORE_EDGE;
3776 case CSSValueTextBeforeEdge:
3777 return AB_TEXT_BEFORE_EDGE;
3778 case CSSValueMiddle:
3780 case CSSValueCentral:
3782 case CSSValueAfterEdge:
3783 return AB_AFTER_EDGE;
3784 case CSSValueTextAfterEdge:
3785 return AB_TEXT_AFTER_EDGE;
3786 case CSSValueIdeographic:
3787 return AB_IDEOGRAPHIC;
3788 case CSSValueAlphabetic:
3789 return AB_ALPHABETIC;
3790 case CSSValueHanging:
3792 case CSSValueMathematical:
3793 return AB_MATHEMATICAL;
3798 ASSERT_NOT_REACHED();
3803 inline CSSIdentifierValue::CSSIdentifierValue(EBorderCollapse e)
3804 : CSSValue(IdentifierClass) {
3806 case BorderCollapseSeparate:
3807 m_valueID = CSSValueSeparate;
3809 case BorderCollapseCollapse:
3810 m_valueID = CSSValueCollapse;
3816 inline EBorderCollapse CSSIdentifierValue::convertTo() const {
3817 switch (m_valueID) {
3818 case CSSValueSeparate:
3819 return BorderCollapseSeparate;
3820 case CSSValueCollapse:
3821 return BorderCollapseCollapse;
3826 ASSERT_NOT_REACHED();
3827 return BorderCollapseSeparate;
3831 inline CSSIdentifierValue::CSSIdentifierValue(EImageRendering e)
3832 : CSSValue(IdentifierClass) {
3834 case ImageRenderingAuto:
3835 m_valueID = CSSValueAuto;
3837 case ImageRenderingOptimizeSpeed:
3838 m_valueID = CSSValueOptimizeSpeed;
3840 case ImageRenderingOptimizeQuality:
3841 m_valueID = CSSValueOptimizeQuality;
3843 case ImageRenderingPixelated:
3844 m_valueID = CSSValuePixelated;
3846 case ImageRenderingOptimizeContrast:
3847 m_valueID = CSSValueWebkitOptimizeContrast;
3853 inline EImageRendering CSSIdentifierValue::convertTo() const {
3854 switch (m_valueID) {
3856 return ImageRenderingAuto;
3857 case CSSValueOptimizeSpeed:
3858 return ImageRenderingOptimizeSpeed;
3859 case CSSValueOptimizeQuality:
3860 return ImageRenderingOptimizeQuality;
3861 case CSSValuePixelated:
3862 return ImageRenderingPixelated;
3863 case CSSValueWebkitOptimizeContrast:
3864 return ImageRenderingOptimizeContrast;
3869 ASSERT_NOT_REACHED();
3870 return ImageRenderingAuto;
3874 inline CSSIdentifierValue::CSSIdentifierValue(ETransformStyle3D e)
3875 : CSSValue(IdentifierClass) {
3877 case TransformStyle3DFlat:
3878 m_valueID = CSSValueFlat;
3880 case TransformStyle3DPreserve3D:
3881 m_valueID = CSSValuePreserve3d;
3887 inline ETransformStyle3D CSSIdentifierValue::convertTo() const {
3888 switch (m_valueID) {
3890 return TransformStyle3DFlat;
3891 case CSSValuePreserve3d:
3892 return TransformStyle3DPreserve3D;
3897 ASSERT_NOT_REACHED();
3898 return TransformStyle3DFlat;
3902 inline CSSIdentifierValue::CSSIdentifierValue(EBufferedRendering e)
3903 : CSSValue(IdentifierClass) {
3906 m_valueID = CSSValueAuto;
3909 m_valueID = CSSValueDynamic;
3912 m_valueID = CSSValueStatic;
3918 inline EBufferedRendering CSSIdentifierValue::convertTo() const {
3919 switch (m_valueID) {
3922 case CSSValueDynamic:
3924 case CSSValueStatic:
3930 ASSERT_NOT_REACHED();
3935 inline CSSIdentifierValue::CSSIdentifierValue(EColorInterpolation e)
3936 : CSSValue(IdentifierClass) {
3939 m_valueID = CSSValueAuto;
3942 m_valueID = CSSValueSRGB;
3945 m_valueID = CSSValueLinearRGB;
3951 inline EColorInterpolation CSSIdentifierValue::convertTo() const {
3952 switch (m_valueID) {
3955 case CSSValueLinearRGB:
3956 return CI_LINEARRGB;
3963 ASSERT_NOT_REACHED();
3968 inline CSSIdentifierValue::CSSIdentifierValue(EColorRendering e)
3969 : CSSValue(IdentifierClass) {
3972 m_valueID = CSSValueAuto;
3974 case CR_OPTIMIZESPEED:
3975 m_valueID = CSSValueOptimizeSpeed;
3977 case CR_OPTIMIZEQUALITY:
3978 m_valueID = CSSValueOptimizeQuality;
3984 inline EColorRendering CSSIdentifierValue::convertTo() const {
3985 switch (m_valueID) {
3986 case CSSValueOptimizeSpeed:
3987 return CR_OPTIMIZESPEED;
3988 case CSSValueOptimizeQuality:
3989 return CR_OPTIMIZEQUALITY;
3996 ASSERT_NOT_REACHED();
4001 inline CSSIdentifierValue::CSSIdentifierValue(EDominantBaseline e)
4002 : CSSValue(IdentifierClass) {
4005 m_valueID = CSSValueAuto;
4008 m_valueID = CSSValueUseScript;
4011 m_valueID = CSSValueNoChange;
4014 m_valueID = CSSValueResetSize;
4017 m_valueID = CSSValueCentral;
4020 m_valueID = CSSValueMiddle;
4022 case DB_TEXT_BEFORE_EDGE:
4023 m_valueID = CSSValueTextBeforeEdge;
4025 case DB_TEXT_AFTER_EDGE:
4026 m_valueID = CSSValueTextAfterEdge;
4028 case DB_IDEOGRAPHIC:
4029 m_valueID = CSSValueIdeographic;
4032 m_valueID = CSSValueAlphabetic;
4035 m_valueID = CSSValueHanging;
4037 case DB_MATHEMATICAL:
4038 m_valueID = CSSValueMathematical;
4044 inline EDominantBaseline CSSIdentifierValue::convertTo() const {
4045 switch (m_valueID) {
4048 case CSSValueUseScript:
4049 return DB_USE_SCRIPT;
4050 case CSSValueNoChange:
4051 return DB_NO_CHANGE;
4052 case CSSValueResetSize:
4053 return DB_RESET_SIZE;
4054 case CSSValueIdeographic:
4055 return DB_IDEOGRAPHIC;
4056 case CSSValueAlphabetic:
4057 return DB_ALPHABETIC;
4058 case CSSValueHanging:
4060 case CSSValueMathematical:
4061 return DB_MATHEMATICAL;
4062 case CSSValueCentral:
4064 case CSSValueMiddle:
4066 case CSSValueTextAfterEdge:
4067 return DB_TEXT_AFTER_EDGE;
4068 case CSSValueTextBeforeEdge:
4069 return DB_TEXT_BEFORE_EDGE;
4074 ASSERT_NOT_REACHED();
4079 inline CSSIdentifierValue::CSSIdentifierValue(EShapeRendering e)
4080 : CSSValue(IdentifierClass) {
4083 m_valueID = CSSValueAuto;
4085 case SR_OPTIMIZESPEED:
4086 m_valueID = CSSValueOptimizeSpeed;
4089 m_valueID = CSSValueCrispEdges;
4091 case SR_GEOMETRICPRECISION:
4092 m_valueID = CSSValueGeometricPrecision;
4098 inline EShapeRendering CSSIdentifierValue::convertTo() const {
4099 switch (m_valueID) {
4102 case CSSValueOptimizeSpeed:
4103 return SR_OPTIMIZESPEED;
4104 case CSSValueCrispEdges:
4105 return SR_CRISPEDGES;
4106 case CSSValueGeometricPrecision:
4107 return SR_GEOMETRICPRECISION;
4112 ASSERT_NOT_REACHED();
4117 inline CSSIdentifierValue::CSSIdentifierValue(ETextAnchor e)
4118 : CSSValue(IdentifierClass) {
4121 m_valueID = CSSValueStart;
4124 m_valueID = CSSValueMiddle;
4127 m_valueID = CSSValueEnd;
4133 inline ETextAnchor CSSIdentifierValue::convertTo() const {
4134 switch (m_valueID) {
4137 case CSSValueMiddle:
4145 ASSERT_NOT_REACHED();
4150 inline CSSIdentifierValue::CSSIdentifierValue(EVectorEffect e)
4151 : CSSValue(IdentifierClass) {
4154 m_valueID = CSSValueNone;
4156 case VE_NON_SCALING_STROKE:
4157 m_valueID = CSSValueNonScalingStroke;
4163 inline EVectorEffect CSSIdentifierValue::convertTo() const {
4164 switch (m_valueID) {
4167 case CSSValueNonScalingStroke:
4168 return VE_NON_SCALING_STROKE;
4173 ASSERT_NOT_REACHED();
4178 inline CSSIdentifierValue::CSSIdentifierValue(EPaintOrderType e)
4179 : CSSValue(IdentifierClass) {
4182 m_valueID = CSSValueFill;
4185 m_valueID = CSSValueStroke;
4188 m_valueID = CSSValueMarkers;
4191 ASSERT_NOT_REACHED();
4192 m_valueID = CSSValueFill;
4198 inline EPaintOrderType CSSIdentifierValue::convertTo() const {
4199 switch (m_valueID) {
4202 case CSSValueStroke:
4204 case CSSValueMarkers:
4210 ASSERT_NOT_REACHED();
4215 inline CSSIdentifierValue::CSSIdentifierValue(EMaskType e)
4216 : CSSValue(IdentifierClass) {
4219 m_valueID = CSSValueLuminance;
4222 m_valueID = CSSValueAlpha;
4228 inline EMaskType CSSIdentifierValue::convertTo() const {
4229 switch (m_valueID) {
4230 case CSSValueLuminance:
4231 return MT_LUMINANCE;
4238 ASSERT_NOT_REACHED();
4239 return MT_LUMINANCE;
4243 inline TouchAction CSSIdentifierValue::convertTo() const {
4244 switch (m_valueID) {
4246 return TouchActionNone;
4248 return TouchActionAuto;
4249 case CSSValuePanLeft:
4250 return TouchActionPanLeft;
4251 case CSSValuePanRight:
4252 return TouchActionPanRight;
4254 return TouchActionPanX;
4256 return TouchActionPanUp;
4257 case CSSValuePanDown:
4258 return TouchActionPanDown;
4260 return TouchActionPanY;
4261 case CSSValueManipulation:
4262 return TouchActionManipulation;
4263 case CSSValuePinchZoom:
4264 return TouchActionPinchZoom;
4269 ASSERT_NOT_REACHED();
4270 return TouchActionNone;
4274 inline CSSIdentifierValue::CSSIdentifierValue(EIsolation i)
4275 : CSSValue(IdentifierClass) {
4278 m_valueID = CSSValueAuto;
4280 case IsolationIsolate:
4281 m_valueID = CSSValueIsolate;
4287 inline EIsolation CSSIdentifierValue::convertTo() const {
4288 switch (m_valueID) {
4290 return IsolationAuto;
4291 case CSSValueIsolate:
4292 return IsolationIsolate;
4297 ASSERT_NOT_REACHED();
4298 return IsolationAuto;
4302 inline CSSIdentifierValue::CSSIdentifierValue(CSSBoxType cssBox)
4303 : CSSValue(IdentifierClass) {
4306 m_valueID = CSSValueMarginBox;
4309 m_valueID = CSSValueBorderBox;
4312 m_valueID = CSSValuePaddingBox;
4315 m_valueID = CSSValueContentBox;
4318 // The missing box should convert to a null primitive value.
4319 ASSERT_NOT_REACHED();
4324 inline CSSBoxType CSSIdentifierValue::convertTo() const {
4325 switch (getValueID()) {
4326 case CSSValueMarginBox:
4328 case CSSValueBorderBox:
4330 case CSSValuePaddingBox:
4332 case CSSValueContentBox:
4337 ASSERT_NOT_REACHED();
4342 inline CSSIdentifierValue::CSSIdentifierValue(ItemPosition itemPosition)
4343 : CSSValue(IdentifierClass) {
4344 switch (itemPosition) {
4345 case ItemPositionAuto:
4346 // The 'auto' values might have been already resolved.
4348 m_valueID = CSSValueNormal;
4350 case ItemPositionNormal:
4351 m_valueID = CSSValueNormal;
4353 case ItemPositionStretch:
4354 m_valueID = CSSValueStretch;
4356 case ItemPositionBaseline:
4357 m_valueID = CSSValueBaseline;
4359 case ItemPositionLastBaseline:
4360 m_valueID = CSSValueLastBaseline;
4362 case ItemPositionCenter:
4363 m_valueID = CSSValueCenter;
4365 case ItemPositionStart:
4366 m_valueID = CSSValueStart;
4368 case ItemPositionEnd:
4369 m_valueID = CSSValueEnd;
4371 case ItemPositionSelfStart:
4372 m_valueID = CSSValueSelfStart;
4374 case ItemPositionSelfEnd:
4375 m_valueID = CSSValueSelfEnd;
4377 case ItemPositionFlexStart:
4378 m_valueID = CSSValueFlexStart;
4380 case ItemPositionFlexEnd:
4381 m_valueID = CSSValueFlexEnd;
4383 case ItemPositionLeft:
4384 m_valueID = CSSValueLeft;
4386 case ItemPositionRight:
4387 m_valueID = CSSValueRight;
4393 inline ItemPosition CSSIdentifierValue::convertTo() const {
4394 switch (m_valueID) {
4396 return ItemPositionAuto;
4397 case CSSValueNormal:
4398 return ItemPositionNormal;
4399 case CSSValueStretch:
4400 return ItemPositionStretch;
4401 case CSSValueBaseline:
4402 return ItemPositionBaseline;
4403 case CSSValueLastBaseline:
4404 return ItemPositionLastBaseline;
4405 case CSSValueCenter:
4406 return ItemPositionCenter;
4408 return ItemPositionStart;
4410 return ItemPositionEnd;
4411 case CSSValueSelfStart:
4412 return ItemPositionSelfStart;
4413 case CSSValueSelfEnd:
4414 return ItemPositionSelfEnd;
4415 case CSSValueFlexStart:
4416 return ItemPositionFlexStart;
4417 case CSSValueFlexEnd:
4418 return ItemPositionFlexEnd;
4420 return ItemPositionLeft;
4422 return ItemPositionRight;
4426 ASSERT_NOT_REACHED();
4427 return ItemPositionAuto;
4431 inline CSSIdentifierValue::CSSIdentifierValue(ContentPosition contentPosition)
4432 : CSSValue(IdentifierClass) {
4433 switch (contentPosition) {
4434 case ContentPositionNormal:
4435 m_valueID = CSSValueNormal;
4437 case ContentPositionBaseline:
4438 m_valueID = CSSValueBaseline;
4440 case ContentPositionLastBaseline:
4441 m_valueID = CSSValueLastBaseline;
4443 case ContentPositionCenter:
4444 m_valueID = CSSValueCenter;
4446 case ContentPositionStart:
4447 m_valueID = CSSValueStart;
4449 case ContentPositionEnd:
4450 m_valueID = CSSValueEnd;
4452 case ContentPositionFlexStart:
4453 m_valueID = CSSValueFlexStart;
4455 case ContentPositionFlexEnd:
4456 m_valueID = CSSValueFlexEnd;
4458 case ContentPositionLeft:
4459 m_valueID = CSSValueLeft;
4461 case ContentPositionRight:
4462 m_valueID = CSSValueRight;
4468 inline ContentPosition CSSIdentifierValue::convertTo() const {
4469 switch (m_valueID) {
4470 case CSSValueNormal:
4471 return ContentPositionNormal;
4472 case CSSValueBaseline:
4473 return ContentPositionBaseline;
4474 case CSSValueLastBaseline:
4475 return ContentPositionLastBaseline;
4476 case CSSValueCenter:
4477 return ContentPositionCenter;
4479 return ContentPositionStart;
4481 return ContentPositionEnd;
4482 case CSSValueFlexStart:
4483 return ContentPositionFlexStart;
4484 case CSSValueFlexEnd:
4485 return ContentPositionFlexEnd;
4487 return ContentPositionLeft;
4489 return ContentPositionRight;
4493 ASSERT_NOT_REACHED();
4494 return ContentPositionNormal;
4498 inline CSSIdentifierValue::CSSIdentifierValue(
4499 ContentDistributionType contentDistribution)
4500 : CSSValue(IdentifierClass) {
4501 switch (contentDistribution) {
4502 case ContentDistributionDefault:
4503 m_valueID = CSSValueDefault;
4505 case ContentDistributionSpaceBetween:
4506 m_valueID = CSSValueSpaceBetween;
4508 case ContentDistributionSpaceAround:
4509 m_valueID = CSSValueSpaceAround;
4511 case ContentDistributionSpaceEvenly:
4512 m_valueID = CSSValueSpaceEvenly;
4514 case ContentDistributionStretch:
4515 m_valueID = CSSValueStretch;
4521 inline ContentDistributionType CSSIdentifierValue::convertTo() const {
4522 switch (m_valueID) {
4523 case CSSValueSpaceBetween:
4524 return ContentDistributionSpaceBetween;
4525 case CSSValueSpaceAround:
4526 return ContentDistributionSpaceAround;
4527 case CSSValueSpaceEvenly:
4528 return ContentDistributionSpaceEvenly;
4529 case CSSValueStretch:
4530 return ContentDistributionStretch;
4534 ASSERT_NOT_REACHED();
4535 return ContentDistributionStretch;
4539 inline CSSIdentifierValue::CSSIdentifierValue(
4540 OverflowAlignment overflowAlignment)
4541 : CSSValue(IdentifierClass) {
4542 switch (overflowAlignment) {
4543 case OverflowAlignmentDefault:
4544 m_valueID = CSSValueDefault;
4546 case OverflowAlignmentUnsafe:
4547 m_valueID = CSSValueUnsafe;
4549 case OverflowAlignmentSafe:
4550 m_valueID = CSSValueSafe;
4556 inline OverflowAlignment CSSIdentifierValue::convertTo() const {
4557 switch (m_valueID) {
4558 case CSSValueUnsafe:
4559 return OverflowAlignmentUnsafe;
4561 return OverflowAlignmentSafe;
4565 ASSERT_NOT_REACHED();
4566 return OverflowAlignmentUnsafe;
4570 inline CSSIdentifierValue::CSSIdentifierValue(ScrollBehavior behavior)
4571 : CSSValue(IdentifierClass) {
4573 case ScrollBehaviorAuto:
4574 m_valueID = CSSValueAuto;
4576 case ScrollBehaviorSmooth:
4577 m_valueID = CSSValueSmooth;
4579 case ScrollBehaviorInstant:
4580 // Behavior 'instant' is only allowed in ScrollOptions arguments passed to
4581 // CSSOM scroll APIs.
4582 ASSERT_NOT_REACHED();
4587 inline ScrollBehavior CSSIdentifierValue::convertTo() const {
4588 switch (getValueID()) {
4590 return ScrollBehaviorAuto;
4591 case CSSValueSmooth:
4592 return ScrollBehaviorSmooth;
4596 ASSERT_NOT_REACHED();
4597 return ScrollBehaviorAuto;
4601 inline CSSIdentifierValue::CSSIdentifierValue(ScrollSnapType snapType)
4602 : CSSValue(IdentifierClass) {
4604 case ScrollSnapTypeNone:
4605 m_valueID = CSSValueNone;
4607 case ScrollSnapTypeMandatory:
4608 m_valueID = CSSValueMandatory;
4610 case ScrollSnapTypeProximity:
4611 m_valueID = CSSValueProximity;
4617 inline ScrollSnapType CSSIdentifierValue::convertTo() const {
4618 switch (getValueID()) {
4620 return ScrollSnapTypeNone;
4621 case CSSValueMandatory:
4622 return ScrollSnapTypeMandatory;
4623 case CSSValueProximity:
4624 return ScrollSnapTypeProximity;
4628 ASSERT_NOT_REACHED();
4629 return ScrollSnapTypeNone;
4633 inline CSSIdentifierValue::CSSIdentifierValue(Containment snapType)
4634 : CSSValue(IdentifierClass) {
4637 m_valueID = CSSValueNone;
4639 case ContainsStrict:
4640 m_valueID = CSSValueStrict;
4642 case ContainsContent:
4643 m_valueID = CSSValueContent;
4646 m_valueID = CSSValuePaint;
4649 m_valueID = CSSValueStyle;
4651 case ContainsLayout:
4652 m_valueID = CSSValueLayout;
4655 m_valueID = CSSValueSize;
4661 inline Containment CSSIdentifierValue::convertTo() const {
4662 switch (getValueID()) {
4664 return ContainsNone;
4665 case CSSValueStrict:
4666 return ContainsStrict;
4667 case CSSValueContent:
4668 return ContainsContent;
4670 return ContainsPaint;
4672 return ContainsStyle;
4673 case CSSValueLayout:
4674 return ContainsLayout;
4676 return ContainsSize;
4680 ASSERT_NOT_REACHED();
4681 return ContainsNone;
4684 } // namespace blink