15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/*
25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *           (C) 2000 Antti Koivisto (koivisto@kde.org)
45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *           (C) 2000 Dirk Mueller (mueller@kde.org)
55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2003, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com)
75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/)
85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *
95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * This library is free software; you can redistribute it and/or
105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * modify it under the terms of the GNU Library General Public
115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * License as published by the Free Software Foundation; either
125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * version 2 of the License, or (at your option) any later version.
135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *
145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * This library is distributed in the hope that it will be useful,
155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * but WITHOUT ANY WARRANTY; without even the implied warranty of
165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Library General Public License for more details.
185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *
195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * You should have received a copy of the GNU Library General Public License
205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * along with this library; see the file COPYING.LIB.  If not, write to
215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Boston, MA 02110-1301, USA.
235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *
245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */
255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#ifndef RenderStyleConstants_h
275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define RenderStyleConstants_h
285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
29c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink {
305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
317242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci// Sides used when drawing borders and outlines. The values should run clockwise from top.
327242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tuccienum BoxSide {
337242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    BSTop,
347242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    BSRight,
357242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    BSBottom,
367242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    BSLeft
377242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci};
387242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci
398abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)enum StyleRecalcChange {
408abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)    NoChange,
418abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)    NoInherit,
4209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    UpdatePseudoElements,
438abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)    Inherit,
448abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)    Force,
458abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)    Reattach,
46d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    ReattachNoRenderer
478abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)};
488abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)
495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)static const size_t PrintColorAdjustBits = 1;
505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum PrintColorAdjust {
515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    PrintColorAdjustEconomy,
525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    PrintColorAdjustExact
535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Static pseudo styles. Dynamic ones are produced on the fly.
565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum PseudoId {
575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    // The order must be NOP ID, public IDs, and then internal IDs.
58e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    // If you add or remove a public ID, you must update _pseudoBits in RenderStyle.
59e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    NOPSEUDO, FIRST_LINE, FIRST_LETTER, BEFORE, AFTER, BACKDROP, SELECTION, FIRST_LINE_INHERITED, SCROLLBAR,
605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    // Internal IDs follow:
6109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    SCROLLBAR_THUMB, SCROLLBAR_BUTTON, SCROLLBAR_TRACK, SCROLLBAR_TRACK_PIECE, SCROLLBAR_CORNER, RESIZER, INPUT_LIST_BUTTON,
6209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    // Special values follow:
635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    AFTER_LAST_INTERNAL_PSEUDOID,
645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    FIRST_PUBLIC_PSEUDOID = FIRST_LINE,
655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    FIRST_INTERNAL_PSEUDOID = SCROLLBAR_THUMB,
6609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    PUBLIC_PSEUDOID_MASK = ((1 << FIRST_INTERNAL_PSEUDOID) - 1) & ~((1 << FIRST_PUBLIC_PSEUDOID) - 1),
6709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    PSEUDO_ELEMENT_MASK = (1 << (BEFORE - 1)) | (1 << (AFTER - 1)) | (1 << (BACKDROP - 1))
685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
701e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)enum ColumnFill { ColumnFillBalance, ColumnFillAuto };
711e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
72926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)enum ColumnSpan { ColumnSpanNone = 0, ColumnSpanAll };
735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EBorderCollapse { BSEPARATE = 0, BCOLLAPSE = 1 };
755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// These have been defined in the order of their precedence for border-collapsing. Do
775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// not change this order! This order also must match the order in CSSValueKeywords.in.
785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EBorderStyle { BNONE, BHIDDEN, INSET, GROOVE, OUTSET, RIDGE, DOTTED, DASHED, SOLID, DOUBLE };
795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EBorderPrecedence { BOFF, BTABLE, BCOLGROUP, BCOL, BROWGROUP, BROW, BCELL };
815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum OutlineIsAuto { AUTO_OFF = 0, AUTO_ON };
835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EPosition {
85926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    StaticPosition = 0,
86926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    RelativePosition = 1,
87926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    AbsolutePosition = 2,
88926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    // This value is required to pack our bits efficiently in RenderObject.
89197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    // FIXME: Is this still true now that we've remove position: sticky.
90926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    FixedPosition = 6
915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EFloat {
945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    NoFloat, LeftFloat, RightFloat
955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EMarginCollapse { MCOLLAPSE, MSEPARATE, MDISCARD };
985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Box decoration attributes. Not inherited.
1005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EBoxDecorationBreak { DSLICE, DCLONE };
1025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Box attributes. Not inherited.
1045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EBoxSizing { CONTENT_BOX, BORDER_BOX };
1065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Random visual rendering model attributes. Not inherited.
1085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EOverflow {
1105267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)    OVISIBLE, OHIDDEN, OSCROLL, OAUTO, OOVERLAY, OPAGEDX, OPAGEDY
1115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
1125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EVerticalAlign {
1145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    BASELINE, MIDDLE, SUB, SUPER, TEXT_TOP,
1155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    TEXT_BOTTOM, TOP, BOTTOM, BASELINE_MIDDLE, LENGTH
1165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
1175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EClear {
1195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CNONE = 0, CLEFT = 1, CRIGHT = 2, CBOTH = 3
1205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
1215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum ETableLayout {
1235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    TAUTO, TFIXED
1245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
1255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum TextCombine {
1275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    TextCombineNone, TextCombineHorizontal
1285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
1295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EFillAttachment {
1315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    ScrollBackgroundAttachment, LocalBackgroundAttachment, FixedBackgroundAttachment
1325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
1335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EFillBox {
1355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    BorderFillBox, PaddingFillBox, ContentFillBox, TextFillBox
1365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
1375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EFillRepeat {
1395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    RepeatFill, NoRepeatFill, RoundFill, SpaceFill
1405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
1415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EFillLayerType {
1435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    BackgroundFillLayer, MaskFillLayer
1445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
1455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// CSS3 Background Values
1475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EFillSizeType { Contain, Cover, SizeLength, SizeNone };
1485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
149926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)// CSS3 Background Position
150926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)enum BackgroundEdgeOrigin { TopEdge, RightEdge, BottomEdge, LeftEdge };
151926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
1528abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)// CSS Mask Source Types
1538abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)enum EMaskSourceType { MaskAlpha, MaskLuminance };
1548abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)
1555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// CSS3 Marquee Properties
1565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EMarqueeBehavior { MNONE, MSCROLL, MSLIDE, MALTERNATE };
1585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EMarqueeDirection { MAUTO = 0, MLEFT = 1, MRIGHT = -1, MUP = 2, MDOWN = -2, MFORWARD = 3, MBACKWARD = -3 };
1595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Deprecated Flexible Box Properties
1615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EBoxPack { Start, Center, End, Justify };
1635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EBoxAlignment { BSTRETCH, BSTART, BCENTER, BEND, BBASELINE };
1645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EBoxOrient { HORIZONTAL, VERTICAL };
1655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EBoxLines { SINGLE, MULTIPLE };
1665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EBoxDirection { BNORMAL, BREVERSE };
1675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// CSS3 Flexbox Properties
1695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EAlignContent { AlignContentFlexStart, AlignContentFlexEnd, AlignContentCenter, AlignContentSpaceBetween, AlignContentSpaceAround, AlignContentStretch };
1715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EFlexDirection { FlowRow, FlowRowReverse, FlowColumn, FlowColumnReverse };
1725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EFlexWrap { FlexNoWrap, FlexWrap, FlexWrapReverse };
1735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EJustifyContent { JustifyFlexStart, JustifyFlexEnd, JustifyCenter, JustifySpaceBetween, JustifySpaceAround };
1745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum ETextSecurity {
1765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    TSNONE, TSDISC, TSCIRCLE, TSSQUARE
1775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
1785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// CSS3 User Modify Properties
1805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EUserModify {
1825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    READ_ONLY, READ_WRITE, READ_WRITE_PLAINTEXT_ONLY
1835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
1845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// CSS3 User Drag Values
1865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EUserDrag {
1885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    DRAG_AUTO, DRAG_NONE, DRAG_ELEMENT
1895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
1905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// CSS3 User Select Values
1925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EUserSelect {
1945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    SELECT_NONE, SELECT_TEXT, SELECT_ALL
1955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
1965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
197e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles)// CSS3 Image Values
198e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles)enum ObjectFit { ObjectFitFill, ObjectFitContain, ObjectFitCover, ObjectFitNone, ObjectFitScaleDown };
199e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles)
2005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Word Break Values. Matches WinIE, rather than CSS3
2015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EWordBreak {
2035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    NormalWordBreak, BreakAllWordBreak, BreakWordBreak
2045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
2055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EOverflowWrap {
2075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    NormalOverflowWrap, BreakOverflowWrap
2085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
2095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum LineBreak {
2115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    LineBreakAuto, LineBreakLoose, LineBreakNormal, LineBreakStrict, LineBreakAfterWhiteSpace
2125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
2135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EResize {
2155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    RESIZE_NONE, RESIZE_BOTH, RESIZE_HORIZONTAL, RESIZE_VERTICAL
2165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
2175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// The order of this enum must match the order of the list style types in CSSValueKeywords.in.
2195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EListStyleType {
2205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Disc,
2215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Circle,
2225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Square,
2235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    DecimalListStyle,
2245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    DecimalLeadingZero,
2255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    ArabicIndic,
2265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    BinaryListStyle,
2275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Bengali,
2285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Cambodian,
2295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Khmer,
2305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Devanagari,
2315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Gujarati,
2325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Gurmukhi,
2335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Kannada,
2345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    LowerHexadecimal,
2355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Lao,
2365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Malayalam,
2375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Mongolian,
2385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Myanmar,
2395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Octal,
2405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Oriya,
2415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Persian,
2425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Urdu,
2435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Telugu,
2445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Tibetan,
2455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Thai,
2465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    UpperHexadecimal,
2475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    LowerRoman,
2485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    UpperRoman,
2495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    LowerGreek,
2505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    LowerAlpha,
2515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    LowerLatin,
2525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    UpperAlpha,
2535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    UpperLatin,
2545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Afar,
2555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    EthiopicHalehameAaEt,
2565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    EthiopicHalehameAaEr,
2575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Amharic,
2585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    EthiopicHalehameAmEt,
2595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    AmharicAbegede,
2605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    EthiopicAbegedeAmEt,
2615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CjkEarthlyBranch,
2625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CjkHeavenlyStem,
2635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Ethiopic,
2645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    EthiopicHalehameGez,
2655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    EthiopicAbegede,
2665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    EthiopicAbegedeGez,
2675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    HangulConsonant,
2685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Hangul,
2695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    LowerNorwegian,
2705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Oromo,
2715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    EthiopicHalehameOmEt,
2725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Sidama,
2735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    EthiopicHalehameSidEt,
2745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Somali,
2755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    EthiopicHalehameSoEt,
2765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Tigre,
2775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    EthiopicHalehameTig,
2785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    TigrinyaEr,
2795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    EthiopicHalehameTiEr,
2805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    TigrinyaErAbegede,
2815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    EthiopicAbegedeTiEr,
2825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    TigrinyaEt,
2835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    EthiopicHalehameTiEt,
2845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    TigrinyaEtAbegede,
2855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    EthiopicAbegedeTiEt,
2865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    UpperGreek,
2875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    UpperNorwegian,
2885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Asterisks,
2895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Footnotes,
2905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Hebrew,
2915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Armenian,
2925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    LowerArmenian,
2935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    UpperArmenian,
2945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Georgian,
2955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CJKIdeographic,
2965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Hiragana,
2975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    Katakana,
2985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    HiraganaIroha,
2995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    KatakanaIroha,
3005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    NoneListStyle
3015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
3025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
3035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum QuoteType {
3045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    OPEN_QUOTE, CLOSE_QUOTE, NO_OPEN_QUOTE, NO_CLOSE_QUOTE
3055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
3065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
3075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EBorderFit { BorderFitBorder, BorderFitLines };
3085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
3095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EAnimPlayState {
310d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    AnimPlayStatePlaying,
311d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    AnimPlayStatePaused
3125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
3135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
3145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EWhiteSpace {
3155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    NORMAL, PRE, PRE_WRAP, PRE_LINE, NOWRAP, KHTML_NOWRAP
3165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
3175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
3185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// The order of this enum must match the order of the text align values in CSSValueKeywords.in.
3195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum ETextAlign {
3205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    LEFT, RIGHT, CENTER, JUSTIFY, WEBKIT_LEFT, WEBKIT_RIGHT, WEBKIT_CENTER, TASTART, TAEND,
3215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
3225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
3235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum ETextTransform {
3245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CAPITALIZE, UPPERCASE, LOWERCASE, TTNONE
3255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
3265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
32793ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)static const size_t TextDecorationBits = 4;
32893ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)enum TextDecoration {
32993ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)    TextDecorationNone = 0x0,
33093ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)    TextDecorationUnderline = 0x1,
33193ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)    TextDecorationOverline = 0x2,
33293ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)    TextDecorationLineThrough = 0x4,
33393ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)    TextDecorationBlink = 0x8
3345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
33593ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)inline TextDecoration operator| (TextDecoration a, TextDecoration b) { return TextDecoration(int(a) | int(b)); }
33693ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)inline TextDecoration& operator|= (TextDecoration& a, TextDecoration b) { return a = a | b; }
3375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
3385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum TextDecorationStyle {
3395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    TextDecorationStyleSolid,
3405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    TextDecorationStyleDouble,
3415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    TextDecorationStyleDotted,
3425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    TextDecorationStyleDashed,
3435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    TextDecorationStyleWavy
3445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
3455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
346926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)enum TextAlignLast {
347926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    TextAlignLastAuto, TextAlignLastStart, TextAlignLastEnd, TextAlignLastLeft, TextAlignLastRight, TextAlignLastCenter, TextAlignLastJustify
348926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)};
349926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
3501e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)enum TextJustify {
3511e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    TextJustifyAuto, TextJustifyNone, TextJustifyInterWord, TextJustifyDistribute
3521e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)};
3531e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)
354926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)enum TextUnderlinePosition {
355926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    // FIXME: Implement support for 'under left' and 'under right' values.
356c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)    TextUnderlinePositionAuto,
357c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)    TextUnderlinePositionUnder
358926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)};
359926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
3605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EPageBreak {
3615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    PBAUTO, PBALWAYS, PBAVOID
3625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
3635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
3645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EEmptyCell {
3655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    SHOW, HIDE
3665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
3675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
3685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum ECaptionSide {
3695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CAPTOP, CAPBOTTOM, CAPLEFT, CAPRIGHT
3705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
3715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
3725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EListStylePosition { OUTSIDE, INSIDE };
3735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
3745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EVisibility { VISIBLE, HIDDEN, COLLAPSE };
3755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
3765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum ECursor {
3775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    // The following must match the order in CSSValueKeywords.in.
3785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_AUTO,
3795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_CROSS,
3805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_DEFAULT,
3815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_POINTER,
3825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_MOVE,
3835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_VERTICAL_TEXT,
3845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_CELL,
3855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_CONTEXT_MENU,
3865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_ALIAS,
3875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_PROGRESS,
3885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_NO_DROP,
3895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_NOT_ALLOWED,
390d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    CURSOR_ZOOM_IN,
391d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    CURSOR_ZOOM_OUT,
3925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_E_RESIZE,
3935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_NE_RESIZE,
3945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_NW_RESIZE,
3955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_N_RESIZE,
3965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_SE_RESIZE,
3975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_SW_RESIZE,
3985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_S_RESIZE,
3995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_W_RESIZE,
4005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_EW_RESIZE,
4015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_NS_RESIZE,
4025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_NESW_RESIZE,
4035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_NWSE_RESIZE,
4045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_COL_RESIZE,
4055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_ROW_RESIZE,
4065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_TEXT,
4075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_WAIT,
4085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_HELP,
4095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_ALL_SCROLL,
4105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_WEBKIT_GRAB,
4115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_WEBKIT_GRABBING,
4125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
4135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    // The following are handled as exceptions so don't need to match.
4145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_COPY,
4155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    CURSOR_NONE
4165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
4175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
4185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// The order of this enum must match the order of the display values in CSSValueKeywords.in.
4195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EDisplay {
42019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)    INLINE, BLOCK, LIST_ITEM, INLINE_BLOCK,
4215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    TABLE, INLINE_TABLE, TABLE_ROW_GROUP,
4225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    TABLE_HEADER_GROUP, TABLE_FOOTER_GROUP, TABLE_ROW,
4235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    TABLE_COLUMN_GROUP, TABLE_COLUMN, TABLE_CELL,
4245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    TABLE_CAPTION, BOX, INLINE_BOX,
4255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    FLEX, INLINE_FLEX,
4265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    GRID, INLINE_GRID,
42709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    NONE,
42809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    FIRST_TABLE_DISPLAY = TABLE,
42909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    LAST_TABLE_DISPLAY = TABLE_CAPTION
4305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
4315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
4325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EInsideLink {
4335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    NotInsideLink, InsideUnvisitedLink, InsideVisitedLink
4345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
43502772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch
4365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EPointerEvents {
4375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    PE_NONE, PE_AUTO, PE_STROKE, PE_FILL, PE_PAINTED, PE_VISIBLE,
438a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    PE_VISIBLE_STROKE, PE_VISIBLE_FILL, PE_VISIBLE_PAINTED, PE_BOUNDINGBOX,
439a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    PE_ALL
4405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
4415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
4425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum ETransformStyle3D {
4435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    TransformStyle3DFlat, TransformStyle3DPreserve3D
4445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
4455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
4465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum EBackfaceVisibility {
4475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    BackfaceVisibilityVisible, BackfaceVisibilityHidden
4485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
44902772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch
4505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum ELineClampType { LineClampLineCount, LineClampPercentage };
4515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
4525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum Hyphens { HyphensNone, HyphensManual, HyphensAuto };
4535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
4545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum ESpeak { SpeakNone, SpeakNormal, SpeakSpellOut, SpeakDigits, SpeakLiteralPunctuation, SpeakNoPunctuation };
4555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
4565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum TextEmphasisFill { TextEmphasisFillFilled, TextEmphasisFillOpen };
4575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
4585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum TextEmphasisMark { TextEmphasisMarkNone, TextEmphasisMarkAuto, TextEmphasisMarkDot, TextEmphasisMarkCircle, TextEmphasisMarkDoubleCircle, TextEmphasisMarkTriangle, TextEmphasisMarkSesame, TextEmphasisMarkCustom };
4595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
4605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum TextEmphasisPosition { TextEmphasisPositionOver, TextEmphasisPositionUnder };
4615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
462926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)enum TextOrientation { TextOrientationVerticalRight, TextOrientationUpright, TextOrientationSideways, TextOrientationSidewaysRight };
463926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
4645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum TextOverflow { TextOverflowClip = 0, TextOverflowEllipsis };
4655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
466197021e6b966cfb06891637935ef33fff06433d1Ben Murdochenum EImageRendering { ImageRenderingAuto, ImageRenderingOptimizeSpeed, ImageRenderingOptimizeQuality, ImageRenderingOptimizeContrast, ImageRenderingPixelated };
4675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
4685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum ImageResolutionSource { ImageResolutionSpecified = 0, ImageResolutionFromImage };
4695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
4705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum ImageResolutionSnap { ImageResolutionNoSnap = 0, ImageResolutionSnapPixels };
4715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
4725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum Order { LogicalOrder = 0, VisualOrder };
4735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
4745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum WrapFlow { WrapFlowAuto, WrapFlowBoth, WrapFlowStart, WrapFlowEnd, WrapFlowMaximum, WrapFlowClear };
4755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
4765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum WrapThrough { WrapThroughWrap, WrapThroughNone };
4775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
478926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)enum RubyPosition { RubyPositionBefore, RubyPositionAfter };
479926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
480197021e6b966cfb06891637935ef33fff06433d1Ben Murdochstatic const size_t GridAutoFlowBits = 5;
481197021e6b966cfb06891637935ef33fff06433d1Ben Murdochenum InternalGridAutoFlowAlgorithm {
482197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    InternalAutoFlowAlgorithmSparse = 0x1,
483197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    InternalAutoFlowAlgorithmDense = 0x2,
484197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    InternalAutoFlowAlgorithmStack = 0x4
485197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch};
486197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch
487197021e6b966cfb06891637935ef33fff06433d1Ben Murdochenum InternalGridAutoFlowDirection {
488197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    InternalAutoFlowDirectionRow = 0x8,
489197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    InternalAutoFlowDirectionColumn = 0x10
490197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch};
491197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch
492197021e6b966cfb06891637935ef33fff06433d1Ben Murdochenum GridAutoFlow {
493197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    AutoFlowRow = InternalAutoFlowAlgorithmSparse | InternalAutoFlowDirectionRow,
494197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    AutoFlowColumn = InternalAutoFlowAlgorithmSparse | InternalAutoFlowDirectionColumn,
495197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    AutoFlowRowDense = InternalAutoFlowAlgorithmDense | InternalAutoFlowDirectionRow,
496197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    AutoFlowColumnDense = InternalAutoFlowAlgorithmDense | InternalAutoFlowDirectionColumn,
497197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    AutoFlowStackRow = InternalAutoFlowAlgorithmStack | InternalAutoFlowDirectionRow,
498197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    AutoFlowStackColumn = InternalAutoFlowAlgorithmStack | InternalAutoFlowDirectionColumn
499197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch};
500926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
5015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum DraggableRegionMode { DraggableRegionNone, DraggableRegionDrag, DraggableRegionNoDrag };
5025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
503d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)static const size_t TouchActionBits = 4;
50409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)enum TouchAction {
50509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    TouchActionAuto = 0x0,
50609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    TouchActionNone = 0x1,
50709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    TouchActionPanX = 0x2,
508d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    TouchActionPanY = 0x4,
509d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    TouchActionPinchZoom = 0x8,
51009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)};
51109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)inline TouchAction operator| (TouchAction a, TouchAction b) { return TouchAction(int(a) | int(b)); }
51209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)inline TouchAction& operator|= (TouchAction& a, TouchAction b) { return a = a | b; }
51309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)inline TouchAction operator& (TouchAction a, TouchAction b) { return TouchAction(int(a) & int(b)); }
51409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)inline TouchAction& operator&= (TouchAction& a, TouchAction b) { return a = a & b; }
51593ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)
51606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)enum EIsolation { IsolationAuto, IsolationIsolate };
51706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)
518bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)enum TouchActionDelay { TouchActionDelayNone, TouchActionDelayScript };
519bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)
52009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)enum ItemPosition {
52109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    ItemPositionAuto,
52209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    ItemPositionStretch,
52309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    ItemPositionBaseline,
524197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    ItemPositionLastBaseline,
52509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    ItemPositionCenter,
52609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    ItemPositionStart,
52709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    ItemPositionEnd,
52809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    ItemPositionSelfStart,
52909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    ItemPositionSelfEnd,
53009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    ItemPositionFlexStart,
53109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    ItemPositionFlexEnd,
53209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    ItemPositionLeft,
53309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    ItemPositionRight
53409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)};
53509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)
53609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)enum OverflowAlignment {
53709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    OverflowAlignmentDefault,
53809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    OverflowAlignmentTrue,
53909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    OverflowAlignmentSafe
54009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)};
54109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)
542197021e6b966cfb06891637935ef33fff06433d1Ben Murdochenum ItemPositionType {
543197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    NonLegacyPosition,
544197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    LegacyPosition
545197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch};
546197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch
547926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)// Reasonable maximum to prevent insane font sizes from causing crashes on some platforms (such as Windows).
548926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)static const float maximumAllowedFontSize = 1000000.0f;
549926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
550926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)enum TextIndentLine { TextIndentFirstLine, TextIndentEachLine };
55110f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdochenum TextIndentType { TextIndentNormal, TextIndentHanging };
552926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
553aafa69cb17c9d6606c07663ade5f81388a2c5986Ben Murdochenum CSSBoxType { BoxMissing = 0, MarginBox, BorderBox, PaddingBox, ContentBox };
554a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)
555c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink
5565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
5575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#endif // RenderStyleConstants_h
558