| /* |
| * Copyright (C) 2007 Alexey Proskuryakov <ap@nypop.com>. |
| * Copyright (C) 2008 Apple Inc. All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * |
| * 1. Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * 2. Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in the |
| * documentation and/or other materials provided with the distribution. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
| * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
| * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
| * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
| * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
| * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| #ifndef CSSPrimitiveValueMappings_h |
| #define CSSPrimitiveValueMappings_h |
| |
| #include "CSSPrimitiveValue.h" |
| #include "CSSValueKeywords.h" |
| #include "RenderStyle.h" |
| |
| namespace WebCore { |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBorderStyle e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case BNONE: |
| m_value.ident = CSS_VAL_NONE; |
| break; |
| case BHIDDEN: |
| m_value.ident = CSS_VAL_HIDDEN; |
| break; |
| case INSET: |
| m_value.ident = CSS_VAL_INSET; |
| break; |
| case GROOVE: |
| m_value.ident = CSS_VAL_GROOVE; |
| break; |
| case RIDGE: |
| m_value.ident = CSS_VAL_RIDGE; |
| break; |
| case OUTSET: |
| m_value.ident = CSS_VAL_OUTSET; |
| break; |
| case DOTTED: |
| m_value.ident = CSS_VAL_DOTTED; |
| break; |
| case DASHED: |
| m_value.ident = CSS_VAL_DASHED; |
| break; |
| case SOLID: |
| m_value.ident = CSS_VAL_SOLID; |
| break; |
| case DOUBLE: |
| m_value.ident = CSS_VAL_DOUBLE; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EBorderStyle() const |
| { |
| return (EBorderStyle)(m_value.ident - CSS_VAL_NONE); |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(CompositeOperator e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case CompositeClear: |
| m_value.ident = CSS_VAL_CLEAR; |
| break; |
| case CompositeCopy: |
| m_value.ident = CSS_VAL_COPY; |
| break; |
| case CompositeSourceOver: |
| m_value.ident = CSS_VAL_SOURCE_OVER; |
| break; |
| case CompositeSourceIn: |
| m_value.ident = CSS_VAL_SOURCE_IN; |
| break; |
| case CompositeSourceOut: |
| m_value.ident = CSS_VAL_SOURCE_OUT; |
| break; |
| case CompositeSourceAtop: |
| m_value.ident = CSS_VAL_SOURCE_ATOP; |
| break; |
| case CompositeDestinationOver: |
| m_value.ident = CSS_VAL_DESTINATION_OVER; |
| break; |
| case CompositeDestinationIn: |
| m_value.ident = CSS_VAL_DESTINATION_IN; |
| break; |
| case CompositeDestinationOut: |
| m_value.ident = CSS_VAL_DESTINATION_OUT; |
| break; |
| case CompositeDestinationAtop: |
| m_value.ident = CSS_VAL_DESTINATION_ATOP; |
| break; |
| case CompositeXOR: |
| m_value.ident = CSS_VAL_XOR; |
| break; |
| case CompositePlusDarker: |
| m_value.ident = CSS_VAL_PLUS_DARKER; |
| break; |
| case CompositeHighlight: |
| m_value.ident = CSS_VAL_HIGHLIGHT; |
| break; |
| case CompositePlusLighter: |
| m_value.ident = CSS_VAL_PLUS_LIGHTER; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator CompositeOperator() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_CLEAR: |
| return CompositeClear; |
| case CSS_VAL_COPY: |
| return CompositeCopy; |
| case CSS_VAL_SOURCE_OVER: |
| return CompositeSourceOver; |
| case CSS_VAL_SOURCE_IN: |
| return CompositeSourceIn; |
| case CSS_VAL_SOURCE_OUT: |
| return CompositeSourceOut; |
| case CSS_VAL_SOURCE_ATOP: |
| return CompositeSourceAtop; |
| case CSS_VAL_DESTINATION_OVER: |
| return CompositeDestinationOver; |
| case CSS_VAL_DESTINATION_IN: |
| return CompositeDestinationIn; |
| case CSS_VAL_DESTINATION_OUT: |
| return CompositeDestinationOut; |
| case CSS_VAL_DESTINATION_ATOP: |
| return CompositeDestinationAtop; |
| case CSS_VAL_XOR: |
| return CompositeXOR; |
| case CSS_VAL_PLUS_DARKER: |
| return CompositePlusDarker; |
| case CSS_VAL_HIGHLIGHT: |
| return CompositeHighlight; |
| case CSS_VAL_PLUS_LIGHTER: |
| return CompositePlusLighter; |
| } |
| ASSERT_NOT_REACHED(); |
| return CompositeClear; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EAppearance e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case NoAppearance: |
| m_value.ident = CSS_VAL_NONE; |
| break; |
| case CheckboxAppearance: |
| m_value.ident = CSS_VAL_CHECKBOX; |
| break; |
| case RadioAppearance: |
| m_value.ident = CSS_VAL_RADIO; |
| break; |
| case PushButtonAppearance: |
| m_value.ident = CSS_VAL_PUSH_BUTTON; |
| break; |
| case SquareButtonAppearance: |
| m_value.ident = CSS_VAL_SQUARE_BUTTON; |
| break; |
| case ButtonAppearance: |
| m_value.ident = CSS_VAL_BUTTON; |
| break; |
| case ButtonBevelAppearance: |
| m_value.ident = CSS_VAL_BUTTON_BEVEL; |
| break; |
| case ListboxAppearance: |
| m_value.ident = CSS_VAL_LISTBOX; |
| break; |
| case ListItemAppearance: |
| m_value.ident = CSS_VAL_LISTITEM; |
| break; |
| case MediaFullscreenButtonAppearance: |
| m_value.ident = CSS_VAL_MEDIA_FULLSCREEN_BUTTON; |
| break; |
| case MediaPlayButtonAppearance: |
| m_value.ident = CSS_VAL_MEDIA_PLAY_BUTTON; |
| break; |
| case MediaMuteButtonAppearance: |
| m_value.ident = CSS_VAL_MEDIA_MUTE_BUTTON; |
| break; |
| case MediaSeekBackButtonAppearance: |
| m_value.ident = CSS_VAL_MEDIA_SEEK_BACK_BUTTON; |
| break; |
| case MediaSeekForwardButtonAppearance: |
| m_value.ident = CSS_VAL_MEDIA_SEEK_FORWARD_BUTTON; |
| break; |
| case MediaSliderAppearance: |
| m_value.ident = CSS_VAL_MEDIA_SLIDER; |
| break; |
| case MediaSliderThumbAppearance: |
| m_value.ident = CSS_VAL_MEDIA_SLIDERTHUMB; |
| break; |
| case MenulistAppearance: |
| m_value.ident = CSS_VAL_MENULIST; |
| break; |
| case MenulistButtonAppearance: |
| m_value.ident = CSS_VAL_MENULIST_BUTTON; |
| break; |
| case MenulistTextAppearance: |
| m_value.ident = CSS_VAL_MENULIST_TEXT; |
| break; |
| case MenulistTextFieldAppearance: |
| m_value.ident = CSS_VAL_MENULIST_TEXTFIELD; |
| break; |
| case ScrollbarButtonUpAppearance: |
| m_value.ident = CSS_VAL_SCROLLBARBUTTON_UP; |
| break; |
| case ScrollbarButtonDownAppearance: |
| m_value.ident = CSS_VAL_SCROLLBARBUTTON_DOWN; |
| break; |
| case ScrollbarButtonLeftAppearance: |
| m_value.ident = CSS_VAL_SCROLLBARBUTTON_LEFT; |
| break; |
| case ScrollbarButtonRightAppearance: |
| m_value.ident = CSS_VAL_SCROLLBARBUTTON_RIGHT; |
| break; |
| case ScrollbarTrackHorizontalAppearance: |
| m_value.ident = CSS_VAL_SCROLLBARTRACK_HORIZONTAL; |
| break; |
| case ScrollbarTrackVerticalAppearance: |
| m_value.ident = CSS_VAL_SCROLLBARTRACK_VERTICAL; |
| break; |
| case ScrollbarThumbHorizontalAppearance: |
| m_value.ident = CSS_VAL_SCROLLBARTHUMB_HORIZONTAL; |
| break; |
| case ScrollbarThumbVerticalAppearance: |
| m_value.ident = CSS_VAL_SCROLLBARTHUMB_VERTICAL; |
| break; |
| case ScrollbarGripperHorizontalAppearance: |
| m_value.ident = CSS_VAL_SCROLLBARGRIPPER_HORIZONTAL; |
| break; |
| case ScrollbarGripperVerticalAppearance: |
| m_value.ident = CSS_VAL_SCROLLBARGRIPPER_VERTICAL; |
| break; |
| case SliderHorizontalAppearance: |
| m_value.ident = CSS_VAL_SLIDER_HORIZONTAL; |
| break; |
| case SliderVerticalAppearance: |
| m_value.ident = CSS_VAL_SLIDER_VERTICAL; |
| break; |
| case SliderThumbHorizontalAppearance: |
| m_value.ident = CSS_VAL_SLIDERTHUMB_HORIZONTAL; |
| break; |
| case SliderThumbVerticalAppearance: |
| m_value.ident = CSS_VAL_SLIDERTHUMB_VERTICAL; |
| break; |
| case CaretAppearance: |
| m_value.ident = CSS_VAL_CARET; |
| break; |
| case SearchFieldAppearance: |
| m_value.ident = CSS_VAL_SEARCHFIELD; |
| break; |
| case SearchFieldDecorationAppearance: |
| m_value.ident = CSS_VAL_SEARCHFIELD_DECORATION; |
| break; |
| case SearchFieldResultsDecorationAppearance: |
| m_value.ident = CSS_VAL_SEARCHFIELD_RESULTS_DECORATION; |
| break; |
| case SearchFieldResultsButtonAppearance: |
| m_value.ident = CSS_VAL_SEARCHFIELD_RESULTS_BUTTON; |
| break; |
| case SearchFieldCancelButtonAppearance: |
| m_value.ident = CSS_VAL_SEARCHFIELD_CANCEL_BUTTON; |
| break; |
| case TextFieldAppearance: |
| m_value.ident = CSS_VAL_TEXTFIELD; |
| break; |
| case TextAreaAppearance: |
| m_value.ident = CSS_VAL_TEXTAREA; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EAppearance() const |
| { |
| if (m_value.ident == CSS_VAL_NONE) |
| return NoAppearance; |
| else |
| return EAppearance(m_value.ident - CSS_VAL_CHECKBOX + 1); |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBackgroundBox e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case BGBORDER: |
| m_value.ident = CSS_VAL_BORDER; |
| break; |
| case BGPADDING: |
| m_value.ident = CSS_VAL_PADDING; |
| break; |
| case BGCONTENT: |
| m_value.ident = CSS_VAL_CONTENT; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EBackgroundBox() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_BORDER: |
| return BGBORDER; |
| case CSS_VAL_PADDING: |
| return BGPADDING; |
| case CSS_VAL_CONTENT: |
| return BGCONTENT; |
| } |
| ASSERT_NOT_REACHED(); |
| return BGBORDER; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBackgroundRepeat e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case REPEAT: |
| m_value.ident = CSS_VAL_REPEAT; |
| break; |
| case REPEAT_X: |
| m_value.ident = CSS_VAL_REPEAT_X; |
| break; |
| case REPEAT_Y: |
| m_value.ident = CSS_VAL_REPEAT_Y; |
| break; |
| case NO_REPEAT: |
| m_value.ident = CSS_VAL_NO_REPEAT; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EBackgroundRepeat() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_REPEAT: |
| return REPEAT; |
| case CSS_VAL_REPEAT_X: |
| return REPEAT_X; |
| case CSS_VAL_REPEAT_Y: |
| return REPEAT_Y; |
| case CSS_VAL_NO_REPEAT: |
| return NO_REPEAT; |
| } |
| ASSERT_NOT_REACHED(); |
| return REPEAT; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxAlignment e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case BSTRETCH: |
| m_value.ident = CSS_VAL_STRETCH; |
| break; |
| case BSTART: |
| m_value.ident = CSS_VAL_START; |
| break; |
| case BCENTER: |
| m_value.ident = CSS_VAL_CENTER; |
| break; |
| case BEND: |
| m_value.ident = CSS_VAL_END; |
| break; |
| case BBASELINE: |
| m_value.ident = CSS_VAL_BASELINE; |
| break; |
| case BJUSTIFY: |
| m_value.ident = CSS_VAL_JUSTIFY; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EBoxAlignment() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_STRETCH: |
| return BSTRETCH; |
| case CSS_VAL_START: |
| return BSTART; |
| case CSS_VAL_END: |
| return BEND; |
| case CSS_VAL_CENTER: |
| return BCENTER; |
| case CSS_VAL_BASELINE: |
| return BBASELINE; |
| case CSS_VAL_JUSTIFY: |
| return BJUSTIFY; |
| } |
| ASSERT_NOT_REACHED(); |
| return BSTRETCH; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxDirection e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case BNORMAL: |
| m_value.ident = CSS_VAL_NORMAL; |
| break; |
| case BREVERSE: |
| m_value.ident = CSS_VAL_REVERSE; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EBoxDirection() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_NORMAL: |
| return BNORMAL; |
| case CSS_VAL_REVERSE: |
| return BREVERSE; |
| } |
| ASSERT_NOT_REACHED(); |
| return BNORMAL; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxLines e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case SINGLE: |
| m_value.ident = CSS_VAL_SINGLE; |
| break; |
| case MULTIPLE: |
| m_value.ident = CSS_VAL_MULTIPLE; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EBoxLines() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_SINGLE: |
| return SINGLE; |
| case CSS_VAL_MULTIPLE: |
| return MULTIPLE; |
| } |
| ASSERT_NOT_REACHED(); |
| return SINGLE; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxOrient e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case HORIZONTAL: |
| m_value.ident = CSS_VAL_HORIZONTAL; |
| break; |
| case VERTICAL: |
| m_value.ident = CSS_VAL_VERTICAL; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EBoxOrient() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_HORIZONTAL: |
| case CSS_VAL_INLINE_AXIS: |
| return HORIZONTAL; |
| case CSS_VAL_VERTICAL: |
| return VERTICAL; |
| } |
| ASSERT_NOT_REACHED(); |
| return HORIZONTAL; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ECaptionSide e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case CAPLEFT: |
| m_value.ident = CSS_VAL_LEFT; |
| break; |
| case CAPRIGHT: |
| m_value.ident = CSS_VAL_RIGHT; |
| break; |
| case CAPTOP: |
| m_value.ident = CSS_VAL_TOP; |
| break; |
| case CAPBOTTOM: |
| m_value.ident = CSS_VAL_BOTTOM; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator ECaptionSide() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_LEFT: |
| return CAPLEFT; |
| case CSS_VAL_RIGHT: |
| return CAPRIGHT; |
| case CSS_VAL_TOP: |
| return CAPTOP; |
| case CSS_VAL_BOTTOM: |
| return CAPBOTTOM; |
| } |
| ASSERT_NOT_REACHED(); |
| return CAPTOP; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EClear e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case CNONE: |
| m_value.ident = CSS_VAL_NONE; |
| break; |
| case CLEFT: |
| m_value.ident = CSS_VAL_LEFT; |
| break; |
| case CRIGHT: |
| m_value.ident = CSS_VAL_RIGHT; |
| break; |
| case CBOTH: |
| m_value.ident = CSS_VAL_BOTH; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EClear() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_NONE: |
| return CNONE; |
| case CSS_VAL_LEFT: |
| return CLEFT; |
| case CSS_VAL_RIGHT: |
| return CRIGHT; |
| case CSS_VAL_BOTH: |
| return CBOTH; |
| } |
| ASSERT_NOT_REACHED(); |
| return CNONE; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ECursor e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case CURSOR_AUTO: |
| m_value.ident = CSS_VAL_AUTO; |
| break; |
| case CURSOR_CROSS: |
| m_value.ident = CSS_VAL_CROSSHAIR; |
| break; |
| case CURSOR_DEFAULT: |
| m_value.ident = CSS_VAL_DEFAULT; |
| break; |
| case CURSOR_POINTER: |
| m_value.ident = CSS_VAL_POINTER; |
| break; |
| case CURSOR_MOVE: |
| m_value.ident = CSS_VAL_MOVE; |
| break; |
| case CURSOR_CELL: |
| m_value.ident = CSS_VAL_CELL; |
| break; |
| case CURSOR_VERTICAL_TEXT: |
| m_value.ident = CSS_VAL_VERTICAL_TEXT; |
| break; |
| case CURSOR_CONTEXT_MENU: |
| m_value.ident = CSS_VAL_CONTEXT_MENU; |
| break; |
| case CURSOR_ALIAS: |
| m_value.ident = CSS_VAL_ALIAS; |
| break; |
| case CURSOR_COPY: |
| m_value.ident = CSS_VAL_COPY; |
| break; |
| case CURSOR_NONE: |
| m_value.ident = CSS_VAL_NONE; |
| break; |
| case CURSOR_PROGRESS: |
| m_value.ident = CSS_VAL_PROGRESS; |
| break; |
| case CURSOR_NO_DROP: |
| m_value.ident = CSS_VAL_NO_DROP; |
| break; |
| case CURSOR_NOT_ALLOWED: |
| m_value.ident = CSS_VAL_NOT_ALLOWED; |
| break; |
| case CURSOR_WEBKIT_ZOOM_IN: |
| m_value.ident = CSS_VAL__WEBKIT_ZOOM_IN; |
| break; |
| case CURSOR_WEBKIT_ZOOM_OUT: |
| m_value.ident = CSS_VAL__WEBKIT_ZOOM_OUT; |
| break; |
| case CURSOR_E_RESIZE: |
| m_value.ident = CSS_VAL_E_RESIZE; |
| break; |
| case CURSOR_NE_RESIZE: |
| m_value.ident = CSS_VAL_NE_RESIZE; |
| break; |
| case CURSOR_NW_RESIZE: |
| m_value.ident = CSS_VAL_NW_RESIZE; |
| break; |
| case CURSOR_N_RESIZE: |
| m_value.ident = CSS_VAL_N_RESIZE; |
| break; |
| case CURSOR_SE_RESIZE: |
| m_value.ident = CSS_VAL_SE_RESIZE; |
| break; |
| case CURSOR_SW_RESIZE: |
| m_value.ident = CSS_VAL_SW_RESIZE; |
| break; |
| case CURSOR_S_RESIZE: |
| m_value.ident = CSS_VAL_S_RESIZE; |
| break; |
| case CURSOR_W_RESIZE: |
| m_value.ident = CSS_VAL_W_RESIZE; |
| break; |
| case CURSOR_EW_RESIZE: |
| m_value.ident = CSS_VAL_EW_RESIZE; |
| break; |
| case CURSOR_NS_RESIZE: |
| m_value.ident = CSS_VAL_NS_RESIZE; |
| break; |
| case CURSOR_NESW_RESIZE: |
| m_value.ident = CSS_VAL_NESW_RESIZE; |
| break; |
| case CURSOR_NWSE_RESIZE: |
| m_value.ident = CSS_VAL_NWSE_RESIZE; |
| break; |
| case CURSOR_COL_RESIZE: |
| m_value.ident = CSS_VAL_COL_RESIZE; |
| break; |
| case CURSOR_ROW_RESIZE: |
| m_value.ident = CSS_VAL_ROW_RESIZE; |
| break; |
| case CURSOR_TEXT: |
| m_value.ident = CSS_VAL_TEXT; |
| break; |
| case CURSOR_WAIT: |
| m_value.ident = CSS_VAL_WAIT; |
| break; |
| case CURSOR_HELP: |
| m_value.ident = CSS_VAL_HELP; |
| break; |
| case CURSOR_ALL_SCROLL: |
| m_value.ident = CSS_VAL_ALL_SCROLL; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator ECursor() const |
| { |
| if (m_value.ident == CSS_VAL_COPY) |
| return CURSOR_COPY; |
| else if (m_value.ident == CSS_VAL_NONE) |
| return CURSOR_NONE; |
| else |
| return (ECursor)(m_value.ident - CSS_VAL_AUTO); |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EDisplay e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case INLINE: |
| m_value.ident = CSS_VAL_INLINE; |
| break; |
| case BLOCK: |
| m_value.ident = CSS_VAL_BLOCK; |
| break; |
| case LIST_ITEM: |
| m_value.ident = CSS_VAL_LIST_ITEM; |
| break; |
| case RUN_IN: |
| m_value.ident = CSS_VAL_RUN_IN; |
| break; |
| case COMPACT: |
| m_value.ident = CSS_VAL_COMPACT; |
| break; |
| case INLINE_BLOCK: |
| m_value.ident = CSS_VAL_INLINE_BLOCK; |
| break; |
| case TABLE: |
| m_value.ident = CSS_VAL_TABLE; |
| break; |
| case INLINE_TABLE: |
| m_value.ident = CSS_VAL_INLINE_TABLE; |
| break; |
| case TABLE_ROW_GROUP: |
| m_value.ident = CSS_VAL_TABLE_ROW_GROUP; |
| break; |
| case TABLE_HEADER_GROUP: |
| m_value.ident = CSS_VAL_TABLE_HEADER_GROUP; |
| break; |
| case TABLE_FOOTER_GROUP: |
| m_value.ident = CSS_VAL_TABLE_FOOTER_GROUP; |
| break; |
| case TABLE_ROW: |
| m_value.ident = CSS_VAL_TABLE_ROW; |
| break; |
| case TABLE_COLUMN_GROUP: |
| m_value.ident = CSS_VAL_TABLE_COLUMN_GROUP; |
| break; |
| case TABLE_COLUMN: |
| m_value.ident = CSS_VAL_TABLE_COLUMN; |
| break; |
| case TABLE_CELL: |
| m_value.ident = CSS_VAL_TABLE_CELL; |
| break; |
| case TABLE_CAPTION: |
| m_value.ident = CSS_VAL_TABLE_CAPTION; |
| break; |
| case BOX: |
| m_value.ident = CSS_VAL__WEBKIT_BOX; |
| break; |
| case INLINE_BOX: |
| m_value.ident = CSS_VAL__WEBKIT_INLINE_BOX; |
| break; |
| case NONE: |
| m_value.ident = CSS_VAL_NONE; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EDisplay() const |
| { |
| if (m_value.ident == CSS_VAL_NONE) |
| return NONE; |
| else |
| return EDisplay(m_value.ident - CSS_VAL_INLINE); |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EEmptyCell e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case SHOW: |
| m_value.ident = CSS_VAL_SHOW; |
| break; |
| case HIDE: |
| m_value.ident = CSS_VAL_HIDE; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EEmptyCell() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_SHOW: |
| return SHOW; |
| case CSS_VAL_HIDE: |
| return HIDE; |
| } |
| ASSERT_NOT_REACHED(); |
| return SHOW; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EFloat e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case FNONE: |
| m_value.ident = CSS_VAL_NONE; |
| break; |
| case FLEFT: |
| m_value.ident = CSS_VAL_LEFT; |
| break; |
| case FRIGHT: |
| m_value.ident = CSS_VAL_RIGHT; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EFloat() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_LEFT: |
| return FLEFT; |
| case CSS_VAL_RIGHT: |
| return FRIGHT; |
| case CSS_VAL_NONE: |
| case CSS_VAL_CENTER: // Non-standard CSS value |
| return FNONE; |
| } |
| ASSERT_NOT_REACHED(); |
| return FNONE; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EKHTMLLineBreak e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case LBNORMAL: |
| m_value.ident = CSS_VAL_NORMAL; |
| break; |
| case AFTER_WHITE_SPACE: |
| m_value.ident = CSS_VAL_AFTER_WHITE_SPACE; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EKHTMLLineBreak() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_AFTER_WHITE_SPACE: |
| return AFTER_WHITE_SPACE; |
| case CSS_VAL_NORMAL: |
| return LBNORMAL; |
| } |
| ASSERT_NOT_REACHED(); |
| return LBNORMAL; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EListStylePosition e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case OUTSIDE: |
| m_value.ident = CSS_VAL_OUTSIDE; |
| break; |
| case INSIDE: |
| m_value.ident = CSS_VAL_INSIDE; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EListStylePosition() const |
| { |
| return (EListStylePosition)(m_value.ident - CSS_VAL_OUTSIDE); |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EListStyleType e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case LNONE: |
| m_value.ident = CSS_VAL_NONE; |
| break; |
| case DISC: |
| m_value.ident = CSS_VAL_DISC; |
| break; |
| case CIRCLE: |
| m_value.ident = CSS_VAL_CIRCLE; |
| break; |
| case SQUARE: |
| m_value.ident = CSS_VAL_SQUARE; |
| break; |
| case LDECIMAL: |
| m_value.ident = CSS_VAL_DECIMAL; |
| break; |
| case DECIMAL_LEADING_ZERO: |
| m_value.ident = CSS_VAL_DECIMAL_LEADING_ZERO; |
| break; |
| case LOWER_ROMAN: |
| m_value.ident = CSS_VAL_LOWER_ROMAN; |
| break; |
| case UPPER_ROMAN: |
| m_value.ident = CSS_VAL_UPPER_ROMAN; |
| break; |
| case LOWER_GREEK: |
| m_value.ident = CSS_VAL_LOWER_GREEK; |
| break; |
| case LOWER_ALPHA: |
| m_value.ident = CSS_VAL_LOWER_ALPHA; |
| break; |
| case LOWER_LATIN: |
| m_value.ident = CSS_VAL_LOWER_LATIN; |
| break; |
| case UPPER_ALPHA: |
| m_value.ident = CSS_VAL_UPPER_ALPHA; |
| break; |
| case UPPER_LATIN: |
| m_value.ident = CSS_VAL_UPPER_LATIN; |
| break; |
| case HEBREW: |
| m_value.ident = CSS_VAL_HEBREW; |
| break; |
| case ARMENIAN: |
| m_value.ident = CSS_VAL_ARMENIAN; |
| break; |
| case GEORGIAN: |
| m_value.ident = CSS_VAL_GEORGIAN; |
| break; |
| case CJK_IDEOGRAPHIC: |
| m_value.ident = CSS_VAL_CJK_IDEOGRAPHIC; |
| break; |
| case HIRAGANA: |
| m_value.ident = CSS_VAL_HIRAGANA; |
| break; |
| case KATAKANA: |
| m_value.ident = CSS_VAL_KATAKANA; |
| break; |
| case HIRAGANA_IROHA: |
| m_value.ident = CSS_VAL_HIRAGANA_IROHA; |
| break; |
| case KATAKANA_IROHA: |
| m_value.ident = CSS_VAL_KATAKANA_IROHA; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EListStyleType() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_NONE: |
| return LNONE; |
| default: |
| return EListStyleType(m_value.ident - CSS_VAL_DISC); |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EMarginCollapse e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case MCOLLAPSE: |
| m_value.ident = CSS_VAL_COLLAPSE; |
| break; |
| case MSEPARATE: |
| m_value.ident = CSS_VAL_SEPARATE; |
| break; |
| case MDISCARD: |
| m_value.ident = CSS_VAL_DISCARD; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EMarginCollapse() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_COLLAPSE: |
| return MCOLLAPSE; |
| case CSS_VAL_SEPARATE: |
| return MSEPARATE; |
| case CSS_VAL_DISCARD: |
| return MDISCARD; |
| } |
| ASSERT_NOT_REACHED(); |
| return MCOLLAPSE; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EMarqueeBehavior e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case MNONE: |
| m_value.ident = CSS_VAL_NONE; |
| break; |
| case MSCROLL: |
| m_value.ident = CSS_VAL_SCROLL; |
| break; |
| case MSLIDE: |
| m_value.ident = CSS_VAL_SLIDE; |
| break; |
| case MALTERNATE: |
| m_value.ident = CSS_VAL_ALTERNATE; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EMarqueeBehavior() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_NONE: |
| return MNONE; |
| case CSS_VAL_SCROLL: |
| return MSCROLL; |
| case CSS_VAL_SLIDE: |
| return MSLIDE; |
| case CSS_VAL_ALTERNATE: |
| return MALTERNATE; |
| } |
| ASSERT_NOT_REACHED(); |
| return MNONE; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EMarqueeDirection e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case MFORWARD: |
| m_value.ident = CSS_VAL_FORWARDS; |
| break; |
| case MBACKWARD: |
| m_value.ident = CSS_VAL_BACKWARDS; |
| break; |
| case MAUTO: |
| m_value.ident = CSS_VAL_AUTO; |
| break; |
| case MUP: |
| m_value.ident = CSS_VAL_UP; |
| break; |
| case MDOWN: |
| m_value.ident = CSS_VAL_DOWN; |
| break; |
| case MLEFT: |
| m_value.ident = CSS_VAL_LEFT; |
| break; |
| case MRIGHT: |
| m_value.ident = CSS_VAL_RIGHT; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EMarqueeDirection() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_FORWARDS: |
| return MFORWARD; |
| case CSS_VAL_BACKWARDS: |
| return MBACKWARD; |
| case CSS_VAL_AUTO: |
| return MAUTO; |
| case CSS_VAL_AHEAD: |
| case CSS_VAL_UP: // We don't support vertical languages, so AHEAD just maps to UP. |
| return MUP; |
| case CSS_VAL_REVERSE: |
| case CSS_VAL_DOWN: // REVERSE just maps to DOWN, since we don't do vertical text. |
| return MDOWN; |
| case CSS_VAL_LEFT: |
| return MLEFT; |
| case CSS_VAL_RIGHT: |
| return MRIGHT; |
| } |
| ASSERT_NOT_REACHED(); |
| return MAUTO; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EMatchNearestMailBlockquoteColor e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case BCNORMAL: |
| m_value.ident = CSS_VAL_NORMAL; |
| break; |
| case MATCH: |
| m_value.ident = CSS_VAL_MATCH; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EMatchNearestMailBlockquoteColor() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_NORMAL: |
| return BCNORMAL; |
| case CSS_VAL_MATCH: |
| return MATCH; |
| } |
| ASSERT_NOT_REACHED(); |
| return BCNORMAL; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ENBSPMode e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case NBNORMAL: |
| m_value.ident = CSS_VAL_NORMAL; |
| break; |
| case SPACE: |
| m_value.ident = CSS_VAL_SPACE; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator ENBSPMode() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_SPACE: |
| return SPACE; |
| case CSS_VAL_NORMAL: |
| return NBNORMAL; |
| } |
| ASSERT_NOT_REACHED(); |
| return NBNORMAL; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EOverflow e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case OVISIBLE: |
| m_value.ident = CSS_VAL_VISIBLE; |
| break; |
| case OHIDDEN: |
| m_value.ident = CSS_VAL_HIDDEN; |
| break; |
| case OSCROLL: |
| m_value.ident = CSS_VAL_SCROLL; |
| break; |
| case OAUTO: |
| m_value.ident = CSS_VAL_AUTO; |
| break; |
| case OMARQUEE: |
| m_value.ident = CSS_VAL__WEBKIT_MARQUEE; |
| break; |
| case OOVERLAY: |
| m_value.ident = CSS_VAL_OVERLAY; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EOverflow() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_VISIBLE: |
| return OVISIBLE; |
| case CSS_VAL_HIDDEN: |
| return OHIDDEN; |
| case CSS_VAL_SCROLL: |
| return OSCROLL; |
| case CSS_VAL_AUTO: |
| return OAUTO; |
| case CSS_VAL__WEBKIT_MARQUEE: |
| return OMARQUEE; |
| case CSS_VAL_OVERLAY: |
| return OOVERLAY; |
| } |
| ASSERT_NOT_REACHED(); |
| return OVISIBLE; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EPageBreak e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case PBAUTO: |
| m_value.ident = CSS_VAL_AUTO; |
| break; |
| case PBALWAYS: |
| m_value.ident = CSS_VAL_ALWAYS; |
| break; |
| case PBAVOID: |
| m_value.ident = CSS_VAL_AVOID; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EPageBreak() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_AUTO: |
| return PBAUTO; |
| case CSS_VAL_LEFT: |
| case CSS_VAL_RIGHT: |
| case CSS_VAL_ALWAYS: |
| return PBALWAYS; // CSS2.1: "Conforming user agents may map left/right to always." |
| case CSS_VAL_AVOID: |
| return PBAVOID; |
| } |
| ASSERT_NOT_REACHED(); |
| return PBAUTO; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EPosition e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case StaticPosition: |
| m_value.ident = CSS_VAL_STATIC; |
| break; |
| case RelativePosition: |
| m_value.ident = CSS_VAL_RELATIVE; |
| break; |
| case AbsolutePosition: |
| m_value.ident = CSS_VAL_ABSOLUTE; |
| break; |
| case FixedPosition: |
| m_value.ident = CSS_VAL_FIXED; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EPosition() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_STATIC: |
| return StaticPosition; |
| case CSS_VAL_RELATIVE: |
| return RelativePosition; |
| case CSS_VAL_ABSOLUTE: |
| return AbsolutePosition; |
| case CSS_VAL_FIXED: |
| return FixedPosition; |
| } |
| ASSERT_NOT_REACHED(); |
| return StaticPosition; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EResize e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case RESIZE_BOTH: |
| m_value.ident = CSS_VAL_BOTH; |
| break; |
| case RESIZE_HORIZONTAL: |
| m_value.ident = CSS_VAL_HORIZONTAL; |
| break; |
| case RESIZE_VERTICAL: |
| m_value.ident = CSS_VAL_VERTICAL; |
| break; |
| case RESIZE_NONE: |
| m_value.ident = CSS_VAL_NONE; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EResize() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_BOTH: |
| return RESIZE_BOTH; |
| case CSS_VAL_HORIZONTAL: |
| return RESIZE_HORIZONTAL; |
| case CSS_VAL_VERTICAL: |
| return RESIZE_VERTICAL; |
| case CSS_VAL_AUTO: |
| ASSERT_NOT_REACHED(); // Depends on settings, thus should be handled by the caller. |
| return RESIZE_NONE; |
| case CSS_VAL_NONE: |
| return RESIZE_NONE; |
| } |
| ASSERT_NOT_REACHED(); |
| return RESIZE_NONE; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETableLayout e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case TAUTO: |
| m_value.ident = CSS_VAL_AUTO; |
| break; |
| case TFIXED: |
| m_value.ident = CSS_VAL_FIXED; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator ETableLayout() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_FIXED: |
| return TFIXED; |
| case CSS_VAL_AUTO: |
| return TAUTO; |
| } |
| ASSERT_NOT_REACHED(); |
| return TAUTO; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETextAlign e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case TAAUTO: |
| m_value.ident = CSS_VAL_AUTO; |
| break; |
| case LEFT: |
| m_value.ident = CSS_VAL_LEFT; |
| break; |
| case RIGHT: |
| m_value.ident = CSS_VAL_RIGHT; |
| break; |
| case CENTER: |
| m_value.ident = CSS_VAL_CENTER; |
| break; |
| case JUSTIFY: |
| m_value.ident = CSS_VAL_JUSTIFY; |
| break; |
| case WEBKIT_LEFT: |
| m_value.ident = CSS_VAL__WEBKIT_LEFT; |
| break; |
| case WEBKIT_RIGHT: |
| m_value.ident = CSS_VAL__WEBKIT_RIGHT; |
| break; |
| case WEBKIT_CENTER: |
| m_value.ident = CSS_VAL__WEBKIT_CENTER; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator ETextAlign() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_START: |
| case CSS_VAL_END: |
| ASSERT_NOT_REACHED(); // Depends on direction, thus should be handled by the caller. |
| return LEFT; |
| default: |
| return (ETextAlign)(m_value.ident - CSS_VAL__WEBKIT_AUTO); |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETextSecurity e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case TSNONE: |
| m_value.ident = CSS_VAL_NONE; |
| break; |
| case TSDISC: |
| m_value.ident = CSS_VAL_DISC; |
| break; |
| case TSCIRCLE: |
| m_value.ident = CSS_VAL_CIRCLE; |
| break; |
| case TSSQUARE: |
| m_value.ident = CSS_VAL_SQUARE; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator ETextSecurity() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_NONE: |
| return TSNONE; |
| case CSS_VAL_DISC: |
| return TSDISC; |
| case CSS_VAL_CIRCLE: |
| return TSCIRCLE; |
| case CSS_VAL_SQUARE: |
| return TSSQUARE; |
| } |
| ASSERT_NOT_REACHED(); |
| return TSNONE; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETextTransform e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case CAPITALIZE: |
| m_value.ident = CSS_VAL_CAPITALIZE; |
| break; |
| case UPPERCASE: |
| m_value.ident = CSS_VAL_UPPERCASE; |
| break; |
| case LOWERCASE: |
| m_value.ident = CSS_VAL_LOWERCASE; |
| break; |
| case TTNONE: |
| m_value.ident = CSS_VAL_NONE; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator ETextTransform() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_CAPITALIZE: |
| return CAPITALIZE; |
| case CSS_VAL_UPPERCASE: |
| return UPPERCASE; |
| case CSS_VAL_LOWERCASE: |
| return LOWERCASE; |
| case CSS_VAL_NONE: |
| return TTNONE; |
| } |
| ASSERT_NOT_REACHED(); |
| return TTNONE; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EUnicodeBidi e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case UBNormal: |
| m_value.ident = CSS_VAL_NORMAL; |
| break; |
| case Embed: |
| m_value.ident = CSS_VAL_EMBED; |
| break; |
| case Override: |
| m_value.ident = CSS_VAL_BIDI_OVERRIDE; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EUnicodeBidi() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_NORMAL: |
| return UBNormal; |
| case CSS_VAL_EMBED: |
| return Embed; |
| case CSS_VAL_BIDI_OVERRIDE: |
| return Override; |
| } |
| ASSERT_NOT_REACHED(); |
| return UBNormal; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EUserDrag e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case DRAG_AUTO: |
| m_value.ident = CSS_VAL_AUTO; |
| break; |
| case DRAG_NONE: |
| m_value.ident = CSS_VAL_NONE; |
| break; |
| case DRAG_ELEMENT: |
| m_value.ident = CSS_VAL_ELEMENT; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EUserDrag() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_AUTO: |
| return DRAG_AUTO; |
| case CSS_VAL_NONE: |
| return DRAG_NONE; |
| case CSS_VAL_ELEMENT: |
| return DRAG_ELEMENT; |
| } |
| ASSERT_NOT_REACHED(); |
| return DRAG_AUTO; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EUserModify e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case READ_ONLY: |
| m_value.ident = CSS_VAL_READ_ONLY; |
| break; |
| case READ_WRITE: |
| m_value.ident = CSS_VAL_READ_WRITE; |
| break; |
| case READ_WRITE_PLAINTEXT_ONLY: |
| m_value.ident = CSS_VAL_READ_WRITE_PLAINTEXT_ONLY; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EUserModify() const |
| { |
| return EUserModify(m_value.ident - CSS_VAL_READ_ONLY); |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EUserSelect e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case SELECT_NONE: |
| m_value.ident = CSS_VAL_NONE; |
| break; |
| case SELECT_TEXT: |
| m_value.ident = CSS_VAL_TEXT; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EUserSelect() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_AUTO: |
| return SELECT_TEXT; |
| case CSS_VAL_NONE: |
| return SELECT_NONE; |
| case CSS_VAL_TEXT: |
| return SELECT_TEXT; |
| } |
| ASSERT_NOT_REACHED(); |
| return SELECT_TEXT; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EVisibility e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case VISIBLE: |
| m_value.ident = CSS_VAL_VISIBLE; |
| break; |
| case HIDDEN: |
| m_value.ident = CSS_VAL_HIDDEN; |
| break; |
| case COLLAPSE: |
| m_value.ident = CSS_VAL_COLLAPSE; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EVisibility() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_HIDDEN: |
| return HIDDEN; |
| case CSS_VAL_VISIBLE: |
| return VISIBLE; |
| case CSS_VAL_COLLAPSE: |
| return COLLAPSE; |
| } |
| ASSERT_NOT_REACHED(); |
| return VISIBLE; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EWhiteSpace e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case NORMAL: |
| m_value.ident = CSS_VAL_NORMAL; |
| break; |
| case PRE: |
| m_value.ident = CSS_VAL_PRE; |
| break; |
| case PRE_WRAP: |
| m_value.ident = CSS_VAL_PRE_WRAP; |
| break; |
| case PRE_LINE: |
| m_value.ident = CSS_VAL_PRE_LINE; |
| break; |
| case NOWRAP: |
| m_value.ident = CSS_VAL_NOWRAP; |
| break; |
| case KHTML_NOWRAP: |
| m_value.ident = CSS_VAL__WEBKIT_NOWRAP; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EWhiteSpace() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL__WEBKIT_NOWRAP: |
| return KHTML_NOWRAP; |
| case CSS_VAL_NOWRAP: |
| return NOWRAP; |
| case CSS_VAL_PRE: |
| return PRE; |
| case CSS_VAL_PRE_WRAP: |
| return PRE_WRAP; |
| case CSS_VAL_PRE_LINE: |
| return PRE_LINE; |
| case CSS_VAL_NORMAL: |
| return NORMAL; |
| } |
| ASSERT_NOT_REACHED(); |
| return NORMAL; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EWordBreak e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case NormalWordBreak: |
| m_value.ident = CSS_VAL_NORMAL; |
| break; |
| case BreakAllWordBreak: |
| m_value.ident = CSS_VAL_BREAK_ALL; |
| break; |
| case BreakWordBreak: |
| m_value.ident = CSS_VAL_BREAK_WORD; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EWordBreak() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_BREAK_ALL: |
| return BreakAllWordBreak; |
| case CSS_VAL_BREAK_WORD: |
| return BreakWordBreak; |
| case CSS_VAL_NORMAL: |
| return NormalWordBreak; |
| } |
| ASSERT_NOT_REACHED(); |
| return NormalWordBreak; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EWordWrap e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case NormalWordWrap: |
| m_value.ident = CSS_VAL_NORMAL; |
| break; |
| case BreakWordWrap: |
| m_value.ident = CSS_VAL_BREAK_WORD; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EWordWrap() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_BREAK_WORD: |
| return BreakWordWrap; |
| case CSS_VAL_NORMAL: |
| return NormalWordWrap; |
| } |
| ASSERT_NOT_REACHED(); |
| return NormalWordWrap; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(TextDirection e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case LTR: |
| m_value.ident = CSS_VAL_LTR; |
| break; |
| case RTL: |
| m_value.ident = CSS_VAL_RTL; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator TextDirection() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_LTR: |
| return LTR; |
| case CSS_VAL_RTL: |
| return RTL; |
| } |
| ASSERT_NOT_REACHED(); |
| return LTR; |
| } |
| |
| #if ENABLE(SVG) |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(LineCap e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case ButtCap: |
| m_value.ident = CSS_VAL_BUTT; |
| break; |
| case RoundCap: |
| m_value.ident = CSS_VAL_ROUND; |
| break; |
| case SquareCap: |
| m_value.ident = CSS_VAL_SQUARE; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator LineCap() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_BUTT: |
| return ButtCap; |
| case CSS_VAL_ROUND: |
| return RoundCap; |
| case CSS_VAL_SQUARE: |
| return SquareCap; |
| } |
| ASSERT_NOT_REACHED(); |
| return ButtCap; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(LineJoin e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case MiterJoin: |
| m_value.ident = CSS_VAL_MITER; |
| break; |
| case RoundJoin: |
| m_value.ident = CSS_VAL_ROUND; |
| break; |
| case BevelJoin: |
| m_value.ident = CSS_VAL_BEVEL; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator LineJoin() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_MITER: |
| return MiterJoin; |
| case CSS_VAL_ROUND: |
| return RoundJoin; |
| case CSS_VAL_BEVEL: |
| return BevelJoin; |
| } |
| ASSERT_NOT_REACHED(); |
| return MiterJoin; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(WindRule e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case RULE_NONZERO: |
| m_value.ident = CSS_VAL_NONZERO; |
| break; |
| case RULE_EVENODD: |
| m_value.ident = CSS_VAL_EVENODD; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator WindRule() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_NONZERO: |
| return RULE_NONZERO; |
| case CSS_VAL_EVENODD: |
| return RULE_EVENODD; |
| } |
| ASSERT_NOT_REACHED(); |
| return RULE_NONZERO; |
| } |
| |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EAlignmentBaseline e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case AB_AUTO: |
| m_value.ident = CSS_VAL_AUTO; |
| break; |
| case AB_BASELINE: |
| m_value.ident = CSS_VAL_BASELINE; |
| break; |
| case AB_BEFORE_EDGE: |
| m_value.ident = CSS_VAL_BEFORE_EDGE; |
| break; |
| case AB_TEXT_BEFORE_EDGE: |
| m_value.ident = CSS_VAL_TEXT_BEFORE_EDGE; |
| break; |
| case AB_MIDDLE: |
| m_value.ident = CSS_VAL_MIDDLE; |
| break; |
| case AB_CENTRAL: |
| m_value.ident = CSS_VAL_CENTRAL; |
| break; |
| case AB_AFTER_EDGE: |
| m_value.ident = CSS_VAL_AFTER_EDGE; |
| break; |
| case AB_TEXT_AFTER_EDGE: |
| m_value.ident = CSS_VAL_TEXT_AFTER_EDGE; |
| break; |
| case AB_IDEOGRAPHIC: |
| m_value.ident = CSS_VAL_IDEOGRAPHIC; |
| break; |
| case AB_ALPHABETIC: |
| m_value.ident = CSS_VAL_ALPHABETIC; |
| break; |
| case AB_HANGING: |
| m_value.ident = CSS_VAL_HANGING; |
| break; |
| case AB_MATHEMATICAL: |
| m_value.ident = CSS_VAL_MATHEMATICAL; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EAlignmentBaseline() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_AUTO: |
| return AB_AUTO; |
| case CSS_VAL_BASELINE: |
| return AB_BASELINE; |
| case CSS_VAL_BEFORE_EDGE: |
| return AB_BEFORE_EDGE; |
| case CSS_VAL_TEXT_BEFORE_EDGE: |
| return AB_TEXT_BEFORE_EDGE; |
| case CSS_VAL_MIDDLE: |
| return AB_MIDDLE; |
| case CSS_VAL_CENTRAL: |
| return AB_CENTRAL; |
| case CSS_VAL_AFTER_EDGE: |
| return AB_AFTER_EDGE; |
| case CSS_VAL_TEXT_AFTER_EDGE: |
| return AB_TEXT_AFTER_EDGE; |
| case CSS_VAL_IDEOGRAPHIC: |
| return AB_IDEOGRAPHIC; |
| case CSS_VAL_ALPHABETIC: |
| return AB_ALPHABETIC; |
| case CSS_VAL_HANGING: |
| return AB_HANGING; |
| case CSS_VAL_MATHEMATICAL: |
| return AB_MATHEMATICAL; |
| } |
| ASSERT_NOT_REACHED(); |
| return AB_AUTO; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EColorInterpolation e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case CI_AUTO: |
| m_value.ident = CSS_VAL_AUTO; |
| break; |
| case CI_SRGB: |
| m_value.ident = CSS_VAL_SRGB; |
| break; |
| case CI_LINEARRGB: |
| m_value.ident = CSS_VAL_LINEARRGB; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EColorInterpolation() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_SRGB: |
| return CI_SRGB; |
| case CSS_VAL_LINEARRGB: |
| return CI_LINEARRGB; |
| case CSS_VAL_AUTO: |
| return CI_AUTO; |
| } |
| ASSERT_NOT_REACHED(); |
| return CI_AUTO; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EColorRendering e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case CR_AUTO: |
| m_value.ident = CSS_VAL_AUTO; |
| break; |
| case CR_OPTIMIZESPEED: |
| m_value.ident = CSS_VAL_OPTIMIZESPEED; |
| break; |
| case CR_OPTIMIZEQUALITY: |
| m_value.ident = CSS_VAL_OPTIMIZEQUALITY; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EColorRendering() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_OPTIMIZESPEED: |
| return CR_OPTIMIZESPEED; |
| case CSS_VAL_OPTIMIZEQUALITY: |
| return CR_OPTIMIZEQUALITY; |
| case CSS_VAL_AUTO: |
| return CR_AUTO; |
| } |
| ASSERT_NOT_REACHED(); |
| return CR_AUTO; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EDominantBaseline e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case DB_AUTO: |
| m_value.ident = CSS_VAL_AUTO; |
| break; |
| case DB_USE_SCRIPT: |
| m_value.ident = CSS_VAL_USE_SCRIPT; |
| break; |
| case DB_NO_CHANGE: |
| m_value.ident = CSS_VAL_NO_CHANGE; |
| break; |
| case DB_RESET_SIZE: |
| m_value.ident = CSS_VAL_RESET_SIZE; |
| break; |
| case DB_CENTRAL: |
| m_value.ident = CSS_VAL_CENTRAL; |
| break; |
| case DB_MIDDLE: |
| m_value.ident = CSS_VAL_MIDDLE; |
| break; |
| case DB_TEXT_BEFORE_EDGE: |
| m_value.ident = CSS_VAL_TEXT_BEFORE_EDGE; |
| break; |
| case DB_TEXT_AFTER_EDGE: |
| m_value.ident = CSS_VAL_TEXT_AFTER_EDGE; |
| break; |
| case DB_IDEOGRAPHIC: |
| m_value.ident = CSS_VAL_IDEOGRAPHIC; |
| break; |
| case DB_ALPHABETIC: |
| m_value.ident = CSS_VAL_ALPHABETIC; |
| break; |
| case DB_HANGING: |
| m_value.ident = CSS_VAL_HANGING; |
| break; |
| case DB_MATHEMATICAL: |
| m_value.ident = CSS_VAL_MATHEMATICAL; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EDominantBaseline() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_AUTO: |
| return DB_AUTO; |
| case CSS_VAL_USE_SCRIPT: |
| return DB_USE_SCRIPT; |
| case CSS_VAL_NO_CHANGE: |
| return DB_NO_CHANGE; |
| case CSS_VAL_RESET_SIZE: |
| return DB_RESET_SIZE; |
| case CSS_VAL_IDEOGRAPHIC: |
| return DB_IDEOGRAPHIC; |
| case CSS_VAL_ALPHABETIC: |
| return DB_ALPHABETIC; |
| case CSS_VAL_HANGING: |
| return DB_HANGING; |
| case CSS_VAL_MATHEMATICAL: |
| return DB_MATHEMATICAL; |
| case CSS_VAL_CENTRAL: |
| return DB_CENTRAL; |
| case CSS_VAL_MIDDLE: |
| return DB_MIDDLE; |
| case CSS_VAL_TEXT_AFTER_EDGE: |
| return DB_TEXT_AFTER_EDGE; |
| case CSS_VAL_TEXT_BEFORE_EDGE: |
| return DB_TEXT_BEFORE_EDGE; |
| } |
| ASSERT_NOT_REACHED(); |
| return DB_AUTO; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EImageRendering e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case IR_AUTO: |
| m_value.ident = CSS_VAL_AUTO; |
| break; |
| case IR_OPTIMIZESPEED: |
| m_value.ident = CSS_VAL_OPTIMIZESPEED; |
| break; |
| case IR_OPTIMIZEQUALITY: |
| m_value.ident = CSS_VAL_OPTIMIZEQUALITY; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EImageRendering() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_AUTO: |
| return IR_AUTO; |
| case CSS_VAL_OPTIMIZESPEED: |
| return IR_OPTIMIZESPEED; |
| case CSS_VAL_OPTIMIZEQUALITY: |
| return IR_OPTIMIZEQUALITY; |
| } |
| ASSERT_NOT_REACHED(); |
| return IR_AUTO; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EPointerEvents e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case PE_NONE: |
| m_value.ident = CSS_VAL_NONE; |
| break; |
| case PE_STROKE: |
| m_value.ident = CSS_VAL_STROKE; |
| break; |
| case PE_FILL: |
| m_value.ident = CSS_VAL_FILL; |
| break; |
| case PE_PAINTED: |
| m_value.ident = CSS_VAL_PAINTED; |
| break; |
| case PE_VISIBLE: |
| m_value.ident = CSS_VAL_VISIBLE; |
| break; |
| case PE_VISIBLE_STROKE: |
| m_value.ident = CSS_VAL_VISIBLESTROKE; |
| break; |
| case PE_VISIBLE_FILL: |
| m_value.ident = CSS_VAL_VISIBLEFILL; |
| break; |
| case PE_VISIBLE_PAINTED: |
| m_value.ident = CSS_VAL_VISIBLEPAINTED; |
| break; |
| case PE_ALL: |
| m_value.ident = CSS_VAL_ALL; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EPointerEvents() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_ALL: |
| return PE_ALL; |
| case CSS_VAL_NONE: |
| return PE_NONE; |
| case CSS_VAL_VISIBLEPAINTED: |
| return PE_VISIBLE_PAINTED; |
| case CSS_VAL_VISIBLEFILL: |
| return PE_VISIBLE_FILL; |
| case CSS_VAL_VISIBLESTROKE: |
| return PE_VISIBLE_STROKE; |
| case CSS_VAL_VISIBLE: |
| return PE_VISIBLE; |
| case CSS_VAL_PAINTED: |
| return PE_PAINTED; |
| case CSS_VAL_FILL: |
| return PE_FILL; |
| case CSS_VAL_STROKE: |
| return PE_STROKE; |
| } |
| ASSERT_NOT_REACHED(); |
| return PE_ALL; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EShapeRendering e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case IR_AUTO: |
| m_value.ident = CSS_VAL_AUTO; |
| break; |
| case IR_OPTIMIZESPEED: |
| m_value.ident = CSS_VAL_OPTIMIZESPEED; |
| break; |
| case SR_CRISPEDGES: |
| m_value.ident = CSS_VAL_CRISPEDGES; |
| break; |
| case SR_GEOMETRICPRECISION: |
| m_value.ident = CSS_VAL_GEOMETRICPRECISION; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EShapeRendering() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_AUTO: |
| return SR_AUTO; |
| case CSS_VAL_OPTIMIZESPEED: |
| return SR_OPTIMIZESPEED; |
| case CSS_VAL_CRISPEDGES: |
| return SR_CRISPEDGES; |
| case CSS_VAL_GEOMETRICPRECISION: |
| return SR_GEOMETRICPRECISION; |
| } |
| ASSERT_NOT_REACHED(); |
| return SR_AUTO; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETextAnchor e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case TA_START: |
| m_value.ident = CSS_VAL_START; |
| break; |
| case TA_MIDDLE: |
| m_value.ident = CSS_VAL_MIDDLE; |
| break; |
| case TA_END: |
| m_value.ident = CSS_VAL_END; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator ETextAnchor() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_START: |
| return TA_START; |
| case CSS_VAL_MIDDLE: |
| return TA_MIDDLE; |
| case CSS_VAL_END: |
| return TA_END; |
| } |
| ASSERT_NOT_REACHED(); |
| return TA_START; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETextRendering e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case TR_AUTO: |
| m_value.ident = CSS_VAL_AUTO; |
| break; |
| case TR_OPTIMIZESPEED: |
| m_value.ident = CSS_VAL_OPTIMIZESPEED; |
| break; |
| case TR_OPTIMIZELEGIBILITY: |
| m_value.ident = CSS_VAL_OPTIMIZELEGIBILITY; |
| break; |
| case TR_GEOMETRICPRECISION: |
| m_value.ident = CSS_VAL_GEOMETRICPRECISION; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator ETextRendering() const |
| { |
| switch (m_value.ident) { |
| case CSS_VAL_AUTO: |
| return TR_AUTO; |
| case CSS_VAL_OPTIMIZESPEED: |
| return TR_OPTIMIZESPEED; |
| case CSS_VAL_OPTIMIZELEGIBILITY: |
| return TR_OPTIMIZELEGIBILITY; |
| case CSS_VAL_GEOMETRICPRECISION: |
| return TR_GEOMETRICPRECISION; |
| } |
| ASSERT_NOT_REACHED(); |
| return TR_AUTO; |
| } |
| |
| template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EWritingMode e) |
| : m_type(CSS_IDENT) |
| { |
| switch (e) { |
| case WM_LRTB: |
| m_value.ident = CSS_VAL_LR_TB; |
| break; |
| case WM_LR: |
| m_value.ident = CSS_VAL_LR; |
| break; |
| case WM_RLTB: |
| m_value.ident = CSS_VAL_RL_TB; |
| break; |
| case WM_RL: |
| m_value.ident = CSS_VAL_RL; |
| break; |
| case WM_TBRL: |
| m_value.ident = CSS_VAL_TB_RL; |
| break; |
| case WM_TB: |
| m_value.ident = CSS_VAL_TB; |
| break; |
| } |
| } |
| |
| template<> inline CSSPrimitiveValue::operator EWritingMode() const |
| { |
| return (EWritingMode)(m_value.ident - CSS_VAL_LR_TB); |
| } |
| |
| #endif |
| |
| } |
| |
| #endif |