From 5cd65814ca07e5d0e2083944683df443b06781e2 Mon Sep 17 00:00:00 2001 From: Aygul Salahli Date: Thu, 17 Oct 2019 14:21:59 +0300 Subject: [PATCH 1/3] Added border spacing --- include/mycss/declaration/default_entries.h | 12 ++++++++++++ include/mycss/declaration/default_resources.h | 2 +- include/mycss/declaration/entry_destroy.h | 1 + include/mycss/declaration/entry_destroy_resources.h | 2 +- include/mycss/declaration/serialization_resources.h | 2 +- include/mycss/property/const.h | 6 ++++++ include/mycss/property/parser.h | 1 + source/modest/style/map_resource.h | 2 +- source/mycss/declaration/default_entries.h | 13 +++++++++++++ source/mycss/declaration/default_resources.h | 2 +- source/mycss/declaration/entry_destroy.c | 13 +++++++++++++ source/mycss/declaration/entry_destroy.h | 1 + source/mycss/declaration/entry_destroy_resources.h | 2 +- source/mycss/declaration/serialization_resources.h | 2 +- source/mycss/property/parser.c | 7 ++++++- utils/MyCSS/data/property.txt | 2 +- 16 files changed, 61 insertions(+), 9 deletions(-) diff --git a/include/mycss/declaration/default_entries.h b/include/mycss/declaration/default_entries.h index 5016ec3..78ba134 100644 --- a/include/mycss/declaration/default_entries.h +++ b/include/mycss/declaration/default_entries.h @@ -801,4 +801,16 @@ static mycss_declaration_entry_t mycss_declaration_default_entry_vertical_align NULL, NULL }; +static mycss_declaration_entry_t mycss_declaration_default_entry_border_spacing = { + MyCSS_PROPERTY_TYPE_BORDER_SPACING, + MyCSS_PROPERTY_VALUE_UNDEF, + &(mycss_values_shorthand_two_type_t){ + &(mycss_values_length_t){{0}, false, MyCSS_UNIT_TYPE_UNDEF}, + &(mycss_values_length_t){{0}, false, MyCSS_UNIT_TYPE_UNDEF}, + }, + false, + MyCSS_DECLARATION_FLAGS_READ_ONLY, + NULL, NULL +}; + #endif /* MyCSS_DECLARATION_DEFAULT_ENTRIES_H */ diff --git a/include/mycss/declaration/default_resources.h b/include/mycss/declaration/default_resources.h index 97d6348..4553bb7 100644 --- a/include/mycss/declaration/default_resources.h +++ b/include/mycss/declaration/default_resources.h @@ -92,7 +92,7 @@ static mycss_declaration_entry_t * mycss_declaration_default_entry_index_type[My &mycss_declaration_default_entry_border_right_color, &mycss_declaration_default_entry_border_right_style, &mycss_declaration_default_entry_border_right_width, - &mycss_declaration_default_entry_undef, + &mycss_declaration_default_entry_border_spacing, &mycss_declaration_default_entry_undef, &mycss_declaration_default_entry_undef, &mycss_declaration_default_entry_border_top_color, diff --git a/include/mycss/declaration/entry_destroy.h b/include/mycss/declaration/entry_destroy.h index 454457d..75ceabd 100644 --- a/include/mycss/declaration/entry_destroy.h +++ b/include/mycss/declaration/entry_destroy.h @@ -48,6 +48,7 @@ mycss_declaration_entry_t * mycss_declaration_entry_destroy_background_image(myc mycss_declaration_entry_t * mycss_declaration_entry_destroy_background_repeat(mycss_declaration_t* declaration, mycss_declaration_entry_t* decl_entry, bool self_destroy); mycss_declaration_entry_t * mycss_declaration_entry_destroy_background_position(mycss_declaration_t* declaration, mycss_declaration_entry_t* decl_entry, bool self_destroy); mycss_declaration_entry_t * mycss_declaration_entry_destroy_background_size(mycss_declaration_t* declaration, mycss_declaration_entry_t* decl_entry, bool self_destroy); +mycss_declaration_entry_t * mycss_declaration_entry_destroy_border_spacing(mycss_declaration_t* declaration, mycss_declaration_entry_t* decl_entry, bool self_destroy); #ifdef __cplusplus } /* extern "C" */ diff --git a/include/mycss/declaration/entry_destroy_resources.h b/include/mycss/declaration/entry_destroy_resources.h index 206fafe..5b078d1 100644 --- a/include/mycss/declaration/entry_destroy_resources.h +++ b/include/mycss/declaration/entry_destroy_resources.h @@ -90,7 +90,7 @@ 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_border_spacing, mycss_declaration_entry_destroy_border_style, mycss_declaration_entry_destroy_border_x, mycss_declaration_entry_destroy_undef, diff --git a/include/mycss/declaration/serialization_resources.h b/include/mycss/declaration/serialization_resources.h index 09ff31b..e2db67d 100644 --- a/include/mycss/declaration/serialization_resources.h +++ b/include/mycss/declaration/serialization_resources.h @@ -90,7 +90,7 @@ 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_shorthand_two_type, mycss_declaration_serialization_shorthand_four, mycss_declaration_serialization_border_x, mycss_declaration_serialization_undef, diff --git a/include/mycss/property/const.h b/include/mycss/property/const.h index 8881359..a62aa84 100644 --- a/include/mycss/property/const.h +++ b/include/mycss/property/const.h @@ -1117,6 +1117,12 @@ enum mycss_property_border_top_right_radius { } typedef mycss_property_border_top_right_radius_t; +enum mycss_property_border_spacing { + MyCSS_PROPERTY_BORDER_SPACING_INHERIT = 0x0092, + MyCSS_PROPERTY_BORDER_SPACING__LENGTH = 0x019a, +} +typedef mycss_property_border_spacing_t; + enum mycss_property_border_top_style { MyCSS_PROPERTY_BORDER_TOP_STYLE_NONE = 0x00d3, MyCSS_PROPERTY_BORDER_TOP_STYLE_SOLID = 0x013d, diff --git a/include/mycss/property/parser.h b/include/mycss/property/parser.h index 76694ea..65a67c1 100644 --- a/include/mycss/property/parser.h +++ b/include/mycss/property/parser.h @@ -370,6 +370,7 @@ bool mycss_property_parser_wrap_flow(mycss_entry_t* entry, mycss_token_t* token, bool mycss_property_parser_wrap_through(mycss_entry_t* entry, mycss_token_t* token, bool last_response); bool mycss_property_parser_writing_mode(mycss_entry_t* entry, mycss_token_t* token, bool last_response); bool mycss_property_parser_z_index(mycss_entry_t* entry, mycss_token_t* token, bool last_response); +bool mycss_property_parser_short_two_type(mycss_entry_t* entry, mycss_token_t* token); #ifdef __cplusplus } /* extern "C" */ diff --git a/source/modest/style/map_resource.h b/source/modest/style/map_resource.h index 9938dd8..d7684be 100644 --- a/source/modest/style/map_resource.h +++ b/source/modest/style/map_resource.h @@ -90,7 +90,7 @@ static const modest_style_map_collate_f modest_style_map_static_collate_declarat modest_style_map_collate_declaration_for_all, modest_style_map_collate_declaration_for_all, modest_style_map_collate_declaration_for_all, - modest_style_map_collate_declaration_for_all, + modest_style_map_collate_declaration_border_spacing, modest_style_map_collate_declaration_border_style, modest_style_map_collate_declaration_for_all, modest_style_map_collate_declaration_for_all, diff --git a/source/mycss/declaration/default_entries.h b/source/mycss/declaration/default_entries.h index 5016ec3..9a20575 100644 --- a/source/mycss/declaration/default_entries.h +++ b/source/mycss/declaration/default_entries.h @@ -801,4 +801,17 @@ static mycss_declaration_entry_t mycss_declaration_default_entry_vertical_align NULL, NULL }; + +static mycss_declaration_entry_t mycss_declaration_default_entry_border_spacing = { + MyCSS_PROPERTY_TYPE_BORDER_SPACING, + MyCSS_PROPERTY_VALUE_UNDEF, + &(mycss_values_shorthand_two_type_t){ + &(mycss_values_length_t){{0}, false, MyCSS_UNIT_TYPE_UNDEF}, + &(mycss_values_length_t){{0}, false, MyCSS_UNIT_TYPE_UNDEF}, + }, + false, + MyCSS_DECLARATION_FLAGS_READ_ONLY, + NULL, NULL +}; + #endif /* MyCSS_DECLARATION_DEFAULT_ENTRIES_H */ diff --git a/source/mycss/declaration/default_resources.h b/source/mycss/declaration/default_resources.h index 245b841..08631cd 100644 --- a/source/mycss/declaration/default_resources.h +++ b/source/mycss/declaration/default_resources.h @@ -92,7 +92,7 @@ static mycss_declaration_entry_t * mycss_declaration_default_entry_index_type[My &mycss_declaration_default_entry_border_right_color, &mycss_declaration_default_entry_border_right_style, &mycss_declaration_default_entry_border_right_width, - &mycss_declaration_default_entry_undef, + &mycss_declaration_default_entry_border_spacing, &mycss_declaration_default_entry_undef, &mycss_declaration_default_entry_undef, &mycss_declaration_default_entry_border_top_color, diff --git a/source/mycss/declaration/entry_destroy.c b/source/mycss/declaration/entry_destroy.c index 8bbf090..4f345cf 100644 --- a/source/mycss/declaration/entry_destroy.c +++ b/source/mycss/declaration/entry_destroy.c @@ -215,4 +215,17 @@ mycss_declaration_entry_t * mycss_declaration_entry_destroy_background_size(mycs return decl_entry; } +mycss_declaration_entry_t * mycss_declaration_entry_destroy_border_spacing(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); + + if(self_destroy) { + mcobject_free(declaration->mcobject_entries, decl_entry); + return NULL; + } + + return decl_entry; +} + + diff --git a/source/mycss/declaration/entry_destroy.h b/source/mycss/declaration/entry_destroy.h index 38dac05..cddcca9 100644 --- a/source/mycss/declaration/entry_destroy.h +++ b/source/mycss/declaration/entry_destroy.h @@ -40,6 +40,7 @@ mycss_declaration_entry_t * mycss_declaration_entry_destroy_border_color(mycss_d 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_spacing(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); mycss_declaration_entry_t * mycss_declaration_entry_destroy_border_bottom_left_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 206fafe..5b078d1 100644 --- a/source/mycss/declaration/entry_destroy_resources.h +++ b/source/mycss/declaration/entry_destroy_resources.h @@ -90,7 +90,7 @@ 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_border_spacing, mycss_declaration_entry_destroy_border_style, mycss_declaration_entry_destroy_border_x, mycss_declaration_entry_destroy_undef, diff --git a/source/mycss/declaration/serialization_resources.h b/source/mycss/declaration/serialization_resources.h index 09ff31b..e2db67d 100644 --- a/source/mycss/declaration/serialization_resources.h +++ b/source/mycss/declaration/serialization_resources.h @@ -90,7 +90,7 @@ 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_shorthand_two_type, mycss_declaration_serialization_shorthand_four, mycss_declaration_serialization_border_x, mycss_declaration_serialization_undef, diff --git a/source/mycss/property/parser.c b/source/mycss/property/parser.c index 5899cbd..17c9448 100644 --- a/source/mycss/property/parser.c +++ b/source/mycss/property/parser.c @@ -1034,6 +1034,11 @@ bool mycss_property_parser_border_radius(mycss_entry_t* entry, mycss_token_t* to } bool mycss_property_parser_border_top_right_radius(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + return mycss_property_parser_short_two_type(entry, token); +} + +bool mycss_property_parser_short_two_type(mycss_entry_t* entry, mycss_token_t* token) { if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) return true; @@ -2838,7 +2843,7 @@ bool mycss_property_parser_border_image_width(mycss_entry_t* entry, mycss_token_ 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); + return mycss_property_parser_short_two_type(entry, token); } bool mycss_property_parser_box_decoration_break(mycss_entry_t* entry, mycss_token_t* token, bool last_response) diff --git a/utils/MyCSS/data/property.txt b/utils/MyCSS/data/property.txt index ba7dc11..176a518 100644 --- a/utils/MyCSS/data/property.txt +++ b/utils/MyCSS/data/property.txt @@ -161,7 +161,7 @@ zoom-in | zoom-out | inherit | initial | unset" initial="auto" default="cursor"> - + From 77292e90d8b2453088a8724fa2003067b6c982b3 Mon Sep 17 00:00:00 2001 From: Aygul Salahli Date: Thu, 17 Oct 2019 14:58:00 +0300 Subject: [PATCH 2/3] Fix function declaration --- include/mycss/property/parser.h | 2 +- source/mycss/property/parser.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/mycss/property/parser.h b/include/mycss/property/parser.h index 65a67c1..4a1b171 100644 --- a/include/mycss/property/parser.h +++ b/include/mycss/property/parser.h @@ -131,6 +131,7 @@ bool mycss_property_parser_border_right(mycss_entry_t* entry, mycss_token_t* tok bool mycss_property_parser_border_right_color(mycss_entry_t* entry, mycss_token_t* token, bool last_response); bool mycss_property_parser_border_right_style(mycss_entry_t* entry, mycss_token_t* token, bool last_response); bool mycss_property_parser_border_right_width(mycss_entry_t* entry, mycss_token_t* token, bool last_response); +bool mycss_property_parser_short_two_type(mycss_entry_t* entry, mycss_token_t* token); bool mycss_property_parser_border_spacing(mycss_entry_t* entry, mycss_token_t* token, bool last_response); bool mycss_property_parser_border_style(mycss_entry_t* entry, mycss_token_t* token, bool last_response); bool mycss_property_parser_border_top(mycss_entry_t* entry, mycss_token_t* token, bool last_response); @@ -370,7 +371,6 @@ bool mycss_property_parser_wrap_flow(mycss_entry_t* entry, mycss_token_t* token, bool mycss_property_parser_wrap_through(mycss_entry_t* entry, mycss_token_t* token, bool last_response); bool mycss_property_parser_writing_mode(mycss_entry_t* entry, mycss_token_t* token, bool last_response); bool mycss_property_parser_z_index(mycss_entry_t* entry, mycss_token_t* token, bool last_response); -bool mycss_property_parser_short_two_type(mycss_entry_t* entry, mycss_token_t* token); #ifdef __cplusplus } /* extern "C" */ diff --git a/source/mycss/property/parser.c b/source/mycss/property/parser.c index 17c9448..f129f0a 100644 --- a/source/mycss/property/parser.c +++ b/source/mycss/property/parser.c @@ -1033,11 +1033,6 @@ bool mycss_property_parser_border_radius(mycss_entry_t* entry, mycss_token_t* to return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); } -bool mycss_property_parser_border_top_right_radius(mycss_entry_t* entry, mycss_token_t* token, bool last_response) -{ - return mycss_property_parser_short_two_type(entry, token); -} - bool mycss_property_parser_short_two_type(mycss_entry_t* entry, mycss_token_t* token) { if(token->type == MyCSS_TOKEN_TYPE_WHITESPACE) @@ -1080,6 +1075,11 @@ bool mycss_property_parser_short_two_type(mycss_entry_t* entry, mycss_token_t* t return mycss_property_parser_destroy_string(&str, mycss_property_shared_switch_to_parse_error(entry)); } +bool mycss_property_parser_border_top_right_radius(mycss_entry_t* entry, mycss_token_t* token, bool last_response) +{ + return mycss_property_parser_short_two_type(entry, token); +} + bool mycss_property_parser_border_top_left_radius(mycss_entry_t* entry, mycss_token_t* token, bool last_response) { return mycss_property_parser_border_top_right_radius(entry, token, last_response); From 2ce4f7fd294633a3f04a8c97d4770817e86beade Mon Sep 17 00:00:00 2001 From: Aygul Salahli Date: Thu, 17 Oct 2019 15:01:54 +0300 Subject: [PATCH 3/3] Fix collate declaration --- source/modest/style/map_resource.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/modest/style/map_resource.h b/source/modest/style/map_resource.h index d7684be..9938dd8 100644 --- a/source/modest/style/map_resource.h +++ b/source/modest/style/map_resource.h @@ -90,7 +90,7 @@ static const modest_style_map_collate_f modest_style_map_static_collate_declarat modest_style_map_collate_declaration_for_all, modest_style_map_collate_declaration_for_all, modest_style_map_collate_declaration_for_all, - modest_style_map_collate_declaration_border_spacing, + modest_style_map_collate_declaration_for_all, modest_style_map_collate_declaration_border_style, modest_style_map_collate_declaration_for_all, modest_style_map_collate_declaration_for_all,