diff options
Diffstat (limited to 'test/dump.h')
-rw-r--r-- | test/dump.h | 300 |
1 files changed, 283 insertions, 17 deletions
diff --git a/test/dump.h b/test/dump.h index 0159b19..09a35b0 100644 --- a/test/dump.h +++ b/test/dump.h @@ -131,7 +131,9 @@ void dump_rule_media(css_rule_media *s, char **buf, size_t *buflen) char *ptr = *buf; css_rule *rule; - ptr += sprintf(ptr, "| @media "); + ptr += sprintf(ptr, "| @media %s%03lx", + s->media->negate_type ? "not " : "", + s->media->type); /* \todo media list */ @@ -479,6 +481,18 @@ static const char *opcode_names[] = { "writing-mode", "overflow-y", "box-sizing", + "align-content", + "align-items", + "align-self", + "flex-basis", + "flex-direction", + "flex-grow", + "flex-shrink", + "flex-wrap", + "justify-content", + "order", + "fill-opacity", + "stroke-opacity", }; static void dump_css_fixed(css_fixed f, char **ptr) @@ -574,6 +588,36 @@ static void dump_unit(css_fixed val, uint32_t unit, char **ptr) case UNIT_PC: *ptr += sprintf(*ptr, "pc"); break; + case UNIT_CH: + *ptr += sprintf(*ptr, "ch"); + break; + case UNIT_REM: + *ptr += sprintf(*ptr, "rem"); + break; + case UNIT_LH: + *ptr += sprintf(*ptr, "lh"); + break; + case UNIT_VH: + *ptr += sprintf(*ptr, "vh"); + break; + case UNIT_VW: + *ptr += sprintf(*ptr, "vw"); + break; + case UNIT_VI: + *ptr += sprintf(*ptr, "vi"); + break; + case UNIT_VB: + *ptr += sprintf(*ptr, "vb"); + break; + case UNIT_VMIN: + *ptr += sprintf(*ptr, "vmin"); + break; + case UNIT_VMAX: + *ptr += sprintf(*ptr, "vmax"); + break; + case UNIT_Q: + *ptr += sprintf(*ptr, "q"); + break; case UNIT_PCT: *ptr += sprintf(*ptr, "%%"); break; @@ -746,12 +790,84 @@ void dump_bytecode(css_style *style, char **ptr, uint32_t depth) *((*ptr)++) = ' '; *ptr += sprintf(*ptr, "%s: ", opcode_names[op]); - if (isInherit(opv)) { + if (getFlagValue(opv) == FLAG_VALUE_INHERIT) { *ptr += sprintf(*ptr, "inherit"); + } else if (getFlagValue(opv) == FLAG_VALUE_INITIAL) { + *ptr += sprintf(*ptr, "initial"); + } else if (getFlagValue(opv) == FLAG_VALUE_REVERT) { + *ptr += sprintf(*ptr, "revert"); + } else if (getFlagValue(opv) == FLAG_VALUE_UNSET) { + *ptr += sprintf(*ptr, "unset"); } else { value = getValue(opv); switch (op) { + case CSS_PROP_ALIGN_CONTENT: + switch (value) { + case ALIGN_CONTENT_STRETCH: + *ptr += sprintf(*ptr, "stretch"); + break; + case ALIGN_CONTENT_FLEX_START: + *ptr += sprintf(*ptr, "flex-start"); + break; + case ALIGN_CONTENT_FLEX_END: + *ptr += sprintf(*ptr, "flex-end"); + break; + case ALIGN_CONTENT_CENTER: + *ptr += sprintf(*ptr, "center"); + break; + case ALIGN_CONTENT_SPACE_BETWEEN: + *ptr += sprintf(*ptr, "space-between"); + break; + case ALIGN_CONTENT_SPACE_AROUND: + *ptr += sprintf(*ptr, "space-around"); + break; + case ALIGN_CONTENT_SPACE_EVENLY: + *ptr += sprintf(*ptr, "space-evenly"); + break; + } + break; + case CSS_PROP_ALIGN_ITEMS: + switch (value) { + case ALIGN_ITEMS_STRETCH: + *ptr += sprintf(*ptr, "stretch"); + break; + case ALIGN_ITEMS_FLEX_START: + *ptr += sprintf(*ptr, "flex-start"); + break; + case ALIGN_ITEMS_FLEX_END: + *ptr += sprintf(*ptr, "flex-end"); + break; + case ALIGN_ITEMS_CENTER: + *ptr += sprintf(*ptr, "center"); + break; + case ALIGN_ITEMS_BASELINE: + *ptr += sprintf(*ptr, "baseline"); + break; + } + break; + case CSS_PROP_ALIGN_SELF: + switch (value) { + case ALIGN_SELF_STRETCH: + *ptr += sprintf(*ptr, "stretch"); + break; + case ALIGN_SELF_FLEX_START: + *ptr += sprintf(*ptr, "flex-start"); + break; + case ALIGN_SELF_FLEX_END: + *ptr += sprintf(*ptr, "flex-end"); + break; + case ALIGN_SELF_CENTER: + *ptr += sprintf(*ptr, "center"); + break; + case ALIGN_SELF_BASELINE: + *ptr += sprintf(*ptr, "baseline"); + break; + case ALIGN_SELF_AUTO: + *ptr += sprintf(*ptr, "auto"); + break; + } + break; case CSS_PROP_AZIMUTH: switch (value & ~AZIMUTH_BEHIND) { case AZIMUTH_ANGLE: @@ -1658,6 +1774,12 @@ void dump_bytecode(css_style *style, char **ptr, uint32_t depth) case DISPLAY_NONE: *ptr += sprintf(*ptr, "none"); break; + case DISPLAY_FLEX: + *ptr += sprintf(*ptr, "flex"); + break; + case DISPLAY_INLINE_FLEX: + *ptr += sprintf(*ptr, "inline-flex"); + break; } break; case CSS_PROP_ELEVATION: @@ -1699,6 +1821,99 @@ void dump_bytecode(css_style *style, char **ptr, uint32_t depth) break; } break; + case CSS_PROP_FILL_OPACITY: + switch (value) { + case FILL_OPACITY_SET: + { + css_fixed val = *((css_fixed *) bytecode); + ADVANCE(sizeof(val)); + dump_number(val, ptr); + } + break; + } + break; + case CSS_PROP_STROKE_OPACITY: + switch (value) { + case STROKE_OPACITY_SET: + { + css_fixed val = *((css_fixed *) bytecode); + ADVANCE(sizeof(val)); + dump_number(val, ptr); + } + break; + } + break; + case CSS_PROP_FLEX_BASIS: + switch (value) { + case FLEX_BASIS_AUTO: + *ptr += sprintf(*ptr, "auto"); + break; + case FLEX_BASIS_CONTENT: + *ptr += sprintf(*ptr, "content"); + break; + case FLEX_BASIS_SET: + { + uint32_t unit; + css_fixed val = *((css_fixed *) bytecode); + ADVANCE(sizeof(val)); + unit = *((uint32_t *) bytecode); + ADVANCE(sizeof(unit)); + dump_unit(val, unit, ptr); + } + break; + } + break; + case CSS_PROP_FLEX_DIRECTION: + switch (value) { + case FLEX_DIRECTION_ROW: + *ptr += sprintf(*ptr, "row"); + break; + case FLEX_DIRECTION_COLUMN: + *ptr += sprintf(*ptr, "column"); + break; + case FLEX_DIRECTION_ROW_REVERSE: + *ptr += sprintf(*ptr, "row-reverse"); + break; + case FLEX_DIRECTION_COLUMN_REVERSE: + *ptr += sprintf(*ptr, "column-reverse"); + break; + } + break; + case CSS_PROP_FLEX_GROW: + switch (value) { + case FLEX_GROW_SET: + { + css_fixed val = *((css_fixed *) bytecode); + ADVANCE(sizeof(val)); + dump_number(val, ptr); + } + break; + } + break; + case CSS_PROP_FLEX_SHRINK: + switch (value) { + case FLEX_SHRINK_SET: + { + css_fixed val = *((css_fixed *) bytecode); + ADVANCE(sizeof(val)); + dump_number(val, ptr); + } + break; + } + break; + case CSS_PROP_FLEX_WRAP: + switch (value) { + case FLEX_WRAP_NOWRAP: + *ptr += sprintf(*ptr, "nowrap"); + break; + case FLEX_WRAP_WRAP: + *ptr += sprintf(*ptr, "wrap"); + break; + case FLEX_WRAP_WRAP_REVERSE: + *ptr += sprintf(*ptr, "wrap-reverse"); + break; + } + break; case CSS_PROP_FLOAT: switch (value) { case FLOAT_LEFT: @@ -1858,6 +2073,29 @@ void dump_bytecode(css_style *style, char **ptr, uint32_t depth) break; } break; + case CSS_PROP_JUSTIFY_CONTENT: + switch (value) { + case JUSTIFY_CONTENT_FLEX_START: + *ptr += sprintf(*ptr, "flex-start"); + break; + case JUSTIFY_CONTENT_FLEX_END: + *ptr += sprintf(*ptr, "flex-end"); + break; + case JUSTIFY_CONTENT_CENTER: + *ptr += sprintf(*ptr, "center"); + break; + case JUSTIFY_CONTENT_SPACE_BETWEEN: + *ptr += sprintf(*ptr, "space-between"); + break; + case JUSTIFY_CONTENT_SPACE_AROUND: + *ptr += sprintf(*ptr, "space-around"); + break; + case JUSTIFY_CONTENT_SPACE_EVENLY: + *ptr += sprintf(*ptr, "space-evenly"); + break; + } + break; + case CSS_PROP_LETTER_SPACING: case CSS_PROP_WORD_SPACING: assert(LETTER_SPACING_SET == @@ -1991,6 +2229,31 @@ void dump_bytecode(css_style *style, char **ptr, uint32_t depth) break; } break; + case CSS_PROP_MIN_HEIGHT: + case CSS_PROP_MIN_WIDTH: + assert(MIN_HEIGHT_SET == + (enum op_min_height) + MIN_WIDTH_SET); + assert(MIN_HEIGHT_AUTO == + (enum op_min_height) + MIN_WIDTH_AUTO); + + switch (value) { + case MIN_HEIGHT_SET: + { + uint32_t unit; + css_fixed val = *((css_fixed *) bytecode); + ADVANCE(sizeof(val)); + unit = *((uint32_t *) bytecode); + ADVANCE(sizeof(unit)); + dump_unit(val, unit, ptr); + } + break; + case MIN_HEIGHT_AUTO: + *ptr += sprintf(*ptr, "auto"); + break; + } + break; case CSS_PROP_OPACITY: switch (value) { case OPACITY_SET: @@ -2002,33 +2265,36 @@ void dump_bytecode(css_style *style, char **ptr, uint32_t depth) break; } break; + case CSS_PROP_ORDER: + switch (value) { + case ORDER_SET: + { + css_fixed val = *((css_fixed *) bytecode); + ADVANCE(sizeof(val)); + dump_number(val, ptr); + } + break; + } + break; case CSS_PROP_PADDING_TOP: case CSS_PROP_PADDING_RIGHT: case CSS_PROP_PADDING_BOTTOM: case CSS_PROP_PADDING_LEFT: - case CSS_PROP_MIN_HEIGHT: - case CSS_PROP_MIN_WIDTH: case CSS_PROP_PAUSE_AFTER: case CSS_PROP_PAUSE_BEFORE: case CSS_PROP_TEXT_INDENT: - assert(MIN_HEIGHT_SET == - (enum op_min_height) - MIN_WIDTH_SET); - assert(MIN_HEIGHT_SET == - (enum op_min_height) + assert(TEXT_INDENT_SET == + (enum op_text_indent) PADDING_SET); - assert(MIN_HEIGHT_SET == - (enum op_min_height) + assert(TEXT_INDENT_SET == + (enum op_text_indent) PAUSE_AFTER_SET); - assert(MIN_HEIGHT_SET == - (enum op_min_height) + assert(TEXT_INDENT_SET == + (enum op_text_indent) PAUSE_BEFORE_SET); - assert(MIN_HEIGHT_SET == - (enum op_min_height) - TEXT_INDENT_SET); switch (value) { - case MIN_HEIGHT_SET: + case TEXT_INDENT_SET: { uint32_t unit; css_fixed val = *((css_fixed *) bytecode); |