diff options
Diffstat (limited to 'src/css.hh')
-rw-r--r-- | src/css.hh | 229 |
1 files changed, 115 insertions, 114 deletions
@@ -45,126 +45,127 @@ enum { #define CSS_LENGTH_VALUE(l) ( ( (float)((l) & ~7) ) / (1 << 19) ) #define CSS_LENGTH_TYPE(l) ((l) & 7) +typedef enum { + CSS_PROPERTY_BACKGROUND_ATTACHMENT, + CSS_PROPERTY_BACKGROUND_COLOR, + CSS_PROPERTY_BACKGROUND_IMAGE, + CSS_PROPERTY_BACKGROUND_POSITION, + CSS_PROPERTY_BACKGROUND_REPEAT, + CSS_PROPERTY_BORDER_BOTTOM_COLOR, + CSS_PROPERTY_BORDER_BOTTOM_STYLE, + CSS_PROPERTY_BORDER_BOTTOM_WIDTH, + CSS_PROPERTY_BORDER_COLLAPSE, + CSS_PROPERTY_BORDER_LEFT_COLOR, + CSS_PROPERTY_BORDER_LEFT_STYLE, + CSS_PROPERTY_BORDER_LEFT_WIDTH, + CSS_PROPERTY_BORDER_RIGHT_COLOR, + CSS_PROPERTY_BORDER_RIGHT_STYLE, + CSS_PROPERTY_BORDER_RIGHT_WIDTH, + CSS_PROPERTY_BORDER_SPACING, + CSS_PROPERTY_BORDER_TOP_COLOR, + CSS_PROPERTY_BORDER_TOP_STYLE, + CSS_PROPERTY_BORDER_TOP_WIDTH, + CSS_PROPERTY_BOTTOM, + CSS_PROPERTY_CAPTION_SIDE, + CSS_PROPERTY_CLEAR, + CSS_PROPERTY_CLIP, + CSS_PROPERTY_COLOR, + CSS_PROPERTY_CONTENT, + CSS_PROPERTY_COUNTER_INCREMENT, + CSS_PROPERTY_COUNTER_RESET, + CSS_PROPERTY_CURSOR, + CSS_PROPERTY_DIRECTION, + CSS_PROPERTY_DISPLAY, + CSS_PROPERTY_EMPTY_CELLS, + CSS_PROPERTY_FLOAT, + CSS_PROPERTY_FONT_FAMILY, + CSS_PROPERTY_FONT_SIZE, + CSS_PROPERTY_FONT_SIZE_ADJUST, + CSS_PROPERTY_FONT_STRETCH, + CSS_PROPERTY_FONT_STYLE, + CSS_PROPERTY_FONT_VARIANT, + CSS_PROPERTY_FONT_WEIGHT, + CSS_PROPERTY_HEIGHT, + CSS_PROPERTY_LEFT, + CSS_PROPERTY_LETTER_SPACING, + CSS_PROPERTY_LINE_HEIGHT, + CSS_PROPERTY_LIST_STYLE_IMAGE, + CSS_PROPERTY_LIST_STYLE_POSITION, + CSS_PROPERTY_LIST_STYLE_TYPE, + CSS_PROPERTY_MARGIN_BOTTOM, + CSS_PROPERTY_MARGIN_LEFT, + CSS_PROPERTY_MARGIN_RIGHT, + CSS_PROPERTY_MARGIN_TOP, + CSS_PROPERTY_MARKER_OFFSET, + CSS_PROPERTY_MARKS, + CSS_PROPERTY_MAX_HEIGHT, + CSS_PROPERTY_MAX_WIDTH, + CSS_PROPERTY_MIN_HEIGHT, + CSS_PROPERTY_MIN_WIDTH, + CSS_PROPERTY_OUTLINE_COLOR, + CSS_PROPERTY_OUTLINE_STYLE, + CSS_PROPERTY_OUTLINE_WIDTH, + CSS_PROPERTY_OVERFLOW, + CSS_PROPERTY_PADDING_BOTTOM, + CSS_PROPERTY_PADDING_LEFT, + CSS_PROPERTY_PADDING_RIGHT, + CSS_PROPERTY_PADDING_TOP, + CSS_PROPERTY_POSITION, + CSS_PROPERTY_QUOTES, + CSS_PROPERTY_RIGHT, + CSS_PROPERTY_TEXT_ALIGN, + CSS_PROPERTY_TEXT_DECORATION, + CSS_PROPERTY_TEXT_INDENT, + CSS_PROPERTY_TEXT_SHADOW, + CSS_PROPERTY_TEXT_TRANSFORM, + CSS_PROPERTY_TOP, + CSS_PROPERTY_UNICODE_BIDI, + CSS_PROPERTY_VERTICAL_ALIGN, + CSS_PROPERTY_VISIBILITY, + CSS_PROPERTY_WHITE_SPACE, + CSS_PROPERTY_WIDTH, + CSS_PROPERTY_WORD_SPACING, + CSS_PROPERTY_Z_INDEX, + CSS_PROPERTY_X_LINK, + CSS_PROPERTY_X_COLSPAN, + CSS_PROPERTY_X_ROWSPAN, + PROPERTY_X_LINK, + PROPERTY_X_IMG, + PROPERTY_X_TOOLTIP, + CSS_PROPERTY_LAST +} CssPropertyName; + +typedef union { + int intVal; + char *strVal; +} CssPropertyValue; + +typedef enum { + CSS_FONT_WEIGHT_LIGHTER = -1, + CSS_FONT_WEIGHT_BOLDER = -2, + CSS_FONT_WEIGHT_STEP = 300, + /* Some special font weights. */ + CSS_FONT_WEIGHT_LIGHT = 100, + CSS_FONT_WEIGHT_NORMAL = 400, + CSS_FONT_WEIGHT_BOLD = 700, + CSS_FONT_WEIGHT_MIN = 100, + CSS_FONT_WEIGHT_MAX = 900, +} CssFontWeightExtensions; + /** * \brief This class holds a CSS property and value pair. */ class CssProperty { public: - typedef union { - int intVal; - char *strVal; - } Value; - - typedef enum { - CSS_PROPERTY_BACKGROUND_ATTACHMENT, - CSS_PROPERTY_BACKGROUND_COLOR, - CSS_PROPERTY_BACKGROUND_IMAGE, - CSS_PROPERTY_BACKGROUND_POSITION, - CSS_PROPERTY_BACKGROUND_REPEAT, - CSS_PROPERTY_BORDER_BOTTOM_COLOR, - CSS_PROPERTY_BORDER_BOTTOM_STYLE, - CSS_PROPERTY_BORDER_BOTTOM_WIDTH, - CSS_PROPERTY_BORDER_COLLAPSE, - CSS_PROPERTY_BORDER_LEFT_COLOR, - CSS_PROPERTY_BORDER_LEFT_STYLE, - CSS_PROPERTY_BORDER_LEFT_WIDTH, - CSS_PROPERTY_BORDER_RIGHT_COLOR, - CSS_PROPERTY_BORDER_RIGHT_STYLE, - CSS_PROPERTY_BORDER_RIGHT_WIDTH, - CSS_PROPERTY_BORDER_SPACING, - CSS_PROPERTY_BORDER_TOP_COLOR, - CSS_PROPERTY_BORDER_TOP_STYLE, - CSS_PROPERTY_BORDER_TOP_WIDTH, - CSS_PROPERTY_BOTTOM, - CSS_PROPERTY_CAPTION_SIDE, - CSS_PROPERTY_CLEAR, - CSS_PROPERTY_CLIP, - CSS_PROPERTY_COLOR, - CSS_PROPERTY_CONTENT, - CSS_PROPERTY_COUNTER_INCREMENT, - CSS_PROPERTY_COUNTER_RESET, - CSS_PROPERTY_CURSOR, - CSS_PROPERTY_DIRECTION, - CSS_PROPERTY_DISPLAY, - CSS_PROPERTY_EMPTY_CELLS, - CSS_PROPERTY_FLOAT, - CSS_PROPERTY_FONT_FAMILY, - CSS_PROPERTY_FONT_SIZE, - CSS_PROPERTY_FONT_SIZE_ADJUST, - CSS_PROPERTY_FONT_STRETCH, - CSS_PROPERTY_FONT_STYLE, - CSS_PROPERTY_FONT_VARIANT, - CSS_PROPERTY_FONT_WEIGHT, - CSS_PROPERTY_HEIGHT, - CSS_PROPERTY_LEFT, - CSS_PROPERTY_LETTER_SPACING, - CSS_PROPERTY_LINE_HEIGHT, - CSS_PROPERTY_LIST_STYLE_IMAGE, - CSS_PROPERTY_LIST_STYLE_POSITION, - CSS_PROPERTY_LIST_STYLE_TYPE, - CSS_PROPERTY_MARGIN_BOTTOM, - CSS_PROPERTY_MARGIN_LEFT, - CSS_PROPERTY_MARGIN_RIGHT, - CSS_PROPERTY_MARGIN_TOP, - CSS_PROPERTY_MARKER_OFFSET, - CSS_PROPERTY_MARKS, - CSS_PROPERTY_MAX_HEIGHT, - CSS_PROPERTY_MAX_WIDTH, - CSS_PROPERTY_MIN_HEIGHT, - CSS_PROPERTY_MIN_WIDTH, - CSS_PROPERTY_OUTLINE_COLOR, - CSS_PROPERTY_OUTLINE_STYLE, - CSS_PROPERTY_OUTLINE_WIDTH, - CSS_PROPERTY_OVERFLOW, - CSS_PROPERTY_PADDING_BOTTOM, - CSS_PROPERTY_PADDING_LEFT, - CSS_PROPERTY_PADDING_RIGHT, - CSS_PROPERTY_PADDING_TOP, - CSS_PROPERTY_POSITION, - CSS_PROPERTY_QUOTES, - CSS_PROPERTY_RIGHT, - CSS_PROPERTY_TEXT_ALIGN, - CSS_PROPERTY_TEXT_DECORATION, - CSS_PROPERTY_TEXT_INDENT, - CSS_PROPERTY_TEXT_SHADOW, - CSS_PROPERTY_TEXT_TRANSFORM, - CSS_PROPERTY_TOP, - CSS_PROPERTY_UNICODE_BIDI, - CSS_PROPERTY_VERTICAL_ALIGN, - CSS_PROPERTY_VISIBILITY, - CSS_PROPERTY_WHITE_SPACE, - CSS_PROPERTY_WIDTH, - CSS_PROPERTY_WORD_SPACING, - CSS_PROPERTY_Z_INDEX, - CSS_PROPERTY_X_LINK, - CSS_PROPERTY_X_COLSPAN, - CSS_PROPERTY_X_ROWSPAN, - PROPERTY_X_LINK, - PROPERTY_X_IMG, - PROPERTY_X_TOOLTIP, - CSS_PROPERTY_LAST - } Name; - - typedef enum { - CSS_FONT_WEIGHT_LIGHTER = -1, - CSS_FONT_WEIGHT_BOLDER = -2, - CSS_FONT_WEIGHT_STEP = 300, - /* Some special font weights. */ - CSS_FONT_WEIGHT_LIGHT = 100, - CSS_FONT_WEIGHT_NORMAL = 400, - CSS_FONT_WEIGHT_BOLD = 700, - CSS_FONT_WEIGHT_MIN = 100, - CSS_FONT_WEIGHT_MAX = 900, - } FontWeightExtensions; short name; short type; - Value value; + CssPropertyValue value; inline void free () { switch (name) { - case CssProperty::CSS_PROPERTY_CONTENT: - case CssProperty::CSS_PROPERTY_FONT_FAMILY: + case CSS_PROPERTY_CONTENT: + case CSS_PROPERTY_FONT_FAMILY: dFree (value.strVal); break; default: @@ -194,14 +195,14 @@ class CssPropertyList : public lout::misc::SimpleVector <CssProperty> { }; ~CssPropertyList (); - void set (CssProperty::Name name, CssProperty::Value value); - inline void set (CssProperty::Name name, char *value) { - CssProperty::Value v; + void set (CssPropertyName name, CssPropertyValue value); + inline void set (CssPropertyName name, char *value) { + CssPropertyValue v; v.strVal = value; set (name, v); }; - inline void set (CssProperty::Name name, int value) { - CssProperty::Value v; + inline void set (CssPropertyName name, int value) { + CssPropertyValue v; v.intVal = value; set (name, v); }; |