blob: 2447052fcafe699481a88cf09fbd2f02ed3df415 [file] [log] [blame]
/*
* 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 SKY_ENGINE_CORE_RENDERING_STYLE_RENDERSTYLECONSTANTS_H_
#define SKY_ENGINE_CORE_RENDERING_STYLE_RENDERSTYLECONSTANTS_H_
#include <cstddef>
namespace blink {
enum StyleRecalcChange {
NoChange,
NoInherit,
Inherit,
Force,
Reattach,
ReattachNoRenderer
};
enum ColumnFill { ColumnFillBalance, ColumnFillAuto };
// 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,
AbsolutePosition = 1,
};
// 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, OAUTO, OOVERLAY, OPAGEDX, OPAGEDY
};
enum EVerticalAlign {
BASELINE, MIDDLE, SUB, SUPER, TEXT_TOP,
TEXT_BOTTOM, TOP, BOTTOM, BASELINE_MIDDLE, LENGTH
};
enum EFillAttachment {
LocalBackgroundAttachment, FixedBackgroundAttachment
};
enum EFillBox {
BorderFillBox, PaddingFillBox, ContentFillBox
};
enum EFillRepeat {
RepeatFill, NoRepeatFill, RoundFill, SpaceFill
};
// FIXME(sky): Remove this enum.
enum EFillLayerType {
BackgroundFillLayer
};
// CSS3 Background Values
enum EFillSizeType { Contain, Cover, SizeLength, SizeNone };
// CSS3 Background Position
enum BackgroundEdgeOrigin { TopEdge, RightEdge, BottomEdge, LeftEdge };
// 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 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 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, 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 EVisibility { VISIBLE, HIDDEN, COLLAPSE };
// The order of this enum must match the order of the display values in CSSValueKeywords.in.
enum EDisplay {
INLINE, PARAGRAPH,
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 Hyphens { HyphensNone, HyphensManual, HyphensAuto };
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 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 // SKY_ENGINE_CORE_RENDERING_STYLE_RENDERSTYLECONSTANTS_H_