summaryrefslogtreecommitdiff
path: root/src/css.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/css.hh')
-rw-r--r--src/css.hh229
1 files changed, 115 insertions, 114 deletions
diff --git a/src/css.hh b/src/css.hh
index 487aaef6..5b8f7fcb 100644
--- a/src/css.hh
+++ b/src/css.hh
@@ -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);
};