diff --git a/Makefile b/Makefile index 8a342b2..2226dfa 100644 --- a/Makefile +++ b/Makefile @@ -70,7 +70,7 @@ clean: clean_include: rm -rf $(INCLUDE_TMP) -clone: create clean_include myhtml_clone mycss_clone modest_clone +clone: create clean_include myhtml_clone mycss_clone modest_clone myfont_clone find include -name "*.h" -exec sed -i '.bak' -E 's/^[ \t]*#[ \t]*include[ \t]*"([^"]+)"/#include <\1>/g' {} \; find include -name "*.h.bak" -exec rm -f {} \; diff --git a/include/mycss/declaration/entry_destroy.h b/include/mycss/declaration/entry_destroy.h index 21f0bcf..3e6e774 100644 --- a/include/mycss/declaration/entry_destroy.h +++ b/include/mycss/declaration/entry_destroy.h @@ -38,6 +38,7 @@ mycss_declaration_entry_t * mycss_declaration_entry_destroy_border_width(mycss_d mycss_declaration_entry_t * mycss_declaration_entry_destroy_border_style(mycss_declaration_t* declaration, mycss_declaration_entry_t* decl_entry, bool self_destroy); mycss_declaration_entry_t * mycss_declaration_entry_destroy_border_color(mycss_declaration_t* declaration, mycss_declaration_entry_t* decl_entry, bool self_destroy); mycss_declaration_entry_t * mycss_declaration_entry_destroy_font(mycss_declaration_t* declaration, mycss_declaration_entry_t* decl_entry, bool self_destroy); +mycss_declaration_entry_t * mycss_declaration_entry_destroy_border_x(mycss_declaration_t* declaration, mycss_declaration_entry_t* decl_entry, bool self_destroy); mycss_declaration_entry_t * mycss_declaration_entry_destroy_border_top_right_radius(mycss_declaration_t* declaration, mycss_declaration_entry_t* decl_entry, bool self_destroy); mycss_declaration_entry_t * mycss_declaration_entry_destroy_border_top_left_radius(mycss_declaration_t* declaration, mycss_declaration_entry_t* decl_entry, bool self_destroy); mycss_declaration_entry_t * mycss_declaration_entry_destroy_border_bottom_right_radius(mycss_declaration_t* declaration, mycss_declaration_entry_t* decl_entry, bool self_destroy); diff --git a/include/mycss/declaration/entry_destroy_resources.h b/include/mycss/declaration/entry_destroy_resources.h index 57d3c65..c9ba087 100644 --- a/include/mycss/declaration/entry_destroy_resources.h +++ b/include/mycss/declaration/entry_destroy_resources.h @@ -51,8 +51,8 @@ static mycss_callback_declaration_destroy_f mycss_declaration_entry_destroy_map_ mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_undef, - mycss_declaration_entry_destroy_undef, - mycss_declaration_entry_destroy_undef, + mycss_declaration_entry_destroy_border_x, + mycss_declaration_entry_destroy_border_x, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_border_bottom_left_radius, mycss_declaration_entry_destroy_border_bottom_right_radius, @@ -65,18 +65,18 @@ static mycss_callback_declaration_destroy_f mycss_declaration_entry_destroy_map_ mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_undef, + mycss_declaration_entry_destroy_border_x, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_undef, - mycss_declaration_entry_destroy_undef, - mycss_declaration_entry_destroy_undef, + mycss_declaration_entry_destroy_border_x, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_border_style, - mycss_declaration_entry_destroy_undef, + mycss_declaration_entry_destroy_border_x, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_border_top_left_radius, mycss_declaration_entry_destroy_border_top_right_radius, diff --git a/include/mycss/declaration/myosi.h b/include/mycss/declaration/myosi.h index f333e6a..2a44774 100644 --- a/include/mycss/declaration/myosi.h +++ b/include/mycss/declaration/myosi.h @@ -48,7 +48,6 @@ struct mycss_declaration { mycss_declaration_entry_t** entry; mycss_declaration_entry_t* entry_last; - mycss_declaration_entry_t* entry_temp; mycss_stack_t* stack; diff --git a/include/mycss/declaration/serialization.h b/include/mycss/declaration/serialization.h index 7d9ac91..7a24faa 100644 --- a/include/mycss/declaration/serialization.h +++ b/include/mycss/declaration/serialization.h @@ -36,6 +36,7 @@ typedef bool (*mycss_declaration_serialization_f)(mycss_entry_t* entry, mycss_de bool mycss_declaration_serialization_entry(mycss_entry_t* entry, mycss_declaration_entry_t* dec_entry, mycss_callback_serialization_f callback, void* context); void mycss_declaration_serialization_entries(mycss_entry_t* entry, mycss_declaration_entry_t* first_dec_entry, mycss_callback_serialization_f callback, void* context); +bool mycss_declaration_serialization_entry_only_value(mycss_entry_t* entry, mycss_declaration_entry_t* dec_entry,mycss_callback_serialization_f callback, void* context); bool mycss_declaration_serialization_undef(mycss_entry_t* entry, mycss_declaration_entry_t* dec_entry, mycss_callback_serialization_f callback, void* context); bool mycss_declaration_serialization_shorthand_four(mycss_entry_t* entry, mycss_declaration_entry_t* dec_entry, mycss_callback_serialization_f callback, void* context); @@ -53,6 +54,7 @@ bool mycss_declaration_serialization_background_image(mycss_entry_t* entry, mycs bool mycss_declaration_serialization_background_repeat(mycss_entry_t* entry, mycss_declaration_entry_t* dec_entry, mycss_callback_serialization_f callback, void* context); bool mycss_declaration_serialization_background_position(mycss_entry_t* entry, mycss_declaration_entry_t* dec_entry, mycss_callback_serialization_f callback, void* context); bool mycss_declaration_serialization_background_size(mycss_entry_t* entry, mycss_declaration_entry_t* dec_entry, mycss_callback_serialization_f callback, void* context); +bool mycss_declaration_serialization_border_x(mycss_entry_t* entry, mycss_declaration_entry_t* dec_entry, mycss_callback_serialization_f callback, void* context); #ifdef __cplusplus } /* extern "C" */ diff --git a/include/mycss/declaration/serialization_resources.h b/include/mycss/declaration/serialization_resources.h index d24acc0..821e603 100644 --- a/include/mycss/declaration/serialization_resources.h +++ b/include/mycss/declaration/serialization_resources.h @@ -51,8 +51,8 @@ static mycss_declaration_serialization_f mycss_declaration_serialization_map_by_ mycss_declaration_serialization_undef, mycss_declaration_serialization_undef, mycss_declaration_serialization_undef, - mycss_declaration_serialization_undef, - mycss_declaration_serialization_undef, + mycss_declaration_serialization_border_x, + mycss_declaration_serialization_border_x, mycss_declaration_serialization_undef, mycss_declaration_serialization_shorthand_two_type, mycss_declaration_serialization_shorthand_two_type, @@ -65,18 +65,18 @@ static mycss_declaration_serialization_f mycss_declaration_serialization_map_by_ mycss_declaration_serialization_undef, mycss_declaration_serialization_undef, mycss_declaration_serialization_undef, - mycss_declaration_serialization_undef, + mycss_declaration_serialization_border_x, mycss_declaration_serialization_undef, mycss_declaration_serialization_undef, mycss_declaration_serialization_undef, mycss_declaration_serialization_border_radius, - mycss_declaration_serialization_undef, + mycss_declaration_serialization_border_x, mycss_declaration_serialization_undef, mycss_declaration_serialization_undef, mycss_declaration_serialization_undef, mycss_declaration_serialization_undef, mycss_declaration_serialization_shorthand_four, - mycss_declaration_serialization_undef, + mycss_declaration_serialization_border_x, mycss_declaration_serialization_undef, mycss_declaration_serialization_shorthand_two_type, mycss_declaration_serialization_shorthand_two_type, diff --git a/include/mycss/property/const.h b/include/mycss/property/const.h index 54a1c4a..99d5b73 100644 --- a/include/mycss/property/const.h +++ b/include/mycss/property/const.h @@ -343,12 +343,12 @@ enum mycss_property_value { typedef mycss_property_value_t; enum mycss_property_align_content { - MyCSS_PROPERTY_ALIGN_CONTENT_STRETCH = 0x014c, - MyCSS_PROPERTY_ALIGN_CONTENT_SPACE_AROUND = 0x0140, - MyCSS_PROPERTY_ALIGN_CONTENT_SPACE_BETWEEN = 0x0141, MyCSS_PROPERTY_ALIGN_CONTENT_CENTER = 0x0037, MyCSS_PROPERTY_ALIGN_CONTENT_FLEX_END = 0x0079, - MyCSS_PROPERTY_ALIGN_CONTENT_FLEX_START = 0x007a + MyCSS_PROPERTY_ALIGN_CONTENT_FLEX_START = 0x007a, + MyCSS_PROPERTY_ALIGN_CONTENT_STRETCH = 0x014c, + MyCSS_PROPERTY_ALIGN_CONTENT_SPACE_AROUND = 0x0140, + MyCSS_PROPERTY_ALIGN_CONTENT_SPACE_BETWEEN = 0x0141 } typedef mycss_property_align_content_t; @@ -380,10 +380,10 @@ enum mycss_property_animation_direction { typedef mycss_property_animation_direction_t; enum mycss_property_animation_fill_mode { + MyCSS_PROPERTY_ANIMATION_FILL_MODE_BOTH = 0x002c, MyCSS_PROPERTY_ANIMATION_FILL_MODE_NONE = 0x00d3, MyCSS_PROPERTY_ANIMATION_FILL_MODE_FORWARDS = 0x007e, - MyCSS_PROPERTY_ANIMATION_FILL_MODE_BACKWARDS = 0x001e, - MyCSS_PROPERTY_ANIMATION_FILL_MODE_BOTH = 0x002c + MyCSS_PROPERTY_ANIMATION_FILL_MODE_BACKWARDS = 0x001e } typedef mycss_property_animation_fill_mode_t; @@ -399,13 +399,13 @@ enum mycss_property_animation_play_state { typedef mycss_property_animation_play_state_t; enum mycss_property_animation_timing_function { - MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_EASE = 0x005e, - MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_STEP_START = 0x014a, - MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_EASE_IN_OUT = 0x0060, MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_LINEAR = 0x00b2, MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_EASE_IN = 0x005f, MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_EASE_OUT = 0x0061, - MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_STEP_END = 0x0149 + MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_STEP_END = 0x0149, + MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_EASE = 0x005e, + MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_STEP_START = 0x014a, + MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_EASE_IN_OUT = 0x0060 } typedef mycss_property_animation_timing_function_t; @@ -528,11 +528,55 @@ enum mycss_property_bookmark_level { typedef mycss_property_bookmark_level_t; enum mycss_property_bookmark_state { - MyCSS_PROPERTY_BOOKMARK_STATE_OPEN = 0x00ea, - MyCSS_PROPERTY_BOOKMARK_STATE_CLOSED = 0x003c + MyCSS_PROPERTY_BOOKMARK_STATE_CLOSED = 0x003c, + MyCSS_PROPERTY_BOOKMARK_STATE_OPEN = 0x00ea } typedef mycss_property_bookmark_state_t; +enum mycss_property_border { + MyCSS_PROPERTY_BORDER_DOUBLE = 0x005b, + MyCSS_PROPERTY_BORDER_SOLID = 0x013d, + MyCSS_PROPERTY_BORDER_OUTSET = 0x00ef, + MyCSS_PROPERTY_BORDER_INHERIT = 0x0092, + MyCSS_PROPERTY_BORDER_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_NONE = 0x00d3, + MyCSS_PROPERTY_BORDER__LENGTH = 0x0199, + MyCSS_PROPERTY_BORDER_INITIAL = 0x0093, + MyCSS_PROPERTY_BORDER_THIN = 0x0162, + MyCSS_PROPERTY_BORDER_INSET = 0x009b, + MyCSS_PROPERTY_BORDER_GROOVE = 0x0085, + MyCSS_PROPERTY_BORDER__COLOR = 0x018f, + MyCSS_PROPERTY_BORDER_DOTTED = 0x005a, + MyCSS_PROPERTY_BORDER_THICK = 0x0161, + MyCSS_PROPERTY_BORDER_MEDIUM = 0x00c6, + MyCSS_PROPERTY_BORDER_DASHED = 0x0052, + MyCSS_PROPERTY_BORDER_HIDDEN = 0x0088, + MyCSS_PROPERTY_BORDER_RIDGE = 0x0114 +} +typedef mycss_property_border_t; + +enum mycss_property_border_bottom { + MyCSS_PROPERTY_BORDER_BOTTOM_THIN = 0x0162, + MyCSS_PROPERTY_BORDER_BOTTOM__COLOR = 0x018f, + MyCSS_PROPERTY_BORDER_BOTTOM_NONE = 0x00d3, + MyCSS_PROPERTY_BORDER_BOTTOM__LENGTH = 0x0199, + MyCSS_PROPERTY_BORDER_BOTTOM_THICK = 0x0161, + MyCSS_PROPERTY_BORDER_BOTTOM_MEDIUM = 0x00c6, + MyCSS_PROPERTY_BORDER_BOTTOM_SOLID = 0x013d, + MyCSS_PROPERTY_BORDER_BOTTOM_HIDDEN = 0x0088, + MyCSS_PROPERTY_BORDER_BOTTOM_DOTTED = 0x005a, + MyCSS_PROPERTY_BORDER_BOTTOM_DASHED = 0x0052, + MyCSS_PROPERTY_BORDER_BOTTOM_RIDGE = 0x0114, + MyCSS_PROPERTY_BORDER_BOTTOM_DOUBLE = 0x005b, + MyCSS_PROPERTY_BORDER_BOTTOM_GROOVE = 0x0085, + MyCSS_PROPERTY_BORDER_BOTTOM_INSET = 0x009b, + MyCSS_PROPERTY_BORDER_BOTTOM_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_BOTTOM_OUTSET = 0x00ef, + MyCSS_PROPERTY_BORDER_BOTTOM_INHERIT = 0x0092, + MyCSS_PROPERTY_BORDER_BOTTOM_INITIAL = 0x0093 +} +typedef mycss_property_border_bottom_t; + enum mycss_property_border_bottom_color { MyCSS_PROPERTY_BORDER_BOTTOM_COLOR_UNSET = 0x016e, MyCSS_PROPERTY_BORDER_BOTTOM_COLOR__COLOR = 0x018f, @@ -542,22 +586,25 @@ enum mycss_property_border_bottom_color { typedef mycss_property_border_bottom_color_t; enum mycss_property_border_bottom_left_radius { - MyCSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS_UNSET = 0x016e, - MyCSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS__LENGTH = 0x0199, - MyCSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS_INHERIT = 0x0092, - MyCSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS_INITIAL = 0x0093 + MyCSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS__LENGTH = 0x0199, + MyCSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS_INHERIT = 0x0092, + MyCSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS_INITIAL = 0x0093, + MyCSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS__PERCENTAGE = 0x019c } typedef mycss_property_border_bottom_left_radius_t; enum mycss_property_border_bottom_right_radius { - MyCSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS__LENGTH = 0x0199, - MyCSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS_INHERIT = 0x0092, - MyCSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS_INITIAL = 0x0093, - MyCSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS_UNSET = 0x016e + MyCSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS__LENGTH = 0x0199, + MyCSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS_INHERIT = 0x0092, + MyCSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS_INITIAL = 0x0093, + MyCSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS__PERCENTAGE = 0x019c } typedef mycss_property_border_bottom_right_radius_t; enum mycss_property_border_bottom_style { + MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_NONE = 0x00d3, MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_HIDDEN = 0x0088, MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_DOTTED = 0x005a, MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_DASHED = 0x0052, @@ -568,9 +615,8 @@ enum mycss_property_border_bottom_style { MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_UNSET = 0x016e, MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_OUTSET = 0x00ef, MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_INHERIT = 0x0092, - MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_SOLID = 0x013d, MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_INITIAL = 0x0093, - MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_NONE = 0x00d3 + MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_SOLID = 0x013d } typedef mycss_property_border_bottom_style_t; @@ -617,6 +663,28 @@ enum mycss_property_border_image_width { } typedef mycss_property_border_image_width_t; +enum mycss_property_border_left { + MyCSS_PROPERTY_BORDER_LEFT_THIN = 0x0162, + MyCSS_PROPERTY_BORDER_LEFT__COLOR = 0x018f, + MyCSS_PROPERTY_BORDER_LEFT_NONE = 0x00d3, + MyCSS_PROPERTY_BORDER_LEFT__LENGTH = 0x0199, + MyCSS_PROPERTY_BORDER_LEFT_THICK = 0x0161, + MyCSS_PROPERTY_BORDER_LEFT_MEDIUM = 0x00c6, + MyCSS_PROPERTY_BORDER_LEFT_SOLID = 0x013d, + MyCSS_PROPERTY_BORDER_LEFT_HIDDEN = 0x0088, + MyCSS_PROPERTY_BORDER_LEFT_DOTTED = 0x005a, + MyCSS_PROPERTY_BORDER_LEFT_DASHED = 0x0052, + MyCSS_PROPERTY_BORDER_LEFT_RIDGE = 0x0114, + MyCSS_PROPERTY_BORDER_LEFT_DOUBLE = 0x005b, + MyCSS_PROPERTY_BORDER_LEFT_GROOVE = 0x0085, + MyCSS_PROPERTY_BORDER_LEFT_INSET = 0x009b, + MyCSS_PROPERTY_BORDER_LEFT_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_LEFT_OUTSET = 0x00ef, + MyCSS_PROPERTY_BORDER_LEFT_INHERIT = 0x0092, + MyCSS_PROPERTY_BORDER_LEFT_INITIAL = 0x0093 +} +typedef mycss_property_border_left_t; + enum mycss_property_border_left_color { MyCSS_PROPERTY_BORDER_LEFT_COLOR_UNSET = 0x016e, MyCSS_PROPERTY_BORDER_LEFT_COLOR__COLOR = 0x018f, @@ -643,16 +711,47 @@ enum mycss_property_border_left_style { typedef mycss_property_border_left_style_t; enum mycss_property_border_left_width { + MyCSS_PROPERTY_BORDER_LEFT_WIDTH_INITIAL = 0x0093, MyCSS_PROPERTY_BORDER_LEFT_WIDTH_THIN = 0x0162, MyCSS_PROPERTY_BORDER_LEFT_WIDTH__LENGTH = 0x0199, MyCSS_PROPERTY_BORDER_LEFT_WIDTH_THICK = 0x0161, MyCSS_PROPERTY_BORDER_LEFT_WIDTH_MEDIUM = 0x00c6, MyCSS_PROPERTY_BORDER_LEFT_WIDTH_UNSET = 0x016e, - MyCSS_PROPERTY_BORDER_LEFT_WIDTH_INHERIT = 0x0092, - MyCSS_PROPERTY_BORDER_LEFT_WIDTH_INITIAL = 0x0093 + MyCSS_PROPERTY_BORDER_LEFT_WIDTH_INHERIT = 0x0092 } typedef mycss_property_border_left_width_t; +enum mycss_property_border_radius { + MyCSS_PROPERTY_BORDER_RADIUS_INITIAL = 0x0093, + MyCSS_PROPERTY_BORDER_RADIUS__PERCENTAGE = 0x019c, + MyCSS_PROPERTY_BORDER_RADIUS_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_RADIUS__LENGTH = 0x0199, + MyCSS_PROPERTY_BORDER_RADIUS_INHERIT = 0x0092 +} +typedef mycss_property_border_radius_t; + +enum mycss_property_border_right { + MyCSS_PROPERTY_BORDER_RIGHT_THICK = 0x0161, + MyCSS_PROPERTY_BORDER_RIGHT_MEDIUM = 0x00c6, + MyCSS_PROPERTY_BORDER_RIGHT_SOLID = 0x013d, + MyCSS_PROPERTY_BORDER_RIGHT_HIDDEN = 0x0088, + MyCSS_PROPERTY_BORDER_RIGHT_DOTTED = 0x005a, + MyCSS_PROPERTY_BORDER_RIGHT_DASHED = 0x0052, + MyCSS_PROPERTY_BORDER_RIGHT_RIDGE = 0x0114, + MyCSS_PROPERTY_BORDER_RIGHT_DOUBLE = 0x005b, + MyCSS_PROPERTY_BORDER_RIGHT_GROOVE = 0x0085, + MyCSS_PROPERTY_BORDER_RIGHT_INSET = 0x009b, + MyCSS_PROPERTY_BORDER_RIGHT_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_RIGHT_OUTSET = 0x00ef, + MyCSS_PROPERTY_BORDER_RIGHT_INHERIT = 0x0092, + MyCSS_PROPERTY_BORDER_RIGHT_INITIAL = 0x0093, + MyCSS_PROPERTY_BORDER_RIGHT_THIN = 0x0162, + MyCSS_PROPERTY_BORDER_RIGHT__COLOR = 0x018f, + MyCSS_PROPERTY_BORDER_RIGHT_NONE = 0x00d3, + MyCSS_PROPERTY_BORDER_RIGHT__LENGTH = 0x0199 +} +typedef mycss_property_border_right_t; + enum mycss_property_border_right_color { MyCSS_PROPERTY_BORDER_RIGHT_COLOR_UNSET = 0x016e, MyCSS_PROPERTY_BORDER_RIGHT_COLOR__COLOR = 0x018f, @@ -662,35 +761,34 @@ enum mycss_property_border_right_color { typedef mycss_property_border_right_color_t; enum mycss_property_border_right_style { - MyCSS_PROPERTY_BORDER_RIGHT_STYLE_SOLID = 0x013d, - MyCSS_PROPERTY_BORDER_RIGHT_STYLE_INITIAL = 0x0093, - MyCSS_PROPERTY_BORDER_RIGHT_STYLE_HIDDEN = 0x0088, MyCSS_PROPERTY_BORDER_RIGHT_STYLE_DOTTED = 0x005a, MyCSS_PROPERTY_BORDER_RIGHT_STYLE_DASHED = 0x0052, MyCSS_PROPERTY_BORDER_RIGHT_STYLE_RIDGE = 0x0114, MyCSS_PROPERTY_BORDER_RIGHT_STYLE_DOUBLE = 0x005b, MyCSS_PROPERTY_BORDER_RIGHT_STYLE_GROOVE = 0x0085, + MyCSS_PROPERTY_BORDER_RIGHT_STYLE_HIDDEN = 0x0088, MyCSS_PROPERTY_BORDER_RIGHT_STYLE_INSET = 0x009b, MyCSS_PROPERTY_BORDER_RIGHT_STYLE_UNSET = 0x016e, MyCSS_PROPERTY_BORDER_RIGHT_STYLE_OUTSET = 0x00ef, MyCSS_PROPERTY_BORDER_RIGHT_STYLE_INHERIT = 0x0092, - MyCSS_PROPERTY_BORDER_RIGHT_STYLE_NONE = 0x00d3 + MyCSS_PROPERTY_BORDER_RIGHT_STYLE_INITIAL = 0x0093, + MyCSS_PROPERTY_BORDER_RIGHT_STYLE_NONE = 0x00d3, + MyCSS_PROPERTY_BORDER_RIGHT_STYLE_SOLID = 0x013d } typedef mycss_property_border_right_style_t; enum mycss_property_border_right_width { - MyCSS_PROPERTY_BORDER_RIGHT_WIDTH_INHERIT = 0x0092, - MyCSS_PROPERTY_BORDER_RIGHT_WIDTH_UNSET = 0x016e, MyCSS_PROPERTY_BORDER_RIGHT_WIDTH_THIN = 0x0162, MyCSS_PROPERTY_BORDER_RIGHT_WIDTH__LENGTH = 0x0199, MyCSS_PROPERTY_BORDER_RIGHT_WIDTH_THICK = 0x0161, MyCSS_PROPERTY_BORDER_RIGHT_WIDTH_MEDIUM = 0x00c6, + MyCSS_PROPERTY_BORDER_RIGHT_WIDTH_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_RIGHT_WIDTH_INHERIT = 0x0092, MyCSS_PROPERTY_BORDER_RIGHT_WIDTH_INITIAL = 0x0093 } typedef mycss_property_border_right_width_t; enum mycss_property_border_style { - MyCSS_PROPERTY_BORDER_STYLE_NONE = 0x00d3, MyCSS_PROPERTY_BORDER_STYLE_SOLID = 0x013d, MyCSS_PROPERTY_BORDER_STYLE_HIDDEN = 0x0088, MyCSS_PROPERTY_BORDER_STYLE_DOTTED = 0x005a, @@ -702,10 +800,33 @@ enum mycss_property_border_style { MyCSS_PROPERTY_BORDER_STYLE_UNSET = 0x016e, MyCSS_PROPERTY_BORDER_STYLE_OUTSET = 0x00ef, MyCSS_PROPERTY_BORDER_STYLE_INHERIT = 0x0092, - MyCSS_PROPERTY_BORDER_STYLE_INITIAL = 0x0093 + MyCSS_PROPERTY_BORDER_STYLE_INITIAL = 0x0093, + MyCSS_PROPERTY_BORDER_STYLE_NONE = 0x00d3 } typedef mycss_property_border_style_t; +enum mycss_property_border_top { + MyCSS_PROPERTY_BORDER_TOP__LENGTH = 0x0199, + MyCSS_PROPERTY_BORDER_TOP_NONE = 0x00d3, + MyCSS_PROPERTY_BORDER_TOP_THIN = 0x0162, + MyCSS_PROPERTY_BORDER_TOP__COLOR = 0x018f, + MyCSS_PROPERTY_BORDER_TOP_THICK = 0x0161, + MyCSS_PROPERTY_BORDER_TOP_MEDIUM = 0x00c6, + MyCSS_PROPERTY_BORDER_TOP_SOLID = 0x013d, + MyCSS_PROPERTY_BORDER_TOP_HIDDEN = 0x0088, + MyCSS_PROPERTY_BORDER_TOP_DOTTED = 0x005a, + MyCSS_PROPERTY_BORDER_TOP_DASHED = 0x0052, + MyCSS_PROPERTY_BORDER_TOP_RIDGE = 0x0114, + MyCSS_PROPERTY_BORDER_TOP_DOUBLE = 0x005b, + MyCSS_PROPERTY_BORDER_TOP_GROOVE = 0x0085, + MyCSS_PROPERTY_BORDER_TOP_INSET = 0x009b, + MyCSS_PROPERTY_BORDER_TOP_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_TOP_OUTSET = 0x00ef, + MyCSS_PROPERTY_BORDER_TOP_INHERIT = 0x0092, + MyCSS_PROPERTY_BORDER_TOP_INITIAL = 0x0093 +} +typedef mycss_property_border_top_t; + enum mycss_property_border_top_color { MyCSS_PROPERTY_BORDER_TOP_COLOR_UNSET = 0x016e, MyCSS_PROPERTY_BORDER_TOP_COLOR__COLOR = 0x018f, @@ -715,18 +836,20 @@ enum mycss_property_border_top_color { typedef mycss_property_border_top_color_t; enum mycss_property_border_top_left_radius { - MyCSS_PROPERTY_BORDER_TOP_LEFT_RADIUS_INITIAL = 0x0093, - MyCSS_PROPERTY_BORDER_TOP_LEFT_RADIUS_UNSET = 0x016e, - MyCSS_PROPERTY_BORDER_TOP_LEFT_RADIUS__LENGTH = 0x0199, - MyCSS_PROPERTY_BORDER_TOP_LEFT_RADIUS_INHERIT = 0x0092 + MyCSS_PROPERTY_BORDER_TOP_LEFT_RADIUS_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_TOP_LEFT_RADIUS__LENGTH = 0x0199, + MyCSS_PROPERTY_BORDER_TOP_LEFT_RADIUS_INHERIT = 0x0092, + MyCSS_PROPERTY_BORDER_TOP_LEFT_RADIUS_INITIAL = 0x0093, + MyCSS_PROPERTY_BORDER_TOP_LEFT_RADIUS__PERCENTAGE = 0x019c } typedef mycss_property_border_top_left_radius_t; enum mycss_property_border_top_right_radius { - MyCSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS_UNSET = 0x016e, - MyCSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS__LENGTH = 0x0199, - MyCSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS_INHERIT = 0x0092, - MyCSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS_INITIAL = 0x0093 + MyCSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS_INITIAL = 0x0093, + MyCSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS__PERCENTAGE = 0x019c, + MyCSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS__LENGTH = 0x0199, + MyCSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS_INHERIT = 0x0092 } typedef mycss_property_border_top_right_radius_t; @@ -748,24 +871,24 @@ enum mycss_property_border_top_style { typedef mycss_property_border_top_style_t; enum mycss_property_border_top_width { - MyCSS_PROPERTY_BORDER_TOP_WIDTH_MEDIUM = 0x00c6, + MyCSS_PROPERTY_BORDER_TOP_WIDTH_THIN = 0x0162, MyCSS_PROPERTY_BORDER_TOP_WIDTH__LENGTH = 0x0199, MyCSS_PROPERTY_BORDER_TOP_WIDTH_THICK = 0x0161, + MyCSS_PROPERTY_BORDER_TOP_WIDTH_MEDIUM = 0x00c6, MyCSS_PROPERTY_BORDER_TOP_WIDTH_UNSET = 0x016e, MyCSS_PROPERTY_BORDER_TOP_WIDTH_INHERIT = 0x0092, - MyCSS_PROPERTY_BORDER_TOP_WIDTH_THIN = 0x0162, MyCSS_PROPERTY_BORDER_TOP_WIDTH_INITIAL = 0x0093 } typedef mycss_property_border_top_width_t; enum mycss_property_border_width { - MyCSS_PROPERTY_BORDER_WIDTH__LENGTH = 0x0199, - MyCSS_PROPERTY_BORDER_WIDTH_INITIAL = 0x0093, MyCSS_PROPERTY_BORDER_WIDTH_THIN = 0x0162, + MyCSS_PROPERTY_BORDER_WIDTH__LENGTH = 0x0199, MyCSS_PROPERTY_BORDER_WIDTH_THICK = 0x0161, MyCSS_PROPERTY_BORDER_WIDTH_MEDIUM = 0x00c6, MyCSS_PROPERTY_BORDER_WIDTH_UNSET = 0x016e, - MyCSS_PROPERTY_BORDER_WIDTH_INHERIT = 0x0092 + MyCSS_PROPERTY_BORDER_WIDTH_INHERIT = 0x0092, + MyCSS_PROPERTY_BORDER_WIDTH_INITIAL = 0x0093 } typedef mycss_property_border_width_t; @@ -859,10 +982,10 @@ enum mycss_property_caret_color { typedef mycss_property_caret_color_t; enum mycss_property_caret_shape { - MyCSS_PROPERTY_CARET_SHAPE_BAR = 0x0021, MyCSS_PROPERTY_CARET_SHAPE_UNDERSCORE = 0x016b, MyCSS_PROPERTY_CARET_SHAPE_AUTO = 0x0018, - MyCSS_PROPERTY_CARET_SHAPE_BLOCK = 0x0026 + MyCSS_PROPERTY_CARET_SHAPE_BLOCK = 0x0026, + MyCSS_PROPERTY_CARET_SHAPE_BAR = 0x0021 } typedef mycss_property_caret_shape_t; @@ -907,18 +1030,18 @@ enum mycss_property_color_adjust { typedef mycss_property_color_adjust_t; enum mycss_property_color_interpolation { + MyCSS_PROPERTY_COLOR_INTERPOLATION_AUTO = 0x0018, MyCSS_PROPERTY_COLOR_INTERPOLATION_SRGB = 0x0144, MyCSS_PROPERTY_COLOR_INTERPOLATION_INHERIT = 0x0092, - MyCSS_PROPERTY_COLOR_INTERPOLATION_LINEARRGB = 0x00b3, - MyCSS_PROPERTY_COLOR_INTERPOLATION_AUTO = 0x0018 + MyCSS_PROPERTY_COLOR_INTERPOLATION_LINEARRGB = 0x00b3 } typedef mycss_property_color_interpolation_t; enum mycss_property_color_interpolation_filters { + MyCSS_PROPERTY_COLOR_INTERPOLATION_FILTERS_INHERIT = 0x0092, MyCSS_PROPERTY_COLOR_INTERPOLATION_FILTERS_LINEARRGB = 0x00b3, MyCSS_PROPERTY_COLOR_INTERPOLATION_FILTERS_AUTO = 0x0018, - MyCSS_PROPERTY_COLOR_INTERPOLATION_FILTERS_SRGB = 0x0144, - MyCSS_PROPERTY_COLOR_INTERPOLATION_FILTERS_INHERIT = 0x0092 + MyCSS_PROPERTY_COLOR_INTERPOLATION_FILTERS_SRGB = 0x0144 } typedef mycss_property_color_interpolation_filters_t; @@ -985,8 +1108,8 @@ enum mycss_property_contain { typedef mycss_property_contain_t; enum mycss_property_content { - MyCSS_PROPERTY_CONTENT_NORMAL = 0x00d5, - MyCSS_PROPERTY_CONTENT_NONE = 0x00d3 + MyCSS_PROPERTY_CONTENT_NONE = 0x00d3, + MyCSS_PROPERTY_CONTENT_NORMAL = 0x00d5 } typedef mycss_property_content_t; @@ -1015,8 +1138,6 @@ enum mycss_property_cue_before { typedef mycss_property_cue_before_t; enum mycss_property_cursor { - MyCSS_PROPERTY_CURSOR_CELL = 0x0036, - MyCSS_PROPERTY_CURSOR_DEFAULT = 0x0053, MyCSS_PROPERTY_CURSOR_HELP = 0x0087, MyCSS_PROPERTY_CURSOR_POINTER = 0x0102, MyCSS_PROPERTY_CURSOR_CONTEXT_MENU = 0x004a, @@ -1053,13 +1174,18 @@ enum mycss_property_cursor { MyCSS_PROPERTY_CURSOR_ROW_RESIZE = 0x011a, MyCSS_PROPERTY_CURSOR_ALL_SCROLL = 0x0013, MyCSS_PROPERTY_CURSOR_ZOOM_OUT = 0x018e, - MyCSS_PROPERTY_CURSOR_INITIAL = 0x0093 + MyCSS_PROPERTY_CURSOR_INITIAL = 0x0093, + MyCSS_PROPERTY_CURSOR_CELL = 0x0036, + MyCSS_PROPERTY_CURSOR_DEFAULT = 0x0053 } typedef mycss_property_cursor_t; enum mycss_property_direction { - MyCSS_PROPERTY_DIRECTION_LTR = 0x00be, - MyCSS_PROPERTY_DIRECTION_RTL = 0x011c + MyCSS_PROPERTY_DIRECTION_LTR = 0x00be, + MyCSS_PROPERTY_DIRECTION_RTL = 0x011c, + MyCSS_PROPERTY_DIRECTION_INHERIT = 0x0092, + MyCSS_PROPERTY_DIRECTION_UNSET = 0x016e, + MyCSS_PROPERTY_DIRECTION_INITIAL = 0x0093 } typedef mycss_property_direction_t; @@ -1111,9 +1237,9 @@ enum mycss_property_fill_opacity { typedef mycss_property_fill_opacity_t; enum mycss_property_fill_rule { - MyCSS_PROPERTY_FILL_RULE_NONZERO = 0x00d4, + MyCSS_PROPERTY_FILL_RULE_EVENODD = 0x0067, MyCSS_PROPERTY_FILL_RULE_INHERIT = 0x0092, - MyCSS_PROPERTY_FILL_RULE_EVENODD = 0x0067 + MyCSS_PROPERTY_FILL_RULE_NONZERO = 0x00d4 } typedef mycss_property_fill_rule_t; @@ -1123,27 +1249,27 @@ enum mycss_property_flex { typedef mycss_property_flex_t; enum mycss_property_flex_basis { - MyCSS_PROPERTY_FLEX_BASIS_CONTENT = 0x0045, - MyCSS_PROPERTY_FLEX_BASIS_AUTO = 0x0018 + MyCSS_PROPERTY_FLEX_BASIS_AUTO = 0x0018, + MyCSS_PROPERTY_FLEX_BASIS_CONTENT = 0x0045 } typedef mycss_property_flex_basis_t; enum mycss_property_flex_direction { - MyCSS_PROPERTY_FLEX_DIRECTION_ROW_REVERSE = 0x011b, - MyCSS_PROPERTY_FLEX_DIRECTION_COLUMN_REVERSE = 0x003f, + MyCSS_PROPERTY_FLEX_DIRECTION_COLUMN = 0x003e, MyCSS_PROPERTY_FLEX_DIRECTION_ROW = 0x0119, - MyCSS_PROPERTY_FLEX_DIRECTION_COLUMN = 0x003e + MyCSS_PROPERTY_FLEX_DIRECTION_ROW_REVERSE = 0x011b, + MyCSS_PROPERTY_FLEX_DIRECTION_COLUMN_REVERSE = 0x003f } typedef mycss_property_flex_direction_t; enum mycss_property_flex_flow { + MyCSS_PROPERTY_FLEX_FLOW_ROW_REVERSE = 0x011b, + MyCSS_PROPERTY_FLEX_FLOW_ROW = 0x0119, + MyCSS_PROPERTY_FLEX_FLOW_COLUMN = 0x003e, MyCSS_PROPERTY_FLEX_FLOW_WRAP = 0x017c, MyCSS_PROPERTY_FLEX_FLOW_NOWRAP = 0x00d7, MyCSS_PROPERTY_FLEX_FLOW_COLUMN_REVERSE = 0x003f, - MyCSS_PROPERTY_FLEX_FLOW_WRAP_REVERSE = 0x017d, - MyCSS_PROPERTY_FLEX_FLOW_ROW_REVERSE = 0x011b, - MyCSS_PROPERTY_FLEX_FLOW_ROW = 0x0119, - MyCSS_PROPERTY_FLEX_FLOW_COLUMN = 0x003e + MyCSS_PROPERTY_FLEX_FLOW_WRAP_REVERSE = 0x017d } typedef mycss_property_flex_flow_t; @@ -1195,6 +1321,7 @@ enum mycss_property_font { typedef mycss_property_font_t; enum mycss_property_font_family { + MyCSS_PROPERTY_FONT_FAMILY_SANS_SERIF = 0x0125, MyCSS_PROPERTY_FONT_FAMILY__GENERIC_FAMILY = 0x0194, MyCSS_PROPERTY_FONT_FAMILY_FANTASY = 0x006e, MyCSS_PROPERTY_FONT_FAMILY_UNSE = 0x016d, @@ -1203,8 +1330,7 @@ enum mycss_property_font_family { MyCSS_PROPERTY_FONT_FAMILY__FAMILY_NAME = 0x0193, MyCSS_PROPERTY_FONT_FAMILY_INHERIT = 0x0092, MyCSS_PROPERTY_FONT_FAMILY_MONOSPACE = 0x00cf, - MyCSS_PROPERTY_FONT_FAMILY_INITIAL = 0x0093, - MyCSS_PROPERTY_FONT_FAMILY_SANS_SERIF = 0x0125 + MyCSS_PROPERTY_FONT_FAMILY_INITIAL = 0x0093 } typedef mycss_property_font_family_t; @@ -1228,7 +1354,8 @@ enum mycss_property_font_language_override { typedef mycss_property_font_language_override_t; enum mycss_property_font_size { - MyCSS_PROPERTY_FONT_SIZE_INITIAL = 0x0093, + MyCSS_PROPERTY_FONT_SIZE_INHERIT = 0x0092, + MyCSS_PROPERTY_FONT_SIZE_SMALLER = 0x0139, MyCSS_PROPERTY_FONT_SIZE_SMALL = 0x0138, MyCSS_PROPERTY_FONT_SIZE__LENGTH = 0x0199, MyCSS_PROPERTY_FONT_SIZE_X_SMALL = 0x0188, @@ -1240,40 +1367,39 @@ enum mycss_property_font_size { MyCSS_PROPERTY_FONT_SIZE_LARGER = 0x00ab, MyCSS_PROPERTY_FONT_SIZE_X_LARGE = 0x0184, MyCSS_PROPERTY_FONT_SIZE_XX_LARGE = 0x0180, - MyCSS_PROPERTY_FONT_SIZE_INHERIT = 0x0092, - MyCSS_PROPERTY_FONT_SIZE_SMALLER = 0x0139 + MyCSS_PROPERTY_FONT_SIZE_INITIAL = 0x0093 } typedef mycss_property_font_size_t; enum mycss_property_font_size_adjust { - MyCSS_PROPERTY_FONT_SIZE_ADJUST_INHERIT = 0x0092, - MyCSS_PROPERTY_FONT_SIZE_ADJUST_INITIAL = 0x0093, MyCSS_PROPERTY_FONT_SIZE_ADJUST_UNSET = 0x016e, MyCSS_PROPERTY_FONT_SIZE_ADJUST_NONE = 0x00d3, - MyCSS_PROPERTY_FONT_SIZE_ADJUST__NUMBER = 0x019b + MyCSS_PROPERTY_FONT_SIZE_ADJUST__NUMBER = 0x019b, + MyCSS_PROPERTY_FONT_SIZE_ADJUST_INHERIT = 0x0092, + MyCSS_PROPERTY_FONT_SIZE_ADJUST_INITIAL = 0x0093 } typedef mycss_property_font_size_adjust_t; enum mycss_property_font_stretch { - MyCSS_PROPERTY_FONT_STRETCH_SEMI_EXPANDED = 0x0129, - MyCSS_PROPERTY_FONT_STRETCH_EXTRA_EXPANDED = 0x006c, - MyCSS_PROPERTY_FONT_STRETCH_SEMI_CONDENSED = 0x0128, MyCSS_PROPERTY_FONT_STRETCH_EXPANDED = 0x006a, MyCSS_PROPERTY_FONT_STRETCH_CONDENSED = 0x0043, MyCSS_PROPERTY_FONT_STRETCH_ULTRA_CONDENSED = 0x0167, MyCSS_PROPERTY_FONT_STRETCH_EXTRA_CONDENSED = 0x006b, MyCSS_PROPERTY_FONT_STRETCH_NORMAL = 0x00d5, - MyCSS_PROPERTY_FONT_STRETCH_ULTRA_EXPANDED = 0x0168 + MyCSS_PROPERTY_FONT_STRETCH_ULTRA_EXPANDED = 0x0168, + MyCSS_PROPERTY_FONT_STRETCH_SEMI_CONDENSED = 0x0128, + MyCSS_PROPERTY_FONT_STRETCH_SEMI_EXPANDED = 0x0129, + MyCSS_PROPERTY_FONT_STRETCH_EXTRA_EXPANDED = 0x006c } typedef mycss_property_font_stretch_t; enum mycss_property_font_style { + MyCSS_PROPERTY_FONT_STYLE_UNSET = 0x016e, MyCSS_PROPERTY_FONT_STYLE_NORMAL = 0x00d5, MyCSS_PROPERTY_FONT_STYLE_ITALIC = 0x00a2, MyCSS_PROPERTY_FONT_STYLE_OBLIQUE = 0x00e6, MyCSS_PROPERTY_FONT_STYLE_INHERIT = 0x0092, - MyCSS_PROPERTY_FONT_STYLE_INITIAL = 0x0093, - MyCSS_PROPERTY_FONT_STYLE_UNSET = 0x016e + MyCSS_PROPERTY_FONT_STYLE_INITIAL = 0x0093 } typedef mycss_property_font_style_t; @@ -1285,6 +1411,10 @@ enum mycss_property_font_synthesis { typedef mycss_property_font_synthesis_t; enum mycss_property_font_variant { + MyCSS_PROPERTY_FONT_VARIANT_UNICASE = 0x016c, + MyCSS_PROPERTY_FONT_VARIANT_NORMAL = 0x00d5, + MyCSS_PROPERTY_FONT_VARIANT_ALL_SMALL_CAPS = 0x0014, + MyCSS_PROPERTY_FONT_VARIANT_ORDINAL = 0x00ee, MyCSS_PROPERTY_FONT_VARIANT_SMALL_CAPS = 0x013a, MyCSS_PROPERTY_FONT_VARIANT_PETITE_CAPS = 0x0100, MyCSS_PROPERTY_FONT_VARIANT_HISTORICAL_FORMS = 0x008b, @@ -1294,11 +1424,7 @@ enum mycss_property_font_variant { MyCSS_PROPERTY_FONT_VARIANT_SLASHED_ZERO = 0x0135, MyCSS_PROPERTY_FONT_VARIANT_SUPER = 0x0151, MyCSS_PROPERTY_FONT_VARIANT_SUB = 0x0150, - MyCSS_PROPERTY_FONT_VARIANT_RUBY = 0x011d, - MyCSS_PROPERTY_FONT_VARIANT_NORMAL = 0x00d5, - MyCSS_PROPERTY_FONT_VARIANT_ALL_SMALL_CAPS = 0x0014, - MyCSS_PROPERTY_FONT_VARIANT_ORDINAL = 0x00ee, - MyCSS_PROPERTY_FONT_VARIANT_UNICASE = 0x016c + MyCSS_PROPERTY_FONT_VARIANT_RUBY = 0x011d } typedef mycss_property_font_variant_t; @@ -1309,17 +1435,18 @@ enum mycss_property_font_variant_alternates { typedef mycss_property_font_variant_alternates_t; enum mycss_property_font_variant_caps { + MyCSS_PROPERTY_FONT_VARIANT_CAPS_PETITE_CAPS = 0x0100, MyCSS_PROPERTY_FONT_VARIANT_CAPS_NORMAL = 0x00d5, MyCSS_PROPERTY_FONT_VARIANT_CAPS_UNICASE = 0x016c, MyCSS_PROPERTY_FONT_VARIANT_CAPS_SMALL_CAPS = 0x013a, MyCSS_PROPERTY_FONT_VARIANT_CAPS_ALL_SMALL_CAPS = 0x0014, MyCSS_PROPERTY_FONT_VARIANT_CAPS_ALL_PETITE_CAPS = 0x0012, - MyCSS_PROPERTY_FONT_VARIANT_CAPS_TITLING_CAPS = 0x0163, - MyCSS_PROPERTY_FONT_VARIANT_CAPS_PETITE_CAPS = 0x0100 + MyCSS_PROPERTY_FONT_VARIANT_CAPS_TITLING_CAPS = 0x0163 } typedef mycss_property_font_variant_caps_t; enum mycss_property_font_variant_east_asian { + MyCSS_PROPERTY_FONT_VARIANT_EAST_ASIAN_PROPORTIONAL_WIDTH = 0x010a, MyCSS_PROPERTY_FONT_VARIANT_EAST_ASIAN_RUBY = 0x011d, MyCSS_PROPERTY_FONT_VARIANT_EAST_ASIAN_JIS78 = 0x00a4, MyCSS_PROPERTY_FONT_VARIANT_EAST_ASIAN_NORMAL = 0x00d5, @@ -1328,22 +1455,21 @@ enum mycss_property_font_variant_east_asian { MyCSS_PROPERTY_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED = 0x0133, MyCSS_PROPERTY_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH = 0x0080, MyCSS_PROPERTY_FONT_VARIANT_EAST_ASIAN_TRADITIONAL = 0x0165, - MyCSS_PROPERTY_FONT_VARIANT_EAST_ASIAN_JIS04 = 0x00a3, - MyCSS_PROPERTY_FONT_VARIANT_EAST_ASIAN_PROPORTIONAL_WIDTH = 0x010a + MyCSS_PROPERTY_FONT_VARIANT_EAST_ASIAN_JIS04 = 0x00a3 } typedef mycss_property_font_variant_east_asian_t; enum mycss_property_font_variant_ligatures { - MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NONE = 0x00d3, - MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NORMAL = 0x00d5, - MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY_LIGATURES = 0x00db, - MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NO_HISTORICAL_LIGATURES = 0x00de, - MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL = 0x00da, - MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NO_COMMON_LIGATURES = 0x00d8, MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_CONTEXTUAL = 0x0049, MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_COMMON_LIGATURES = 0x0041, MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_HISTORICAL_LIGATURES = 0x008c, - MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_DISCRETIONARY_LIGATURES = 0x0058 + MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_DISCRETIONARY_LIGATURES = 0x0058, + MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL = 0x00da, + MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NO_COMMON_LIGATURES = 0x00d8, + MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NONE = 0x00d3, + MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NORMAL = 0x00d5, + MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY_LIGATURES = 0x00db, + MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NO_HISTORICAL_LIGATURES = 0x00de } typedef mycss_property_font_variant_ligatures_t; @@ -1366,6 +1492,14 @@ enum mycss_property_font_variant_position { typedef mycss_property_font_variant_position_t; enum mycss_property_font_weight { + MyCSS_PROPERTY_FONT_WEIGHT_600 = 0x0008, + MyCSS_PROPERTY_FONT_WEIGHT_700 = 0x0009, + MyCSS_PROPERTY_FONT_WEIGHT_800 = 0x000a, + MyCSS_PROPERTY_FONT_WEIGHT_900 = 0x000c, + MyCSS_PROPERTY_FONT_WEIGHT_UNSET = 0x016e, + MyCSS_PROPERTY_FONT_WEIGHT_INHERIT = 0x0092, + MyCSS_PROPERTY_FONT_WEIGHT_INITIAL = 0x0093, + MyCSS_PROPERTY_FONT_WEIGHT_500 = 0x0007, MyCSS_PROPERTY_FONT_WEIGHT_BOLDER = 0x0029, MyCSS_PROPERTY_FONT_WEIGHT_LIGHTER = 0x00b0, MyCSS_PROPERTY_FONT_WEIGHT_300 = 0x0005, @@ -1373,32 +1507,24 @@ enum mycss_property_font_weight { MyCSS_PROPERTY_FONT_WEIGHT_200 = 0x0004, MyCSS_PROPERTY_FONT_WEIGHT_100 = 0x0003, MyCSS_PROPERTY_FONT_WEIGHT_BOLD = 0x0028, - MyCSS_PROPERTY_FONT_WEIGHT_NORMAL = 0x00d5, - MyCSS_PROPERTY_FONT_WEIGHT_500 = 0x0007, - MyCSS_PROPERTY_FONT_WEIGHT_600 = 0x0008, - MyCSS_PROPERTY_FONT_WEIGHT_700 = 0x0009, - MyCSS_PROPERTY_FONT_WEIGHT_800 = 0x000a, - MyCSS_PROPERTY_FONT_WEIGHT_900 = 0x000c, - MyCSS_PROPERTY_FONT_WEIGHT_UNSET = 0x016e, - MyCSS_PROPERTY_FONT_WEIGHT_INHERIT = 0x0092, - MyCSS_PROPERTY_FONT_WEIGHT_INITIAL = 0x0093 + MyCSS_PROPERTY_FONT_WEIGHT_NORMAL = 0x00d5 } typedef mycss_property_font_weight_t; enum mycss_property_glyph_orientation_vertical { + MyCSS_PROPERTY_GLYPH_ORIENTATION_VERTICAL_0 = 0x0001, + MyCSS_PROPERTY_GLYPH_ORIENTATION_VERTICAL_AUTO = 0x0018, MyCSS_PROPERTY_GLYPH_ORIENTATION_VERTICAL_0DEG = 0x0002, MyCSS_PROPERTY_GLYPH_ORIENTATION_VERTICAL_90DEG = 0x000d, - MyCSS_PROPERTY_GLYPH_ORIENTATION_VERTICAL_90 = 0x000b, - MyCSS_PROPERTY_GLYPH_ORIENTATION_VERTICAL_0 = 0x0001, - MyCSS_PROPERTY_GLYPH_ORIENTATION_VERTICAL_AUTO = 0x0018 + MyCSS_PROPERTY_GLYPH_ORIENTATION_VERTICAL_90 = 0x000b } typedef mycss_property_glyph_orientation_vertical_t; enum mycss_property_hanging_punctuation { + MyCSS_PROPERTY_HANGING_PUNCTUATION_NONE = 0x00d3, MyCSS_PROPERTY_HANGING_PUNCTUATION_LAST = 0x00ac, MyCSS_PROPERTY_HANGING_PUNCTUATION_FIRST = 0x0073, MyCSS_PROPERTY_HANGING_PUNCTUATION_FORCE_END = 0x007d, - MyCSS_PROPERTY_HANGING_PUNCTUATION_NONE = 0x00d3, MyCSS_PROPERTY_HANGING_PUNCTUATION_ALLOW_END = 0x0011 } typedef mycss_property_hanging_punctuation_t; @@ -1419,9 +1545,12 @@ enum mycss_property_height { typedef mycss_property_height_t; enum mycss_property_hyphens { - MyCSS_PROPERTY_HYPHENS_MANUAL = 0x00c1, - MyCSS_PROPERTY_HYPHENS_NONE = 0x00d3, - MyCSS_PROPERTY_HYPHENS_AUTO = 0x0018 + MyCSS_PROPERTY_HYPHENS_UNSET = 0x016e, + MyCSS_PROPERTY_HYPHENS_NONE = 0x00d3, + MyCSS_PROPERTY_HYPHENS_INHERIT = 0x0092, + MyCSS_PROPERTY_HYPHENS_AUTO = 0x0018, + MyCSS_PROPERTY_HYPHENS_MANUAL = 0x00c1, + MyCSS_PROPERTY_HYPHENS_INITIAL = 0x0093 } typedef mycss_property_hyphens_t; @@ -1457,15 +1586,22 @@ enum mycss_property_left { typedef mycss_property_left_t; enum mycss_property_letter_spacing { - MyCSS_PROPERTY_LETTER_SPACING_NORMAL = 0x00d5 + MyCSS_PROPERTY_LETTER_SPACING_NORMAL = 0x00d5, + MyCSS_PROPERTY_LETTER_SPACING_INHERIT = 0x0092, + MyCSS_PROPERTY_LETTER_SPACING_INITIAL = 0x0093, + MyCSS_PROPERTY_LETTER_SPACING__LENGTH = 0x0199, + MyCSS_PROPERTY_LETTER_SPACING_UNSET = 0x016e } typedef mycss_property_letter_spacing_t; enum mycss_property_line_break { - MyCSS_PROPERTY_LINE_BREAK_LOOSE = 0x00ba, - MyCSS_PROPERTY_LINE_BREAK_AUTO = 0x0018, - MyCSS_PROPERTY_LINE_BREAK_STRICT = 0x014d, - MyCSS_PROPERTY_LINE_BREAK_NORMAL = 0x00d5 + MyCSS_PROPERTY_LINE_BREAK_AUTO = 0x0018, + MyCSS_PROPERTY_LINE_BREAK_NORMAL = 0x00d5, + MyCSS_PROPERTY_LINE_BREAK_LOOSE = 0x00ba, + MyCSS_PROPERTY_LINE_BREAK_STRICT = 0x014d, + MyCSS_PROPERTY_LINE_BREAK_UNSET = 0x016e, + MyCSS_PROPERTY_LINE_BREAK_INITIAL = 0x0093, + MyCSS_PROPERTY_LINE_BREAK_INHERIT = 0x0092 } typedef mycss_property_line_break_t; @@ -1626,8 +1762,8 @@ typedef mycss_property_nav_left_t; enum mycss_property_nav_right { MyCSS_PROPERTY_NAV_RIGHT_AUTO = 0x0018, - MyCSS_PROPERTY_NAV_RIGHT_ROOT = 0x0117, - MyCSS_PROPERTY_NAV_RIGHT_CURRENT = 0x004f + MyCSS_PROPERTY_NAV_RIGHT_CURRENT = 0x004f, + MyCSS_PROPERTY_NAV_RIGHT_ROOT = 0x0117 } typedef mycss_property_nav_right_t; @@ -1664,8 +1800,8 @@ enum mycss_property_outline_color { typedef mycss_property_outline_color_t; enum mycss_property_outline_style { - MyCSS_PROPERTY_OUTLINE_STYLE_NONE = 0x00d3, - MyCSS_PROPERTY_OUTLINE_STYLE_AUTO = 0x0018 + MyCSS_PROPERTY_OUTLINE_STYLE_AUTO = 0x0018, + MyCSS_PROPERTY_OUTLINE_STYLE_NONE = 0x00d3 } typedef mycss_property_outline_style_t; @@ -1688,9 +1824,12 @@ enum mycss_property_overflow { typedef mycss_property_overflow_t; enum mycss_property_overflow_wrap { + MyCSS_PROPERTY_OVERFLOW_WRAP_INHERIT = 0x0092, + MyCSS_PROPERTY_OVERFLOW_WRAP_NORMAL = 0x00d5, + MyCSS_PROPERTY_OVERFLOW_WRAP_UNSET = 0x016e, MyCSS_PROPERTY_OVERFLOW_WRAP_BREAK_WORD = 0x0032, - MyCSS_PROPERTY_OVERFLOW_WRAP_BREAK_SPACES = 0x0031, - MyCSS_PROPERTY_OVERFLOW_WRAP_NORMAL = 0x00d5 + MyCSS_PROPERTY_OVERFLOW_WRAP_INITIAL = 0x0093, + MyCSS_PROPERTY_OVERFLOW_WRAP_BREAK_SPACES = 0x0031 } typedef mycss_property_overflow_wrap_t; @@ -1748,11 +1887,11 @@ enum mycss_property_padding_left { typedef mycss_property_padding_left_t; enum mycss_property_padding_right { - MyCSS_PROPERTY_PADDING_RIGHT_INHERIT = 0x0092, MyCSS_PROPERTY_PADDING_RIGHT_UNSET = 0x016e, - MyCSS_PROPERTY_PADDING_RIGHT__LENGTH = 0x0199, MyCSS_PROPERTY_PADDING_RIGHT_INITIAL = 0x0093, - MyCSS_PROPERTY_PADDING_RIGHT__PERCENTAGE = 0x019c + MyCSS_PROPERTY_PADDING_RIGHT__PERCENTAGE = 0x019c, + MyCSS_PROPERTY_PADDING_RIGHT__LENGTH = 0x0199, + MyCSS_PROPERTY_PADDING_RIGHT_INHERIT = 0x0092 } typedef mycss_property_padding_right_t; @@ -1791,11 +1930,11 @@ enum mycss_property_perspective { typedef mycss_property_perspective_t; enum mycss_property_perspective_origin { + MyCSS_PROPERTY_PERSPECTIVE_ORIGIN_LEFT = 0x00ae, MyCSS_PROPERTY_PERSPECTIVE_ORIGIN_RIGHT = 0x0115, MyCSS_PROPERTY_PERSPECTIVE_ORIGIN_TOP = 0x0164, MyCSS_PROPERTY_PERSPECTIVE_ORIGIN_BOTTOM = 0x002d, - MyCSS_PROPERTY_PERSPECTIVE_ORIGIN_CENTER = 0x0037, - MyCSS_PROPERTY_PERSPECTIVE_ORIGIN_LEFT = 0x00ae + MyCSS_PROPERTY_PERSPECTIVE_ORIGIN_CENTER = 0x0037 } typedef mycss_property_perspective_origin_t; @@ -1955,21 +2094,30 @@ enum mycss_property_stroke_dasharray { typedef mycss_property_stroke_dasharray_t; enum mycss_property_stroke_linecap { + MyCSS_PROPERTY_STROKE_LINECAP_BUTT = 0x0033, MyCSS_PROPERTY_STROKE_LINECAP_SQUARE = 0x0143, MyCSS_PROPERTY_STROKE_LINECAP_INHERIT = 0x0092, - MyCSS_PROPERTY_STROKE_LINECAP_ROUND = 0x0118, - MyCSS_PROPERTY_STROKE_LINECAP_BUTT = 0x0033 + MyCSS_PROPERTY_STROKE_LINECAP_ROUND = 0x0118 } typedef mycss_property_stroke_linecap_t; enum mycss_property_stroke_linejoin { - MyCSS_PROPERTY_STROKE_LINEJOIN_BEVEL = 0x0023, - MyCSS_PROPERTY_STROKE_LINEJOIN_INHERIT = 0x0092, + MyCSS_PROPERTY_STROKE_LINEJOIN_ROUND = 0x0118, MyCSS_PROPERTY_STROKE_LINEJOIN_MITER = 0x00cc, - MyCSS_PROPERTY_STROKE_LINEJOIN_ROUND = 0x0118 + MyCSS_PROPERTY_STROKE_LINEJOIN_BEVEL = 0x0023, + MyCSS_PROPERTY_STROKE_LINEJOIN_INHERIT = 0x0092 } typedef mycss_property_stroke_linejoin_t; +enum mycss_property_tab_size { + MyCSS_PROPERTY_TAB_SIZE_UNSET = 0x016e, + MyCSS_PROPERTY_TAB_SIZE_INITIAL = 0x0093, + MyCSS_PROPERTY_TAB_SIZE_INHERIT = 0x0092, + MyCSS_PROPERTY_TAB_SIZE__NUMBER = 0x019b, + MyCSS_PROPERTY_TAB_SIZE__LENGTH = 0x0199 +} +typedef mycss_property_tab_size_t; + enum mycss_property_table_layout { MyCSS_PROPERTY_TABLE_LAYOUT_AUTO = 0x0018, MyCSS_PROPERTY_TABLE_LAYOUT_FIXED = 0x0076 @@ -1977,93 +2125,93 @@ enum mycss_property_table_layout { typedef mycss_property_table_layout_t; enum mycss_property_text_align { - MyCSS_PROPERTY_TEXT_ALIGN_INITIAL = 0x0093, - MyCSS_PROPERTY_TEXT_ALIGN_MATCH_PARENT = 0x00c3, MyCSS_PROPERTY_TEXT_ALIGN_END = 0x0066, - MyCSS_PROPERTY_TEXT_ALIGN_JUSTIFY_ALL = 0x00a8, - MyCSS_PROPERTY_TEXT_ALIGN_LEFT = 0x00ae, + MyCSS_PROPERTY_TEXT_ALIGN_UNSET = 0x016e, + MyCSS_PROPERTY_TEXT_ALIGN_START = 0x0146, MyCSS_PROPERTY_TEXT_ALIGN_CENTER = 0x0037, MyCSS_PROPERTY_TEXT_ALIGN_RIGHT = 0x0115, - MyCSS_PROPERTY_TEXT_ALIGN_UNSET = 0x016e, - MyCSS_PROPERTY_TEXT_ALIGN_INHERIT = 0x0092, MyCSS_PROPERTY_TEXT_ALIGN_JUSTIFY = 0x00a7, - MyCSS_PROPERTY_TEXT_ALIGN_START = 0x0146 + MyCSS_PROPERTY_TEXT_ALIGN_LEFT = 0x00ae, + MyCSS_PROPERTY_TEXT_ALIGN_JUSTIFY_ALL = 0x00a8, + MyCSS_PROPERTY_TEXT_ALIGN_INHERIT = 0x0092, + MyCSS_PROPERTY_TEXT_ALIGN_INITIAL = 0x0093, + MyCSS_PROPERTY_TEXT_ALIGN_MATCH_PARENT = 0x00c3 } typedef mycss_property_text_align_t; enum mycss_property_text_align_all { + MyCSS_PROPERTY_TEXT_ALIGN_ALL_RIGHT = 0x0115, + MyCSS_PROPERTY_TEXT_ALIGN_ALL_UNSET = 0x016e, + MyCSS_PROPERTY_TEXT_ALIGN_ALL_CENTER = 0x0037, + MyCSS_PROPERTY_TEXT_ALIGN_ALL_JUSTIFY = 0x00a7, + MyCSS_PROPERTY_TEXT_ALIGN_ALL_INHERIT = 0x0092, + MyCSS_PROPERTY_TEXT_ALIGN_ALL_INITIAL = 0x0093, + MyCSS_PROPERTY_TEXT_ALIGN_ALL_MATCH_PARENT = 0x00c3, MyCSS_PROPERTY_TEXT_ALIGN_ALL_END = 0x0066, MyCSS_PROPERTY_TEXT_ALIGN_ALL_START = 0x0146, - MyCSS_PROPERTY_TEXT_ALIGN_ALL_INITIAL = 0x0093, - MyCSS_PROPERTY_TEXT_ALIGN_ALL_INHERIT = 0x0092, - MyCSS_PROPERTY_TEXT_ALIGN_ALL_UNSET = 0x016e, - MyCSS_PROPERTY_TEXT_ALIGN_ALL_RIGHT = 0x0115, - MyCSS_PROPERTY_TEXT_ALIGN_ALL_CENTER = 0x0037, - MyCSS_PROPERTY_TEXT_ALIGN_ALL_LEFT = 0x00ae, - MyCSS_PROPERTY_TEXT_ALIGN_ALL_JUSTIFY = 0x00a7, - MyCSS_PROPERTY_TEXT_ALIGN_ALL_MATCH_PARENT = 0x00c3 + MyCSS_PROPERTY_TEXT_ALIGN_ALL_LEFT = 0x00ae } typedef mycss_property_text_align_all_t; enum mycss_property_text_align_last { - MyCSS_PROPERTY_TEXT_ALIGN_LAST_START = 0x0146, - MyCSS_PROPERTY_TEXT_ALIGN_LAST_LEFT = 0x00ae, MyCSS_PROPERTY_TEXT_ALIGN_LAST_CENTER = 0x0037, - MyCSS_PROPERTY_TEXT_ALIGN_LAST_RIGHT = 0x0115, - MyCSS_PROPERTY_TEXT_ALIGN_LAST_INITIAL = 0x0093, + MyCSS_PROPERTY_TEXT_ALIGN_LAST_END = 0x0066, + MyCSS_PROPERTY_TEXT_ALIGN_LAST_AUTO = 0x0018, + MyCSS_PROPERTY_TEXT_ALIGN_LAST_START = 0x0146, + MyCSS_PROPERTY_TEXT_ALIGN_LAST_JUSTIFY = 0x00a7, MyCSS_PROPERTY_TEXT_ALIGN_LAST_UNSET = 0x016e, MyCSS_PROPERTY_TEXT_ALIGN_LAST_INHERIT = 0x0092, - MyCSS_PROPERTY_TEXT_ALIGN_LAST_JUSTIFY = 0x00a7, - MyCSS_PROPERTY_TEXT_ALIGN_LAST_END = 0x0066, - MyCSS_PROPERTY_TEXT_ALIGN_LAST_AUTO = 0x0018 + MyCSS_PROPERTY_TEXT_ALIGN_LAST_INITIAL = 0x0093, + MyCSS_PROPERTY_TEXT_ALIGN_LAST_LEFT = 0x00ae, + MyCSS_PROPERTY_TEXT_ALIGN_LAST_RIGHT = 0x0115 } typedef mycss_property_text_align_last_t; enum mycss_property_text_combine_upright { - MyCSS_PROPERTY_TEXT_COMBINE_UPRIGHT_DIGITS = 0x0056, MyCSS_PROPERTY_TEXT_COMBINE_UPRIGHT_ALL = 0x0010, - MyCSS_PROPERTY_TEXT_COMBINE_UPRIGHT_NONE = 0x00d3 + MyCSS_PROPERTY_TEXT_COMBINE_UPRIGHT_NONE = 0x00d3, + MyCSS_PROPERTY_TEXT_COMBINE_UPRIGHT_DIGITS = 0x0056 } typedef mycss_property_text_combine_upright_t; enum mycss_property_text_decoration_color { - MyCSS_PROPERTY_TEXT_DECORATION_COLOR_INHERIT = 0x0092, - MyCSS_PROPERTY_TEXT_DECORATION_COLOR_INITIAL = 0x0093, MyCSS_PROPERTY_TEXT_DECORATION_COLOR_CURRENTCOLOR = 0x0050, - MyCSS_PROPERTY_TEXT_DECORATION_COLOR_UNSET = 0x016e + MyCSS_PROPERTY_TEXT_DECORATION_COLOR_UNSET = 0x016e, + MyCSS_PROPERTY_TEXT_DECORATION_COLOR_INHERIT = 0x0092, + MyCSS_PROPERTY_TEXT_DECORATION_COLOR_INITIAL = 0x0093 } typedef mycss_property_text_decoration_color_t; enum mycss_property_text_decoration_line { + MyCSS_PROPERTY_TEXT_DECORATION_LINE_LINE_THROUGH = 0x00b4, + MyCSS_PROPERTY_TEXT_DECORATION_LINE_OVERLINE = 0x00f3, MyCSS_PROPERTY_TEXT_DECORATION_LINE_UNSET = 0x016e, MyCSS_PROPERTY_TEXT_DECORATION_LINE_UNDERLINE = 0x016a, MyCSS_PROPERTY_TEXT_DECORATION_LINE_INITIAL = 0x0093, MyCSS_PROPERTY_TEXT_DECORATION_LINE_BLINK = 0x0025, MyCSS_PROPERTY_TEXT_DECORATION_LINE_INHERIT = 0x0092, - MyCSS_PROPERTY_TEXT_DECORATION_LINE_NONE = 0x00d3, - MyCSS_PROPERTY_TEXT_DECORATION_LINE_LINE_THROUGH = 0x00b4, - MyCSS_PROPERTY_TEXT_DECORATION_LINE_OVERLINE = 0x00f3 + MyCSS_PROPERTY_TEXT_DECORATION_LINE_NONE = 0x00d3 } typedef mycss_property_text_decoration_line_t; enum mycss_property_text_decoration_skip { - MyCSS_PROPERTY_TEXT_DECORATION_SKIP_NONE = 0x00d3, - MyCSS_PROPERTY_TEXT_DECORATION_SKIP_INK = 0x0094, MyCSS_PROPERTY_TEXT_DECORATION_SKIP_UNSET = 0x016e, MyCSS_PROPERTY_TEXT_DECORATION_SKIP_INHERIT = 0x0092, MyCSS_PROPERTY_TEXT_DECORATION_SKIP_INITIAL = 0x0093, MyCSS_PROPERTY_TEXT_DECORATION_SKIP_BOX_DECORATION = 0x002e, + MyCSS_PROPERTY_TEXT_DECORATION_SKIP_INK = 0x0094, MyCSS_PROPERTY_TEXT_DECORATION_SKIP_SPACES = 0x013f, MyCSS_PROPERTY_TEXT_DECORATION_SKIP_OBJECTS = 0x00e5, - MyCSS_PROPERTY_TEXT_DECORATION_SKIP_EDGES = 0x0063 + MyCSS_PROPERTY_TEXT_DECORATION_SKIP_EDGES = 0x0063, + MyCSS_PROPERTY_TEXT_DECORATION_SKIP_NONE = 0x00d3 } typedef mycss_property_text_decoration_skip_t; enum mycss_property_text_decoration_style { + MyCSS_PROPERTY_TEXT_DECORATION_STYLE_DOTTED = 0x005a, MyCSS_PROPERTY_TEXT_DECORATION_STYLE_WAVY = 0x0179, MyCSS_PROPERTY_TEXT_DECORATION_STYLE_SOLID = 0x013d, MyCSS_PROPERTY_TEXT_DECORATION_STYLE_DOUBLE = 0x005b, - MyCSS_PROPERTY_TEXT_DECORATION_STYLE_DOTTED = 0x005a, MyCSS_PROPERTY_TEXT_DECORATION_STYLE_DASHED = 0x0052, MyCSS_PROPERTY_TEXT_DECORATION_STYLE_UNSET = 0x016e, MyCSS_PROPERTY_TEXT_DECORATION_STYLE_INHERIT = 0x0092, @@ -2085,14 +2233,14 @@ enum mycss_property_text_emphasis_position { typedef mycss_property_text_emphasis_position_t; enum mycss_property_text_emphasis_style { - MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_OPEN = 0x00ea, - MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_FILLED = 0x0071, - MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_DOUBLE_CIRCLE = 0x005c, - MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_SESAMEINITIAL = 0x012c, MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_TRIANGLE = 0x0166, MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_CIRCLE = 0x0038, MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_DOT = 0x0059, - MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_NONE = 0x00d3 + MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_NONE = 0x00d3, + MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_OPEN = 0x00ea, + MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_FILLED = 0x0071, + MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_DOUBLE_CIRCLE = 0x005c, + MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_SESAMEINITIAL = 0x012c } typedef mycss_property_text_emphasis_style_t; @@ -2103,23 +2251,26 @@ enum mycss_property_text_indent { typedef mycss_property_text_indent_t; enum mycss_property_text_justify { - MyCSS_PROPERTY_TEXT_JUSTIFY_AUTO = 0x0018, - MyCSS_PROPERTY_TEXT_JUSTIFY_INTER_CHARACTER = 0x009d, + MyCSS_PROPERTY_TEXT_JUSTIFY_INHERIT = 0x0092, + MyCSS_PROPERTY_TEXT_JUSTIFY_INITIAL = 0x0093, MyCSS_PROPERTY_TEXT_JUSTIFY_INTER_WORD = 0x009e, - MyCSS_PROPERTY_TEXT_JUSTIFY_NONE = 0x00d3 + MyCSS_PROPERTY_TEXT_JUSTIFY_INTER_CHARACTER = 0x009d, + MyCSS_PROPERTY_TEXT_JUSTIFY_NONE = 0x00d3, + MyCSS_PROPERTY_TEXT_JUSTIFY_AUTO = 0x0018, + MyCSS_PROPERTY_TEXT_JUSTIFY_UNSET = 0x016e } typedef mycss_property_text_justify_t; enum mycss_property_text_orientation { - MyCSS_PROPERTY_TEXT_ORIENTATION_MIXED = 0x00cd, MyCSS_PROPERTY_TEXT_ORIENTATION_SIDEWAYS = 0x012f, + MyCSS_PROPERTY_TEXT_ORIENTATION_MIXED = 0x00cd, MyCSS_PROPERTY_TEXT_ORIENTATION_UPRIGHT = 0x0170 } typedef mycss_property_text_orientation_t; enum mycss_property_text_overflow { - MyCSS_PROPERTY_TEXT_OVERFLOW_CLIP = 0x003a, - MyCSS_PROPERTY_TEXT_OVERFLOW_ELLIPSIS = 0x0064 + MyCSS_PROPERTY_TEXT_OVERFLOW_ELLIPSIS = 0x0064, + MyCSS_PROPERTY_TEXT_OVERFLOW_CLIP = 0x003a } typedef mycss_property_text_overflow_t; @@ -2144,11 +2295,14 @@ enum mycss_property_text_size_adjust { typedef mycss_property_text_size_adjust_t; enum mycss_property_text_transform { - MyCSS_PROPERTY_TEXT_TRANSFORM_NONE = 0x00d3, + MyCSS_PROPERTY_TEXT_TRANSFORM_LOWERCASE = 0x00bd, + MyCSS_PROPERTY_TEXT_TRANSFORM_INHERIT = 0x0092, MyCSS_PROPERTY_TEXT_TRANSFORM_UPPERCASE = 0x016f, MyCSS_PROPERTY_TEXT_TRANSFORM_CAPITALIZE = 0x0034, MyCSS_PROPERTY_TEXT_TRANSFORM_FULL_WIDTH = 0x0080, - MyCSS_PROPERTY_TEXT_TRANSFORM_LOWERCASE = 0x00bd + MyCSS_PROPERTY_TEXT_TRANSFORM_NONE = 0x00d3, + MyCSS_PROPERTY_TEXT_TRANSFORM_INITIAL = 0x0093, + MyCSS_PROPERTY_TEXT_TRANSFORM_UNSET = 0x016e } typedef mycss_property_text_transform_t; @@ -2166,7 +2320,6 @@ enum mycss_property_top { typedef mycss_property_top_t; enum mycss_property_touch_action { - MyCSS_PROPERTY_TOUCH_ACTION_NONE = 0x00d3, MyCSS_PROPERTY_TOUCH_ACTION_PAN_RIGHT = 0x00fb, MyCSS_PROPERTY_TOUCH_ACTION_PAN_UP = 0x00fc, MyCSS_PROPERTY_TOUCH_ACTION_PAN_LEFT = 0x00fa, @@ -2174,7 +2327,8 @@ enum mycss_property_touch_action { MyCSS_PROPERTY_TOUCH_ACTION_AUTO = 0x0018, MyCSS_PROPERTY_TOUCH_ACTION_PAN_Y = 0x00fe, MyCSS_PROPERTY_TOUCH_ACTION_PAN_DOWN = 0x00f9, - MyCSS_PROPERTY_TOUCH_ACTION_MANIPULATION = 0x00c0 + MyCSS_PROPERTY_TOUCH_ACTION_MANIPULATION = 0x00c0, + MyCSS_PROPERTY_TOUCH_ACTION_NONE = 0x00d3 } typedef mycss_property_touch_action_t; @@ -2213,23 +2367,26 @@ enum mycss_property_transition_property { typedef mycss_property_transition_property_t; enum mycss_property_transition_timing_function { + MyCSS_PROPERTY_TRANSITION_TIMING_FUNCTION_LINEAR = 0x00b2, MyCSS_PROPERTY_TRANSITION_TIMING_FUNCTION_EASE = 0x005e, MyCSS_PROPERTY_TRANSITION_TIMING_FUNCTION_EASE_IN = 0x005f, MyCSS_PROPERTY_TRANSITION_TIMING_FUNCTION_EASE_OUT = 0x0061, MyCSS_PROPERTY_TRANSITION_TIMING_FUNCTION_STEP_END = 0x0149, MyCSS_PROPERTY_TRANSITION_TIMING_FUNCTION_STEP_START = 0x014a, - MyCSS_PROPERTY_TRANSITION_TIMING_FUNCTION_EASE_IN_OUT = 0x0060, - MyCSS_PROPERTY_TRANSITION_TIMING_FUNCTION_LINEAR = 0x00b2 + MyCSS_PROPERTY_TRANSITION_TIMING_FUNCTION_EASE_IN_OUT = 0x0060 } typedef mycss_property_transition_timing_function_t; enum mycss_property_unicode_bidi { - MyCSS_PROPERTY_UNICODE_BIDI_ISOLATE = 0x00a0, MyCSS_PROPERTY_UNICODE_BIDI_BIDI_OVERRIDE = 0x0024, - MyCSS_PROPERTY_UNICODE_BIDI_PLAINTEXT = 0x0101, - MyCSS_PROPERTY_UNICODE_BIDI_ISOLATE_OVERRIDE = 0x00a1, + MyCSS_PROPERTY_UNICODE_BIDI_UNSET = 0x016e, MyCSS_PROPERTY_UNICODE_BIDI_EMBED = 0x0065, - MyCSS_PROPERTY_UNICODE_BIDI_NORMAL = 0x00d5 + MyCSS_PROPERTY_UNICODE_BIDI_NORMAL = 0x00d5, + MyCSS_PROPERTY_UNICODE_BIDI_ISOLATE = 0x00a0, + MyCSS_PROPERTY_UNICODE_BIDI_PLAINTEXT = 0x0101, + MyCSS_PROPERTY_UNICODE_BIDI_INITIAL = 0x0093, + MyCSS_PROPERTY_UNICODE_BIDI_INHERIT = 0x0092, + MyCSS_PROPERTY_UNICODE_BIDI_ISOLATE_OVERRIDE = 0x00a1 } typedef mycss_property_unicode_bidi_t; @@ -2341,8 +2498,11 @@ enum mycss_property_white_space { MyCSS_PROPERTY_WHITE_SPACE_PRE = 0x0103, MyCSS_PROPERTY_WHITE_SPACE_NORMAL = 0x00d5, MyCSS_PROPERTY_WHITE_SPACE_NOWRAP = 0x00d7, + MyCSS_PROPERTY_WHITE_SPACE_INHERIT = 0x0092, + MyCSS_PROPERTY_WHITE_SPACE_UNSET = 0x016e, + MyCSS_PROPERTY_WHITE_SPACE_PRE_LINE = 0x0106, MyCSS_PROPERTY_WHITE_SPACE_PRE_WRAP = 0x0107, - MyCSS_PROPERTY_WHITE_SPACE_PRE_LINE = 0x0106 + MyCSS_PROPERTY_WHITE_SPACE_INITIAL = 0x0093 } typedef mycss_property_white_space_t; @@ -2368,20 +2528,31 @@ enum mycss_property_will_change { typedef mycss_property_will_change_t; enum mycss_property_word_break { - MyCSS_PROPERTY_WORD_BREAK_KEEP_ALL = 0x00a9, + MyCSS_PROPERTY_WORD_BREAK_BREAK_ALL = 0x0030, + MyCSS_PROPERTY_WORD_BREAK_INITIAL = 0x0093, MyCSS_PROPERTY_WORD_BREAK_NORMAL = 0x00d5, - MyCSS_PROPERTY_WORD_BREAK_BREAK_ALL = 0x0030 + MyCSS_PROPERTY_WORD_BREAK_UNSET = 0x016e, + MyCSS_PROPERTY_WORD_BREAK_KEEP_ALL = 0x00a9, + MyCSS_PROPERTY_WORD_BREAK_INHERIT = 0x0092 } typedef mycss_property_word_break_t; enum mycss_property_word_spacing { - MyCSS_PROPERTY_WORD_SPACING_NORMAL = 0x00d5 + MyCSS_PROPERTY_WORD_SPACING_UNSET = 0x016e, + MyCSS_PROPERTY_WORD_SPACING_NORMAL = 0x00d5, + MyCSS_PROPERTY_WORD_SPACING_INHERIT = 0x0092, + MyCSS_PROPERTY_WORD_SPACING__PERCENTAGE = 0x019c, + MyCSS_PROPERTY_WORD_SPACING_INITIAL = 0x0093, + MyCSS_PROPERTY_WORD_SPACING__LENGTH = 0x0199 } typedef mycss_property_word_spacing_t; enum mycss_property_word_wrap { - MyCSS_PROPERTY_WORD_WRAP_NORMAL = 0x00d5, MyCSS_PROPERTY_WORD_WRAP_BREAK_WORD = 0x0032, + MyCSS_PROPERTY_WORD_WRAP_INHERIT = 0x0092, + MyCSS_PROPERTY_WORD_WRAP_UNSET = 0x016e, + MyCSS_PROPERTY_WORD_WRAP_NORMAL = 0x00d5, + MyCSS_PROPERTY_WORD_WRAP_INITIAL = 0x0093, MyCSS_PROPERTY_WORD_WRAP_BREAK_SPACES = 0x0031 } typedef mycss_property_word_wrap_t; diff --git a/include/mycss/stack.h b/include/mycss/stack.h index c07f41b..7a272d7 100644 --- a/include/mycss/stack.h +++ b/include/mycss/stack.h @@ -48,6 +48,7 @@ mycss_stack_t * mycss_stack_destroy(mycss_stack_t *stack, bool self_destroy); mycss_status_t mycss_stack_push(mycss_stack_t *stack, void* value, mycss_parser_token_f parser); mycss_stack_entry_t * mycss_stack_pop(mycss_stack_t *stack); +mycss_stack_entry_t * mycss_stack_current(mycss_stack_t *stack); #ifdef __cplusplus } /* extern "C" */ diff --git a/include/mycss/values/destroy.h b/include/mycss/values/destroy.h index 9d8e218..29670a0 100644 --- a/include/mycss/values/destroy.h +++ b/include/mycss/values/destroy.h @@ -71,6 +71,9 @@ mycss_values_background_repeat_list_t * mycss_values_destroy_background_repeat(m mycss_values_background_position_t * mycss_values_destroy_background_position(mycss_entry_t* entry, mycss_values_background_position_t* value, bool self_destroy); mycss_values_background_size_list_t * mycss_values_destroy_background_size(mycss_entry_t* entry, mycss_values_background_size_list_t* value, bool self_destroy); +/* Border */ +mycss_values_border_t * mycss_values_destroy_border(mycss_entry_t* entry, mycss_values_border_t* value, bool self_destroy); + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/include/mycss/values/serialization.h b/include/mycss/values/serialization.h index cc18561..5ff89bf 100644 --- a/include/mycss/values/serialization.h +++ b/include/mycss/values/serialization.h @@ -44,6 +44,7 @@ void mycss_values_serialization_text_decoration_skip(mycss_values_text_decoratio void mycss_values_serialization_url(mycss_values_url_t* url, mycss_callback_serialization_f callback, void* context); void mycss_values_serialization_image(mycss_values_image_t* image, mycss_callback_serialization_f callback, void* context); void mycss_values_serialization_background_size_entry(mycss_values_background_size_entry_t* bg_size_entry, mycss_callback_serialization_f callback, void* context); +void mycss_values_serialization_border(mycss_values_border_t* border, mycss_callback_serialization_f callback, void* context); #ifdef __cplusplus } /* extern "C" */ diff --git a/include/mycss/values/values.h b/include/mycss/values/values.h index 7a3786f..5dfe23f 100644 --- a/include/mycss/values/values.h +++ b/include/mycss/values/values.h @@ -69,6 +69,8 @@ typedef struct mycss_values_background_size_entry mycss_values_background_size_e typedef struct mycss_values_background mycss_values_background_t; typedef struct mycss_values_background_list mycss_values_background_list_t; +typedef struct mycss_values_border mycss_values_border_t; + typedef struct mycss_values_color_stop mycss_values_color_stop_t; typedef struct mycss_values_color_stop_list mycss_values_color_stop_list_t; @@ -445,6 +447,15 @@ struct mycss_values_text_decoration { mycss_declaration_entry_t* color; }; +/* + Border + */ +struct mycss_values_border { + mycss_declaration_entry_t* width; + mycss_declaration_entry_t* style; + mycss_declaration_entry_t* color; +}; + /* Background */ diff --git a/source/mycss/declaration/entry_destroy.c b/source/mycss/declaration/entry_destroy.c index fe29f31..dae22a9 100644 --- a/source/mycss/declaration/entry_destroy.c +++ b/source/mycss/declaration/entry_destroy.c @@ -94,6 +94,18 @@ mycss_declaration_entry_t * mycss_declaration_entry_destroy_font(mycss_declarati return decl_entry; } +mycss_declaration_entry_t * mycss_declaration_entry_destroy_border_x(mycss_declaration_t* declaration, mycss_declaration_entry_t* decl_entry, bool self_destroy) +{ + decl_entry->value = mycss_values_destroy_border(declaration->ref_entry, decl_entry->value, true); + + if(self_destroy) { + mcobject_free(declaration->mcobject_entries, decl_entry); + return NULL; + } + + return decl_entry; +} + mycss_declaration_entry_t * mycss_declaration_entry_destroy_border_top_right_radius(mycss_declaration_t* declaration, mycss_declaration_entry_t* decl_entry, bool self_destroy) { decl_entry->value = mycss_values_destroy_shorthand_two_type(declaration->ref_entry, decl_entry->value, true); diff --git a/source/mycss/declaration/entry_destroy.h b/source/mycss/declaration/entry_destroy.h index 1c9e38f..f946a75 100644 --- a/source/mycss/declaration/entry_destroy.h +++ b/source/mycss/declaration/entry_destroy.h @@ -38,6 +38,7 @@ mycss_declaration_entry_t * mycss_declaration_entry_destroy_border_width(mycss_d mycss_declaration_entry_t * mycss_declaration_entry_destroy_border_style(mycss_declaration_t* declaration, mycss_declaration_entry_t* decl_entry, bool self_destroy); mycss_declaration_entry_t * mycss_declaration_entry_destroy_border_color(mycss_declaration_t* declaration, mycss_declaration_entry_t* decl_entry, bool self_destroy); mycss_declaration_entry_t * mycss_declaration_entry_destroy_font(mycss_declaration_t* declaration, mycss_declaration_entry_t* decl_entry, bool self_destroy); +mycss_declaration_entry_t * mycss_declaration_entry_destroy_border_x(mycss_declaration_t* declaration, mycss_declaration_entry_t* decl_entry, bool self_destroy); mycss_declaration_entry_t * mycss_declaration_entry_destroy_border_top_right_radius(mycss_declaration_t* declaration, mycss_declaration_entry_t* decl_entry, bool self_destroy); mycss_declaration_entry_t * mycss_declaration_entry_destroy_border_top_left_radius(mycss_declaration_t* declaration, mycss_declaration_entry_t* decl_entry, bool self_destroy); mycss_declaration_entry_t * mycss_declaration_entry_destroy_border_bottom_right_radius(mycss_declaration_t* declaration, mycss_declaration_entry_t* decl_entry, bool self_destroy); diff --git a/source/mycss/declaration/entry_destroy_resources.h b/source/mycss/declaration/entry_destroy_resources.h index 57d3c65..c9ba087 100644 --- a/source/mycss/declaration/entry_destroy_resources.h +++ b/source/mycss/declaration/entry_destroy_resources.h @@ -51,8 +51,8 @@ static mycss_callback_declaration_destroy_f mycss_declaration_entry_destroy_map_ mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_undef, - mycss_declaration_entry_destroy_undef, - mycss_declaration_entry_destroy_undef, + mycss_declaration_entry_destroy_border_x, + mycss_declaration_entry_destroy_border_x, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_border_bottom_left_radius, mycss_declaration_entry_destroy_border_bottom_right_radius, @@ -65,18 +65,18 @@ static mycss_callback_declaration_destroy_f mycss_declaration_entry_destroy_map_ mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_undef, + mycss_declaration_entry_destroy_border_x, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_undef, - mycss_declaration_entry_destroy_undef, - mycss_declaration_entry_destroy_undef, + mycss_declaration_entry_destroy_border_x, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_border_style, - mycss_declaration_entry_destroy_undef, + mycss_declaration_entry_destroy_border_x, mycss_declaration_entry_destroy_undef, mycss_declaration_entry_destroy_border_top_left_radius, mycss_declaration_entry_destroy_border_top_right_radius, diff --git a/source/mycss/declaration/myosi.h b/source/mycss/declaration/myosi.h index abb1ac9..63cac5d 100644 --- a/source/mycss/declaration/myosi.h +++ b/source/mycss/declaration/myosi.h @@ -48,7 +48,6 @@ struct mycss_declaration { mycss_declaration_entry_t** entry; mycss_declaration_entry_t* entry_last; - mycss_declaration_entry_t* entry_temp; mycss_stack_t* stack; diff --git a/source/mycss/declaration/serialization.c b/source/mycss/declaration/serialization.c index 3e07579..392496a 100644 --- a/source/mycss/declaration/serialization.c +++ b/source/mycss/declaration/serialization.c @@ -41,6 +41,15 @@ bool mycss_declaration_serialization_entry(mycss_entry_t* entry, mycss_declarati return mycss_declaration_serialization_map_by_type[ dec_entry->type ](entry, dec_entry, callback, context); } +bool mycss_declaration_serialization_entry_only_value(mycss_entry_t* entry, mycss_declaration_entry_t* dec_entry, + mycss_callback_serialization_f callback, void* context) +{ + if(dec_entry == NULL) + return false; + + return mycss_declaration_serialization_map_by_type[ dec_entry->type ](entry, dec_entry, callback, context); +} + void mycss_declaration_serialization_entries(mycss_entry_t* entry, mycss_declaration_entry_t* first_dec_entry, mycss_callback_serialization_f callback, void* context) { @@ -326,42 +335,45 @@ bool mycss_declaration_serialization_border_radius(mycss_entry_t* entry, mycss_d bool o_e = false; - if(value->one) { + if(value->one && ((mycss_values_shorthand_two_type_t*)(value->one->value))->one) { o_e = true; short_two_type = value->one->value; mycss_property_serialization_value(short_two_type->type_one, short_two_type->one, callback, context); } - if(value->two) { + if(value->two && ((mycss_values_shorthand_two_type_t*)(value->two->value))->one) { if(o_e) callback(" ", 1, context); else o_e = true; short_two_type = value->two->value; mycss_property_serialization_value(short_two_type->type_one, short_two_type->one, callback, context); } - if(value->three) { + if(value->three && ((mycss_values_shorthand_two_type_t*)(value->three->value))->one) { if(o_e) callback(" ", 1, context); else o_e = true; short_two_type = value->three->value; mycss_property_serialization_value(short_two_type->type_one, short_two_type->one, callback, context); } - if(value->four) { + if(value->four && ((mycss_values_shorthand_two_type_t*)(value->four->value))->one) { if(o_e) callback(" ", 1, context); else o_e = true; short_two_type = value->four->value; mycss_property_serialization_value(short_two_type->type_one, short_two_type->one, callback, context); } - callback(" / ", 3, context); + o_e = false; if(value->one && ((mycss_values_shorthand_two_type_t*)(value->one->value))->two) { + callback(" / ", 3, context); o_e = true; + short_two_type = value->one->value; mycss_property_serialization_value(short_two_type->type_two, short_two_type->two, callback, context); } if(value->two && ((mycss_values_shorthand_two_type_t*)(value->two->value))->two) { + if(o_e == false) callback(" / ", 3, context); if(o_e) callback(" ", 1, context); else o_e = true; short_two_type = value->two->value; @@ -369,6 +381,7 @@ bool mycss_declaration_serialization_border_radius(mycss_entry_t* entry, mycss_d } if(value->three && ((mycss_values_shorthand_two_type_t*)(value->three->value))->two) { + if(o_e == false) callback(" / ", 3, context); if(o_e) callback(" ", 1, context); else o_e = true; short_two_type = value->three->value; @@ -376,6 +389,7 @@ bool mycss_declaration_serialization_border_radius(mycss_entry_t* entry, mycss_d } if(value->four && ((mycss_values_shorthand_two_type_t*)(value->four->value))->two) { + if(o_e == false) callback(" / ", 3, context); if(o_e) callback(" ", 1, context); else o_e = true; short_two_type = value->four->value; @@ -592,4 +606,19 @@ bool mycss_declaration_serialization_background_size(mycss_entry_t* entry, mycss return true; } +bool mycss_declaration_serialization_border_x(mycss_entry_t* entry, mycss_declaration_entry_t* dec_entry, + mycss_callback_serialization_f callback, void* context) +{ + if(dec_entry == NULL) + return false; + + if(dec_entry->value == NULL) + return mycss_declaration_serialization_undef(entry, dec_entry, callback, context); + + mycss_values_serialization_border(dec_entry->value, callback, context); + mycss_declaration_serialization_important_if_need(dec_entry, callback, context); + + return true; +} + diff --git a/source/mycss/declaration/serialization.h b/source/mycss/declaration/serialization.h index fc0eb84..1fce305 100644 --- a/source/mycss/declaration/serialization.h +++ b/source/mycss/declaration/serialization.h @@ -36,6 +36,7 @@ typedef bool (*mycss_declaration_serialization_f)(mycss_entry_t* entry, mycss_de bool mycss_declaration_serialization_entry(mycss_entry_t* entry, mycss_declaration_entry_t* dec_entry, mycss_callback_serialization_f callback, void* context); void mycss_declaration_serialization_entries(mycss_entry_t* entry, mycss_declaration_entry_t* first_dec_entry, mycss_callback_serialization_f callback, void* context); +bool mycss_declaration_serialization_entry_only_value(mycss_entry_t* entry, mycss_declaration_entry_t* dec_entry,mycss_callback_serialization_f callback, void* context); bool mycss_declaration_serialization_undef(mycss_entry_t* entry, mycss_declaration_entry_t* dec_entry, mycss_callback_serialization_f callback, void* context); bool mycss_declaration_serialization_shorthand_four(mycss_entry_t* entry, mycss_declaration_entry_t* dec_entry, mycss_callback_serialization_f callback, void* context); @@ -53,6 +54,7 @@ bool mycss_declaration_serialization_background_image(mycss_entry_t* entry, mycs bool mycss_declaration_serialization_background_repeat(mycss_entry_t* entry, mycss_declaration_entry_t* dec_entry, mycss_callback_serialization_f callback, void* context); bool mycss_declaration_serialization_background_position(mycss_entry_t* entry, mycss_declaration_entry_t* dec_entry, mycss_callback_serialization_f callback, void* context); bool mycss_declaration_serialization_background_size(mycss_entry_t* entry, mycss_declaration_entry_t* dec_entry, mycss_callback_serialization_f callback, void* context); +bool mycss_declaration_serialization_border_x(mycss_entry_t* entry, mycss_declaration_entry_t* dec_entry, mycss_callback_serialization_f callback, void* context); #ifdef __cplusplus } /* extern "C" */ diff --git a/source/mycss/declaration/serialization_resources.h b/source/mycss/declaration/serialization_resources.h index d24acc0..821e603 100644 --- a/source/mycss/declaration/serialization_resources.h +++ b/source/mycss/declaration/serialization_resources.h @@ -51,8 +51,8 @@ static mycss_declaration_serialization_f mycss_declaration_serialization_map_by_ mycss_declaration_serialization_undef, mycss_declaration_serialization_undef, mycss_declaration_serialization_undef, - mycss_declaration_serialization_undef, - mycss_declaration_serialization_undef, + mycss_declaration_serialization_border_x, + mycss_declaration_serialization_border_x, mycss_declaration_serialization_undef, mycss_declaration_serialization_shorthand_two_type, mycss_declaration_serialization_shorthand_two_type, @@ -65,18 +65,18 @@ static mycss_declaration_serialization_f mycss_declaration_serialization_map_by_ mycss_declaration_serialization_undef, mycss_declaration_serialization_undef, mycss_declaration_serialization_undef, - mycss_declaration_serialization_undef, + mycss_declaration_serialization_border_x, mycss_declaration_serialization_undef, mycss_declaration_serialization_undef, mycss_declaration_serialization_undef, mycss_declaration_serialization_border_radius, - mycss_declaration_serialization_undef, + mycss_declaration_serialization_border_x, mycss_declaration_serialization_undef, mycss_declaration_serialization_undef, mycss_declaration_serialization_undef, mycss_declaration_serialization_undef, mycss_declaration_serialization_shorthand_four, - mycss_declaration_serialization_undef, + mycss_declaration_serialization_border_x, mycss_declaration_serialization_undef, mycss_declaration_serialization_shorthand_two_type, mycss_declaration_serialization_shorthand_two_type, diff --git a/source/mycss/parser.c b/source/mycss/parser.c index 9cef73b..2844e6a 100644 --- a/source/mycss/parser.c +++ b/source/mycss/parser.c @@ -185,7 +185,7 @@ bool mycss_parser_token_drop_at_rule(mycss_entry_t* entry, mycss_token_t* token, case MyCSS_TOKEN_TYPE_LEFT_CURLY_BRACKET: entry->parser = mycss_parser_token_drop_at_rule_component_value; - mycss_entry_parser_list_push(entry, NULL, NULL, entry->parser_ending_token, false); + mycss_entry_parser_list_push(entry, mycss_parser_token, NULL, entry->parser_ending_token, false); entry->parser_ending_token = MyCSS_TOKEN_TYPE_RIGHT_CURLY_BRACKET; break; @@ -201,45 +201,49 @@ bool mycss_parser_token_drop_at_rule(mycss_entry_t* entry, mycss_token_t* token, bool mycss_parser_token_drop_at_rule_component_value(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { switch (token->type) { - case MyCSS_TOKEN_TYPE_FUNCTION: { + case MyCSS_TOKEN_TYPE_FUNCTION: mycss_entry_parser_list_push(entry, mycss_parser_token_drop_at_rule_component_value, NULL, entry->parser_ending_token, true); entry->parser_ending_token = MyCSS_TOKEN_TYPE_RIGHT_PARENTHESIS; break; - } - case MyCSS_TOKEN_TYPE_LEFT_CURLY_BRACKET: { + + case MyCSS_TOKEN_TYPE_LEFT_CURLY_BRACKET: mycss_entry_parser_list_push(entry, mycss_parser_token_drop_at_rule_component_value, NULL, entry->parser_ending_token, true); entry->parser_ending_token = MyCSS_TOKEN_TYPE_RIGHT_CURLY_BRACKET; break; - } - case MyCSS_TOKEN_TYPE_LEFT_SQUARE_BRACKET: { + + case MyCSS_TOKEN_TYPE_LEFT_SQUARE_BRACKET: mycss_entry_parser_list_push(entry, mycss_parser_token_drop_at_rule_component_value, NULL, entry->parser_ending_token, true); entry->parser_ending_token = MyCSS_TOKEN_TYPE_RIGHT_SQUARE_BRACKET; break; - } - case MyCSS_TOKEN_TYPE_LEFT_PARENTHESIS: { + + case MyCSS_TOKEN_TYPE_LEFT_PARENTHESIS: mycss_entry_parser_list_push(entry, mycss_parser_token_drop_at_rule_component_value, NULL, entry->parser_ending_token, true); entry->parser_ending_token = MyCSS_TOKEN_TYPE_RIGHT_PARENTHESIS; break; - } - case MyCSS_TOKEN_TYPE_SEMICOLON: { - if(mycss_entry_parser_list_current_parser(entry)) - mycss_entry_parser_list_pop(entry); - break; - } - default: { + case MyCSS_TOKEN_TYPE_RIGHT_PARENTHESIS: + case MyCSS_TOKEN_TYPE_RIGHT_SQUARE_BRACKET: + case MyCSS_TOKEN_TYPE_RIGHT_CURLY_BRACKET: if(mycss_entry_parser_list_current_is_local(entry) && token->type == entry->parser_ending_token) { mycss_entry_parser_list_pop(entry); + + if(token->type == MyCSS_TOKEN_TYPE_RIGHT_CURLY_BRACKET && + mycss_entry_parser_list_current_is_local(entry) == false) + { + mycss_entry_parser_list_pop(entry); + } } break; - } + + default: + break; } return true; diff --git a/source/mycss/property/const.h b/source/mycss/property/const.h index 54a1c4a..99d5b73 100644 --- a/source/mycss/property/const.h +++ b/source/mycss/property/const.h @@ -343,12 +343,12 @@ enum mycss_property_value { typedef mycss_property_value_t; enum mycss_property_align_content { - MyCSS_PROPERTY_ALIGN_CONTENT_STRETCH = 0x014c, - MyCSS_PROPERTY_ALIGN_CONTENT_SPACE_AROUND = 0x0140, - MyCSS_PROPERTY_ALIGN_CONTENT_SPACE_BETWEEN = 0x0141, MyCSS_PROPERTY_ALIGN_CONTENT_CENTER = 0x0037, MyCSS_PROPERTY_ALIGN_CONTENT_FLEX_END = 0x0079, - MyCSS_PROPERTY_ALIGN_CONTENT_FLEX_START = 0x007a + MyCSS_PROPERTY_ALIGN_CONTENT_FLEX_START = 0x007a, + MyCSS_PROPERTY_ALIGN_CONTENT_STRETCH = 0x014c, + MyCSS_PROPERTY_ALIGN_CONTENT_SPACE_AROUND = 0x0140, + MyCSS_PROPERTY_ALIGN_CONTENT_SPACE_BETWEEN = 0x0141 } typedef mycss_property_align_content_t; @@ -380,10 +380,10 @@ enum mycss_property_animation_direction { typedef mycss_property_animation_direction_t; enum mycss_property_animation_fill_mode { + MyCSS_PROPERTY_ANIMATION_FILL_MODE_BOTH = 0x002c, MyCSS_PROPERTY_ANIMATION_FILL_MODE_NONE = 0x00d3, MyCSS_PROPERTY_ANIMATION_FILL_MODE_FORWARDS = 0x007e, - MyCSS_PROPERTY_ANIMATION_FILL_MODE_BACKWARDS = 0x001e, - MyCSS_PROPERTY_ANIMATION_FILL_MODE_BOTH = 0x002c + MyCSS_PROPERTY_ANIMATION_FILL_MODE_BACKWARDS = 0x001e } typedef mycss_property_animation_fill_mode_t; @@ -399,13 +399,13 @@ enum mycss_property_animation_play_state { typedef mycss_property_animation_play_state_t; enum mycss_property_animation_timing_function { - MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_EASE = 0x005e, - MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_STEP_START = 0x014a, - MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_EASE_IN_OUT = 0x0060, MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_LINEAR = 0x00b2, MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_EASE_IN = 0x005f, MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_EASE_OUT = 0x0061, - MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_STEP_END = 0x0149 + MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_STEP_END = 0x0149, + MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_EASE = 0x005e, + MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_STEP_START = 0x014a, + MyCSS_PROPERTY_ANIMATION_TIMING_FUNCTION_EASE_IN_OUT = 0x0060 } typedef mycss_property_animation_timing_function_t; @@ -528,11 +528,55 @@ enum mycss_property_bookmark_level { typedef mycss_property_bookmark_level_t; enum mycss_property_bookmark_state { - MyCSS_PROPERTY_BOOKMARK_STATE_OPEN = 0x00ea, - MyCSS_PROPERTY_BOOKMARK_STATE_CLOSED = 0x003c + MyCSS_PROPERTY_BOOKMARK_STATE_CLOSED = 0x003c, + MyCSS_PROPERTY_BOOKMARK_STATE_OPEN = 0x00ea } typedef mycss_property_bookmark_state_t; +enum mycss_property_border { + MyCSS_PROPERTY_BORDER_DOUBLE = 0x005b, + MyCSS_PROPERTY_BORDER_SOLID = 0x013d, + MyCSS_PROPERTY_BORDER_OUTSET = 0x00ef, + MyCSS_PROPERTY_BORDER_INHERIT = 0x0092, + MyCSS_PROPERTY_BORDER_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_NONE = 0x00d3, + MyCSS_PROPERTY_BORDER__LENGTH = 0x0199, + MyCSS_PROPERTY_BORDER_INITIAL = 0x0093, + MyCSS_PROPERTY_BORDER_THIN = 0x0162, + MyCSS_PROPERTY_BORDER_INSET = 0x009b, + MyCSS_PROPERTY_BORDER_GROOVE = 0x0085, + MyCSS_PROPERTY_BORDER__COLOR = 0x018f, + MyCSS_PROPERTY_BORDER_DOTTED = 0x005a, + MyCSS_PROPERTY_BORDER_THICK = 0x0161, + MyCSS_PROPERTY_BORDER_MEDIUM = 0x00c6, + MyCSS_PROPERTY_BORDER_DASHED = 0x0052, + MyCSS_PROPERTY_BORDER_HIDDEN = 0x0088, + MyCSS_PROPERTY_BORDER_RIDGE = 0x0114 +} +typedef mycss_property_border_t; + +enum mycss_property_border_bottom { + MyCSS_PROPERTY_BORDER_BOTTOM_THIN = 0x0162, + MyCSS_PROPERTY_BORDER_BOTTOM__COLOR = 0x018f, + MyCSS_PROPERTY_BORDER_BOTTOM_NONE = 0x00d3, + MyCSS_PROPERTY_BORDER_BOTTOM__LENGTH = 0x0199, + MyCSS_PROPERTY_BORDER_BOTTOM_THICK = 0x0161, + MyCSS_PROPERTY_BORDER_BOTTOM_MEDIUM = 0x00c6, + MyCSS_PROPERTY_BORDER_BOTTOM_SOLID = 0x013d, + MyCSS_PROPERTY_BORDER_BOTTOM_HIDDEN = 0x0088, + MyCSS_PROPERTY_BORDER_BOTTOM_DOTTED = 0x005a, + MyCSS_PROPERTY_BORDER_BOTTOM_DASHED = 0x0052, + MyCSS_PROPERTY_BORDER_BOTTOM_RIDGE = 0x0114, + MyCSS_PROPERTY_BORDER_BOTTOM_DOUBLE = 0x005b, + MyCSS_PROPERTY_BORDER_BOTTOM_GROOVE = 0x0085, + MyCSS_PROPERTY_BORDER_BOTTOM_INSET = 0x009b, + MyCSS_PROPERTY_BORDER_BOTTOM_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_BOTTOM_OUTSET = 0x00ef, + MyCSS_PROPERTY_BORDER_BOTTOM_INHERIT = 0x0092, + MyCSS_PROPERTY_BORDER_BOTTOM_INITIAL = 0x0093 +} +typedef mycss_property_border_bottom_t; + enum mycss_property_border_bottom_color { MyCSS_PROPERTY_BORDER_BOTTOM_COLOR_UNSET = 0x016e, MyCSS_PROPERTY_BORDER_BOTTOM_COLOR__COLOR = 0x018f, @@ -542,22 +586,25 @@ enum mycss_property_border_bottom_color { typedef mycss_property_border_bottom_color_t; enum mycss_property_border_bottom_left_radius { - MyCSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS_UNSET = 0x016e, - MyCSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS__LENGTH = 0x0199, - MyCSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS_INHERIT = 0x0092, - MyCSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS_INITIAL = 0x0093 + MyCSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS__LENGTH = 0x0199, + MyCSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS_INHERIT = 0x0092, + MyCSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS_INITIAL = 0x0093, + MyCSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS__PERCENTAGE = 0x019c } typedef mycss_property_border_bottom_left_radius_t; enum mycss_property_border_bottom_right_radius { - MyCSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS__LENGTH = 0x0199, - MyCSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS_INHERIT = 0x0092, - MyCSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS_INITIAL = 0x0093, - MyCSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS_UNSET = 0x016e + MyCSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS__LENGTH = 0x0199, + MyCSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS_INHERIT = 0x0092, + MyCSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS_INITIAL = 0x0093, + MyCSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS__PERCENTAGE = 0x019c } typedef mycss_property_border_bottom_right_radius_t; enum mycss_property_border_bottom_style { + MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_NONE = 0x00d3, MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_HIDDEN = 0x0088, MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_DOTTED = 0x005a, MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_DASHED = 0x0052, @@ -568,9 +615,8 @@ enum mycss_property_border_bottom_style { MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_UNSET = 0x016e, MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_OUTSET = 0x00ef, MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_INHERIT = 0x0092, - MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_SOLID = 0x013d, MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_INITIAL = 0x0093, - MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_NONE = 0x00d3 + MyCSS_PROPERTY_BORDER_BOTTOM_STYLE_SOLID = 0x013d } typedef mycss_property_border_bottom_style_t; @@ -617,6 +663,28 @@ enum mycss_property_border_image_width { } typedef mycss_property_border_image_width_t; +enum mycss_property_border_left { + MyCSS_PROPERTY_BORDER_LEFT_THIN = 0x0162, + MyCSS_PROPERTY_BORDER_LEFT__COLOR = 0x018f, + MyCSS_PROPERTY_BORDER_LEFT_NONE = 0x00d3, + MyCSS_PROPERTY_BORDER_LEFT__LENGTH = 0x0199, + MyCSS_PROPERTY_BORDER_LEFT_THICK = 0x0161, + MyCSS_PROPERTY_BORDER_LEFT_MEDIUM = 0x00c6, + MyCSS_PROPERTY_BORDER_LEFT_SOLID = 0x013d, + MyCSS_PROPERTY_BORDER_LEFT_HIDDEN = 0x0088, + MyCSS_PROPERTY_BORDER_LEFT_DOTTED = 0x005a, + MyCSS_PROPERTY_BORDER_LEFT_DASHED = 0x0052, + MyCSS_PROPERTY_BORDER_LEFT_RIDGE = 0x0114, + MyCSS_PROPERTY_BORDER_LEFT_DOUBLE = 0x005b, + MyCSS_PROPERTY_BORDER_LEFT_GROOVE = 0x0085, + MyCSS_PROPERTY_BORDER_LEFT_INSET = 0x009b, + MyCSS_PROPERTY_BORDER_LEFT_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_LEFT_OUTSET = 0x00ef, + MyCSS_PROPERTY_BORDER_LEFT_INHERIT = 0x0092, + MyCSS_PROPERTY_BORDER_LEFT_INITIAL = 0x0093 +} +typedef mycss_property_border_left_t; + enum mycss_property_border_left_color { MyCSS_PROPERTY_BORDER_LEFT_COLOR_UNSET = 0x016e, MyCSS_PROPERTY_BORDER_LEFT_COLOR__COLOR = 0x018f, @@ -643,16 +711,47 @@ enum mycss_property_border_left_style { typedef mycss_property_border_left_style_t; enum mycss_property_border_left_width { + MyCSS_PROPERTY_BORDER_LEFT_WIDTH_INITIAL = 0x0093, MyCSS_PROPERTY_BORDER_LEFT_WIDTH_THIN = 0x0162, MyCSS_PROPERTY_BORDER_LEFT_WIDTH__LENGTH = 0x0199, MyCSS_PROPERTY_BORDER_LEFT_WIDTH_THICK = 0x0161, MyCSS_PROPERTY_BORDER_LEFT_WIDTH_MEDIUM = 0x00c6, MyCSS_PROPERTY_BORDER_LEFT_WIDTH_UNSET = 0x016e, - MyCSS_PROPERTY_BORDER_LEFT_WIDTH_INHERIT = 0x0092, - MyCSS_PROPERTY_BORDER_LEFT_WIDTH_INITIAL = 0x0093 + MyCSS_PROPERTY_BORDER_LEFT_WIDTH_INHERIT = 0x0092 } typedef mycss_property_border_left_width_t; +enum mycss_property_border_radius { + MyCSS_PROPERTY_BORDER_RADIUS_INITIAL = 0x0093, + MyCSS_PROPERTY_BORDER_RADIUS__PERCENTAGE = 0x019c, + MyCSS_PROPERTY_BORDER_RADIUS_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_RADIUS__LENGTH = 0x0199, + MyCSS_PROPERTY_BORDER_RADIUS_INHERIT = 0x0092 +} +typedef mycss_property_border_radius_t; + +enum mycss_property_border_right { + MyCSS_PROPERTY_BORDER_RIGHT_THICK = 0x0161, + MyCSS_PROPERTY_BORDER_RIGHT_MEDIUM = 0x00c6, + MyCSS_PROPERTY_BORDER_RIGHT_SOLID = 0x013d, + MyCSS_PROPERTY_BORDER_RIGHT_HIDDEN = 0x0088, + MyCSS_PROPERTY_BORDER_RIGHT_DOTTED = 0x005a, + MyCSS_PROPERTY_BORDER_RIGHT_DASHED = 0x0052, + MyCSS_PROPERTY_BORDER_RIGHT_RIDGE = 0x0114, + MyCSS_PROPERTY_BORDER_RIGHT_DOUBLE = 0x005b, + MyCSS_PROPERTY_BORDER_RIGHT_GROOVE = 0x0085, + MyCSS_PROPERTY_BORDER_RIGHT_INSET = 0x009b, + MyCSS_PROPERTY_BORDER_RIGHT_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_RIGHT_OUTSET = 0x00ef, + MyCSS_PROPERTY_BORDER_RIGHT_INHERIT = 0x0092, + MyCSS_PROPERTY_BORDER_RIGHT_INITIAL = 0x0093, + MyCSS_PROPERTY_BORDER_RIGHT_THIN = 0x0162, + MyCSS_PROPERTY_BORDER_RIGHT__COLOR = 0x018f, + MyCSS_PROPERTY_BORDER_RIGHT_NONE = 0x00d3, + MyCSS_PROPERTY_BORDER_RIGHT__LENGTH = 0x0199 +} +typedef mycss_property_border_right_t; + enum mycss_property_border_right_color { MyCSS_PROPERTY_BORDER_RIGHT_COLOR_UNSET = 0x016e, MyCSS_PROPERTY_BORDER_RIGHT_COLOR__COLOR = 0x018f, @@ -662,35 +761,34 @@ enum mycss_property_border_right_color { typedef mycss_property_border_right_color_t; enum mycss_property_border_right_style { - MyCSS_PROPERTY_BORDER_RIGHT_STYLE_SOLID = 0x013d, - MyCSS_PROPERTY_BORDER_RIGHT_STYLE_INITIAL = 0x0093, - MyCSS_PROPERTY_BORDER_RIGHT_STYLE_HIDDEN = 0x0088, MyCSS_PROPERTY_BORDER_RIGHT_STYLE_DOTTED = 0x005a, MyCSS_PROPERTY_BORDER_RIGHT_STYLE_DASHED = 0x0052, MyCSS_PROPERTY_BORDER_RIGHT_STYLE_RIDGE = 0x0114, MyCSS_PROPERTY_BORDER_RIGHT_STYLE_DOUBLE = 0x005b, MyCSS_PROPERTY_BORDER_RIGHT_STYLE_GROOVE = 0x0085, + MyCSS_PROPERTY_BORDER_RIGHT_STYLE_HIDDEN = 0x0088, MyCSS_PROPERTY_BORDER_RIGHT_STYLE_INSET = 0x009b, MyCSS_PROPERTY_BORDER_RIGHT_STYLE_UNSET = 0x016e, MyCSS_PROPERTY_BORDER_RIGHT_STYLE_OUTSET = 0x00ef, MyCSS_PROPERTY_BORDER_RIGHT_STYLE_INHERIT = 0x0092, - MyCSS_PROPERTY_BORDER_RIGHT_STYLE_NONE = 0x00d3 + MyCSS_PROPERTY_BORDER_RIGHT_STYLE_INITIAL = 0x0093, + MyCSS_PROPERTY_BORDER_RIGHT_STYLE_NONE = 0x00d3, + MyCSS_PROPERTY_BORDER_RIGHT_STYLE_SOLID = 0x013d } typedef mycss_property_border_right_style_t; enum mycss_property_border_right_width { - MyCSS_PROPERTY_BORDER_RIGHT_WIDTH_INHERIT = 0x0092, - MyCSS_PROPERTY_BORDER_RIGHT_WIDTH_UNSET = 0x016e, MyCSS_PROPERTY_BORDER_RIGHT_WIDTH_THIN = 0x0162, MyCSS_PROPERTY_BORDER_RIGHT_WIDTH__LENGTH = 0x0199, MyCSS_PROPERTY_BORDER_RIGHT_WIDTH_THICK = 0x0161, MyCSS_PROPERTY_BORDER_RIGHT_WIDTH_MEDIUM = 0x00c6, + MyCSS_PROPERTY_BORDER_RIGHT_WIDTH_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_RIGHT_WIDTH_INHERIT = 0x0092, MyCSS_PROPERTY_BORDER_RIGHT_WIDTH_INITIAL = 0x0093 } typedef mycss_property_border_right_width_t; enum mycss_property_border_style { - MyCSS_PROPERTY_BORDER_STYLE_NONE = 0x00d3, MyCSS_PROPERTY_BORDER_STYLE_SOLID = 0x013d, MyCSS_PROPERTY_BORDER_STYLE_HIDDEN = 0x0088, MyCSS_PROPERTY_BORDER_STYLE_DOTTED = 0x005a, @@ -702,10 +800,33 @@ enum mycss_property_border_style { MyCSS_PROPERTY_BORDER_STYLE_UNSET = 0x016e, MyCSS_PROPERTY_BORDER_STYLE_OUTSET = 0x00ef, MyCSS_PROPERTY_BORDER_STYLE_INHERIT = 0x0092, - MyCSS_PROPERTY_BORDER_STYLE_INITIAL = 0x0093 + MyCSS_PROPERTY_BORDER_STYLE_INITIAL = 0x0093, + MyCSS_PROPERTY_BORDER_STYLE_NONE = 0x00d3 } typedef mycss_property_border_style_t; +enum mycss_property_border_top { + MyCSS_PROPERTY_BORDER_TOP__LENGTH = 0x0199, + MyCSS_PROPERTY_BORDER_TOP_NONE = 0x00d3, + MyCSS_PROPERTY_BORDER_TOP_THIN = 0x0162, + MyCSS_PROPERTY_BORDER_TOP__COLOR = 0x018f, + MyCSS_PROPERTY_BORDER_TOP_THICK = 0x0161, + MyCSS_PROPERTY_BORDER_TOP_MEDIUM = 0x00c6, + MyCSS_PROPERTY_BORDER_TOP_SOLID = 0x013d, + MyCSS_PROPERTY_BORDER_TOP_HIDDEN = 0x0088, + MyCSS_PROPERTY_BORDER_TOP_DOTTED = 0x005a, + MyCSS_PROPERTY_BORDER_TOP_DASHED = 0x0052, + MyCSS_PROPERTY_BORDER_TOP_RIDGE = 0x0114, + MyCSS_PROPERTY_BORDER_TOP_DOUBLE = 0x005b, + MyCSS_PROPERTY_BORDER_TOP_GROOVE = 0x0085, + MyCSS_PROPERTY_BORDER_TOP_INSET = 0x009b, + MyCSS_PROPERTY_BORDER_TOP_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_TOP_OUTSET = 0x00ef, + MyCSS_PROPERTY_BORDER_TOP_INHERIT = 0x0092, + MyCSS_PROPERTY_BORDER_TOP_INITIAL = 0x0093 +} +typedef mycss_property_border_top_t; + enum mycss_property_border_top_color { MyCSS_PROPERTY_BORDER_TOP_COLOR_UNSET = 0x016e, MyCSS_PROPERTY_BORDER_TOP_COLOR__COLOR = 0x018f, @@ -715,18 +836,20 @@ enum mycss_property_border_top_color { typedef mycss_property_border_top_color_t; enum mycss_property_border_top_left_radius { - MyCSS_PROPERTY_BORDER_TOP_LEFT_RADIUS_INITIAL = 0x0093, - MyCSS_PROPERTY_BORDER_TOP_LEFT_RADIUS_UNSET = 0x016e, - MyCSS_PROPERTY_BORDER_TOP_LEFT_RADIUS__LENGTH = 0x0199, - MyCSS_PROPERTY_BORDER_TOP_LEFT_RADIUS_INHERIT = 0x0092 + MyCSS_PROPERTY_BORDER_TOP_LEFT_RADIUS_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_TOP_LEFT_RADIUS__LENGTH = 0x0199, + MyCSS_PROPERTY_BORDER_TOP_LEFT_RADIUS_INHERIT = 0x0092, + MyCSS_PROPERTY_BORDER_TOP_LEFT_RADIUS_INITIAL = 0x0093, + MyCSS_PROPERTY_BORDER_TOP_LEFT_RADIUS__PERCENTAGE = 0x019c } typedef mycss_property_border_top_left_radius_t; enum mycss_property_border_top_right_radius { - MyCSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS_UNSET = 0x016e, - MyCSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS__LENGTH = 0x0199, - MyCSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS_INHERIT = 0x0092, - MyCSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS_INITIAL = 0x0093 + MyCSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS_INITIAL = 0x0093, + MyCSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS__PERCENTAGE = 0x019c, + MyCSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS_UNSET = 0x016e, + MyCSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS__LENGTH = 0x0199, + MyCSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS_INHERIT = 0x0092 } typedef mycss_property_border_top_right_radius_t; @@ -748,24 +871,24 @@ enum mycss_property_border_top_style { typedef mycss_property_border_top_style_t; enum mycss_property_border_top_width { - MyCSS_PROPERTY_BORDER_TOP_WIDTH_MEDIUM = 0x00c6, + MyCSS_PROPERTY_BORDER_TOP_WIDTH_THIN = 0x0162, MyCSS_PROPERTY_BORDER_TOP_WIDTH__LENGTH = 0x0199, MyCSS_PROPERTY_BORDER_TOP_WIDTH_THICK = 0x0161, + MyCSS_PROPERTY_BORDER_TOP_WIDTH_MEDIUM = 0x00c6, MyCSS_PROPERTY_BORDER_TOP_WIDTH_UNSET = 0x016e, MyCSS_PROPERTY_BORDER_TOP_WIDTH_INHERIT = 0x0092, - MyCSS_PROPERTY_BORDER_TOP_WIDTH_THIN = 0x0162, MyCSS_PROPERTY_BORDER_TOP_WIDTH_INITIAL = 0x0093 } typedef mycss_property_border_top_width_t; enum mycss_property_border_width { - MyCSS_PROPERTY_BORDER_WIDTH__LENGTH = 0x0199, - MyCSS_PROPERTY_BORDER_WIDTH_INITIAL = 0x0093, MyCSS_PROPERTY_BORDER_WIDTH_THIN = 0x0162, + MyCSS_PROPERTY_BORDER_WIDTH__LENGTH = 0x0199, MyCSS_PROPERTY_BORDER_WIDTH_THICK = 0x0161, MyCSS_PROPERTY_BORDER_WIDTH_MEDIUM = 0x00c6, MyCSS_PROPERTY_BORDER_WIDTH_UNSET = 0x016e, - MyCSS_PROPERTY_BORDER_WIDTH_INHERIT = 0x0092 + MyCSS_PROPERTY_BORDER_WIDTH_INHERIT = 0x0092, + MyCSS_PROPERTY_BORDER_WIDTH_INITIAL = 0x0093 } typedef mycss_property_border_width_t; @@ -859,10 +982,10 @@ enum mycss_property_caret_color { typedef mycss_property_caret_color_t; enum mycss_property_caret_shape { - MyCSS_PROPERTY_CARET_SHAPE_BAR = 0x0021, MyCSS_PROPERTY_CARET_SHAPE_UNDERSCORE = 0x016b, MyCSS_PROPERTY_CARET_SHAPE_AUTO = 0x0018, - MyCSS_PROPERTY_CARET_SHAPE_BLOCK = 0x0026 + MyCSS_PROPERTY_CARET_SHAPE_BLOCK = 0x0026, + MyCSS_PROPERTY_CARET_SHAPE_BAR = 0x0021 } typedef mycss_property_caret_shape_t; @@ -907,18 +1030,18 @@ enum mycss_property_color_adjust { typedef mycss_property_color_adjust_t; enum mycss_property_color_interpolation { + MyCSS_PROPERTY_COLOR_INTERPOLATION_AUTO = 0x0018, MyCSS_PROPERTY_COLOR_INTERPOLATION_SRGB = 0x0144, MyCSS_PROPERTY_COLOR_INTERPOLATION_INHERIT = 0x0092, - MyCSS_PROPERTY_COLOR_INTERPOLATION_LINEARRGB = 0x00b3, - MyCSS_PROPERTY_COLOR_INTERPOLATION_AUTO = 0x0018 + MyCSS_PROPERTY_COLOR_INTERPOLATION_LINEARRGB = 0x00b3 } typedef mycss_property_color_interpolation_t; enum mycss_property_color_interpolation_filters { + MyCSS_PROPERTY_COLOR_INTERPOLATION_FILTERS_INHERIT = 0x0092, MyCSS_PROPERTY_COLOR_INTERPOLATION_FILTERS_LINEARRGB = 0x00b3, MyCSS_PROPERTY_COLOR_INTERPOLATION_FILTERS_AUTO = 0x0018, - MyCSS_PROPERTY_COLOR_INTERPOLATION_FILTERS_SRGB = 0x0144, - MyCSS_PROPERTY_COLOR_INTERPOLATION_FILTERS_INHERIT = 0x0092 + MyCSS_PROPERTY_COLOR_INTERPOLATION_FILTERS_SRGB = 0x0144 } typedef mycss_property_color_interpolation_filters_t; @@ -985,8 +1108,8 @@ enum mycss_property_contain { typedef mycss_property_contain_t; enum mycss_property_content { - MyCSS_PROPERTY_CONTENT_NORMAL = 0x00d5, - MyCSS_PROPERTY_CONTENT_NONE = 0x00d3 + MyCSS_PROPERTY_CONTENT_NONE = 0x00d3, + MyCSS_PROPERTY_CONTENT_NORMAL = 0x00d5 } typedef mycss_property_content_t; @@ -1015,8 +1138,6 @@ enum mycss_property_cue_before { typedef mycss_property_cue_before_t; enum mycss_property_cursor { - MyCSS_PROPERTY_CURSOR_CELL = 0x0036, - MyCSS_PROPERTY_CURSOR_DEFAULT = 0x0053, MyCSS_PROPERTY_CURSOR_HELP = 0x0087, MyCSS_PROPERTY_CURSOR_POINTER = 0x0102, MyCSS_PROPERTY_CURSOR_CONTEXT_MENU = 0x004a, @@ -1053,13 +1174,18 @@ enum mycss_property_cursor { MyCSS_PROPERTY_CURSOR_ROW_RESIZE = 0x011a, MyCSS_PROPERTY_CURSOR_ALL_SCROLL = 0x0013, MyCSS_PROPERTY_CURSOR_ZOOM_OUT = 0x018e, - MyCSS_PROPERTY_CURSOR_INITIAL = 0x0093 + MyCSS_PROPERTY_CURSOR_INITIAL = 0x0093, + MyCSS_PROPERTY_CURSOR_CELL = 0x0036, + MyCSS_PROPERTY_CURSOR_DEFAULT = 0x0053 } typedef mycss_property_cursor_t; enum mycss_property_direction { - MyCSS_PROPERTY_DIRECTION_LTR = 0x00be, - MyCSS_PROPERTY_DIRECTION_RTL = 0x011c + MyCSS_PROPERTY_DIRECTION_LTR = 0x00be, + MyCSS_PROPERTY_DIRECTION_RTL = 0x011c, + MyCSS_PROPERTY_DIRECTION_INHERIT = 0x0092, + MyCSS_PROPERTY_DIRECTION_UNSET = 0x016e, + MyCSS_PROPERTY_DIRECTION_INITIAL = 0x0093 } typedef mycss_property_direction_t; @@ -1111,9 +1237,9 @@ enum mycss_property_fill_opacity { typedef mycss_property_fill_opacity_t; enum mycss_property_fill_rule { - MyCSS_PROPERTY_FILL_RULE_NONZERO = 0x00d4, + MyCSS_PROPERTY_FILL_RULE_EVENODD = 0x0067, MyCSS_PROPERTY_FILL_RULE_INHERIT = 0x0092, - MyCSS_PROPERTY_FILL_RULE_EVENODD = 0x0067 + MyCSS_PROPERTY_FILL_RULE_NONZERO = 0x00d4 } typedef mycss_property_fill_rule_t; @@ -1123,27 +1249,27 @@ enum mycss_property_flex { typedef mycss_property_flex_t; enum mycss_property_flex_basis { - MyCSS_PROPERTY_FLEX_BASIS_CONTENT = 0x0045, - MyCSS_PROPERTY_FLEX_BASIS_AUTO = 0x0018 + MyCSS_PROPERTY_FLEX_BASIS_AUTO = 0x0018, + MyCSS_PROPERTY_FLEX_BASIS_CONTENT = 0x0045 } typedef mycss_property_flex_basis_t; enum mycss_property_flex_direction { - MyCSS_PROPERTY_FLEX_DIRECTION_ROW_REVERSE = 0x011b, - MyCSS_PROPERTY_FLEX_DIRECTION_COLUMN_REVERSE = 0x003f, + MyCSS_PROPERTY_FLEX_DIRECTION_COLUMN = 0x003e, MyCSS_PROPERTY_FLEX_DIRECTION_ROW = 0x0119, - MyCSS_PROPERTY_FLEX_DIRECTION_COLUMN = 0x003e + MyCSS_PROPERTY_FLEX_DIRECTION_ROW_REVERSE = 0x011b, + MyCSS_PROPERTY_FLEX_DIRECTION_COLUMN_REVERSE = 0x003f } typedef mycss_property_flex_direction_t; enum mycss_property_flex_flow { + MyCSS_PROPERTY_FLEX_FLOW_ROW_REVERSE = 0x011b, + MyCSS_PROPERTY_FLEX_FLOW_ROW = 0x0119, + MyCSS_PROPERTY_FLEX_FLOW_COLUMN = 0x003e, MyCSS_PROPERTY_FLEX_FLOW_WRAP = 0x017c, MyCSS_PROPERTY_FLEX_FLOW_NOWRAP = 0x00d7, MyCSS_PROPERTY_FLEX_FLOW_COLUMN_REVERSE = 0x003f, - MyCSS_PROPERTY_FLEX_FLOW_WRAP_REVERSE = 0x017d, - MyCSS_PROPERTY_FLEX_FLOW_ROW_REVERSE = 0x011b, - MyCSS_PROPERTY_FLEX_FLOW_ROW = 0x0119, - MyCSS_PROPERTY_FLEX_FLOW_COLUMN = 0x003e + MyCSS_PROPERTY_FLEX_FLOW_WRAP_REVERSE = 0x017d } typedef mycss_property_flex_flow_t; @@ -1195,6 +1321,7 @@ enum mycss_property_font { typedef mycss_property_font_t; enum mycss_property_font_family { + MyCSS_PROPERTY_FONT_FAMILY_SANS_SERIF = 0x0125, MyCSS_PROPERTY_FONT_FAMILY__GENERIC_FAMILY = 0x0194, MyCSS_PROPERTY_FONT_FAMILY_FANTASY = 0x006e, MyCSS_PROPERTY_FONT_FAMILY_UNSE = 0x016d, @@ -1203,8 +1330,7 @@ enum mycss_property_font_family { MyCSS_PROPERTY_FONT_FAMILY__FAMILY_NAME = 0x0193, MyCSS_PROPERTY_FONT_FAMILY_INHERIT = 0x0092, MyCSS_PROPERTY_FONT_FAMILY_MONOSPACE = 0x00cf, - MyCSS_PROPERTY_FONT_FAMILY_INITIAL = 0x0093, - MyCSS_PROPERTY_FONT_FAMILY_SANS_SERIF = 0x0125 + MyCSS_PROPERTY_FONT_FAMILY_INITIAL = 0x0093 } typedef mycss_property_font_family_t; @@ -1228,7 +1354,8 @@ enum mycss_property_font_language_override { typedef mycss_property_font_language_override_t; enum mycss_property_font_size { - MyCSS_PROPERTY_FONT_SIZE_INITIAL = 0x0093, + MyCSS_PROPERTY_FONT_SIZE_INHERIT = 0x0092, + MyCSS_PROPERTY_FONT_SIZE_SMALLER = 0x0139, MyCSS_PROPERTY_FONT_SIZE_SMALL = 0x0138, MyCSS_PROPERTY_FONT_SIZE__LENGTH = 0x0199, MyCSS_PROPERTY_FONT_SIZE_X_SMALL = 0x0188, @@ -1240,40 +1367,39 @@ enum mycss_property_font_size { MyCSS_PROPERTY_FONT_SIZE_LARGER = 0x00ab, MyCSS_PROPERTY_FONT_SIZE_X_LARGE = 0x0184, MyCSS_PROPERTY_FONT_SIZE_XX_LARGE = 0x0180, - MyCSS_PROPERTY_FONT_SIZE_INHERIT = 0x0092, - MyCSS_PROPERTY_FONT_SIZE_SMALLER = 0x0139 + MyCSS_PROPERTY_FONT_SIZE_INITIAL = 0x0093 } typedef mycss_property_font_size_t; enum mycss_property_font_size_adjust { - MyCSS_PROPERTY_FONT_SIZE_ADJUST_INHERIT = 0x0092, - MyCSS_PROPERTY_FONT_SIZE_ADJUST_INITIAL = 0x0093, MyCSS_PROPERTY_FONT_SIZE_ADJUST_UNSET = 0x016e, MyCSS_PROPERTY_FONT_SIZE_ADJUST_NONE = 0x00d3, - MyCSS_PROPERTY_FONT_SIZE_ADJUST__NUMBER = 0x019b + MyCSS_PROPERTY_FONT_SIZE_ADJUST__NUMBER = 0x019b, + MyCSS_PROPERTY_FONT_SIZE_ADJUST_INHERIT = 0x0092, + MyCSS_PROPERTY_FONT_SIZE_ADJUST_INITIAL = 0x0093 } typedef mycss_property_font_size_adjust_t; enum mycss_property_font_stretch { - MyCSS_PROPERTY_FONT_STRETCH_SEMI_EXPANDED = 0x0129, - MyCSS_PROPERTY_FONT_STRETCH_EXTRA_EXPANDED = 0x006c, - MyCSS_PROPERTY_FONT_STRETCH_SEMI_CONDENSED = 0x0128, MyCSS_PROPERTY_FONT_STRETCH_EXPANDED = 0x006a, MyCSS_PROPERTY_FONT_STRETCH_CONDENSED = 0x0043, MyCSS_PROPERTY_FONT_STRETCH_ULTRA_CONDENSED = 0x0167, MyCSS_PROPERTY_FONT_STRETCH_EXTRA_CONDENSED = 0x006b, MyCSS_PROPERTY_FONT_STRETCH_NORMAL = 0x00d5, - MyCSS_PROPERTY_FONT_STRETCH_ULTRA_EXPANDED = 0x0168 + MyCSS_PROPERTY_FONT_STRETCH_ULTRA_EXPANDED = 0x0168, + MyCSS_PROPERTY_FONT_STRETCH_SEMI_CONDENSED = 0x0128, + MyCSS_PROPERTY_FONT_STRETCH_SEMI_EXPANDED = 0x0129, + MyCSS_PROPERTY_FONT_STRETCH_EXTRA_EXPANDED = 0x006c } typedef mycss_property_font_stretch_t; enum mycss_property_font_style { + MyCSS_PROPERTY_FONT_STYLE_UNSET = 0x016e, MyCSS_PROPERTY_FONT_STYLE_NORMAL = 0x00d5, MyCSS_PROPERTY_FONT_STYLE_ITALIC = 0x00a2, MyCSS_PROPERTY_FONT_STYLE_OBLIQUE = 0x00e6, MyCSS_PROPERTY_FONT_STYLE_INHERIT = 0x0092, - MyCSS_PROPERTY_FONT_STYLE_INITIAL = 0x0093, - MyCSS_PROPERTY_FONT_STYLE_UNSET = 0x016e + MyCSS_PROPERTY_FONT_STYLE_INITIAL = 0x0093 } typedef mycss_property_font_style_t; @@ -1285,6 +1411,10 @@ enum mycss_property_font_synthesis { typedef mycss_property_font_synthesis_t; enum mycss_property_font_variant { + MyCSS_PROPERTY_FONT_VARIANT_UNICASE = 0x016c, + MyCSS_PROPERTY_FONT_VARIANT_NORMAL = 0x00d5, + MyCSS_PROPERTY_FONT_VARIANT_ALL_SMALL_CAPS = 0x0014, + MyCSS_PROPERTY_FONT_VARIANT_ORDINAL = 0x00ee, MyCSS_PROPERTY_FONT_VARIANT_SMALL_CAPS = 0x013a, MyCSS_PROPERTY_FONT_VARIANT_PETITE_CAPS = 0x0100, MyCSS_PROPERTY_FONT_VARIANT_HISTORICAL_FORMS = 0x008b, @@ -1294,11 +1424,7 @@ enum mycss_property_font_variant { MyCSS_PROPERTY_FONT_VARIANT_SLASHED_ZERO = 0x0135, MyCSS_PROPERTY_FONT_VARIANT_SUPER = 0x0151, MyCSS_PROPERTY_FONT_VARIANT_SUB = 0x0150, - MyCSS_PROPERTY_FONT_VARIANT_RUBY = 0x011d, - MyCSS_PROPERTY_FONT_VARIANT_NORMAL = 0x00d5, - MyCSS_PROPERTY_FONT_VARIANT_ALL_SMALL_CAPS = 0x0014, - MyCSS_PROPERTY_FONT_VARIANT_ORDINAL = 0x00ee, - MyCSS_PROPERTY_FONT_VARIANT_UNICASE = 0x016c + MyCSS_PROPERTY_FONT_VARIANT_RUBY = 0x011d } typedef mycss_property_font_variant_t; @@ -1309,17 +1435,18 @@ enum mycss_property_font_variant_alternates { typedef mycss_property_font_variant_alternates_t; enum mycss_property_font_variant_caps { + MyCSS_PROPERTY_FONT_VARIANT_CAPS_PETITE_CAPS = 0x0100, MyCSS_PROPERTY_FONT_VARIANT_CAPS_NORMAL = 0x00d5, MyCSS_PROPERTY_FONT_VARIANT_CAPS_UNICASE = 0x016c, MyCSS_PROPERTY_FONT_VARIANT_CAPS_SMALL_CAPS = 0x013a, MyCSS_PROPERTY_FONT_VARIANT_CAPS_ALL_SMALL_CAPS = 0x0014, MyCSS_PROPERTY_FONT_VARIANT_CAPS_ALL_PETITE_CAPS = 0x0012, - MyCSS_PROPERTY_FONT_VARIANT_CAPS_TITLING_CAPS = 0x0163, - MyCSS_PROPERTY_FONT_VARIANT_CAPS_PETITE_CAPS = 0x0100 + MyCSS_PROPERTY_FONT_VARIANT_CAPS_TITLING_CAPS = 0x0163 } typedef mycss_property_font_variant_caps_t; enum mycss_property_font_variant_east_asian { + MyCSS_PROPERTY_FONT_VARIANT_EAST_ASIAN_PROPORTIONAL_WIDTH = 0x010a, MyCSS_PROPERTY_FONT_VARIANT_EAST_ASIAN_RUBY = 0x011d, MyCSS_PROPERTY_FONT_VARIANT_EAST_ASIAN_JIS78 = 0x00a4, MyCSS_PROPERTY_FONT_VARIANT_EAST_ASIAN_NORMAL = 0x00d5, @@ -1328,22 +1455,21 @@ enum mycss_property_font_variant_east_asian { MyCSS_PROPERTY_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED = 0x0133, MyCSS_PROPERTY_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH = 0x0080, MyCSS_PROPERTY_FONT_VARIANT_EAST_ASIAN_TRADITIONAL = 0x0165, - MyCSS_PROPERTY_FONT_VARIANT_EAST_ASIAN_JIS04 = 0x00a3, - MyCSS_PROPERTY_FONT_VARIANT_EAST_ASIAN_PROPORTIONAL_WIDTH = 0x010a + MyCSS_PROPERTY_FONT_VARIANT_EAST_ASIAN_JIS04 = 0x00a3 } typedef mycss_property_font_variant_east_asian_t; enum mycss_property_font_variant_ligatures { - MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NONE = 0x00d3, - MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NORMAL = 0x00d5, - MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY_LIGATURES = 0x00db, - MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NO_HISTORICAL_LIGATURES = 0x00de, - MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL = 0x00da, - MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NO_COMMON_LIGATURES = 0x00d8, MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_CONTEXTUAL = 0x0049, MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_COMMON_LIGATURES = 0x0041, MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_HISTORICAL_LIGATURES = 0x008c, - MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_DISCRETIONARY_LIGATURES = 0x0058 + MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_DISCRETIONARY_LIGATURES = 0x0058, + MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL = 0x00da, + MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NO_COMMON_LIGATURES = 0x00d8, + MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NONE = 0x00d3, + MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NORMAL = 0x00d5, + MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY_LIGATURES = 0x00db, + MyCSS_PROPERTY_FONT_VARIANT_LIGATURES_NO_HISTORICAL_LIGATURES = 0x00de } typedef mycss_property_font_variant_ligatures_t; @@ -1366,6 +1492,14 @@ enum mycss_property_font_variant_position { typedef mycss_property_font_variant_position_t; enum mycss_property_font_weight { + MyCSS_PROPERTY_FONT_WEIGHT_600 = 0x0008, + MyCSS_PROPERTY_FONT_WEIGHT_700 = 0x0009, + MyCSS_PROPERTY_FONT_WEIGHT_800 = 0x000a, + MyCSS_PROPERTY_FONT_WEIGHT_900 = 0x000c, + MyCSS_PROPERTY_FONT_WEIGHT_UNSET = 0x016e, + MyCSS_PROPERTY_FONT_WEIGHT_INHERIT = 0x0092, + MyCSS_PROPERTY_FONT_WEIGHT_INITIAL = 0x0093, + MyCSS_PROPERTY_FONT_WEIGHT_500 = 0x0007, MyCSS_PROPERTY_FONT_WEIGHT_BOLDER = 0x0029, MyCSS_PROPERTY_FONT_WEIGHT_LIGHTER = 0x00b0, MyCSS_PROPERTY_FONT_WEIGHT_300 = 0x0005, @@ -1373,32 +1507,24 @@ enum mycss_property_font_weight { MyCSS_PROPERTY_FONT_WEIGHT_200 = 0x0004, MyCSS_PROPERTY_FONT_WEIGHT_100 = 0x0003, MyCSS_PROPERTY_FONT_WEIGHT_BOLD = 0x0028, - MyCSS_PROPERTY_FONT_WEIGHT_NORMAL = 0x00d5, - MyCSS_PROPERTY_FONT_WEIGHT_500 = 0x0007, - MyCSS_PROPERTY_FONT_WEIGHT_600 = 0x0008, - MyCSS_PROPERTY_FONT_WEIGHT_700 = 0x0009, - MyCSS_PROPERTY_FONT_WEIGHT_800 = 0x000a, - MyCSS_PROPERTY_FONT_WEIGHT_900 = 0x000c, - MyCSS_PROPERTY_FONT_WEIGHT_UNSET = 0x016e, - MyCSS_PROPERTY_FONT_WEIGHT_INHERIT = 0x0092, - MyCSS_PROPERTY_FONT_WEIGHT_INITIAL = 0x0093 + MyCSS_PROPERTY_FONT_WEIGHT_NORMAL = 0x00d5 } typedef mycss_property_font_weight_t; enum mycss_property_glyph_orientation_vertical { + MyCSS_PROPERTY_GLYPH_ORIENTATION_VERTICAL_0 = 0x0001, + MyCSS_PROPERTY_GLYPH_ORIENTATION_VERTICAL_AUTO = 0x0018, MyCSS_PROPERTY_GLYPH_ORIENTATION_VERTICAL_0DEG = 0x0002, MyCSS_PROPERTY_GLYPH_ORIENTATION_VERTICAL_90DEG = 0x000d, - MyCSS_PROPERTY_GLYPH_ORIENTATION_VERTICAL_90 = 0x000b, - MyCSS_PROPERTY_GLYPH_ORIENTATION_VERTICAL_0 = 0x0001, - MyCSS_PROPERTY_GLYPH_ORIENTATION_VERTICAL_AUTO = 0x0018 + MyCSS_PROPERTY_GLYPH_ORIENTATION_VERTICAL_90 = 0x000b } typedef mycss_property_glyph_orientation_vertical_t; enum mycss_property_hanging_punctuation { + MyCSS_PROPERTY_HANGING_PUNCTUATION_NONE = 0x00d3, MyCSS_PROPERTY_HANGING_PUNCTUATION_LAST = 0x00ac, MyCSS_PROPERTY_HANGING_PUNCTUATION_FIRST = 0x0073, MyCSS_PROPERTY_HANGING_PUNCTUATION_FORCE_END = 0x007d, - MyCSS_PROPERTY_HANGING_PUNCTUATION_NONE = 0x00d3, MyCSS_PROPERTY_HANGING_PUNCTUATION_ALLOW_END = 0x0011 } typedef mycss_property_hanging_punctuation_t; @@ -1419,9 +1545,12 @@ enum mycss_property_height { typedef mycss_property_height_t; enum mycss_property_hyphens { - MyCSS_PROPERTY_HYPHENS_MANUAL = 0x00c1, - MyCSS_PROPERTY_HYPHENS_NONE = 0x00d3, - MyCSS_PROPERTY_HYPHENS_AUTO = 0x0018 + MyCSS_PROPERTY_HYPHENS_UNSET = 0x016e, + MyCSS_PROPERTY_HYPHENS_NONE = 0x00d3, + MyCSS_PROPERTY_HYPHENS_INHERIT = 0x0092, + MyCSS_PROPERTY_HYPHENS_AUTO = 0x0018, + MyCSS_PROPERTY_HYPHENS_MANUAL = 0x00c1, + MyCSS_PROPERTY_HYPHENS_INITIAL = 0x0093 } typedef mycss_property_hyphens_t; @@ -1457,15 +1586,22 @@ enum mycss_property_left { typedef mycss_property_left_t; enum mycss_property_letter_spacing { - MyCSS_PROPERTY_LETTER_SPACING_NORMAL = 0x00d5 + MyCSS_PROPERTY_LETTER_SPACING_NORMAL = 0x00d5, + MyCSS_PROPERTY_LETTER_SPACING_INHERIT = 0x0092, + MyCSS_PROPERTY_LETTER_SPACING_INITIAL = 0x0093, + MyCSS_PROPERTY_LETTER_SPACING__LENGTH = 0x0199, + MyCSS_PROPERTY_LETTER_SPACING_UNSET = 0x016e } typedef mycss_property_letter_spacing_t; enum mycss_property_line_break { - MyCSS_PROPERTY_LINE_BREAK_LOOSE = 0x00ba, - MyCSS_PROPERTY_LINE_BREAK_AUTO = 0x0018, - MyCSS_PROPERTY_LINE_BREAK_STRICT = 0x014d, - MyCSS_PROPERTY_LINE_BREAK_NORMAL = 0x00d5 + MyCSS_PROPERTY_LINE_BREAK_AUTO = 0x0018, + MyCSS_PROPERTY_LINE_BREAK_NORMAL = 0x00d5, + MyCSS_PROPERTY_LINE_BREAK_LOOSE = 0x00ba, + MyCSS_PROPERTY_LINE_BREAK_STRICT = 0x014d, + MyCSS_PROPERTY_LINE_BREAK_UNSET = 0x016e, + MyCSS_PROPERTY_LINE_BREAK_INITIAL = 0x0093, + MyCSS_PROPERTY_LINE_BREAK_INHERIT = 0x0092 } typedef mycss_property_line_break_t; @@ -1626,8 +1762,8 @@ typedef mycss_property_nav_left_t; enum mycss_property_nav_right { MyCSS_PROPERTY_NAV_RIGHT_AUTO = 0x0018, - MyCSS_PROPERTY_NAV_RIGHT_ROOT = 0x0117, - MyCSS_PROPERTY_NAV_RIGHT_CURRENT = 0x004f + MyCSS_PROPERTY_NAV_RIGHT_CURRENT = 0x004f, + MyCSS_PROPERTY_NAV_RIGHT_ROOT = 0x0117 } typedef mycss_property_nav_right_t; @@ -1664,8 +1800,8 @@ enum mycss_property_outline_color { typedef mycss_property_outline_color_t; enum mycss_property_outline_style { - MyCSS_PROPERTY_OUTLINE_STYLE_NONE = 0x00d3, - MyCSS_PROPERTY_OUTLINE_STYLE_AUTO = 0x0018 + MyCSS_PROPERTY_OUTLINE_STYLE_AUTO = 0x0018, + MyCSS_PROPERTY_OUTLINE_STYLE_NONE = 0x00d3 } typedef mycss_property_outline_style_t; @@ -1688,9 +1824,12 @@ enum mycss_property_overflow { typedef mycss_property_overflow_t; enum mycss_property_overflow_wrap { + MyCSS_PROPERTY_OVERFLOW_WRAP_INHERIT = 0x0092, + MyCSS_PROPERTY_OVERFLOW_WRAP_NORMAL = 0x00d5, + MyCSS_PROPERTY_OVERFLOW_WRAP_UNSET = 0x016e, MyCSS_PROPERTY_OVERFLOW_WRAP_BREAK_WORD = 0x0032, - MyCSS_PROPERTY_OVERFLOW_WRAP_BREAK_SPACES = 0x0031, - MyCSS_PROPERTY_OVERFLOW_WRAP_NORMAL = 0x00d5 + MyCSS_PROPERTY_OVERFLOW_WRAP_INITIAL = 0x0093, + MyCSS_PROPERTY_OVERFLOW_WRAP_BREAK_SPACES = 0x0031 } typedef mycss_property_overflow_wrap_t; @@ -1748,11 +1887,11 @@ enum mycss_property_padding_left { typedef mycss_property_padding_left_t; enum mycss_property_padding_right { - MyCSS_PROPERTY_PADDING_RIGHT_INHERIT = 0x0092, MyCSS_PROPERTY_PADDING_RIGHT_UNSET = 0x016e, - MyCSS_PROPERTY_PADDING_RIGHT__LENGTH = 0x0199, MyCSS_PROPERTY_PADDING_RIGHT_INITIAL = 0x0093, - MyCSS_PROPERTY_PADDING_RIGHT__PERCENTAGE = 0x019c + MyCSS_PROPERTY_PADDING_RIGHT__PERCENTAGE = 0x019c, + MyCSS_PROPERTY_PADDING_RIGHT__LENGTH = 0x0199, + MyCSS_PROPERTY_PADDING_RIGHT_INHERIT = 0x0092 } typedef mycss_property_padding_right_t; @@ -1791,11 +1930,11 @@ enum mycss_property_perspective { typedef mycss_property_perspective_t; enum mycss_property_perspective_origin { + MyCSS_PROPERTY_PERSPECTIVE_ORIGIN_LEFT = 0x00ae, MyCSS_PROPERTY_PERSPECTIVE_ORIGIN_RIGHT = 0x0115, MyCSS_PROPERTY_PERSPECTIVE_ORIGIN_TOP = 0x0164, MyCSS_PROPERTY_PERSPECTIVE_ORIGIN_BOTTOM = 0x002d, - MyCSS_PROPERTY_PERSPECTIVE_ORIGIN_CENTER = 0x0037, - MyCSS_PROPERTY_PERSPECTIVE_ORIGIN_LEFT = 0x00ae + MyCSS_PROPERTY_PERSPECTIVE_ORIGIN_CENTER = 0x0037 } typedef mycss_property_perspective_origin_t; @@ -1955,21 +2094,30 @@ enum mycss_property_stroke_dasharray { typedef mycss_property_stroke_dasharray_t; enum mycss_property_stroke_linecap { + MyCSS_PROPERTY_STROKE_LINECAP_BUTT = 0x0033, MyCSS_PROPERTY_STROKE_LINECAP_SQUARE = 0x0143, MyCSS_PROPERTY_STROKE_LINECAP_INHERIT = 0x0092, - MyCSS_PROPERTY_STROKE_LINECAP_ROUND = 0x0118, - MyCSS_PROPERTY_STROKE_LINECAP_BUTT = 0x0033 + MyCSS_PROPERTY_STROKE_LINECAP_ROUND = 0x0118 } typedef mycss_property_stroke_linecap_t; enum mycss_property_stroke_linejoin { - MyCSS_PROPERTY_STROKE_LINEJOIN_BEVEL = 0x0023, - MyCSS_PROPERTY_STROKE_LINEJOIN_INHERIT = 0x0092, + MyCSS_PROPERTY_STROKE_LINEJOIN_ROUND = 0x0118, MyCSS_PROPERTY_STROKE_LINEJOIN_MITER = 0x00cc, - MyCSS_PROPERTY_STROKE_LINEJOIN_ROUND = 0x0118 + MyCSS_PROPERTY_STROKE_LINEJOIN_BEVEL = 0x0023, + MyCSS_PROPERTY_STROKE_LINEJOIN_INHERIT = 0x0092 } typedef mycss_property_stroke_linejoin_t; +enum mycss_property_tab_size { + MyCSS_PROPERTY_TAB_SIZE_UNSET = 0x016e, + MyCSS_PROPERTY_TAB_SIZE_INITIAL = 0x0093, + MyCSS_PROPERTY_TAB_SIZE_INHERIT = 0x0092, + MyCSS_PROPERTY_TAB_SIZE__NUMBER = 0x019b, + MyCSS_PROPERTY_TAB_SIZE__LENGTH = 0x0199 +} +typedef mycss_property_tab_size_t; + enum mycss_property_table_layout { MyCSS_PROPERTY_TABLE_LAYOUT_AUTO = 0x0018, MyCSS_PROPERTY_TABLE_LAYOUT_FIXED = 0x0076 @@ -1977,93 +2125,93 @@ enum mycss_property_table_layout { typedef mycss_property_table_layout_t; enum mycss_property_text_align { - MyCSS_PROPERTY_TEXT_ALIGN_INITIAL = 0x0093, - MyCSS_PROPERTY_TEXT_ALIGN_MATCH_PARENT = 0x00c3, MyCSS_PROPERTY_TEXT_ALIGN_END = 0x0066, - MyCSS_PROPERTY_TEXT_ALIGN_JUSTIFY_ALL = 0x00a8, - MyCSS_PROPERTY_TEXT_ALIGN_LEFT = 0x00ae, + MyCSS_PROPERTY_TEXT_ALIGN_UNSET = 0x016e, + MyCSS_PROPERTY_TEXT_ALIGN_START = 0x0146, MyCSS_PROPERTY_TEXT_ALIGN_CENTER = 0x0037, MyCSS_PROPERTY_TEXT_ALIGN_RIGHT = 0x0115, - MyCSS_PROPERTY_TEXT_ALIGN_UNSET = 0x016e, - MyCSS_PROPERTY_TEXT_ALIGN_INHERIT = 0x0092, MyCSS_PROPERTY_TEXT_ALIGN_JUSTIFY = 0x00a7, - MyCSS_PROPERTY_TEXT_ALIGN_START = 0x0146 + MyCSS_PROPERTY_TEXT_ALIGN_LEFT = 0x00ae, + MyCSS_PROPERTY_TEXT_ALIGN_JUSTIFY_ALL = 0x00a8, + MyCSS_PROPERTY_TEXT_ALIGN_INHERIT = 0x0092, + MyCSS_PROPERTY_TEXT_ALIGN_INITIAL = 0x0093, + MyCSS_PROPERTY_TEXT_ALIGN_MATCH_PARENT = 0x00c3 } typedef mycss_property_text_align_t; enum mycss_property_text_align_all { + MyCSS_PROPERTY_TEXT_ALIGN_ALL_RIGHT = 0x0115, + MyCSS_PROPERTY_TEXT_ALIGN_ALL_UNSET = 0x016e, + MyCSS_PROPERTY_TEXT_ALIGN_ALL_CENTER = 0x0037, + MyCSS_PROPERTY_TEXT_ALIGN_ALL_JUSTIFY = 0x00a7, + MyCSS_PROPERTY_TEXT_ALIGN_ALL_INHERIT = 0x0092, + MyCSS_PROPERTY_TEXT_ALIGN_ALL_INITIAL = 0x0093, + MyCSS_PROPERTY_TEXT_ALIGN_ALL_MATCH_PARENT = 0x00c3, MyCSS_PROPERTY_TEXT_ALIGN_ALL_END = 0x0066, MyCSS_PROPERTY_TEXT_ALIGN_ALL_START = 0x0146, - MyCSS_PROPERTY_TEXT_ALIGN_ALL_INITIAL = 0x0093, - MyCSS_PROPERTY_TEXT_ALIGN_ALL_INHERIT = 0x0092, - MyCSS_PROPERTY_TEXT_ALIGN_ALL_UNSET = 0x016e, - MyCSS_PROPERTY_TEXT_ALIGN_ALL_RIGHT = 0x0115, - MyCSS_PROPERTY_TEXT_ALIGN_ALL_CENTER = 0x0037, - MyCSS_PROPERTY_TEXT_ALIGN_ALL_LEFT = 0x00ae, - MyCSS_PROPERTY_TEXT_ALIGN_ALL_JUSTIFY = 0x00a7, - MyCSS_PROPERTY_TEXT_ALIGN_ALL_MATCH_PARENT = 0x00c3 + MyCSS_PROPERTY_TEXT_ALIGN_ALL_LEFT = 0x00ae } typedef mycss_property_text_align_all_t; enum mycss_property_text_align_last { - MyCSS_PROPERTY_TEXT_ALIGN_LAST_START = 0x0146, - MyCSS_PROPERTY_TEXT_ALIGN_LAST_LEFT = 0x00ae, MyCSS_PROPERTY_TEXT_ALIGN_LAST_CENTER = 0x0037, - MyCSS_PROPERTY_TEXT_ALIGN_LAST_RIGHT = 0x0115, - MyCSS_PROPERTY_TEXT_ALIGN_LAST_INITIAL = 0x0093, + MyCSS_PROPERTY_TEXT_ALIGN_LAST_END = 0x0066, + MyCSS_PROPERTY_TEXT_ALIGN_LAST_AUTO = 0x0018, + MyCSS_PROPERTY_TEXT_ALIGN_LAST_START = 0x0146, + MyCSS_PROPERTY_TEXT_ALIGN_LAST_JUSTIFY = 0x00a7, MyCSS_PROPERTY_TEXT_ALIGN_LAST_UNSET = 0x016e, MyCSS_PROPERTY_TEXT_ALIGN_LAST_INHERIT = 0x0092, - MyCSS_PROPERTY_TEXT_ALIGN_LAST_JUSTIFY = 0x00a7, - MyCSS_PROPERTY_TEXT_ALIGN_LAST_END = 0x0066, - MyCSS_PROPERTY_TEXT_ALIGN_LAST_AUTO = 0x0018 + MyCSS_PROPERTY_TEXT_ALIGN_LAST_INITIAL = 0x0093, + MyCSS_PROPERTY_TEXT_ALIGN_LAST_LEFT = 0x00ae, + MyCSS_PROPERTY_TEXT_ALIGN_LAST_RIGHT = 0x0115 } typedef mycss_property_text_align_last_t; enum mycss_property_text_combine_upright { - MyCSS_PROPERTY_TEXT_COMBINE_UPRIGHT_DIGITS = 0x0056, MyCSS_PROPERTY_TEXT_COMBINE_UPRIGHT_ALL = 0x0010, - MyCSS_PROPERTY_TEXT_COMBINE_UPRIGHT_NONE = 0x00d3 + MyCSS_PROPERTY_TEXT_COMBINE_UPRIGHT_NONE = 0x00d3, + MyCSS_PROPERTY_TEXT_COMBINE_UPRIGHT_DIGITS = 0x0056 } typedef mycss_property_text_combine_upright_t; enum mycss_property_text_decoration_color { - MyCSS_PROPERTY_TEXT_DECORATION_COLOR_INHERIT = 0x0092, - MyCSS_PROPERTY_TEXT_DECORATION_COLOR_INITIAL = 0x0093, MyCSS_PROPERTY_TEXT_DECORATION_COLOR_CURRENTCOLOR = 0x0050, - MyCSS_PROPERTY_TEXT_DECORATION_COLOR_UNSET = 0x016e + MyCSS_PROPERTY_TEXT_DECORATION_COLOR_UNSET = 0x016e, + MyCSS_PROPERTY_TEXT_DECORATION_COLOR_INHERIT = 0x0092, + MyCSS_PROPERTY_TEXT_DECORATION_COLOR_INITIAL = 0x0093 } typedef mycss_property_text_decoration_color_t; enum mycss_property_text_decoration_line { + MyCSS_PROPERTY_TEXT_DECORATION_LINE_LINE_THROUGH = 0x00b4, + MyCSS_PROPERTY_TEXT_DECORATION_LINE_OVERLINE = 0x00f3, MyCSS_PROPERTY_TEXT_DECORATION_LINE_UNSET = 0x016e, MyCSS_PROPERTY_TEXT_DECORATION_LINE_UNDERLINE = 0x016a, MyCSS_PROPERTY_TEXT_DECORATION_LINE_INITIAL = 0x0093, MyCSS_PROPERTY_TEXT_DECORATION_LINE_BLINK = 0x0025, MyCSS_PROPERTY_TEXT_DECORATION_LINE_INHERIT = 0x0092, - MyCSS_PROPERTY_TEXT_DECORATION_LINE_NONE = 0x00d3, - MyCSS_PROPERTY_TEXT_DECORATION_LINE_LINE_THROUGH = 0x00b4, - MyCSS_PROPERTY_TEXT_DECORATION_LINE_OVERLINE = 0x00f3 + MyCSS_PROPERTY_TEXT_DECORATION_LINE_NONE = 0x00d3 } typedef mycss_property_text_decoration_line_t; enum mycss_property_text_decoration_skip { - MyCSS_PROPERTY_TEXT_DECORATION_SKIP_NONE = 0x00d3, - MyCSS_PROPERTY_TEXT_DECORATION_SKIP_INK = 0x0094, MyCSS_PROPERTY_TEXT_DECORATION_SKIP_UNSET = 0x016e, MyCSS_PROPERTY_TEXT_DECORATION_SKIP_INHERIT = 0x0092, MyCSS_PROPERTY_TEXT_DECORATION_SKIP_INITIAL = 0x0093, MyCSS_PROPERTY_TEXT_DECORATION_SKIP_BOX_DECORATION = 0x002e, + MyCSS_PROPERTY_TEXT_DECORATION_SKIP_INK = 0x0094, MyCSS_PROPERTY_TEXT_DECORATION_SKIP_SPACES = 0x013f, MyCSS_PROPERTY_TEXT_DECORATION_SKIP_OBJECTS = 0x00e5, - MyCSS_PROPERTY_TEXT_DECORATION_SKIP_EDGES = 0x0063 + MyCSS_PROPERTY_TEXT_DECORATION_SKIP_EDGES = 0x0063, + MyCSS_PROPERTY_TEXT_DECORATION_SKIP_NONE = 0x00d3 } typedef mycss_property_text_decoration_skip_t; enum mycss_property_text_decoration_style { + MyCSS_PROPERTY_TEXT_DECORATION_STYLE_DOTTED = 0x005a, MyCSS_PROPERTY_TEXT_DECORATION_STYLE_WAVY = 0x0179, MyCSS_PROPERTY_TEXT_DECORATION_STYLE_SOLID = 0x013d, MyCSS_PROPERTY_TEXT_DECORATION_STYLE_DOUBLE = 0x005b, - MyCSS_PROPERTY_TEXT_DECORATION_STYLE_DOTTED = 0x005a, MyCSS_PROPERTY_TEXT_DECORATION_STYLE_DASHED = 0x0052, MyCSS_PROPERTY_TEXT_DECORATION_STYLE_UNSET = 0x016e, MyCSS_PROPERTY_TEXT_DECORATION_STYLE_INHERIT = 0x0092, @@ -2085,14 +2233,14 @@ enum mycss_property_text_emphasis_position { typedef mycss_property_text_emphasis_position_t; enum mycss_property_text_emphasis_style { - MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_OPEN = 0x00ea, - MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_FILLED = 0x0071, - MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_DOUBLE_CIRCLE = 0x005c, - MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_SESAMEINITIAL = 0x012c, MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_TRIANGLE = 0x0166, MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_CIRCLE = 0x0038, MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_DOT = 0x0059, - MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_NONE = 0x00d3 + MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_NONE = 0x00d3, + MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_OPEN = 0x00ea, + MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_FILLED = 0x0071, + MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_DOUBLE_CIRCLE = 0x005c, + MyCSS_PROPERTY_TEXT_EMPHASIS_STYLE_SESAMEINITIAL = 0x012c } typedef mycss_property_text_emphasis_style_t; @@ -2103,23 +2251,26 @@ enum mycss_property_text_indent { typedef mycss_property_text_indent_t; enum mycss_property_text_justify { - MyCSS_PROPERTY_TEXT_JUSTIFY_AUTO = 0x0018, - MyCSS_PROPERTY_TEXT_JUSTIFY_INTER_CHARACTER = 0x009d, + MyCSS_PROPERTY_TEXT_JUSTIFY_INHERIT = 0x0092, + MyCSS_PROPERTY_TEXT_JUSTIFY_INITIAL = 0x0093, MyCSS_PROPERTY_TEXT_JUSTIFY_INTER_WORD = 0x009e, - MyCSS_PROPERTY_TEXT_JUSTIFY_NONE = 0x00d3 + MyCSS_PROPERTY_TEXT_JUSTIFY_INTER_CHARACTER = 0x009d, + MyCSS_PROPERTY_TEXT_JUSTIFY_NONE = 0x00d3, + MyCSS_PROPERTY_TEXT_JUSTIFY_AUTO = 0x0018, + MyCSS_PROPERTY_TEXT_JUSTIFY_UNSET = 0x016e } typedef mycss_property_text_justify_t; enum mycss_property_text_orientation { - MyCSS_PROPERTY_TEXT_ORIENTATION_MIXED = 0x00cd, MyCSS_PROPERTY_TEXT_ORIENTATION_SIDEWAYS = 0x012f, + MyCSS_PROPERTY_TEXT_ORIENTATION_MIXED = 0x00cd, MyCSS_PROPERTY_TEXT_ORIENTATION_UPRIGHT = 0x0170 } typedef mycss_property_text_orientation_t; enum mycss_property_text_overflow { - MyCSS_PROPERTY_TEXT_OVERFLOW_CLIP = 0x003a, - MyCSS_PROPERTY_TEXT_OVERFLOW_ELLIPSIS = 0x0064 + MyCSS_PROPERTY_TEXT_OVERFLOW_ELLIPSIS = 0x0064, + MyCSS_PROPERTY_TEXT_OVERFLOW_CLIP = 0x003a } typedef mycss_property_text_overflow_t; @@ -2144,11 +2295,14 @@ enum mycss_property_text_size_adjust { typedef mycss_property_text_size_adjust_t; enum mycss_property_text_transform { - MyCSS_PROPERTY_TEXT_TRANSFORM_NONE = 0x00d3, + MyCSS_PROPERTY_TEXT_TRANSFORM_LOWERCASE = 0x00bd, + MyCSS_PROPERTY_TEXT_TRANSFORM_INHERIT = 0x0092, MyCSS_PROPERTY_TEXT_TRANSFORM_UPPERCASE = 0x016f, MyCSS_PROPERTY_TEXT_TRANSFORM_CAPITALIZE = 0x0034, MyCSS_PROPERTY_TEXT_TRANSFORM_FULL_WIDTH = 0x0080, - MyCSS_PROPERTY_TEXT_TRANSFORM_LOWERCASE = 0x00bd + MyCSS_PROPERTY_TEXT_TRANSFORM_NONE = 0x00d3, + MyCSS_PROPERTY_TEXT_TRANSFORM_INITIAL = 0x0093, + MyCSS_PROPERTY_TEXT_TRANSFORM_UNSET = 0x016e } typedef mycss_property_text_transform_t; @@ -2166,7 +2320,6 @@ enum mycss_property_top { typedef mycss_property_top_t; enum mycss_property_touch_action { - MyCSS_PROPERTY_TOUCH_ACTION_NONE = 0x00d3, MyCSS_PROPERTY_TOUCH_ACTION_PAN_RIGHT = 0x00fb, MyCSS_PROPERTY_TOUCH_ACTION_PAN_UP = 0x00fc, MyCSS_PROPERTY_TOUCH_ACTION_PAN_LEFT = 0x00fa, @@ -2174,7 +2327,8 @@ enum mycss_property_touch_action { MyCSS_PROPERTY_TOUCH_ACTION_AUTO = 0x0018, MyCSS_PROPERTY_TOUCH_ACTION_PAN_Y = 0x00fe, MyCSS_PROPERTY_TOUCH_ACTION_PAN_DOWN = 0x00f9, - MyCSS_PROPERTY_TOUCH_ACTION_MANIPULATION = 0x00c0 + MyCSS_PROPERTY_TOUCH_ACTION_MANIPULATION = 0x00c0, + MyCSS_PROPERTY_TOUCH_ACTION_NONE = 0x00d3 } typedef mycss_property_touch_action_t; @@ -2213,23 +2367,26 @@ enum mycss_property_transition_property { typedef mycss_property_transition_property_t; enum mycss_property_transition_timing_function { + MyCSS_PROPERTY_TRANSITION_TIMING_FUNCTION_LINEAR = 0x00b2, MyCSS_PROPERTY_TRANSITION_TIMING_FUNCTION_EASE = 0x005e, MyCSS_PROPERTY_TRANSITION_TIMING_FUNCTION_EASE_IN = 0x005f, MyCSS_PROPERTY_TRANSITION_TIMING_FUNCTION_EASE_OUT = 0x0061, MyCSS_PROPERTY_TRANSITION_TIMING_FUNCTION_STEP_END = 0x0149, MyCSS_PROPERTY_TRANSITION_TIMING_FUNCTION_STEP_START = 0x014a, - MyCSS_PROPERTY_TRANSITION_TIMING_FUNCTION_EASE_IN_OUT = 0x0060, - MyCSS_PROPERTY_TRANSITION_TIMING_FUNCTION_LINEAR = 0x00b2 + MyCSS_PROPERTY_TRANSITION_TIMING_FUNCTION_EASE_IN_OUT = 0x0060 } typedef mycss_property_transition_timing_function_t; enum mycss_property_unicode_bidi { - MyCSS_PROPERTY_UNICODE_BIDI_ISOLATE = 0x00a0, MyCSS_PROPERTY_UNICODE_BIDI_BIDI_OVERRIDE = 0x0024, - MyCSS_PROPERTY_UNICODE_BIDI_PLAINTEXT = 0x0101, - MyCSS_PROPERTY_UNICODE_BIDI_ISOLATE_OVERRIDE = 0x00a1, + MyCSS_PROPERTY_UNICODE_BIDI_UNSET = 0x016e, MyCSS_PROPERTY_UNICODE_BIDI_EMBED = 0x0065, - MyCSS_PROPERTY_UNICODE_BIDI_NORMAL = 0x00d5 + MyCSS_PROPERTY_UNICODE_BIDI_NORMAL = 0x00d5, + MyCSS_PROPERTY_UNICODE_BIDI_ISOLATE = 0x00a0, + MyCSS_PROPERTY_UNICODE_BIDI_PLAINTEXT = 0x0101, + MyCSS_PROPERTY_UNICODE_BIDI_INITIAL = 0x0093, + MyCSS_PROPERTY_UNICODE_BIDI_INHERIT = 0x0092, + MyCSS_PROPERTY_UNICODE_BIDI_ISOLATE_OVERRIDE = 0x00a1 } typedef mycss_property_unicode_bidi_t; @@ -2341,8 +2498,11 @@ enum mycss_property_white_space { MyCSS_PROPERTY_WHITE_SPACE_PRE = 0x0103, MyCSS_PROPERTY_WHITE_SPACE_NORMAL = 0x00d5, MyCSS_PROPERTY_WHITE_SPACE_NOWRAP = 0x00d7, + MyCSS_PROPERTY_WHITE_SPACE_INHERIT = 0x0092, + MyCSS_PROPERTY_WHITE_SPACE_UNSET = 0x016e, + MyCSS_PROPERTY_WHITE_SPACE_PRE_LINE = 0x0106, MyCSS_PROPERTY_WHITE_SPACE_PRE_WRAP = 0x0107, - MyCSS_PROPERTY_WHITE_SPACE_PRE_LINE = 0x0106 + MyCSS_PROPERTY_WHITE_SPACE_INITIAL = 0x0093 } typedef mycss_property_white_space_t; @@ -2368,20 +2528,31 @@ enum mycss_property_will_change { typedef mycss_property_will_change_t; enum mycss_property_word_break { - MyCSS_PROPERTY_WORD_BREAK_KEEP_ALL = 0x00a9, + MyCSS_PROPERTY_WORD_BREAK_BREAK_ALL = 0x0030, + MyCSS_PROPERTY_WORD_BREAK_INITIAL = 0x0093, MyCSS_PROPERTY_WORD_BREAK_NORMAL = 0x00d5, - MyCSS_PROPERTY_WORD_BREAK_BREAK_ALL = 0x0030 + MyCSS_PROPERTY_WORD_BREAK_UNSET = 0x016e, + MyCSS_PROPERTY_WORD_BREAK_KEEP_ALL = 0x00a9, + MyCSS_PROPERTY_WORD_BREAK_INHERIT = 0x0092 } typedef mycss_property_word_break_t; enum mycss_property_word_spacing { - MyCSS_PROPERTY_WORD_SPACING_NORMAL = 0x00d5 + MyCSS_PROPERTY_WORD_SPACING_UNSET = 0x016e, + MyCSS_PROPERTY_WORD_SPACING_NORMAL = 0x00d5, + MyCSS_PROPERTY_WORD_SPACING_INHERIT = 0x0092, + MyCSS_PROPERTY_WORD_SPACING__PERCENTAGE = 0x019c, + MyCSS_PROPERTY_WORD_SPACING_INITIAL = 0x0093, + MyCSS_PROPERTY_WORD_SPACING__LENGTH = 0x0199 } typedef mycss_property_word_spacing_t; enum mycss_property_word_wrap { - MyCSS_PROPERTY_WORD_WRAP_NORMAL = 0x00d5, MyCSS_PROPERTY_WORD_WRAP_BREAK_WORD = 0x0032, + MyCSS_PROPERTY_WORD_WRAP_INHERIT = 0x0092, + MyCSS_PROPERTY_WORD_WRAP_UNSET = 0x016e, + MyCSS_PROPERTY_WORD_WRAP_NORMAL = 0x00d5, + MyCSS_PROPERTY_WORD_WRAP_INITIAL = 0x0093, MyCSS_PROPERTY_WORD_WRAP_BREAK_SPACES = 0x0031 } typedef mycss_property_word_wrap_t; diff --git a/source/mycss/property/parser.c b/source/mycss/property/parser.c index df52e9e..e182fa0 100644 --- a/source/mycss/property/parser.c +++ b/source/mycss/property/parser.c @@ -139,7 +139,7 @@ mycss_declaration_entry_t * mycss_property_parser_padding_shared(mycss_entry_t* void *value = NULL; unsigned int value_type = 0; - if(mycss_property_shared_length(entry, token, &value, &value_type, str) || + if(mycss_property_shared_length_percentage(entry, token, &value, &value_type, str) || mycss_property_shared_default(entry, token, &value_type, str)) { mycss_declaration_entry_t* decl = mycss_declaration_entry_create(entry->declaration, NULL); @@ -250,7 +250,7 @@ mycss_declaration_entry_t * mycss_property_parser_margin_shared(mycss_entry_t* e void *value = NULL; unsigned int value_type = 0; - if(mycss_property_shared_length(entry, token, &value, &value_type, str) || + if(mycss_property_shared_length_percentage(entry, token, &value, &value_type, str) || mycss_property_shared_default(entry, token, &value_type, str) || mycss_property_shared_by_value_type(entry, token, &value_type, MyCSS_PROPERTY_MARGIN_AUTO, str)) { @@ -416,7 +416,7 @@ bool mycss_property_parser_display(mycss_entry_t* entry, mycss_token_t* token, b return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_find_important(entry)); } -/* border width */ +/* border */ mycss_declaration_entry_t * mycss_property_parser_border_width_shared(mycss_entry_t* entry, mycss_token_t* token, myhtml_string_t* str) { void *value = NULL; @@ -435,6 +435,146 @@ mycss_declaration_entry_t * mycss_property_parser_border_width_shared(mycss_entr return NULL; } +static mycss_declaration_entry_t * mycss_property_parser_border_color_shared(mycss_entry_t* entry, mycss_token_t* token, + myhtml_string_t* str, mycss_parser_token_f return_parser, + unsigned int type) +{ + void *value = NULL; + unsigned int value_type = 0; + bool parser_changed = false; + + if(mycss_property_shared_color(entry, token, &value, &value_type, str, &parser_changed)) + { + mycss_declaration_entry_t* step_dec_entry = mycss_declaration_entry_create(entry->declaration, NULL); + + step_dec_entry->type = type; + step_dec_entry->value = value; + step_dec_entry->value_type = value_type; + + if(parser_changed) { + mycss_stack_push(entry->declaration->stack, entry->declaration->entry_last->value, return_parser); + entry->declaration->entry_last->value = step_dec_entry->value; + } + + return step_dec_entry; + } + + return NULL; +} + +mycss_declaration_entry_t * mycss_property_parser_border_style_shared(mycss_entry_t* entry, mycss_token_t* token, myhtml_string_t* str) +{ + unsigned int value_type = 0; + + if(mycss_property_shared_line_style(entry, token, &value_type, str)) + { + mycss_declaration_entry_t* decl = mycss_declaration_entry_create(entry->declaration, NULL); + decl->value_type = value_type; + + return decl; + } + + return NULL; +} + +bool mycss_property_parser_border_after(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) + return true; + + if(mycss_property_shared_check_declaration_end(entry, token)) { + return true; + } + + entry->parser = mycss_property_parser_border_top; + return false; +} + +bool mycss_property_parser_border(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + return mycss_property_parser_border_top(entry, token, last_response); +} + +bool mycss_property_parser_border_top(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) + return true; + + myhtml_string_t str = {0}; + unsigned int value_type = 0; + mycss_declaration_entry_t* dec_entry = entry->declaration->entry_last; + + if(mycss_property_shared_default(entry, token, &value_type, &str)) + { + if(dec_entry->value == NULL) { + dec_entry->value_type = value_type; + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_find_important(entry)); + } + } + + if(dec_entry->value == NULL) + dec_entry->value = mycss_values_create(entry, sizeof(mycss_values_border_t)); + + mycss_declaration_entry_t* shared_declr; + mycss_values_border_t *border = dec_entry->value; + + if(mycss_property_shared_check_declaration_end(entry, token)) + { + if(border == NULL || (border->style == NULL && border->width == NULL && border->color == NULL)) + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); + + return mycss_property_parser_destroy_string(&str, true); + } + + if((shared_declr = mycss_property_parser_border_width_shared(entry, token, &str))) { + if(border->width) + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); + + border->width = shared_declr; + border->width->type = MyCSS_PROPERTY_TYPE_BORDER_TOP_WIDTH; + + return mycss_property_parser_destroy_string(&str, true); + } + + if((shared_declr = mycss_property_parser_border_style_shared(entry, token, &str))) { + if(border->style) + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); + + border->style = shared_declr; + border->style->type = MyCSS_PROPERTY_TYPE_BORDER_TOP_STYLE; + + return mycss_property_parser_destroy_string(&str, true); + } + + if(border->color == NULL) { + if((shared_declr = mycss_property_parser_border_color_shared(entry, token, &str, + mycss_property_parser_border_after, + MyCSS_PROPERTY_TYPE_BORDER_TOP_COLOR))) + { + border->color = shared_declr; + return mycss_property_parser_destroy_string(&str, true); + } + } + + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); +} + +bool mycss_property_parser_border_right(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + return mycss_property_parser_border_top(entry, token, last_response); +} + +bool mycss_property_parser_border_bottom(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + return mycss_property_parser_border_top(entry, token, last_response); +} + +bool mycss_property_parser_border_left(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + return mycss_property_parser_border_top(entry, token, last_response); +} + +/* border width */ bool mycss_property_parser_border_width(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) @@ -486,7 +626,7 @@ bool mycss_property_parser_border_width(mycss_entry_t* entry, mycss_token_t* tok } } - return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry));; + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); } bool mycss_property_parser_border_top_width(mycss_entry_t* entry, mycss_token_t* token, bool last_response) @@ -520,21 +660,6 @@ bool mycss_property_parser_border_left_width(mycss_entry_t* entry, mycss_token_t } /* border style */ -mycss_declaration_entry_t * mycss_property_parser_border_style_shared(mycss_entry_t* entry, mycss_token_t* token, myhtml_string_t* str) -{ - unsigned int value_type = 0; - - if(mycss_property_shared_line_style(entry, token, &value_type, str)) - { - mycss_declaration_entry_t* decl = mycss_declaration_entry_create(entry->declaration, NULL); - decl->value_type = value_type; - - return decl; - } - - return NULL; -} - bool mycss_property_parser_border_style(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) @@ -620,7 +745,7 @@ bool mycss_property_parser_border_left_style(mycss_entry_t* entry, mycss_token_t } /* border radius */ -static mycss_declaration_entry_t * mycss_property_parser_border_radius_shared(mycss_entry_t* entry, mycss_token_t* token, myhtml_string_t* str) +static mycss_declaration_entry_t * mycss_property_parser_border_radius_shared(mycss_entry_t* entry, mycss_token_t* token, myhtml_string_t* str, bool is_first) { void *value = NULL; unsigned int value_type = 0; @@ -631,8 +756,14 @@ static mycss_declaration_entry_t * mycss_property_parser_border_radius_shared(my mycss_values_shorthand_two_type_t *short_two_type = mycss_values_create(entry, sizeof(mycss_values_shorthand_two_type_t)); - short_two_type->one = value; - short_two_type->type_one = value_type; + if(is_first) { + short_two_type->one = value; + short_two_type->type_one = value_type; + } + else { + short_two_type->two = value; + short_two_type->type_two = value_type; + } decl->value = short_two_type; return decl; @@ -670,17 +801,38 @@ bool mycss_property_parser_border_radius_two(mycss_entry_t* entry, mycss_token_t if(mycss_property_parser_border_radius_two_shared(entry, token, value->one->value, &str)) return mycss_property_parser_destroy_string(&str, true); } - else if(value->two && ((mycss_values_shorthand_two_type_t*)(value->two->value))->two == NULL) + else if(value->two == NULL) + { + if((value->two = mycss_property_parser_border_radius_shared(entry, token, &str, false))) { + value->two->type = MyCSS_PROPERTY_TYPE_BORDER_TOP_RIGHT_RADIUS; + return mycss_property_parser_destroy_string(&str, true); + } + } + else if(((mycss_values_shorthand_two_type_t*)(value->two->value))->two == NULL) { if(mycss_property_parser_border_radius_two_shared(entry, token, value->two->value, &str)) return mycss_property_parser_destroy_string(&str, true); } - else if(value->three && ((mycss_values_shorthand_two_type_t*)(value->three->value))->two == NULL) + else if(value->three == NULL) + { + if((value->three = mycss_property_parser_border_radius_shared(entry, token, &str, false))) { + value->three->type = MyCSS_PROPERTY_TYPE_BORDER_BOTTOM_RIGHT_RADIUS; + return mycss_property_parser_destroy_string(&str, true); + } + } + else if(((mycss_values_shorthand_two_type_t*)(value->three->value))->two == NULL) { if(mycss_property_parser_border_radius_two_shared(entry, token, value->three->value, &str)) return mycss_property_parser_destroy_string(&str, true); } - else if(value->four && ((mycss_values_shorthand_two_type_t*)(value->four->value))->two == NULL) + else if(value->four == NULL) + { + if((value->four = mycss_property_parser_border_radius_shared(entry, token, &str, false))) { + value->four->type = MyCSS_PROPERTY_TYPE_BORDER_BOTTOM_LEFT_RADIUS; + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_find_important(entry)); + } + } + else if(((mycss_values_shorthand_two_type_t*)(value->four->value))->two == NULL) { if(mycss_property_parser_border_radius_two_shared(entry, token, value->four->value, &str)) return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_find_important(entry)); @@ -689,13 +841,13 @@ bool mycss_property_parser_border_radius_two(mycss_entry_t* entry, mycss_token_t return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); } -static bool mycss_property_parser_border_wait_two(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +static bool mycss_property_parser_border_radius_wait_two(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) return true; if(mycss_property_shared_check_declaration_end(entry, token)) { - return mycss_property_shared_switch_to_find_important(entry); + return true; } if(token->type == MyCSS_TOKEN_TYPE_DELIM && *token->data == '/') { @@ -730,7 +882,7 @@ bool mycss_property_parser_border_radius(mycss_entry_t* entry, mycss_token_t* to if(value->one == NULL) { - if((value->one = mycss_property_parser_border_radius_shared(entry, token, &str))) { + if((value->one = mycss_property_parser_border_radius_shared(entry, token, &str, true))) { value->one->type = MyCSS_PROPERTY_TYPE_BORDER_TOP_LEFT_RADIUS; return mycss_property_parser_destroy_string(&str, true); } @@ -743,24 +895,24 @@ bool mycss_property_parser_border_radius(mycss_entry_t* entry, mycss_token_t* to } else if(value->two == NULL) { - if((value->two = mycss_property_parser_border_radius_shared(entry, token, &str))) { + if((value->two = mycss_property_parser_border_radius_shared(entry, token, &str, true))) { value->two->type = MyCSS_PROPERTY_TYPE_BORDER_TOP_RIGHT_RADIUS; return mycss_property_parser_destroy_string(&str, true); } } else if(value->three == NULL) { - if((value->three = mycss_property_parser_border_radius_shared(entry, token, &str))) { + if((value->three = mycss_property_parser_border_radius_shared(entry, token, &str, true))) { value->three->type = MyCSS_PROPERTY_TYPE_BORDER_BOTTOM_RIGHT_RADIUS; return mycss_property_parser_destroy_string(&str, true); } } else if(value->four == NULL) { - if((value->four = mycss_property_parser_border_radius_shared(entry, token, &str))) { + if((value->four = mycss_property_parser_border_radius_shared(entry, token, &str, true))) { value->four->type = MyCSS_PROPERTY_TYPE_BORDER_BOTTOM_LEFT_RADIUS; - entry->parser = mycss_property_parser_border_wait_two; + entry->parser = mycss_property_parser_border_radius_wait_two; return mycss_property_parser_destroy_string(&str, true); } } @@ -769,7 +921,7 @@ bool mycss_property_parser_border_radius(mycss_entry_t* entry, mycss_token_t* to if(value->one == NULL) return mycss_property_shared_switch_to_parse_error(entry); - entry->parser = mycss_property_parser_border_wait_two; + entry->parser = mycss_property_parser_border_radius_two; return mycss_property_parser_destroy_string(&str, true); } @@ -833,6 +985,98 @@ bool mycss_property_parser_border_bottom_left_radius(mycss_entry_t* entry, mycss return mycss_property_parser_border_top_right_radius(entry, token, last_response); } +/* border color */ +bool mycss_property_parser_border_color(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) + return true; + + myhtml_string_t str = {0}; + + mycss_declaration_entry_t* dec_entry = entry->declaration->entry_last; + mycss_values_shorthand_four_t *value = dec_entry->value; + + if(value == NULL) + { + unsigned int value_type = 0; + if(mycss_property_shared_default(entry, token, &value_type, &str)) + { + if(value == NULL) { + dec_entry->value_type = value_type; + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_find_important(entry)); + } + + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); + } + + mycss_declaration_entry_t* shared_declr; + dec_entry->value = value = mycss_values_create(entry, sizeof(mycss_values_shorthand_four_t)); + + if((shared_declr = mycss_property_parser_border_color_shared(entry, token, &str, mycss_property_parser_border_color_after, + MyCSS_PROPERTY_TYPE_BORDER_TOP_COLOR))) + { + value->one = shared_declr; + return mycss_property_parser_destroy_string(&str, true); + } + } + else if(value->two == NULL) { + if((value->two = mycss_property_parser_border_color_shared(entry, token, &str, mycss_property_parser_border_color_after, + MyCSS_PROPERTY_TYPE_BORDER_RIGHT_COLOR))) + { + return mycss_property_parser_destroy_string(&str, true); + } + } + else if(value->three == NULL) { + if((value->three = mycss_property_parser_border_color_shared(entry, token, &str, mycss_property_parser_border_color_after, + MyCSS_PROPERTY_TYPE_BORDER_BOTTOM_COLOR))) + { + return mycss_property_parser_destroy_string(&str, true); + } + } + else if(value->four == NULL) { + if((value->four = mycss_property_parser_border_color_shared(entry, token, &str, mycss_property_parser_border_color_after, + MyCSS_PROPERTY_TYPE_BORDER_LEFT_COLOR))) + { + return mycss_property_parser_destroy_string(&str, true); + } + } + + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); +} + +bool mycss_property_parser_border_color_after(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) + return true; + + if(mycss_property_shared_check_declaration_end(entry, token)) { + return true; + } + + entry->parser = mycss_property_parser_border_color; + return false; +} + +bool mycss_property_parser_border_top_color(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + return mycss_property_parser_color(entry, token, last_response); +} + +bool mycss_property_parser_border_right_color(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + return mycss_property_parser_color(entry, token, last_response); +} + +bool mycss_property_parser_border_bottom_color(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + return mycss_property_parser_color(entry, token, last_response); +} + +bool mycss_property_parser_border_left_color(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + return mycss_property_parser_color(entry, token, last_response); +} + /* box sizing */ bool mycss_property_parser_box_sizing(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { @@ -958,108 +1202,6 @@ bool mycss_property_parser_color_after(mycss_entry_t* entry, mycss_token_t* toke return mycss_property_shared_switch_to_parse_error(entry); } -/* border color */ -static mycss_declaration_entry_t * mycss_property_parser_border_color_step(mycss_entry_t* entry, mycss_token_t* token, unsigned int type) -{ - myhtml_string_t str = {0}; - - void *value = NULL; - unsigned int value_type = 0; - bool parser_changed = false; - - if(mycss_property_shared_color(entry, token, &value, &value_type, &str, &parser_changed) || - mycss_property_shared_default(entry, token, &value_type, &str)) - { - mycss_declaration_entry_t* step_dec_entry = mycss_declaration_entry_create(entry->declaration, NULL); - - step_dec_entry->type = type; - step_dec_entry->value = value; - step_dec_entry->value_type = value_type; - - if(parser_changed) { - mycss_stack_push(entry->declaration->stack, entry->declaration->entry_last->value, mycss_property_parser_border_color_after); - entry->declaration->entry_last->value = step_dec_entry->value; - } - - myhtml_string_destroy(&str, false); - return step_dec_entry; - } - - myhtml_string_destroy(&str, false); - return NULL; -} - -bool mycss_property_parser_border_color(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) - return true; - - mycss_declaration_entry_t* dec_entry = entry->declaration->entry_last; - - if(dec_entry->value == NULL) - dec_entry->value = mycss_values_create(entry, sizeof(mycss_values_shorthand_four_t)); - - mycss_values_shorthand_four_t *value = dec_entry->value; - - if(value->one == NULL) { - if((value->one = mycss_property_parser_border_color_step(entry, token, MyCSS_PROPERTY_TYPE_BORDER_TOP_COLOR))) { - return true; - } - } - else if(value->two == NULL) { - if((value->two = mycss_property_parser_border_color_step(entry, token, MyCSS_PROPERTY_TYPE_BORDER_RIGHT_COLOR))) { - return true; - } - } - else if(value->three == NULL) { - if((value->three = mycss_property_parser_border_color_step(entry, token, MyCSS_PROPERTY_TYPE_BORDER_BOTTOM_COLOR))) { - return true; - } - } - else if(value->four == NULL) { - if((value->four = mycss_property_parser_border_color_step(entry, token, MyCSS_PROPERTY_TYPE_BORDER_LEFT_COLOR))) { - return true; - } - } - - return mycss_property_shared_switch_to_parse_error(entry); -} - -bool mycss_property_parser_border_color_after(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) - return true; - - entry->declaration->entry_last = entry->declaration->entry_temp; - - if(mycss_property_shared_check_declaration_end(entry, token)) { - return true; - } - - entry->parser = mycss_property_parser_border_color; - return false; -} - -bool mycss_property_parser_border_top_color(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_parser_color(entry, token, last_response); -} - -bool mycss_property_parser_border_right_color(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_parser_color(entry, token, last_response); -} - -bool mycss_property_parser_border_bottom_color(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_parser_color(entry, token, last_response); -} - -bool mycss_property_parser_border_left_color(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_parser_color(entry, token, last_response); -} - /* position */ bool mycss_property_parser_position(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { @@ -1423,7 +1565,33 @@ bool mycss_property_parser_overflow(mycss_entry_t* entry, mycss_token_t* token, bool mycss_property_parser_overflow_wrap(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { - return mycss_property_shared_switch_to_parse_error(entry); + if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) + return true; + + myhtml_string_t str = {0}; + mycss_declaration_entry_t* dec_entry = entry->declaration->entry_last; + + if(token->type != MyCSS_TOKEN_TYPE_IDENT) + return mycss_property_shared_switch_to_parse_error(entry); + + mycss_token_data_to_string(entry, token, &str, true, false); + dec_entry->value_type = mycss_property_value_type_by_name(str.data, str.length); + + switch (dec_entry->value_type) { + case MyCSS_PROPERTY_OVERFLOW_WRAP_NORMAL: + case MyCSS_PROPERTY_OVERFLOW_WRAP_BREAK_WORD: + case MyCSS_PROPERTY_OVERFLOW_WRAP_BREAK_SPACES: + /* default values */ + case MyCSS_PROPERTY_VALUE_INHERIT: + case MyCSS_PROPERTY_VALUE_INITIAL: + case MyCSS_PROPERTY_VALUE_UNSET: + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_find_important(entry)); + + default: + break; + } + + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); } bool mycss_property_parser_overflow_x(mycss_entry_t* entry, mycss_token_t* token, bool last_response) @@ -2017,6 +2185,322 @@ bool mycss_property_parser_text_align_last(mycss_entry_t* entry, mycss_token_t* return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); } +/* text-transform */ +bool mycss_property_parser_white_space(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) + return true; + + myhtml_string_t str = {0}; + mycss_declaration_entry_t* dec_entry = entry->declaration->entry_last; + + if(token->type != MyCSS_TOKEN_TYPE_IDENT) + return mycss_property_shared_switch_to_parse_error(entry); + + mycss_token_data_to_string(entry, token, &str, true, false); + dec_entry->value_type = mycss_property_value_type_by_name(str.data, str.length); + + switch (dec_entry->value_type) { + case MyCSS_PROPERTY_WHITE_SPACE_NORMAL: + case MyCSS_PROPERTY_WHITE_SPACE_PRE: + case MyCSS_PROPERTY_WHITE_SPACE_NOWRAP: + case MyCSS_PROPERTY_WHITE_SPACE_PRE_WRAP: + case MyCSS_PROPERTY_WHITE_SPACE_PRE_LINE: + /* default values */ + case MyCSS_PROPERTY_VALUE_INHERIT: + case MyCSS_PROPERTY_VALUE_INITIAL: + case MyCSS_PROPERTY_VALUE_UNSET: + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_find_important(entry)); + + default: + break; + } + + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); +} + +bool mycss_property_parser_text_transform(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) + return true; + + myhtml_string_t str = {0}; + mycss_declaration_entry_t* dec_entry = entry->declaration->entry_last; + + if(token->type != MyCSS_TOKEN_TYPE_IDENT) + return mycss_property_shared_switch_to_parse_error(entry); + + mycss_token_data_to_string(entry, token, &str, true, false); + dec_entry->value_type = mycss_property_value_type_by_name(str.data, str.length); + + switch (dec_entry->value_type) { + case MyCSS_PROPERTY_TEXT_TRANSFORM_NONE: + case MyCSS_PROPERTY_TEXT_TRANSFORM_CAPITALIZE: + case MyCSS_PROPERTY_TEXT_TRANSFORM_UPPERCASE: + case MyCSS_PROPERTY_TEXT_TRANSFORM_LOWERCASE: + case MyCSS_PROPERTY_TEXT_TRANSFORM_FULL_WIDTH: + /* default values */ + case MyCSS_PROPERTY_VALUE_INHERIT: + case MyCSS_PROPERTY_VALUE_INITIAL: + case MyCSS_PROPERTY_VALUE_UNSET: + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_find_important(entry)); + + default: + break; + } + + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); +} + +bool mycss_property_parser_word_break(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) + return true; + + myhtml_string_t str = {0}; + mycss_declaration_entry_t* dec_entry = entry->declaration->entry_last; + + if(token->type != MyCSS_TOKEN_TYPE_IDENT) + return mycss_property_shared_switch_to_parse_error(entry); + + mycss_token_data_to_string(entry, token, &str, true, false); + dec_entry->value_type = mycss_property_value_type_by_name(str.data, str.length); + + switch (dec_entry->value_type) { + case MyCSS_PROPERTY_WORD_BREAK_NORMAL: + case MyCSS_PROPERTY_WORD_BREAK_KEEP_ALL: + case MyCSS_PROPERTY_WORD_BREAK_BREAK_ALL: + /* default values */ + case MyCSS_PROPERTY_VALUE_INHERIT: + case MyCSS_PROPERTY_VALUE_INITIAL: + case MyCSS_PROPERTY_VALUE_UNSET: + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_find_important(entry)); + + default: + break; + } + + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); +} + +bool mycss_property_parser_line_break(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) + return true; + + myhtml_string_t str = {0}; + mycss_declaration_entry_t* dec_entry = entry->declaration->entry_last; + + if(token->type != MyCSS_TOKEN_TYPE_IDENT) + return mycss_property_shared_switch_to_parse_error(entry); + + mycss_token_data_to_string(entry, token, &str, true, false); + dec_entry->value_type = mycss_property_value_type_by_name(str.data, str.length); + + switch (dec_entry->value_type) { + case MyCSS_PROPERTY_LINE_BREAK_AUTO: + case MyCSS_PROPERTY_LINE_BREAK_LOOSE: + case MyCSS_PROPERTY_LINE_BREAK_NORMAL: + case MyCSS_PROPERTY_LINE_BREAK_STRICT: + /* default values */ + case MyCSS_PROPERTY_VALUE_INHERIT: + case MyCSS_PROPERTY_VALUE_INITIAL: + case MyCSS_PROPERTY_VALUE_UNSET: + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_find_important(entry)); + + default: + break; + } + + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); +} + +bool mycss_property_parser_tab_size(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) + return true; + + myhtml_string_t str = {0}; + mycss_declaration_entry_t* dec_entry = entry->declaration->entry_last; + + if(mycss_property_shared_number(entry, token, &dec_entry->value, &dec_entry->value_type, &str) || + mycss_property_shared_length(entry, token, &dec_entry->value, &dec_entry->value_type, &str) || + mycss_property_shared_default(entry, token, &dec_entry->value_type, &str)) + { + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_find_important(entry)); + } + + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); +} + +bool mycss_property_parser_hyphens(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) + return true; + + myhtml_string_t str = {0}; + mycss_declaration_entry_t* dec_entry = entry->declaration->entry_last; + + if(token->type != MyCSS_TOKEN_TYPE_IDENT) + return mycss_property_shared_switch_to_parse_error(entry); + + mycss_token_data_to_string(entry, token, &str, true, false); + dec_entry->value_type = mycss_property_value_type_by_name(str.data, str.length); + + switch (dec_entry->value_type) { + case MyCSS_PROPERTY_HYPHENS_NONE: + case MyCSS_PROPERTY_HYPHENS_MANUAL: + case MyCSS_PROPERTY_HYPHENS_AUTO: + /* default values */ + case MyCSS_PROPERTY_VALUE_INHERIT: + case MyCSS_PROPERTY_VALUE_INITIAL: + case MyCSS_PROPERTY_VALUE_UNSET: + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_find_important(entry)); + + default: + break; + } + + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); +} + +bool mycss_property_parser_word_wrap(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + return mycss_property_parser_overflow_wrap(entry, token, last_response); +} + +bool mycss_property_parser_text_justify(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) + return true; + + myhtml_string_t str = {0}; + mycss_declaration_entry_t* dec_entry = entry->declaration->entry_last; + + if(token->type != MyCSS_TOKEN_TYPE_IDENT) + return mycss_property_shared_switch_to_parse_error(entry); + + mycss_token_data_to_string(entry, token, &str, true, false); + dec_entry->value_type = mycss_property_value_type_by_name(str.data, str.length); + + switch (dec_entry->value_type) { + case MyCSS_PROPERTY_TEXT_JUSTIFY_AUTO: + case MyCSS_PROPERTY_TEXT_JUSTIFY_NONE: + case MyCSS_PROPERTY_TEXT_JUSTIFY_INTER_WORD: + case MyCSS_PROPERTY_TEXT_JUSTIFY_INTER_CHARACTER: + /* default values */ + case MyCSS_PROPERTY_VALUE_INHERIT: + case MyCSS_PROPERTY_VALUE_INITIAL: + case MyCSS_PROPERTY_VALUE_UNSET: + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_find_important(entry)); + + default: + break; + } + + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); +} + +bool mycss_property_parser_word_spacing(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) + return true; + + myhtml_string_t str = {0}; + mycss_declaration_entry_t* dec_entry = entry->declaration->entry_last; + + if(mycss_property_shared_length_percentage(entry, token, &dec_entry->value, &dec_entry->value_type, &str) || + mycss_property_shared_by_value_type(entry, token, &dec_entry->value_type, MyCSS_PROPERTY_WORD_SPACING_NORMAL, &str) || + mycss_property_shared_default(entry, token, &dec_entry->value_type, &str)) + { + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_find_important(entry)); + } + + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); +} + +bool mycss_property_parser_letter_spacing(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) + return true; + + myhtml_string_t str = {0}; + mycss_declaration_entry_t* dec_entry = entry->declaration->entry_last; + + if(mycss_property_shared_length(entry, token, &dec_entry->value, &dec_entry->value_type, &str) || + mycss_property_shared_by_value_type(entry, token, &dec_entry->value_type, MyCSS_PROPERTY_LETTER_SPACING_NORMAL, &str) || + mycss_property_shared_default(entry, token, &dec_entry->value_type, &str)) + { + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_find_important(entry)); + } + + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); +} + +bool mycss_property_parser_direction(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) + return true; + + myhtml_string_t str = {0}; + mycss_declaration_entry_t* dec_entry = entry->declaration->entry_last; + + if(token->type != MyCSS_TOKEN_TYPE_IDENT) + return mycss_property_shared_switch_to_parse_error(entry); + + mycss_token_data_to_string(entry, token, &str, true, false); + dec_entry->value_type = mycss_property_value_type_by_name(str.data, str.length); + + switch (dec_entry->value_type) { + case MyCSS_PROPERTY_DIRECTION_LTR: + case MyCSS_PROPERTY_DIRECTION_RTL: + /* default values */ + case MyCSS_PROPERTY_VALUE_INHERIT: + case MyCSS_PROPERTY_VALUE_INITIAL: + case MyCSS_PROPERTY_VALUE_UNSET: + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_find_important(entry)); + + default: + break; + } + + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); +} + +bool mycss_property_parser_unicode_bidi(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) + return true; + + myhtml_string_t str = {0}; + mycss_declaration_entry_t* dec_entry = entry->declaration->entry_last; + + if(token->type != MyCSS_TOKEN_TYPE_IDENT) + return mycss_property_shared_switch_to_parse_error(entry); + + mycss_token_data_to_string(entry, token, &str, true, false); + dec_entry->value_type = mycss_property_value_type_by_name(str.data, str.length); + + switch (dec_entry->value_type) { + case MyCSS_PROPERTY_UNICODE_BIDI_NORMAL: + case MyCSS_PROPERTY_UNICODE_BIDI_EMBED: + case MyCSS_PROPERTY_UNICODE_BIDI_ISOLATE: + case MyCSS_PROPERTY_UNICODE_BIDI_BIDI_OVERRIDE: + case MyCSS_PROPERTY_UNICODE_BIDI_ISOLATE_OVERRIDE: + case MyCSS_PROPERTY_UNICODE_BIDI_PLAINTEXT: + /* default values */ + case MyCSS_PROPERTY_VALUE_INHERIT: + case MyCSS_PROPERTY_VALUE_INITIAL: + case MyCSS_PROPERTY_VALUE_UNSET: + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_find_important(entry)); + + default: + break; + } + + return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); +} + /* not yet */ bool mycss_property_parser_align_content(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { @@ -2103,16 +2587,6 @@ bool mycss_property_parser_bookmark_state(mycss_entry_t* entry, mycss_token_t* t return mycss_property_shared_switch_to_parse_error(entry); } -bool mycss_property_parser_border(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_shared_switch_to_parse_error(entry); -} - -bool mycss_property_parser_border_bottom(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_shared_switch_to_parse_error(entry); -} - bool mycss_property_parser_border_collapse(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { return mycss_property_shared_switch_to_parse_error(entry); @@ -2143,26 +2617,11 @@ bool mycss_property_parser_border_image_width(mycss_entry_t* entry, mycss_token_ return mycss_property_shared_switch_to_parse_error(entry); } -bool mycss_property_parser_border_left(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_shared_switch_to_parse_error(entry); -} - -bool mycss_property_parser_border_right(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_shared_switch_to_parse_error(entry); -} - bool mycss_property_parser_border_spacing(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { return mycss_property_shared_switch_to_parse_error(entry); } -bool mycss_property_parser_border_top(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_shared_switch_to_parse_error(entry); -} - bool mycss_property_parser_box_decoration_break(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { return mycss_property_shared_switch_to_parse_error(entry); @@ -2318,11 +2777,6 @@ bool mycss_property_parser_cue_before(mycss_entry_t* entry, mycss_token_t* token return mycss_property_shared_switch_to_parse_error(entry); } -bool mycss_property_parser_direction(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_shared_switch_to_parse_error(entry); -} - bool mycss_property_parser_empty_cells(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { return mycss_property_shared_switch_to_parse_error(entry); @@ -2443,11 +2897,6 @@ bool mycss_property_parser_hanging_punctuation(mycss_entry_t* entry, mycss_token return mycss_property_shared_switch_to_parse_error(entry); } -bool mycss_property_parser_hyphens(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_shared_switch_to_parse_error(entry); -} - bool mycss_property_parser_image_rendering(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { return mycss_property_shared_switch_to_parse_error(entry); @@ -2468,16 +2917,6 @@ bool mycss_property_parser_justify_content(mycss_entry_t* entry, mycss_token_t* return mycss_property_shared_switch_to_parse_error(entry); } -bool mycss_property_parser_letter_spacing(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_shared_switch_to_parse_error(entry); -} - -bool mycss_property_parser_line_break(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_shared_switch_to_parse_error(entry); -} - bool mycss_property_parser_line_height_step(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { return mycss_property_shared_switch_to_parse_error(entry); @@ -2788,11 +3227,6 @@ bool mycss_property_parser_stroke_width(mycss_entry_t* entry, mycss_token_t* tok return mycss_property_shared_switch_to_parse_error(entry); } -bool mycss_property_parser_tab_size(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_shared_switch_to_parse_error(entry); -} - bool mycss_property_parser_table_layout(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { return mycss_property_shared_switch_to_parse_error(entry); @@ -2828,11 +3262,6 @@ bool mycss_property_parser_text_indent(mycss_entry_t* entry, mycss_token_t* toke return mycss_property_shared_switch_to_parse_error(entry); } -bool mycss_property_parser_text_justify(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_shared_switch_to_parse_error(entry); -} - bool mycss_property_parser_text_orientation(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { return mycss_property_shared_switch_to_parse_error(entry); @@ -2858,11 +3287,6 @@ bool mycss_property_parser_text_size_adjust(mycss_entry_t* entry, mycss_token_t* return mycss_property_shared_switch_to_parse_error(entry); } -bool mycss_property_parser_text_transform(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_shared_switch_to_parse_error(entry); -} - bool mycss_property_parser_text_underline_position(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { return mycss_property_shared_switch_to_parse_error(entry); @@ -2918,11 +3342,6 @@ bool mycss_property_parser_transition_timing_function(mycss_entry_t* entry, mycs return mycss_property_shared_switch_to_parse_error(entry); } -bool mycss_property_parser_unicode_bidi(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_shared_switch_to_parse_error(entry); -} - bool mycss_property_parser_user_select(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { return mycss_property_shared_switch_to_parse_error(entry); @@ -2968,11 +3387,6 @@ bool mycss_property_parser_voice_volume(mycss_entry_t* entry, mycss_token_t* tok return mycss_property_shared_switch_to_parse_error(entry); } -bool mycss_property_parser_white_space(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_shared_switch_to_parse_error(entry); -} - bool mycss_property_parser_widows(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { return mycss_property_shared_switch_to_parse_error(entry); @@ -2983,21 +3397,6 @@ bool mycss_property_parser_will_change(mycss_entry_t* entry, mycss_token_t* toke return mycss_property_shared_switch_to_parse_error(entry); } -bool mycss_property_parser_word_break(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_shared_switch_to_parse_error(entry); -} - -bool mycss_property_parser_word_spacing(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_shared_switch_to_parse_error(entry); -} - -bool mycss_property_parser_word_wrap(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_shared_switch_to_parse_error(entry); -} - bool mycss_property_parser_wrap_flow(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { return mycss_property_shared_switch_to_parse_error(entry); diff --git a/source/mycss/property/parser_text_decoration.c b/source/mycss/property/parser_text_decoration.c index 32616b8..3e021f7 100644 --- a/source/mycss/property/parser_text_decoration.c +++ b/source/mycss/property/parser_text_decoration.c @@ -20,6 +20,16 @@ #include "mycss/property/parser.h" +static void mycss_property_parser_text_decoration_parser_switch(mycss_entry_t* entry) +{ + mycss_stack_entry_t *stack_entry = mycss_stack_pop(entry->declaration->stack); + + if(stack_entry->value) + entry->declaration->entry_last = stack_entry->value; + + entry->parser = stack_entry->parser; +} + void * mycss_property_destroy_text_decoration(mycss_entry_t* entry, void* value) { if(value == NULL) @@ -132,10 +142,8 @@ bool mycss_property_parser_text_decoration(mycss_entry_t* entry, mycss_token_t* text_decoration->line->value = new_value; + mycss_stack_push(entry->declaration->stack, dec_entry, mycss_property_parser_text_decoration_after_line); entry->declaration->entry_last = text_decoration->line; - entry->declaration->entry_temp = dec_entry; - - entry->parser_switch = mycss_property_parser_text_decoration_after_line; } else { text_decoration->line->value_type = value_type; @@ -149,7 +157,7 @@ bool mycss_property_parser_text_decoration(mycss_entry_t* entry, mycss_token_t* bool mycss_property_parser_text_decoration_after_color(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { - mycss_declaration_entry_t* dec_entry = entry->declaration->entry_last = entry->declaration->entry_temp; + mycss_declaration_entry_t* dec_entry = entry->declaration->entry_last; if(mycss_property_shared_check_declaration_end(entry, token)) { @@ -173,7 +181,7 @@ bool mycss_property_parser_text_decoration_after_color(mycss_entry_t* entry, myc bool mycss_property_parser_text_decoration_after_line(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { - mycss_declaration_entry_t* dec_entry = entry->declaration->entry_last = entry->declaration->entry_temp; + mycss_declaration_entry_t* dec_entry = entry->declaration->entry_last; if(mycss_property_shared_check_declaration_end(entry, token)) { @@ -251,7 +259,7 @@ bool mycss_property_parser_text_decoration_skip(mycss_entry_t* entry, mycss_toke dec_entry->value = new_value; - entry->parser_switch = mycss_property_parser_text_decoration_skip_after; + mycss_stack_push(entry->declaration->stack, dec_entry, mycss_property_parser_text_decoration_skip_after); } return mycss_property_parser_destroy_string(&str, true); @@ -266,7 +274,7 @@ bool mycss_property_parser_text_decoration_skip_not_none(mycss_entry_t* entry, m return true; if(token->type != MyCSS_TOKEN_TYPE_IDENT) { - entry->parser = entry->parser_switch; + mycss_property_parser_text_decoration_parser_switch(entry); return false; } @@ -276,7 +284,7 @@ bool mycss_property_parser_text_decoration_skip_not_none(mycss_entry_t* entry, m if(mycss_property_shared_text_decoration_skip(entry, token, (unsigned int*)dec_entry->value, &dec_entry->value_type, &str, false)) return mycss_property_parser_destroy_string(&str, true); - entry->parser = entry->parser_switch; + mycss_property_parser_text_decoration_parser_switch(entry); return mycss_property_parser_destroy_string(&str, false); } @@ -331,7 +339,7 @@ bool mycss_property_parser_text_decoration_line(mycss_entry_t* entry, mycss_toke dec_entry->value = new_value; - entry->parser_switch = mycss_property_parser_text_decoration_line_after; + mycss_stack_push(entry->declaration->stack, dec_entry, mycss_property_parser_text_decoration_line_after); } return mycss_property_parser_destroy_string(&str, true); @@ -346,7 +354,7 @@ bool mycss_property_parser_text_decoration_line_not_none(mycss_entry_t* entry, m return true; if(token->type != MyCSS_TOKEN_TYPE_IDENT) { - entry->parser = entry->parser_switch; + mycss_property_parser_text_decoration_parser_switch(entry); return false; } @@ -356,7 +364,7 @@ bool mycss_property_parser_text_decoration_line_not_none(mycss_entry_t* entry, m if(mycss_property_shared_text_decoration_line(entry, token, (unsigned int*)dec_entry->value, &dec_entry->value_type, &str, false)) return mycss_property_parser_destroy_string(&str, true); - entry->parser = entry->parser_switch; + mycss_property_parser_text_decoration_parser_switch(entry); return mycss_property_parser_destroy_string(&str, false); } diff --git a/source/mycss/stack.c b/source/mycss/stack.c index 1f7eeba..9e0928b 100644 --- a/source/mycss/stack.c +++ b/source/mycss/stack.c @@ -90,4 +90,11 @@ mycss_stack_entry_t * mycss_stack_pop(mycss_stack_t *stack) return &stack->entries[ stack->entries_length ]; } +mycss_stack_entry_t * mycss_stack_current(mycss_stack_t *stack) +{ + if(stack->entries_length == 0) + return NULL; + + return &stack->entries[ (stack->entries_length - 1) ]; +} diff --git a/source/mycss/stack.h b/source/mycss/stack.h index 42de2ab..cf5140a 100644 --- a/source/mycss/stack.h +++ b/source/mycss/stack.h @@ -48,6 +48,7 @@ mycss_stack_t * mycss_stack_destroy(mycss_stack_t *stack, bool self_destroy); mycss_status_t mycss_stack_push(mycss_stack_t *stack, void* value, mycss_parser_token_f parser); mycss_stack_entry_t * mycss_stack_pop(mycss_stack_t *stack); +mycss_stack_entry_t * mycss_stack_current(mycss_stack_t *stack); #ifdef __cplusplus } /* extern "C" */ diff --git a/source/mycss/values/destroy.c b/source/mycss/values/destroy.c index e4662ef..09057cb 100644 --- a/source/mycss/values/destroy.c +++ b/source/mycss/values/destroy.c @@ -624,4 +624,29 @@ mycss_values_background_list_t * mycss_values_destroy_background(mycss_entry_t* return value; } +/* + * Border + */ +mycss_values_border_t * mycss_values_destroy_border(mycss_entry_t* entry, mycss_values_border_t* value, bool self_destroy) +{ + if(value == NULL) + return NULL; + + if(value->width) + value->width = mycss_declaration_entry_destroy(entry->declaration, value->width, true); + + if(value->style) + value->style = mycss_declaration_entry_destroy(entry->declaration, value->style, true); + + if(value->color) + value->color = mycss_declaration_entry_destroy(entry->declaration, value->color, true); + + if(self_destroy) { + mycss_values_destroy(entry, (void*)value); + return NULL; + } + + return value; +} + diff --git a/source/mycss/values/destroy.h b/source/mycss/values/destroy.h index cd23584..7f5e2b1 100644 --- a/source/mycss/values/destroy.h +++ b/source/mycss/values/destroy.h @@ -71,6 +71,9 @@ mycss_values_background_repeat_list_t * mycss_values_destroy_background_repeat(m mycss_values_background_position_t * mycss_values_destroy_background_position(mycss_entry_t* entry, mycss_values_background_position_t* value, bool self_destroy); mycss_values_background_size_list_t * mycss_values_destroy_background_size(mycss_entry_t* entry, mycss_values_background_size_list_t* value, bool self_destroy); +/* Border */ +mycss_values_border_t * mycss_values_destroy_border(mycss_entry_t* entry, mycss_values_border_t* value, bool self_destroy); + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/source/mycss/values/serialization.c b/source/mycss/values/serialization.c index b00b643..99a73c7 100644 --- a/source/mycss/values/serialization.c +++ b/source/mycss/values/serialization.c @@ -571,4 +571,24 @@ void mycss_values_serialization_background_size_entry(mycss_values_background_si } } +void mycss_values_serialization_border(mycss_values_border_t* border, mycss_callback_serialization_f callback, void* context) +{ + bool o_e = false; + + if(border->width) { + o_e = true; + mycss_declaration_serialization_entry_only_value(NULL, border->width, callback, context); + } + + if(border->style) { + if(o_e) callback(" ", 1, context); else o_e = true; + mycss_declaration_serialization_entry_only_value(NULL, border->style, callback, context); + } + + if(border->color) { + if(o_e) callback(" ", 1, context); else o_e = true; + mycss_declaration_serialization_entry_only_value(NULL, border->color, callback, context); + } +} + diff --git a/source/mycss/values/serialization.h b/source/mycss/values/serialization.h index db397bf..45b4887 100644 --- a/source/mycss/values/serialization.h +++ b/source/mycss/values/serialization.h @@ -44,6 +44,7 @@ void mycss_values_serialization_text_decoration_skip(mycss_values_text_decoratio void mycss_values_serialization_url(mycss_values_url_t* url, mycss_callback_serialization_f callback, void* context); void mycss_values_serialization_image(mycss_values_image_t* image, mycss_callback_serialization_f callback, void* context); void mycss_values_serialization_background_size_entry(mycss_values_background_size_entry_t* bg_size_entry, mycss_callback_serialization_f callback, void* context); +void mycss_values_serialization_border(mycss_values_border_t* border, mycss_callback_serialization_f callback, void* context); #ifdef __cplusplus } /* extern "C" */ diff --git a/source/mycss/values/values.h b/source/mycss/values/values.h index f6d4f3c..0d94df7 100644 --- a/source/mycss/values/values.h +++ b/source/mycss/values/values.h @@ -69,6 +69,8 @@ typedef struct mycss_values_background_size_entry mycss_values_background_size_e typedef struct mycss_values_background mycss_values_background_t; typedef struct mycss_values_background_list mycss_values_background_list_t; +typedef struct mycss_values_border mycss_values_border_t; + typedef struct mycss_values_color_stop mycss_values_color_stop_t; typedef struct mycss_values_color_stop_list mycss_values_color_stop_list_t; @@ -445,6 +447,15 @@ struct mycss_values_text_decoration { mycss_declaration_entry_t* color; }; +/* + Border + */ +struct mycss_values_border { + mycss_declaration_entry_t* width; + mycss_declaration_entry_t* style; + mycss_declaration_entry_t* color; +}; + /* Background */ diff --git a/source/myfont/Makefile.mk b/source/myfont/Makefile.mk index 0e9e07a..273d845 100644 --- a/source/myfont/Makefile.mk +++ b/source/myfont/Makefile.mk @@ -5,7 +5,7 @@ SUBDIRS := . HDRS += $(foreach dir,$(SUBDIRS),$(find_files_h)) SRCS += $(foreach dir,$(SUBDIRS),$(find_files_c)) -modest_clone: MyFONT_DIR_$(SUBDIRS) +myfont_clone: MyFONT_DIR_$(SUBDIRS) mkdir -p $(INCLUDE_TMP)/myfont cp $(SRCDIR)/myfont/*.h $(INCLUDE_TMP)/myfont