Remove outdated list style types
[chromium-blink-merge.git] / third_party / WebKit / Source / core / style / ComputedStyleConstants.h
blobff42838ecc092717e1971f21b166eb30ecbda8a0
1 /*
2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2003, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com)
7 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/)
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public
11 * License as published by the Free Software Foundation; either
12 * version 2 of the License, or (at your option) any later version.
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Library General Public License for more details.
19 * You should have received a copy of the GNU Library General Public License
20 * along with this library; see the file COPYING.LIB. If not, write to
21 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22 * Boston, MA 02110-1301, USA.
26 #ifndef ComputedStyleConstants_h
27 #define ComputedStyleConstants_h
29 namespace blink {
31 // Sides used when drawing borders and outlines. The values should run clockwise from top.
32 enum BoxSide {
33 BSTop,
34 BSRight,
35 BSBottom,
36 BSLeft
39 enum StyleRecalcChange {
40 NoChange,
41 NoInherit,
42 UpdatePseudoElements,
43 Inherit,
44 Force,
45 Reattach,
46 ReattachNoLayoutObject
49 static const size_t PrintColorAdjustBits = 1;
50 enum PrintColorAdjust {
51 PrintColorAdjustEconomy,
52 PrintColorAdjustExact
55 // Static pseudo styles. Dynamic ones are produced on the fly.
56 enum PseudoId {
57 // The order must be NOP ID, public IDs, and then internal IDs.
58 // If you add or remove a public ID, you must update _pseudoBits in ComputedStyle.
59 NOPSEUDO, FIRST_LINE, FIRST_LETTER, BEFORE, AFTER, BACKDROP, SELECTION, FIRST_LINE_INHERITED, SCROLLBAR,
60 // Internal IDs follow:
61 SCROLLBAR_THUMB, SCROLLBAR_BUTTON, SCROLLBAR_TRACK, SCROLLBAR_TRACK_PIECE, SCROLLBAR_CORNER, RESIZER, INPUT_LIST_BUTTON,
62 // Special values follow:
63 AFTER_LAST_INTERNAL_PSEUDOID,
64 FIRST_PUBLIC_PSEUDOID = FIRST_LINE,
65 FIRST_INTERNAL_PSEUDOID = SCROLLBAR_THUMB,
66 PUBLIC_PSEUDOID_MASK = ((1 << FIRST_INTERNAL_PSEUDOID) - 1) & ~((1 << FIRST_PUBLIC_PSEUDOID) - 1),
67 PSEUDO_ELEMENT_MASK = (1 << (BEFORE - 1)) | (1 << (AFTER - 1)) | (1 << (BACKDROP - 1))
70 enum ColumnFill { ColumnFillBalance, ColumnFillAuto };
72 enum ColumnSpan { ColumnSpanNone = 0, ColumnSpanAll };
74 enum EBorderCollapse { BSEPARATE = 0, BCOLLAPSE = 1 };
76 // These have been defined in the order of their precedence for border-collapsing. Do
77 // not change this order! This order also must match the order in CSSValueKeywords.in.
78 enum EBorderStyle { BNONE, BHIDDEN, INSET, GROOVE, OUTSET, RIDGE, DOTTED, DASHED, SOLID, DOUBLE };
80 enum EBorderPrecedence { BOFF, BTABLE, BCOLGROUP, BCOL, BROWGROUP, BROW, BCELL };
82 enum OutlineIsAuto { AUTO_OFF = 0, AUTO_ON };
84 enum EPosition {
85 StaticPosition = 0,
86 RelativePosition = 1,
87 AbsolutePosition = 2,
88 // This value is required to pack our bits efficiently in LayoutObject.
89 // FIXME: Is this still true now that we've remove position: sticky.
90 FixedPosition = 6
93 enum EFloat {
94 NoFloat, LeftFloat, RightFloat
97 enum EMarginCollapse { MCOLLAPSE, MSEPARATE, MDISCARD };
99 // Box decoration attributes. Not inherited.
101 enum EBoxDecorationBreak { DSLICE, DCLONE };
103 // Box attributes. Not inherited.
105 enum EBoxSizing { CONTENT_BOX, BORDER_BOX };
107 // Random visual rendering model attributes. Not inherited.
109 enum EOverflow {
110 OVISIBLE, OHIDDEN, OSCROLL, OAUTO, OOVERLAY, OPAGEDX, OPAGEDY
113 enum EVerticalAlign {
114 BASELINE, MIDDLE, SUB, SUPER, TEXT_TOP,
115 TEXT_BOTTOM, TOP, BOTTOM, BASELINE_MIDDLE, LENGTH
118 enum EClear {
119 CNONE = 0, CLEFT = 1, CRIGHT = 2, CBOTH = 3
122 enum ETableLayout {
123 TAUTO, TFIXED
126 enum TextCombine {
127 TextCombineNone, TextCombineHorizontal
130 enum EFillAttachment {
131 ScrollBackgroundAttachment, LocalBackgroundAttachment, FixedBackgroundAttachment
134 enum EFillBox {
135 BorderFillBox, PaddingFillBox, ContentFillBox, TextFillBox
138 enum EFillRepeat {
139 RepeatFill, NoRepeatFill, RoundFill, SpaceFill
142 enum EFillLayerType {
143 BackgroundFillLayer, MaskFillLayer
146 // CSS3 Background Values
147 enum EFillSizeType { Contain, Cover, SizeLength, SizeNone };
149 // CSS3 Background Position
150 enum BackgroundEdgeOrigin { TopEdge, RightEdge, BottomEdge, LeftEdge };
152 // CSS Mask Source Types
153 enum EMaskSourceType { MaskAlpha, MaskLuminance };
155 // Deprecated Flexible Box Properties
157 enum EBoxPack { Start, Center, End, Justify };
158 enum EBoxAlignment { BSTRETCH, BSTART, BCENTER, BEND, BBASELINE };
159 enum EBoxOrient { HORIZONTAL, VERTICAL };
160 enum EBoxLines { SINGLE, MULTIPLE };
161 enum EBoxDirection { BNORMAL, BREVERSE };
163 // CSS3 Flexbox Properties
165 enum EFlexDirection { FlowRow, FlowRowReverse, FlowColumn, FlowColumnReverse };
166 enum EFlexWrap { FlexNoWrap, FlexWrap, FlexWrapReverse };
168 enum ETextSecurity {
169 TSNONE, TSDISC, TSCIRCLE, TSSQUARE
172 // CSS3 User Modify Properties
174 enum EUserModify {
175 READ_ONLY, READ_WRITE, READ_WRITE_PLAINTEXT_ONLY
178 // CSS3 User Drag Values
180 enum EUserDrag {
181 DRAG_AUTO, DRAG_NONE, DRAG_ELEMENT
184 // CSS3 User Select Values
186 enum EUserSelect {
187 SELECT_NONE, SELECT_TEXT, SELECT_ALL
190 // CSS3 Image Values
191 enum ObjectFit { ObjectFitFill, ObjectFitContain, ObjectFitCover, ObjectFitNone, ObjectFitScaleDown };
193 // Word Break Values. Matches WinIE and CSS3
195 enum EWordBreak {
196 NormalWordBreak, BreakAllWordBreak, KeepAllWordBreak, BreakWordBreak
199 enum EOverflowWrap {
200 NormalOverflowWrap, BreakOverflowWrap
203 enum LineBreak {
204 LineBreakAuto, LineBreakLoose, LineBreakNormal, LineBreakStrict, LineBreakAfterWhiteSpace
207 enum EResize {
208 RESIZE_NONE, RESIZE_BOTH, RESIZE_HORIZONTAL, RESIZE_VERTICAL
211 // The order of this enum must match the order of the list style types in CSSValueKeywords.in.
212 enum EListStyleType {
213 Disc,
214 Circle,
215 Square,
216 DecimalListStyle,
217 DecimalLeadingZero,
218 ArabicIndic,
219 Bengali,
220 Cambodian,
221 Khmer,
222 Devanagari,
223 Gujarati,
224 Gurmukhi,
225 Kannada,
226 Lao,
227 Malayalam,
228 Mongolian,
229 Myanmar,
230 Oriya,
231 Persian,
232 Urdu,
233 Telugu,
234 Tibetan,
235 Thai,
236 LowerRoman,
237 UpperRoman,
238 LowerGreek,
239 LowerAlpha,
240 LowerLatin,
241 UpperAlpha,
242 UpperLatin,
243 CjkEarthlyBranch,
244 CjkHeavenlyStem,
245 EthiopicHalehame,
246 EthiopicHalehameAm,
247 EthiopicHalehameTiEr,
248 EthiopicHalehameTiEt,
249 Hangul,
250 HangulConsonant,
251 Hebrew,
252 Armenian,
253 LowerArmenian,
254 UpperArmenian,
255 Georgian,
256 CJKIdeographic,
257 Hiragana,
258 Katakana,
259 HiraganaIroha,
260 KatakanaIroha,
261 NoneListStyle
264 enum QuoteType {
265 OPEN_QUOTE, CLOSE_QUOTE, NO_OPEN_QUOTE, NO_CLOSE_QUOTE
268 enum EAnimPlayState {
269 AnimPlayStatePlaying,
270 AnimPlayStatePaused
273 enum EWhiteSpace {
274 NORMAL, PRE, PRE_WRAP, PRE_LINE, NOWRAP, KHTML_NOWRAP
277 // The order of this enum must match the order of the text align values in CSSValueKeywords.in.
278 enum ETextAlign {
279 LEFT, RIGHT, CENTER, JUSTIFY, WEBKIT_LEFT, WEBKIT_RIGHT, WEBKIT_CENTER, TASTART, TAEND,
282 enum ETextTransform {
283 CAPITALIZE, UPPERCASE, LOWERCASE, TTNONE
286 static const size_t TextDecorationBits = 4;
287 enum TextDecoration {
288 TextDecorationNone = 0x0,
289 TextDecorationUnderline = 0x1,
290 TextDecorationOverline = 0x2,
291 TextDecorationLineThrough = 0x4,
292 TextDecorationBlink = 0x8
294 inline TextDecoration operator| (TextDecoration a, TextDecoration b) { return TextDecoration(int(a) | int(b)); }
295 inline TextDecoration& operator|= (TextDecoration& a, TextDecoration b) { return a = a | b; }
297 enum TextDecorationStyle {
298 TextDecorationStyleSolid,
299 TextDecorationStyleDouble,
300 TextDecorationStyleDotted,
301 TextDecorationStyleDashed,
302 TextDecorationStyleWavy
305 enum TextAlignLast {
306 TextAlignLastAuto, TextAlignLastStart, TextAlignLastEnd, TextAlignLastLeft, TextAlignLastRight, TextAlignLastCenter, TextAlignLastJustify
309 enum TextUnderlinePosition {
310 // FIXME: Implement support for 'under left' and 'under right' values.
311 TextUnderlinePositionAuto,
312 TextUnderlinePositionUnder
315 enum EPageBreak {
316 PBAUTO, PBALWAYS, PBAVOID
319 enum EEmptyCell {
320 SHOW, HIDE
323 enum ECaptionSide {
324 CAPTOP, CAPBOTTOM, CAPLEFT, CAPRIGHT
327 enum EListStylePosition { OUTSIDE, INSIDE };
329 enum EVisibility { VISIBLE, HIDDEN, COLLAPSE };
331 enum ECursor {
332 // The following must match the order in CSSValueKeywords.in.
333 CURSOR_AUTO,
334 CURSOR_CROSS,
335 CURSOR_DEFAULT,
336 CURSOR_POINTER,
337 CURSOR_MOVE,
338 CURSOR_VERTICAL_TEXT,
339 CURSOR_CELL,
340 CURSOR_CONTEXT_MENU,
341 CURSOR_ALIAS,
342 CURSOR_PROGRESS,
343 CURSOR_NO_DROP,
344 CURSOR_NOT_ALLOWED,
345 CURSOR_ZOOM_IN,
346 CURSOR_ZOOM_OUT,
347 CURSOR_E_RESIZE,
348 CURSOR_NE_RESIZE,
349 CURSOR_NW_RESIZE,
350 CURSOR_N_RESIZE,
351 CURSOR_SE_RESIZE,
352 CURSOR_SW_RESIZE,
353 CURSOR_S_RESIZE,
354 CURSOR_W_RESIZE,
355 CURSOR_EW_RESIZE,
356 CURSOR_NS_RESIZE,
357 CURSOR_NESW_RESIZE,
358 CURSOR_NWSE_RESIZE,
359 CURSOR_COL_RESIZE,
360 CURSOR_ROW_RESIZE,
361 CURSOR_TEXT,
362 CURSOR_WAIT,
363 CURSOR_HELP,
364 CURSOR_ALL_SCROLL,
365 CURSOR_WEBKIT_GRAB,
366 CURSOR_WEBKIT_GRABBING,
368 // The following are handled as exceptions so don't need to match.
369 CURSOR_COPY,
370 CURSOR_NONE
373 // The order of this enum must match the order of the display values in CSSValueKeywords.in.
374 enum EDisplay {
375 INLINE, BLOCK, LIST_ITEM, INLINE_BLOCK,
376 TABLE, INLINE_TABLE, TABLE_ROW_GROUP,
377 TABLE_HEADER_GROUP, TABLE_FOOTER_GROUP, TABLE_ROW,
378 TABLE_COLUMN_GROUP, TABLE_COLUMN, TABLE_CELL,
379 TABLE_CAPTION, BOX, INLINE_BOX,
380 FLEX, INLINE_FLEX,
381 GRID, INLINE_GRID,
382 NONE,
383 FIRST_TABLE_DISPLAY = TABLE,
384 LAST_TABLE_DISPLAY = TABLE_CAPTION
387 enum EInsideLink {
388 NotInsideLink, InsideUnvisitedLink, InsideVisitedLink
391 enum EPointerEvents {
392 PE_NONE, PE_AUTO, PE_STROKE, PE_FILL, PE_PAINTED, PE_VISIBLE,
393 PE_VISIBLE_STROKE, PE_VISIBLE_FILL, PE_VISIBLE_PAINTED, PE_BOUNDINGBOX,
394 PE_ALL
397 enum ETransformStyle3D {
398 TransformStyle3DFlat, TransformStyle3DPreserve3D
401 enum MotionRotationType { MotionRotationAuto, MotionRotationFixed };
403 enum EBackfaceVisibility {
404 BackfaceVisibilityVisible, BackfaceVisibilityHidden
407 enum ELineClampType { LineClampLineCount, LineClampPercentage };
409 enum Hyphens { HyphensNone, HyphensManual, HyphensAuto };
411 enum ESpeak { SpeakNone, SpeakNormal, SpeakSpellOut, SpeakDigits, SpeakLiteralPunctuation, SpeakNoPunctuation };
413 enum TextEmphasisFill { TextEmphasisFillFilled, TextEmphasisFillOpen };
415 enum TextEmphasisMark { TextEmphasisMarkNone, TextEmphasisMarkAuto, TextEmphasisMarkDot, TextEmphasisMarkCircle, TextEmphasisMarkDoubleCircle, TextEmphasisMarkTriangle, TextEmphasisMarkSesame, TextEmphasisMarkCustom };
417 enum TextEmphasisPosition { TextEmphasisPositionOver, TextEmphasisPositionUnder };
419 enum TextOrientation { TextOrientationVerticalRight, TextOrientationUpright, TextOrientationSideways, TextOrientationSidewaysRight };
421 enum TextOverflow { TextOverflowClip = 0, TextOverflowEllipsis };
423 enum EImageRendering { ImageRenderingAuto, ImageRenderingOptimizeSpeed, ImageRenderingOptimizeQuality, ImageRenderingOptimizeContrast, ImageRenderingPixelated };
425 enum ImageResolutionSource { ImageResolutionSpecified = 0, ImageResolutionFromImage };
427 enum ImageResolutionSnap { ImageResolutionNoSnap = 0, ImageResolutionSnapPixels };
429 enum Order { LogicalOrder = 0, VisualOrder };
431 enum WrapFlow { WrapFlowAuto, WrapFlowBoth, WrapFlowStart, WrapFlowEnd, WrapFlowMaximum, WrapFlowClear };
433 enum WrapThrough { WrapThroughWrap, WrapThroughNone };
435 enum RubyPosition { RubyPositionBefore, RubyPositionAfter };
437 static const size_t GridAutoFlowBits = 4;
438 enum InternalGridAutoFlowAlgorithm {
439 InternalAutoFlowAlgorithmSparse = 0x1,
440 InternalAutoFlowAlgorithmDense = 0x2
443 enum InternalGridAutoFlowDirection {
444 InternalAutoFlowDirectionRow = 0x4,
445 InternalAutoFlowDirectionColumn = 0x8
448 enum GridAutoFlow {
449 AutoFlowRow = InternalAutoFlowAlgorithmSparse | InternalAutoFlowDirectionRow,
450 AutoFlowColumn = InternalAutoFlowAlgorithmSparse | InternalAutoFlowDirectionColumn,
451 AutoFlowRowDense = InternalAutoFlowAlgorithmDense | InternalAutoFlowDirectionRow,
452 AutoFlowColumnDense = InternalAutoFlowAlgorithmDense | InternalAutoFlowDirectionColumn
455 enum DraggableRegionMode { DraggableRegionNone, DraggableRegionDrag, DraggableRegionNoDrag };
457 static const size_t TouchActionBits = 6;
458 enum TouchAction {
459 TouchActionAuto = 0x0,
460 TouchActionNone = 0x1,
461 TouchActionPanLeft = 0x2,
462 TouchActionPanRight = 0x4,
463 TouchActionPanX = TouchActionPanLeft | TouchActionPanRight,
464 TouchActionPanUp = 0x8,
465 TouchActionPanDown = 0x10,
466 TouchActionPanY = TouchActionPanUp | TouchActionPanDown,
467 TouchActionPinchZoom = 0x20,
469 inline TouchAction operator| (TouchAction a, TouchAction b) { return TouchAction(int(a) | int(b)); }
470 inline TouchAction& operator|= (TouchAction& a, TouchAction b) { return a = a | b; }
471 inline TouchAction operator& (TouchAction a, TouchAction b) { return TouchAction(int(a) & int(b)); }
472 inline TouchAction& operator&= (TouchAction& a, TouchAction b) { return a = a & b; }
474 enum EIsolation { IsolationAuto, IsolationIsolate };
476 enum ItemPosition {
477 ItemPositionAuto,
478 ItemPositionStretch,
479 ItemPositionBaseline,
480 ItemPositionLastBaseline,
481 ItemPositionCenter,
482 ItemPositionStart,
483 ItemPositionEnd,
484 ItemPositionSelfStart,
485 ItemPositionSelfEnd,
486 ItemPositionFlexStart,
487 ItemPositionFlexEnd,
488 ItemPositionLeft,
489 ItemPositionRight
492 enum OverflowAlignment {
493 OverflowAlignmentDefault,
494 OverflowAlignmentTrue,
495 OverflowAlignmentSafe
498 enum ItemPositionType {
499 NonLegacyPosition,
500 LegacyPosition
503 enum ContentPosition {
504 ContentPositionAuto,
505 ContentPositionBaseline,
506 ContentPositionLastBaseline,
507 ContentPositionCenter,
508 ContentPositionStart,
509 ContentPositionEnd,
510 ContentPositionFlexStart,
511 ContentPositionFlexEnd,
512 ContentPositionLeft,
513 ContentPositionRight
516 enum ContentDistributionType {
517 ContentDistributionDefault,
518 ContentDistributionSpaceBetween,
519 ContentDistributionSpaceAround,
520 ContentDistributionSpaceEvenly,
521 ContentDistributionStretch
524 // Reasonable maximum to prevent insane font sizes from causing crashes on some platforms (such as Windows).
525 static const float maximumAllowedFontSize = 1000000.0f;
527 enum TextIndentLine { TextIndentFirstLine, TextIndentEachLine };
528 enum TextIndentType { TextIndentNormal, TextIndentHanging };
530 enum CSSBoxType { BoxMissing = 0, MarginBox, BorderBox, PaddingBox, ContentBox };
532 enum ScrollSnapType {
533 ScrollSnapTypeNone,
534 ScrollSnapTypeMandatory,
535 ScrollSnapTypeProximity
538 } // namespace blink
540 #endif // ComputedStyleConstants_h