From 32ed7d0984f0dd872b4aaac0ac12c18471f291a0 Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Sat, 28 Jan 2012 20:25:01 +0000 Subject: Add support for parsing CSS3 Multi-column layout properties: + break-after + break-before + break-inside + column-count + column-fill + column-gap + column-rule-color + column-rule-style + column_rule-width + column_span + column_width TODO: Shorthand properties (columns, column-rule) TODO: Selection svn path=/trunk/libcss/; revision=13412 --- include/libcss/properties.h | 292 ++++++++++++++++++++++++++++++-------------- 1 file changed, 197 insertions(+), 95 deletions(-) (limited to 'include/libcss/properties.h') diff --git a/include/libcss/properties.h b/include/libcss/properties.h index 6b474ce..a998a70 100644 --- a/include/libcss/properties.h +++ b/include/libcss/properties.h @@ -15,105 +15,116 @@ extern "C" enum css_properties_e { CSS_PROP_AZIMUTH = 0x000, - CSS_PROP_BACKGROUND_ATTACHMENT = 0x001, - CSS_PROP_BACKGROUND_COLOR = 0x002, - CSS_PROP_BACKGROUND_IMAGE = 0x003, - CSS_PROP_BACKGROUND_POSITION = 0x004, - CSS_PROP_BACKGROUND_REPEAT = 0x005, - CSS_PROP_BORDER_COLLAPSE = 0x006, + CSS_PROP_BACKGROUND_ATTACHMENT = 0x001, + CSS_PROP_BACKGROUND_COLOR = 0x002, + CSS_PROP_BACKGROUND_IMAGE = 0x003, + CSS_PROP_BACKGROUND_POSITION = 0x004, + CSS_PROP_BACKGROUND_REPEAT = 0x005, + CSS_PROP_BORDER_COLLAPSE = 0x006, CSS_PROP_BORDER_SPACING = 0x007, - CSS_PROP_BORDER_TOP_COLOR = 0x008, + CSS_PROP_BORDER_TOP_COLOR = 0x008, CSS_PROP_BORDER_RIGHT_COLOR = 0x009, CSS_PROP_BORDER_BOTTOM_COLOR = 0x00a, CSS_PROP_BORDER_LEFT_COLOR = 0x00b, - CSS_PROP_BORDER_TOP_STYLE = 0x00c, + CSS_PROP_BORDER_TOP_STYLE = 0x00c, CSS_PROP_BORDER_RIGHT_STYLE = 0x00d, CSS_PROP_BORDER_BOTTOM_STYLE = 0x00e, CSS_PROP_BORDER_LEFT_STYLE = 0x00f, - CSS_PROP_BORDER_TOP_WIDTH = 0x010, + CSS_PROP_BORDER_TOP_WIDTH = 0x010, CSS_PROP_BORDER_RIGHT_WIDTH = 0x011, CSS_PROP_BORDER_BOTTOM_WIDTH = 0x012, CSS_PROP_BORDER_LEFT_WIDTH = 0x013, - CSS_PROP_BOTTOM = 0x014, + CSS_PROP_BOTTOM = 0x014, CSS_PROP_CAPTION_SIDE = 0x015, - CSS_PROP_CLEAR = 0x016, - CSS_PROP_CLIP = 0x017, - CSS_PROP_COLOR = 0x018, - CSS_PROP_CONTENT = 0x019, - CSS_PROP_COUNTER_INCREMENT = 0x01a, - CSS_PROP_COUNTER_RESET = 0x01b, - CSS_PROP_CUE_AFTER = 0x01c, - CSS_PROP_CUE_BEFORE = 0x01d, - CSS_PROP_CURSOR = 0x01e, - CSS_PROP_DIRECTION = 0x01f, - CSS_PROP_DISPLAY = 0x020, - CSS_PROP_ELEVATION = 0x021, - CSS_PROP_EMPTY_CELLS = 0x022, - CSS_PROP_FLOAT = 0x023, - CSS_PROP_FONT_FAMILY = 0x024, - CSS_PROP_FONT_SIZE = 0x025, - CSS_PROP_FONT_STYLE = 0x026, - CSS_PROP_FONT_VARIANT = 0x027, - CSS_PROP_FONT_WEIGHT = 0x028, - CSS_PROP_HEIGHT = 0x029, - CSS_PROP_LEFT = 0x02a, - CSS_PROP_LETTER_SPACING = 0x02b, - CSS_PROP_LINE_HEIGHT = 0x02c, - CSS_PROP_LIST_STYLE_IMAGE = 0x02d, - CSS_PROP_LIST_STYLE_POSITION = 0x02e, - CSS_PROP_LIST_STYLE_TYPE = 0x02f, - CSS_PROP_MARGIN_TOP = 0x030, + CSS_PROP_CLEAR = 0x016, + CSS_PROP_CLIP = 0x017, + CSS_PROP_COLOR = 0x018, + CSS_PROP_CONTENT = 0x019, + CSS_PROP_COUNTER_INCREMENT = 0x01a, + CSS_PROP_COUNTER_RESET = 0x01b, + CSS_PROP_CUE_AFTER = 0x01c, + CSS_PROP_CUE_BEFORE = 0x01d, + CSS_PROP_CURSOR = 0x01e, + CSS_PROP_DIRECTION = 0x01f, + CSS_PROP_DISPLAY = 0x020, + CSS_PROP_ELEVATION = 0x021, + CSS_PROP_EMPTY_CELLS = 0x022, + CSS_PROP_FLOAT = 0x023, + CSS_PROP_FONT_FAMILY = 0x024, + CSS_PROP_FONT_SIZE = 0x025, + CSS_PROP_FONT_STYLE = 0x026, + CSS_PROP_FONT_VARIANT = 0x027, + CSS_PROP_FONT_WEIGHT = 0x028, + CSS_PROP_HEIGHT = 0x029, + CSS_PROP_LEFT = 0x02a, + CSS_PROP_LETTER_SPACING = 0x02b, + CSS_PROP_LINE_HEIGHT = 0x02c, + CSS_PROP_LIST_STYLE_IMAGE = 0x02d, + CSS_PROP_LIST_STYLE_POSITION = 0x02e, + CSS_PROP_LIST_STYLE_TYPE = 0x02f, + CSS_PROP_MARGIN_TOP = 0x030, CSS_PROP_MARGIN_RIGHT = 0x031, CSS_PROP_MARGIN_BOTTOM = 0x032, CSS_PROP_MARGIN_LEFT = 0x033, - CSS_PROP_MAX_HEIGHT = 0x034, - CSS_PROP_MAX_WIDTH = 0x035, - CSS_PROP_MIN_HEIGHT = 0x036, - CSS_PROP_MIN_WIDTH = 0x037, - CSS_PROP_ORPHANS = 0x038, - CSS_PROP_OUTLINE_COLOR = 0x039, - CSS_PROP_OUTLINE_STYLE = 0x03a, - CSS_PROP_OUTLINE_WIDTH = 0x03b, - CSS_PROP_OVERFLOW = 0x03c, - CSS_PROP_PADDING_TOP = 0x03d, + CSS_PROP_MAX_HEIGHT = 0x034, + CSS_PROP_MAX_WIDTH = 0x035, + CSS_PROP_MIN_HEIGHT = 0x036, + CSS_PROP_MIN_WIDTH = 0x037, + CSS_PROP_ORPHANS = 0x038, + CSS_PROP_OUTLINE_COLOR = 0x039, + CSS_PROP_OUTLINE_STYLE = 0x03a, + CSS_PROP_OUTLINE_WIDTH = 0x03b, + CSS_PROP_OVERFLOW = 0x03c, + CSS_PROP_PADDING_TOP = 0x03d, CSS_PROP_PADDING_RIGHT = 0x03e, CSS_PROP_PADDING_BOTTOM = 0x03f, CSS_PROP_PADDING_LEFT = 0x040, - CSS_PROP_PAGE_BREAK_AFTER = 0x041, + CSS_PROP_PAGE_BREAK_AFTER = 0x041, CSS_PROP_PAGE_BREAK_BEFORE = 0x042, - CSS_PROP_PAGE_BREAK_INSIDE = 0x043, - CSS_PROP_PAUSE_AFTER = 0x044, - CSS_PROP_PAUSE_BEFORE = 0x045, - CSS_PROP_PITCH_RANGE = 0x046, - CSS_PROP_PITCH = 0x047, - CSS_PROP_PLAY_DURING = 0x048, - CSS_PROP_POSITION = 0x049, - CSS_PROP_QUOTES = 0x04a, - CSS_PROP_RICHNESS = 0x04b, - CSS_PROP_RIGHT = 0x04c, - CSS_PROP_SPEAK_HEADER = 0x04d, - CSS_PROP_SPEAK_NUMERAL = 0x04e, - CSS_PROP_SPEAK_PUNCTUATION = 0x04f, - CSS_PROP_SPEAK = 0x050, - CSS_PROP_SPEECH_RATE = 0x051, - CSS_PROP_STRESS = 0x052, - CSS_PROP_TABLE_LAYOUT = 0x053, - CSS_PROP_TEXT_ALIGN = 0x054, - CSS_PROP_TEXT_DECORATION = 0x055, - CSS_PROP_TEXT_INDENT = 0x056, - CSS_PROP_TEXT_TRANSFORM = 0x057, - CSS_PROP_TOP = 0x058, - CSS_PROP_UNICODE_BIDI = 0x059, - CSS_PROP_VERTICAL_ALIGN = 0x05a, - CSS_PROP_VISIBILITY = 0x05b, - CSS_PROP_VOICE_FAMILY = 0x05c, - CSS_PROP_VOLUME = 0x05d, - CSS_PROP_WHITE_SPACE = 0x05e, - CSS_PROP_WIDOWS = 0x05f, - CSS_PROP_WIDTH = 0x060, - CSS_PROP_WORD_SPACING = 0x061, + CSS_PROP_PAGE_BREAK_INSIDE = 0x043, + CSS_PROP_PAUSE_AFTER = 0x044, + CSS_PROP_PAUSE_BEFORE = 0x045, + CSS_PROP_PITCH_RANGE = 0x046, + CSS_PROP_PITCH = 0x047, + CSS_PROP_PLAY_DURING = 0x048, + CSS_PROP_POSITION = 0x049, + CSS_PROP_QUOTES = 0x04a, + CSS_PROP_RICHNESS = 0x04b, + CSS_PROP_RIGHT = 0x04c, + CSS_PROP_SPEAK_HEADER = 0x04d, + CSS_PROP_SPEAK_NUMERAL = 0x04e, + CSS_PROP_SPEAK_PUNCTUATION = 0x04f, + CSS_PROP_SPEAK = 0x050, + CSS_PROP_SPEECH_RATE = 0x051, + CSS_PROP_STRESS = 0x052, + CSS_PROP_TABLE_LAYOUT = 0x053, + CSS_PROP_TEXT_ALIGN = 0x054, + CSS_PROP_TEXT_DECORATION = 0x055, + CSS_PROP_TEXT_INDENT = 0x056, + CSS_PROP_TEXT_TRANSFORM = 0x057, + CSS_PROP_TOP = 0x058, + CSS_PROP_UNICODE_BIDI = 0x059, + CSS_PROP_VERTICAL_ALIGN = 0x05a, + CSS_PROP_VISIBILITY = 0x05b, + CSS_PROP_VOICE_FAMILY = 0x05c, + CSS_PROP_VOLUME = 0x05d, + CSS_PROP_WHITE_SPACE = 0x05e, + CSS_PROP_WIDOWS = 0x05f, + CSS_PROP_WIDTH = 0x060, + CSS_PROP_WORD_SPACING = 0x061, CSS_PROP_Z_INDEX = 0x062, CSS_PROP_OPACITY = 0x063, + CSS_PROP_BREAK_AFTER = 0x064, + CSS_PROP_BREAK_BEFORE = 0x065, + CSS_PROP_BREAK_INSIDE = 0x066, + CSS_PROP_COLUMN_COUNT = 0x067, + CSS_PROP_COLUMN_FILL = 0x068, + CSS_PROP_COLUMN_GAP = 0x069, + CSS_PROP_COLUMN_RULE_COLOR = 0x06a, + CSS_PROP_COLUMN_RULE_STYLE = 0x06b, + CSS_PROP_COLUMN_RULE_WIDTH = 0x06c, + CSS_PROP_COLUMN_SPAN = 0x06d, + CSS_PROP_COLUMN_WIDTH = 0x06e, CSS_N_PROPERTIES }; @@ -196,6 +207,40 @@ enum css_bottom_e { CSS_BOTTOM_AUTO = 0x2 }; +enum css_break_after_e { + CSS_BREAK_AFTER_INHERIT = 0x0, + CSS_BREAK_AFTER_AUTO = 0x1, + CSS_BREAK_AFTER_AVOID = 0x2, + CSS_BREAK_AFTER_ALWAYS = 0x3, + CSS_BREAK_AFTER_LEFT = 0x4, + CSS_BREAK_AFTER_RIGHT = 0x5, + CSS_BREAK_AFTER_PAGE = 0x6, + CSS_BREAK_AFTER_COLUMN = 0x7, + CSS_BREAK_AFTER_AVOID_PAGE = 0x8, + CSS_BREAK_AFTER_AVOID_COLUMN = 0x9 +}; + +enum css_break_before_e { + CSS_BREAK_BEFORE_INHERIT = CSS_BREAK_AFTER_INHERIT, + CSS_BREAK_BEFORE_AUTO = CSS_BREAK_AFTER_AUTO, + CSS_BREAK_BEFORE_AVOID = CSS_BREAK_AFTER_AVOID, + CSS_BREAK_BEFORE_ALWAYS = CSS_BREAK_AFTER_ALWAYS, + CSS_BREAK_BEFORE_LEFT = CSS_BREAK_AFTER_LEFT, + CSS_BREAK_BEFORE_RIGHT = CSS_BREAK_AFTER_RIGHT, + CSS_BREAK_BEFORE_PAGE = CSS_BREAK_AFTER_PAGE, + CSS_BREAK_BEFORE_COLUMN = CSS_BREAK_AFTER_COLUMN, + CSS_BREAK_BEFORE_AVOID_PAGE = CSS_BREAK_AFTER_AVOID_PAGE, + CSS_BREAK_BEFORE_AVOID_COLUMN = CSS_BREAK_AFTER_AVOID_COLUMN +}; + +enum css_break_inside_e { + CSS_BREAK_INSIDE_INHERIT = CSS_BREAK_AFTER_INHERIT, + CSS_BREAK_INSIDE_AUTO = CSS_BREAK_AFTER_AUTO, + CSS_BREAK_INSIDE_AVOID = CSS_BREAK_AFTER_AVOID, + CSS_BREAK_INSIDE_AVOID_PAGE = CSS_BREAK_AFTER_AVOID_PAGE, + CSS_BREAK_INSIDE_AVOID_COLUMN = CSS_BREAK_AFTER_AVOID_COLUMN +}; + enum css_caption_side_e { CSS_CAPTION_SIDE_INHERIT = 0x0, CSS_CAPTION_SIDE_TOP = 0x1, @@ -221,6 +266,63 @@ enum css_color_e { CSS_COLOR_COLOR = 0x1 }; +enum css_column_count_e { + CSS_COLUMN_COUNT_INHERIT = 0x0, + CSS_COLUMN_COUNT_AUTO = 0x1, + CSS_COLUMN_COUNT_SET = 0x2 +}; + +enum css_column_fill_e { + CSS_COLUMN_FILL_INHERIT = 0x0, + CSS_COLUMN_FILL_BALANCE = 0x1, + CSS_COLUMN_FILL_AUTO = 0x2 +}; + +enum css_column_gap_e { + CSS_COLUMN_GAP_INHERIT = 0x0, + CSS_COLUMN_GAP_NORMAL = 0x1, + CSS_COLUMN_GAP_SET = 0x2 +}; + +enum css_column_rule_color_e { + CSS_COLUMN_RULE_COLOR_INHERIT = CSS_BACKGROUND_COLOR_INHERIT, + CSS_COLUMN_RULE_COLOR_COLOR = CSS_BACKGROUND_COLOR_COLOR, + CSS_COLUMN_RULE_COLOR_CURRENT_COLOR = CSS_BACKGROUND_COLOR_CURRENT_COLOR, +}; + +enum css_column_rule_style_e { + CSS_COLUMN_RULE_STYLE_INHERIT = CSS_BORDER_STYLE_INHERIT, + CSS_COLUMN_RULE_STYLE_NONE = CSS_BORDER_STYLE_NONE, + CSS_COLUMN_RULE_STYLE_DOTTED = CSS_BORDER_STYLE_DOTTED, + CSS_COLUMN_RULE_STYLE_DASHED = CSS_BORDER_STYLE_DASHED, + CSS_COLUMN_RULE_STYLE_SOLID = CSS_BORDER_STYLE_SOLID, + CSS_COLUMN_RULE_STYLE_DOUBLE = CSS_BORDER_STYLE_DOUBLE, + CSS_COLUMN_RULE_STYLE_GROOVE = CSS_BORDER_STYLE_GROOVE, + CSS_COLUMN_RULE_STYLE_RIDGE = CSS_BORDER_STYLE_RIDGE, + CSS_COLUMN_RULE_STYLE_INSET = CSS_BORDER_STYLE_INSET, + CSS_COLUMN_RULE_STYLE_OUTSET = CSS_BORDER_STYLE_OUTSET +}; + +enum css_column_rule_width_e { + CSS_COLUMN_RULE_WIDTH_INHERIT = CSS_BORDER_WIDTH_INHERIT, + CSS_COLUMN_RULE_WIDTH_THIN = CSS_BORDER_WIDTH_THIN, + CSS_COLUMN_RULE_WIDTH_MEDIUM = CSS_BORDER_WIDTH_MEDIUM, + CSS_COLUMN_RULE_WIDTH_THICK = CSS_BORDER_WIDTH_THICK, + CSS_COLUMN_RULE_WIDTH_WIDTH = CSS_BORDER_WIDTH_WIDTH +}; + +enum css_column_span_e { + CSS_COLUMN_SPAN_INHERIT = 0x0, + CSS_COLUMN_SPAN_NONE = 0x1, + CSS_COLUMN_SPAN_ALL = 0x2 +}; + +enum css_column_width_e { + CSS_COLUMN_WIDTH_INHERIT = 0x0, + CSS_COLUMN_WIDTH_AUTO = 0x1, + CSS_COLUMN_WIDTH_SET = 0x2 +}; + enum css_content_e { CSS_CONTENT_INHERIT = 0x0, CSS_CONTENT_NONE = 0x1, @@ -489,27 +591,27 @@ enum css_padding_e { }; enum css_page_break_after_e { - CSS_PAGE_BREAK_AFTER_INHERIT = 0x0, - CSS_PAGE_BREAK_AFTER_AUTO = 0x1, - CSS_PAGE_BREAK_AFTER_AVOID = 0x2, - CSS_PAGE_BREAK_AFTER_ALWAYS = 0x3, - CSS_PAGE_BREAK_AFTER_LEFT = 0x4, - CSS_PAGE_BREAK_AFTER_RIGHT = 0x5 + CSS_PAGE_BREAK_AFTER_INHERIT = CSS_BREAK_AFTER_INHERIT, + CSS_PAGE_BREAK_AFTER_AUTO = CSS_BREAK_AFTER_AUTO, + CSS_PAGE_BREAK_AFTER_AVOID = CSS_BREAK_AFTER_AVOID, + CSS_PAGE_BREAK_AFTER_ALWAYS = CSS_BREAK_AFTER_ALWAYS, + CSS_PAGE_BREAK_AFTER_LEFT = CSS_BREAK_AFTER_LEFT, + CSS_PAGE_BREAK_AFTER_RIGHT = CSS_BREAK_AFTER_RIGHT }; - + enum css_page_break_before_e { - CSS_PAGE_BREAK_BEFORE_INHERIT = CSS_PAGE_BREAK_AFTER_INHERIT, - CSS_PAGE_BREAK_BEFORE_AUTO = CSS_PAGE_BREAK_AFTER_AUTO, - CSS_PAGE_BREAK_BEFORE_AVOID = CSS_PAGE_BREAK_AFTER_AVOID, - CSS_PAGE_BREAK_BEFORE_ALWAYS = CSS_PAGE_BREAK_AFTER_ALWAYS, - CSS_PAGE_BREAK_BEFORE_LEFT = CSS_PAGE_BREAK_AFTER_LEFT, - CSS_PAGE_BREAK_BEFORE_RIGHT = CSS_PAGE_BREAK_AFTER_RIGHT + CSS_PAGE_BREAK_BEFORE_INHERIT = CSS_BREAK_AFTER_INHERIT, + CSS_PAGE_BREAK_BEFORE_AUTO = CSS_BREAK_AFTER_AUTO, + CSS_PAGE_BREAK_BEFORE_AVOID = CSS_BREAK_AFTER_AVOID, + CSS_PAGE_BREAK_BEFORE_ALWAYS = CSS_BREAK_AFTER_ALWAYS, + CSS_PAGE_BREAK_BEFORE_LEFT = CSS_BREAK_AFTER_LEFT, + CSS_PAGE_BREAK_BEFORE_RIGHT = CSS_BREAK_AFTER_RIGHT }; enum css_page_break_inside_e { - CSS_PAGE_BREAK_INSIDE_INHERIT = CSS_PAGE_BREAK_AFTER_INHERIT, - CSS_PAGE_BREAK_INSIDE_AUTO = CSS_PAGE_BREAK_AFTER_AUTO, - CSS_PAGE_BREAK_INSIDE_AVOID = CSS_PAGE_BREAK_AFTER_AVOID + CSS_PAGE_BREAK_INSIDE_INHERIT = CSS_BREAK_AFTER_INHERIT, + CSS_PAGE_BREAK_INSIDE_AUTO = CSS_BREAK_AFTER_AUTO, + CSS_PAGE_BREAK_INSIDE_AVOID = CSS_BREAK_AFTER_AVOID }; enum css_position_e { -- cgit v1.2.3