/*
* 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 Apple Inc. All rights reserved.
* Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.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 WebCore {
/*
* WARNING:
* --------
*
* The order of the values in the enums have to agree with the order specified
* in CSSValueKeywords.in, otherwise some optimizations in the parser will fail,
* and produce invalid results.
*/
// These have been defined in the order of their precedence for border-collapsing. Do
// not change this order!
enum EBorderStyle { BNONE, BHIDDEN, INSET, GROOVE, RIDGE, OUTSET, DOTTED, DASHED, SOLID, DOUBLE };
enum EBorderPrecedence { BOFF, BTABLE, BCOLGROUP, BCOL, BROWGROUP, BROW, BCELL };
enum PseudoState { PseudoUnknown, PseudoNone, PseudoAnyLink, PseudoLink, PseudoVisited};
enum EPosition {
StaticPosition, RelativePosition, AbsolutePosition, FixedPosition
};
enum EFloat {
FNONE = 0, FLEFT, FRIGHT
};
enum EMarginCollapse { MCOLLAPSE, MSEPARATE, MDISCARD };
// Box attributes. Not inherited.
enum EBoxSizing { CONTENT_BOX, BORDER_BOX };
// Random visual rendering model attributes. Not inherited.
enum EOverflow {
OVISIBLE, OHIDDEN, OSCROLL, OAUTO, OOVERLAY, OMARQUEE
};
enum EVerticalAlign {
BASELINE, MIDDLE, SUB, SUPER, TEXT_TOP,
TEXT_BOTTOM, TOP, BOTTOM, BASELINE_MIDDLE, LENGTH
};
enum EClear{
CNONE = 0, CLEFT = 1, CRIGHT = 2, CBOTH = 3
};
enum ETableLayout {
TAUTO, TFIXED
};
enum EUnicodeBidi {
UBNormal, Embed, Override
};
enum EFillBox {
BorderFillBox, PaddingFillBox, ContentFillBox, TextFillBox
};
enum EFillRepeat {
RepeatFill, RepeatXFill, RepeatYFill, NoRepeatFill
};
enum EFillLayerType {
BackgroundFillLayer, MaskFillLayer
};
// CSS3 Marquee Properties
enum EMarqueeBehavior { MNONE, MSCROLL, MSLIDE, MALTERNATE };
enum EMarqueeDirection { MAUTO = 0, MLEFT = 1, MRIGHT = -1, MUP = 2, MDOWN = -2, MFORWARD = 3, MBACKWARD = -3 };
// CSS3 Flexible Box Properties
enum EBoxAlignment { BSTRETCH, BSTART, BCENTER, BEND, BJUSTIFY, BBASELINE };
enum EBoxOrient { HORIZONTAL, VERTICAL };
enum EBoxLines { SINGLE, MULTIPLE };
enum EBoxDirection { BNORMAL, BREVERSE };
enum ETextSecurity {
TSNONE, TSDISC, TSCIRCLE, TSSQUARE
};
// 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
};
// Word Break Values. Matches WinIE, rather than CSS3
enum EWordBreak {
NormalWordBreak, BreakAllWordBreak, BreakWordBreak
};
enum EWordWrap {
NormalWordWrap, BreakWordWrap
};
enum ENBSPMode {
NBNORMAL, SPACE
};
enum EKHTMLLineBreak {
LBNORMAL, AFTER_WHITE_SPACE
};
enum EMatchNearestMailBlockquoteColor {
BCNORMAL, MATCH
};
enum EResize {
RESIZE_NONE, RESIZE_BOTH, RESIZE_HORIZONTAL, RESIZE_VERTICAL
};
enum EListStyleType {
DISC, CIRCLE, SQUARE, LDECIMAL, DECIMAL_LEADING_ZERO,
LOWER_ROMAN, UPPER_ROMAN, LOWER_GREEK,
LOWER_ALPHA, LOWER_LATIN, UPPER_ALPHA, UPPER_LATIN,
HEBREW, ARMENIAN, GEORGIAN, CJK_IDEOGRAPHIC,
HIRAGANA, KATAKANA, HIRAGANA_IROHA, KATAKANA_IROHA, LNONE
};
enum ContentType {
CONTENT_NONE, CONTENT_OBJECT, CONTENT_TEXT, CONTENT_COUNTER
};
enum EBorderFit { BorderFitBorder, BorderFitLines };
enum ETimingFunctionType { LinearTimingFunction, CubicBezierTimingFunction };
enum EAnimPlayState {
AnimPlayStatePlaying = 0x0,
AnimPlayStatePaused = 0x1
};
enum EWhiteSpace {
NORMAL, PRE, PRE_WRAP, PRE_LINE, NOWRAP, KHTML_NOWRAP
};
enum ETextAlign {
TAAUTO, LEFT, RIGHT, CENTER, JUSTIFY, WEBKIT_LEFT, WEBKIT_RIGHT, WEBKIT_CENTER
};
enum ETextTransform {
CAPITALIZE, UPPERCASE, LOWERCASE, TTNONE
};
enum ETextDecoration {
TDNONE = 0x0 , UNDERLINE = 0x1, OVERLINE = 0x2, LINE_THROUGH= 0x4, BLINK = 0x8
};
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_WEBKIT_ZOOM_IN,
CURSOR_WEBKIT_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
};
enum EDisplay {
INLINE, BLOCK, LIST_ITEM, RUN_IN, COMPACT, INLINE_BLOCK,
TABLE, INLINE_TABLE, TABLE_ROW_GROUP,
TABLE_HEADER_GROUP, TABLE_FOOTER_GROUP, TABLE_ROW,
TABLE_COLUMN_GROUP, TABLE_COLUMN, TABLE_CELL,
TABLE_CAPTION, BOX, INLINE_BOX, 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_ALL
};
} // namespace WebCore
#endif // RenderStyleConstants_h