mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Also removed the clear property since it's only purpose was to clear floats. R=esprehn@chromium.org Review URL: https://codereview.chromium.org/700703002
477 lines
13 KiB
C++
477 lines
13 KiB
C++
/*
|
|
* Copyright (C) 2000 Lars Knoll (knoll@kde.org)
|
|
* (C) 2000 Antti Koivisto (koivisto@kde.org)
|
|
* (C) 2000 Dirk Mueller (mueller@kde.org)
|
|
* Copyright (C) 2003, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
|
|
* Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com)
|
|
* Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/)
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Library General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Library General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Library General Public License
|
|
* along with this library; see the file COPYING.LIB. If not, write to
|
|
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
* Boston, MA 02110-1301, USA.
|
|
*
|
|
*/
|
|
|
|
#ifndef RenderStyleConstants_h
|
|
#define RenderStyleConstants_h
|
|
|
|
namespace blink {
|
|
|
|
enum StyleRecalcChange {
|
|
NoChange,
|
|
NoInherit,
|
|
Inherit,
|
|
Force,
|
|
Reattach,
|
|
ReattachNoRenderer
|
|
};
|
|
|
|
static const size_t PrintColorAdjustBits = 1;
|
|
enum PrintColorAdjust {
|
|
PrintColorAdjustEconomy,
|
|
PrintColorAdjustExact
|
|
};
|
|
|
|
// Static pseudo styles. Dynamic ones are produced on the fly.
|
|
enum PseudoId {
|
|
// The order must be NOP ID, public IDs, and then internal IDs.
|
|
// If you add or remove a public ID, you must update _pseudoBits in RenderStyle.
|
|
NOPSEUDO, FIRST_LINE, SELECTION, FIRST_LINE_INHERITED, SCROLLBAR,
|
|
// Internal IDs follow:
|
|
SCROLLBAR_THUMB, SCROLLBAR_BUTTON, SCROLLBAR_TRACK, SCROLLBAR_TRACK_PIECE, SCROLLBAR_CORNER, RESIZER, INPUT_LIST_BUTTON,
|
|
// Special values follow:
|
|
AFTER_LAST_INTERNAL_PSEUDOID,
|
|
FIRST_PUBLIC_PSEUDOID = FIRST_LINE,
|
|
FIRST_INTERNAL_PSEUDOID = SCROLLBAR_THUMB,
|
|
PUBLIC_PSEUDOID_MASK = ((1 << FIRST_INTERNAL_PSEUDOID) - 1) & ~((1 << FIRST_PUBLIC_PSEUDOID) - 1),
|
|
};
|
|
|
|
enum ColumnFill { ColumnFillBalance, ColumnFillAuto };
|
|
|
|
enum EBorderCollapse { BSEPARATE = 0, BCOLLAPSE = 1 };
|
|
|
|
// These have been defined in the order of their precedence for border-collapsing. Do
|
|
// not change this order! This order also must match the order in CSSValueKeywords.in.
|
|
enum EBorderStyle { BNONE, BHIDDEN, INSET, GROOVE, OUTSET, RIDGE, DOTTED, DASHED, SOLID, DOUBLE };
|
|
|
|
enum EBorderPrecedence { BOFF, BTABLE, BCOLGROUP, BCOL, BROWGROUP, BROW, BCELL };
|
|
|
|
enum OutlineIsAuto { AUTO_OFF = 0, AUTO_ON };
|
|
|
|
enum EPosition {
|
|
StaticPosition = 0,
|
|
RelativePosition = 1,
|
|
AbsolutePosition = 2,
|
|
};
|
|
|
|
enum EMarginCollapse { MCOLLAPSE, MSEPARATE, MDISCARD };
|
|
|
|
// Box decoration attributes. Not inherited.
|
|
|
|
enum EBoxDecorationBreak { DSLICE, DCLONE };
|
|
|
|
// Box attributes. Not inherited.
|
|
|
|
enum EBoxSizing { CONTENT_BOX, BORDER_BOX };
|
|
|
|
// Random visual rendering model attributes. Not inherited.
|
|
|
|
enum EOverflow {
|
|
OVISIBLE, OHIDDEN, OSCROLL, OAUTO, OOVERLAY, OPAGEDX, OPAGEDY
|
|
};
|
|
|
|
enum EVerticalAlign {
|
|
BASELINE, MIDDLE, SUB, SUPER, TEXT_TOP,
|
|
TEXT_BOTTOM, TOP, BOTTOM, BASELINE_MIDDLE, LENGTH
|
|
};
|
|
|
|
enum ETableLayout {
|
|
TAUTO, TFIXED
|
|
};
|
|
|
|
enum EFillAttachment {
|
|
ScrollBackgroundAttachment, LocalBackgroundAttachment, FixedBackgroundAttachment
|
|
};
|
|
|
|
enum EFillBox {
|
|
BorderFillBox, PaddingFillBox, ContentFillBox, TextFillBox
|
|
};
|
|
|
|
enum EFillRepeat {
|
|
RepeatFill, NoRepeatFill, RoundFill, SpaceFill
|
|
};
|
|
|
|
enum EFillLayerType {
|
|
BackgroundFillLayer, MaskFillLayer
|
|
};
|
|
|
|
// CSS3 Background Values
|
|
enum EFillSizeType { Contain, Cover, SizeLength, SizeNone };
|
|
|
|
// CSS3 Background Position
|
|
enum BackgroundEdgeOrigin { TopEdge, RightEdge, BottomEdge, LeftEdge };
|
|
|
|
// CSS Mask Source Types
|
|
enum EMaskSourceType { MaskAlpha, MaskLuminance };
|
|
|
|
// Deprecated Flexible Box Properties
|
|
|
|
enum EBoxPack { Start, Center, End, Justify };
|
|
enum EBoxAlignment { BSTRETCH, BSTART, BCENTER, BEND, BBASELINE };
|
|
enum EBoxOrient { HORIZONTAL, VERTICAL };
|
|
enum EBoxLines { SINGLE, MULTIPLE };
|
|
enum EBoxDirection { BNORMAL, BREVERSE };
|
|
|
|
// CSS3 Flexbox Properties
|
|
|
|
enum EAlignContent { AlignContentFlexStart, AlignContentFlexEnd, AlignContentCenter, AlignContentSpaceBetween, AlignContentSpaceAround, AlignContentStretch };
|
|
enum EFlexDirection { FlowRow, FlowRowReverse, FlowColumn, FlowColumnReverse };
|
|
enum EFlexWrap { FlexNoWrap, FlexWrap, FlexWrapReverse };
|
|
enum EJustifyContent { JustifyFlexStart, JustifyFlexEnd, JustifyCenter, JustifySpaceBetween, JustifySpaceAround };
|
|
|
|
// CSS3 User Modify Properties
|
|
|
|
enum EUserModify {
|
|
READ_ONLY, READ_WRITE, READ_WRITE_PLAINTEXT_ONLY
|
|
};
|
|
|
|
// CSS3 User Drag Values
|
|
|
|
enum EUserDrag {
|
|
DRAG_AUTO, DRAG_NONE, DRAG_ELEMENT
|
|
};
|
|
|
|
// CSS3 User Select Values
|
|
|
|
enum EUserSelect {
|
|
SELECT_NONE, SELECT_TEXT, SELECT_ALL
|
|
};
|
|
|
|
// CSS3 Image Values
|
|
enum ObjectFit { ObjectFitFill, ObjectFitContain, ObjectFitCover, ObjectFitNone, ObjectFitScaleDown };
|
|
|
|
// Word Break Values. Matches WinIE, rather than CSS3
|
|
|
|
enum EWordBreak {
|
|
NormalWordBreak, BreakAllWordBreak, BreakWordBreak
|
|
};
|
|
|
|
enum EOverflowWrap {
|
|
NormalOverflowWrap, BreakOverflowWrap
|
|
};
|
|
|
|
enum LineBreak {
|
|
LineBreakAuto, LineBreakLoose, LineBreakNormal, LineBreakStrict, LineBreakAfterWhiteSpace
|
|
};
|
|
|
|
enum EResize {
|
|
RESIZE_NONE, RESIZE_BOTH, RESIZE_HORIZONTAL, RESIZE_VERTICAL
|
|
};
|
|
|
|
// The order of this enum must match the order of the list style types in CSSValueKeywords.in.
|
|
enum EListStyleType {
|
|
Disc,
|
|
Circle,
|
|
Square,
|
|
DecimalListStyle,
|
|
DecimalLeadingZero,
|
|
ArabicIndic,
|
|
BinaryListStyle,
|
|
Bengali,
|
|
Cambodian,
|
|
Khmer,
|
|
Devanagari,
|
|
Gujarati,
|
|
Gurmukhi,
|
|
Kannada,
|
|
LowerHexadecimal,
|
|
Lao,
|
|
Malayalam,
|
|
Mongolian,
|
|
Myanmar,
|
|
Octal,
|
|
Oriya,
|
|
Persian,
|
|
Urdu,
|
|
Telugu,
|
|
Tibetan,
|
|
Thai,
|
|
UpperHexadecimal,
|
|
LowerRoman,
|
|
UpperRoman,
|
|
LowerGreek,
|
|
LowerAlpha,
|
|
LowerLatin,
|
|
UpperAlpha,
|
|
UpperLatin,
|
|
Afar,
|
|
EthiopicHalehameAaEt,
|
|
EthiopicHalehameAaEr,
|
|
Amharic,
|
|
EthiopicHalehameAmEt,
|
|
AmharicAbegede,
|
|
EthiopicAbegedeAmEt,
|
|
CjkEarthlyBranch,
|
|
CjkHeavenlyStem,
|
|
Ethiopic,
|
|
EthiopicHalehameGez,
|
|
EthiopicAbegede,
|
|
EthiopicAbegedeGez,
|
|
HangulConsonant,
|
|
Hangul,
|
|
LowerNorwegian,
|
|
Oromo,
|
|
EthiopicHalehameOmEt,
|
|
Sidama,
|
|
EthiopicHalehameSidEt,
|
|
Somali,
|
|
EthiopicHalehameSoEt,
|
|
Tigre,
|
|
EthiopicHalehameTig,
|
|
TigrinyaEr,
|
|
EthiopicHalehameTiEr,
|
|
TigrinyaErAbegede,
|
|
EthiopicAbegedeTiEr,
|
|
TigrinyaEt,
|
|
EthiopicHalehameTiEt,
|
|
TigrinyaEtAbegede,
|
|
EthiopicAbegedeTiEt,
|
|
UpperGreek,
|
|
UpperNorwegian,
|
|
Asterisks,
|
|
Footnotes,
|
|
Hebrew,
|
|
Armenian,
|
|
LowerArmenian,
|
|
UpperArmenian,
|
|
Georgian,
|
|
CJKIdeographic,
|
|
Hiragana,
|
|
Katakana,
|
|
HiraganaIroha,
|
|
KatakanaIroha,
|
|
NoneListStyle
|
|
};
|
|
|
|
enum EAnimPlayState {
|
|
AnimPlayStatePlaying,
|
|
AnimPlayStatePaused
|
|
};
|
|
|
|
enum EWhiteSpace {
|
|
NORMAL, PRE, PRE_WRAP, PRE_LINE, NOWRAP, KHTML_NOWRAP
|
|
};
|
|
|
|
// The order of this enum must match the order of the text align values in CSSValueKeywords.in.
|
|
enum ETextAlign {
|
|
LEFT, RIGHT, CENTER, JUSTIFY, WEBKIT_LEFT, WEBKIT_RIGHT, WEBKIT_CENTER, TASTART, TAEND,
|
|
};
|
|
|
|
static const size_t TextDecorationBits = 4;
|
|
enum TextDecoration {
|
|
TextDecorationNone = 0x0,
|
|
TextDecorationUnderline = 0x1,
|
|
TextDecorationOverline = 0x2,
|
|
TextDecorationLineThrough = 0x4,
|
|
TextDecorationBlink = 0x8
|
|
};
|
|
inline TextDecoration operator| (TextDecoration a, TextDecoration b) { return TextDecoration(int(a) | int(b)); }
|
|
inline TextDecoration& operator|= (TextDecoration& a, TextDecoration b) { return a = a | b; }
|
|
|
|
enum TextDecorationStyle {
|
|
TextDecorationStyleSolid,
|
|
TextDecorationStyleDouble,
|
|
TextDecorationStyleDotted,
|
|
TextDecorationStyleDashed,
|
|
TextDecorationStyleWavy
|
|
};
|
|
|
|
enum TextAlignLast {
|
|
TextAlignLastAuto, TextAlignLastStart, TextAlignLastEnd, TextAlignLastLeft, TextAlignLastRight, TextAlignLastCenter, TextAlignLastJustify
|
|
};
|
|
|
|
enum TextJustify {
|
|
TextJustifyAuto, TextJustifyNone, TextJustifyInterWord, TextJustifyDistribute
|
|
};
|
|
|
|
enum TextUnderlinePosition {
|
|
// FIXME: Implement support for 'under left' and 'under right' values.
|
|
TextUnderlinePositionAuto,
|
|
TextUnderlinePositionUnder
|
|
};
|
|
|
|
enum EPageBreak {
|
|
PBAUTO, PBALWAYS, PBAVOID
|
|
};
|
|
|
|
enum EEmptyCell {
|
|
SHOW, HIDE
|
|
};
|
|
|
|
enum ECaptionSide {
|
|
CAPTOP, CAPBOTTOM, CAPLEFT, CAPRIGHT
|
|
};
|
|
|
|
enum EListStylePosition { OUTSIDE, INSIDE };
|
|
|
|
enum EVisibility { VISIBLE, HIDDEN, COLLAPSE };
|
|
|
|
enum ECursor {
|
|
// The following must match the order in CSSValueKeywords.in.
|
|
CURSOR_AUTO,
|
|
CURSOR_CROSS,
|
|
CURSOR_DEFAULT,
|
|
CURSOR_POINTER,
|
|
CURSOR_MOVE,
|
|
CURSOR_VERTICAL_TEXT,
|
|
CURSOR_CELL,
|
|
CURSOR_CONTEXT_MENU,
|
|
CURSOR_ALIAS,
|
|
CURSOR_PROGRESS,
|
|
CURSOR_NO_DROP,
|
|
CURSOR_NOT_ALLOWED,
|
|
CURSOR_ZOOM_IN,
|
|
CURSOR_ZOOM_OUT,
|
|
CURSOR_E_RESIZE,
|
|
CURSOR_NE_RESIZE,
|
|
CURSOR_NW_RESIZE,
|
|
CURSOR_N_RESIZE,
|
|
CURSOR_SE_RESIZE,
|
|
CURSOR_SW_RESIZE,
|
|
CURSOR_S_RESIZE,
|
|
CURSOR_W_RESIZE,
|
|
CURSOR_EW_RESIZE,
|
|
CURSOR_NS_RESIZE,
|
|
CURSOR_NESW_RESIZE,
|
|
CURSOR_NWSE_RESIZE,
|
|
CURSOR_COL_RESIZE,
|
|
CURSOR_ROW_RESIZE,
|
|
CURSOR_TEXT,
|
|
CURSOR_WAIT,
|
|
CURSOR_HELP,
|
|
CURSOR_ALL_SCROLL,
|
|
CURSOR_WEBKIT_GRAB,
|
|
CURSOR_WEBKIT_GRABBING,
|
|
|
|
// The following are handled as exceptions so don't need to match.
|
|
CURSOR_COPY,
|
|
CURSOR_NONE
|
|
};
|
|
|
|
// The order of this enum must match the order of the display values in CSSValueKeywords.in.
|
|
enum EDisplay {
|
|
INLINE,
|
|
BLOCK, INLINE_BLOCK,
|
|
FLEX, INLINE_FLEX,
|
|
NONE,
|
|
};
|
|
|
|
enum EPointerEvents {
|
|
PE_NONE, PE_AUTO, PE_STROKE, PE_FILL, PE_PAINTED, PE_VISIBLE,
|
|
PE_VISIBLE_STROKE, PE_VISIBLE_FILL, PE_VISIBLE_PAINTED, PE_BOUNDINGBOX,
|
|
PE_ALL
|
|
};
|
|
|
|
enum ETransformStyle3D {
|
|
TransformStyle3DFlat, TransformStyle3DPreserve3D
|
|
};
|
|
|
|
enum EBackfaceVisibility {
|
|
BackfaceVisibilityVisible, BackfaceVisibilityHidden
|
|
};
|
|
|
|
enum ELineClampType { LineClampLineCount, LineClampPercentage };
|
|
|
|
enum Hyphens { HyphensNone, HyphensManual, HyphensAuto };
|
|
|
|
enum ESpeak { SpeakNone, SpeakNormal, SpeakSpellOut, SpeakDigits, SpeakLiteralPunctuation, SpeakNoPunctuation };
|
|
|
|
enum TextEmphasisFill { TextEmphasisFillFilled, TextEmphasisFillOpen };
|
|
|
|
enum TextEmphasisMark { TextEmphasisMarkNone, TextEmphasisMarkAuto, TextEmphasisMarkDot, TextEmphasisMarkCircle, TextEmphasisMarkDoubleCircle, TextEmphasisMarkTriangle, TextEmphasisMarkSesame, TextEmphasisMarkCustom };
|
|
|
|
enum TextEmphasisPosition { TextEmphasisPositionOver, TextEmphasisPositionUnder };
|
|
|
|
enum TextOrientation { TextOrientationVerticalRight, TextOrientationUpright, TextOrientationSideways, TextOrientationSidewaysRight };
|
|
|
|
enum TextOverflow { TextOverflowClip = 0, TextOverflowEllipsis };
|
|
|
|
enum EImageRendering { ImageRenderingAuto, ImageRenderingOptimizeSpeed, ImageRenderingOptimizeQuality, ImageRenderingOptimizeContrast, ImageRenderingPixelated };
|
|
|
|
enum ImageResolutionSource { ImageResolutionSpecified = 0, ImageResolutionFromImage };
|
|
|
|
enum ImageResolutionSnap { ImageResolutionNoSnap = 0, ImageResolutionSnapPixels };
|
|
|
|
enum Order { LogicalOrder = 0, VisualOrder };
|
|
|
|
enum WrapFlow { WrapFlowAuto, WrapFlowBoth, WrapFlowStart, WrapFlowEnd, WrapFlowMaximum, WrapFlowClear };
|
|
|
|
enum WrapThrough { WrapThroughWrap, WrapThroughNone };
|
|
|
|
static const size_t TouchActionBits = 4;
|
|
enum TouchAction {
|
|
TouchActionAuto = 0x0,
|
|
TouchActionNone = 0x1,
|
|
TouchActionPanX = 0x2,
|
|
TouchActionPanY = 0x4,
|
|
TouchActionPinchZoom = 0x8,
|
|
};
|
|
inline TouchAction operator| (TouchAction a, TouchAction b) { return TouchAction(int(a) | int(b)); }
|
|
inline TouchAction& operator|= (TouchAction& a, TouchAction b) { return a = a | b; }
|
|
inline TouchAction operator& (TouchAction a, TouchAction b) { return TouchAction(int(a) & int(b)); }
|
|
inline TouchAction& operator&= (TouchAction& a, TouchAction b) { return a = a & b; }
|
|
|
|
enum EIsolation { IsolationAuto, IsolationIsolate };
|
|
|
|
enum TouchActionDelay { TouchActionDelayNone, TouchActionDelayScript };
|
|
|
|
enum ItemPosition {
|
|
ItemPositionAuto,
|
|
ItemPositionStretch,
|
|
ItemPositionBaseline,
|
|
ItemPositionLastBaseline,
|
|
ItemPositionCenter,
|
|
ItemPositionStart,
|
|
ItemPositionEnd,
|
|
ItemPositionSelfStart,
|
|
ItemPositionSelfEnd,
|
|
ItemPositionFlexStart,
|
|
ItemPositionFlexEnd,
|
|
ItemPositionLeft,
|
|
ItemPositionRight
|
|
};
|
|
|
|
enum OverflowAlignment {
|
|
OverflowAlignmentDefault,
|
|
OverflowAlignmentTrue,
|
|
OverflowAlignmentSafe
|
|
};
|
|
|
|
enum ItemPositionType {
|
|
NonLegacyPosition,
|
|
LegacyPosition
|
|
};
|
|
|
|
// Reasonable maximum to prevent insane font sizes from causing crashes on some platforms (such as Windows).
|
|
static const float maximumAllowedFontSize = 1000000.0f;
|
|
|
|
enum TextIndentLine { TextIndentFirstLine, TextIndentEachLine };
|
|
enum TextIndentType { TextIndentNormal, TextIndentHanging };
|
|
|
|
enum CSSBoxType { BoxMissing = 0, MarginBox, BorderBox, PaddingBox, ContentBox };
|
|
|
|
} // namespace blink
|
|
|
|
#endif // RenderStyleConstants_h
|