1 /* 2 * Copyright (C) 2021-2023 Alexander Borisov 3 * 4 * Author: Alexander Borisov <borisov@lexbor.com> 5 */ 6 7 #ifndef LXB_CSS_PROPERTY_H 8 #define LXB_CSS_PROPERTY_H 9 10 #ifdef __cplusplus 11 extern "C" { 12 #endif 13 14 #include "lexbor/core/serialize.h" 15 #include "lexbor/core/array_obj.h" 16 #include "lexbor/css/base.h" 17 #include "lexbor/css/value.h" 18 #include "lexbor/css/unit/const.h" 19 #include "lexbor/css/property/const.h" 20 21 22 typedef struct { 23 lxb_css_property_type_t type; 24 lexbor_str_t value; 25 } 26 lxb_css_property__undef_t; 27 28 typedef struct { 29 lexbor_str_t name; 30 lexbor_str_t value; 31 } 32 lxb_css_property__custom_t; 33 34 typedef struct { 35 lxb_css_display_type_t a; 36 lxb_css_display_type_t b; 37 lxb_css_display_type_t c; 38 } 39 lxb_css_property_display_t; 40 41 typedef lxb_css_value_integer_type_t lxb_css_property_order_t; 42 43 typedef struct { 44 lxb_css_visibility_type_t type; 45 } 46 lxb_css_property_visibility_t; 47 48 typedef lxb_css_value_length_percentage_t lxb_css_property_width_t; 49 typedef lxb_css_value_length_percentage_t lxb_css_property_height_t; 50 typedef lxb_css_value_length_percentage_t lxb_css_property_min_width_t; 51 typedef lxb_css_value_length_percentage_t lxb_css_property_min_height_t; 52 typedef lxb_css_value_length_percentage_t lxb_css_property_max_width_t; 53 typedef lxb_css_value_length_percentage_t lxb_css_property_max_height_t; 54 typedef lxb_css_value_length_percentage_t lxb_css_property_margin_top_t; 55 typedef lxb_css_value_length_percentage_t lxb_css_property_margin_right_t; 56 typedef lxb_css_value_length_percentage_t lxb_css_property_margin_bottom_t; 57 typedef lxb_css_value_length_percentage_t lxb_css_property_margin_left_t; 58 typedef lxb_css_value_length_percentage_t lxb_css_property_padding_top_t; 59 typedef lxb_css_value_length_percentage_t lxb_css_property_padding_right_t; 60 typedef lxb_css_value_length_percentage_t lxb_css_property_padding_bottom_t; 61 typedef lxb_css_value_length_percentage_t lxb_css_property_padding_left_t; 62 63 typedef struct { 64 lxb_css_box_sizing_type_t type; 65 } 66 lxb_css_property_box_sizing_t; 67 68 typedef struct { 69 lxb_css_property_margin_top_t top; 70 lxb_css_property_margin_right_t right; 71 lxb_css_property_margin_bottom_t bottom; 72 lxb_css_property_margin_left_t left; 73 } 74 lxb_css_property_margin_t; 75 76 typedef struct { 77 lxb_css_property_padding_top_t top; 78 lxb_css_property_padding_right_t right; 79 lxb_css_property_padding_bottom_t bottom; 80 lxb_css_property_padding_left_t left; 81 } 82 lxb_css_property_padding_t; 83 84 typedef struct { 85 lxb_css_value_type_t style; 86 lxb_css_value_length_type_t width; 87 lxb_css_value_color_t color; 88 } 89 lxb_css_property_border_t; 90 91 typedef lxb_css_property_border_t lxb_css_property_border_top_t; 92 typedef lxb_css_property_border_t lxb_css_property_border_right_t; 93 typedef lxb_css_property_border_t lxb_css_property_border_bottom_t; 94 typedef lxb_css_property_border_t lxb_css_property_border_left_t; 95 96 typedef lxb_css_value_color_t lxb_css_property_border_top_color_t; 97 typedef lxb_css_value_color_t lxb_css_property_border_right_color_t; 98 typedef lxb_css_value_color_t lxb_css_property_border_bottom_color_t; 99 typedef lxb_css_value_color_t lxb_css_property_border_left_color_t; 100 101 typedef lxb_css_value_color_t lxb_css_property_background_color_t; 102 103 typedef lxb_css_value_color_t lxb_css_property_color_t; 104 typedef lxb_css_value_number_percentage_t lxb_css_property_opacity_t; 105 106 typedef struct { 107 lxb_css_position_type_t type; 108 } 109 lxb_css_property_position_t; 110 111 typedef lxb_css_value_length_percentage_t lxb_css_property_top_t; 112 typedef lxb_css_value_length_percentage_t lxb_css_property_right_t; 113 typedef lxb_css_value_length_percentage_t lxb_css_property_bottom_t; 114 typedef lxb_css_value_length_percentage_t lxb_css_property_left_t; 115 116 typedef lxb_css_value_length_percentage_t lxb_css_property_inset_block_start_t; 117 typedef lxb_css_value_length_percentage_t lxb_css_property_inset_inline_start_t; 118 typedef lxb_css_value_length_percentage_t lxb_css_property_inset_block_end_t; 119 typedef lxb_css_value_length_percentage_t lxb_css_property_inset_inline_end_t; 120 121 typedef struct { 122 lxb_css_text_transform_type_t type_case; 123 lxb_css_text_transform_type_t full_width; 124 lxb_css_text_transform_type_t full_size_kana; 125 } 126 lxb_css_property_text_transform_t; 127 128 typedef struct { 129 lxb_css_text_align_type_t type; 130 } 131 lxb_css_property_text_align_t; 132 133 typedef struct { 134 lxb_css_text_align_all_type_t type; 135 } 136 lxb_css_property_text_align_all_t; 137 138 typedef struct { 139 lxb_css_text_align_last_type_t type; 140 } 141 lxb_css_property_text_align_last_t; 142 143 typedef struct { 144 lxb_css_text_justify_type_t type; 145 } 146 lxb_css_property_text_justify_t; 147 148 typedef struct { 149 lxb_css_value_length_percentage_t length; 150 lxb_css_text_indent_type_t type; 151 lxb_css_text_indent_type_t hanging; 152 lxb_css_text_indent_type_t each_line; 153 } 154 lxb_css_property_text_indent_t; 155 156 typedef struct { 157 lxb_css_white_space_type_t type; 158 } 159 lxb_css_property_white_space_t; 160 161 typedef lxb_css_value_number_length_t lxb_css_property_tab_size_t; 162 163 typedef struct { 164 lxb_css_word_break_type_t type; 165 } 166 lxb_css_property_word_break_t; 167 168 typedef struct { 169 lxb_css_line_break_type_t type; 170 } 171 lxb_css_property_line_break_t; 172 173 typedef struct { 174 lxb_css_hyphens_type_t type; 175 } 176 lxb_css_property_hyphens_t; 177 178 typedef struct { 179 lxb_css_overflow_wrap_type_t type; 180 } 181 lxb_css_property_overflow_wrap_t; 182 183 typedef struct { 184 lxb_css_word_wrap_type_t type; 185 } 186 lxb_css_property_word_wrap_t; 187 188 typedef lxb_css_value_length_type_t lxb_css_property_word_spacing_t; 189 typedef lxb_css_value_length_type_t lxb_css_property_letter_spacing_t; 190 191 typedef struct { 192 lxb_css_hanging_punctuation_type_t type_first; 193 lxb_css_hanging_punctuation_type_t force_allow; 194 lxb_css_hanging_punctuation_type_t last; 195 } 196 lxb_css_property_hanging_punctuation_t; 197 198 typedef struct lxb_css_property_family_name lxb_css_property_family_name_t; 199 200 struct lxb_css_property_family_name { 201 bool generic; 202 203 union { 204 lxb_css_font_family_type_t type; 205 lexbor_str_t str; 206 } u; 207 208 lxb_css_property_family_name_t *next; 209 lxb_css_property_family_name_t *prev; 210 }; 211 212 typedef struct { 213 lxb_css_property_family_name_t *first; 214 lxb_css_property_family_name_t *last; 215 216 size_t count; 217 } 218 lxb_css_property_font_family_t; 219 220 typedef lxb_css_value_number_type_t lxb_css_property_font_weight_t; 221 typedef lxb_css_value_percentage_type_t lxb_css_property_font_stretch_t; 222 typedef lxb_css_value_angle_type_t lxb_css_property_font_style_t; 223 typedef lxb_css_value_length_percentage_type_t lxb_css_property_font_size_t; 224 225 typedef struct { 226 lxb_css_float_reference_type_t type; 227 } 228 lxb_css_property_float_reference_t; 229 230 typedef struct { 231 lxb_css_float_type_t type; 232 lxb_css_value_length_type_t length; 233 lxb_css_float_type_t snap_type; 234 } 235 lxb_css_property_float_t; 236 237 typedef struct { 238 lxb_css_clear_type_t type; 239 } 240 lxb_css_property_clear_t; 241 242 typedef lxb_css_value_length_percentage_t lxb_css_property_float_offset_t; 243 typedef lxb_css_value_integer_type_t lxb_css_property_float_defer_t; 244 245 typedef struct { 246 lxb_css_wrap_flow_type_t type; 247 } 248 lxb_css_property_wrap_flow_t; 249 250 typedef struct { 251 lxb_css_wrap_through_type_t type; 252 } 253 lxb_css_property_wrap_through_t; 254 255 typedef struct { 256 lxb_css_flex_direction_type_t type; 257 } 258 lxb_css_property_flex_direction_t; 259 260 typedef struct { 261 lxb_css_flex_wrap_type_t type; 262 } 263 lxb_css_property_flex_wrap_t; 264 265 typedef struct { 266 lxb_css_flex_direction_type_t type_direction; 267 lxb_css_flex_wrap_type_t wrap; 268 } 269 lxb_css_property_flex_flow_t; 270 271 typedef lxb_css_value_number_type_t lxb_css_property_flex_grow_t; 272 typedef lxb_css_value_number_type_t lxb_css_property_flex_shrink_t; 273 typedef lxb_css_property_width_t lxb_css_property_flex_basis_t; 274 275 typedef struct { 276 lxb_css_flex_type_t type; 277 lxb_css_property_flex_grow_t grow; 278 lxb_css_property_flex_shrink_t shrink; 279 lxb_css_property_flex_basis_t basis; 280 } 281 lxb_css_property_flex_t; 282 283 typedef struct { 284 lxb_css_justify_content_type_t type; 285 } 286 lxb_css_property_justify_content_t; 287 288 typedef struct { 289 lxb_css_align_items_type_t type; 290 } 291 lxb_css_property_align_items_t; 292 293 typedef struct { 294 lxb_css_align_self_type_t type; 295 } 296 lxb_css_property_align_self_t; 297 298 typedef struct { 299 lxb_css_align_content_type_t type; 300 } 301 lxb_css_property_align_content_t; 302 303 typedef struct { 304 lxb_css_dominant_baseline_type_t type; 305 } 306 lxb_css_property_dominant_baseline_t; 307 308 typedef struct { 309 lxb_css_baseline_source_type_t type; 310 } 311 lxb_css_property_baseline_source_t; 312 313 typedef struct { 314 lxb_css_alignment_baseline_type_t type; 315 } 316 lxb_css_property_alignment_baseline_t; 317 318 typedef lxb_css_value_length_percentage_t lxb_css_property_baseline_shift_t; 319 320 typedef struct { 321 lxb_css_vertical_align_type_t type; 322 lxb_css_property_alignment_baseline_t alignment; 323 lxb_css_property_baseline_shift_t shift; 324 } 325 lxb_css_property_vertical_align_t; 326 327 typedef lxb_css_value_number_length_percentage_t lxb_css_property_line_height_t; 328 329 typedef lxb_css_value_integer_type_t lxb_css_property_z_index_t; 330 331 typedef struct { 332 lxb_css_direction_type_t type; 333 } 334 lxb_css_property_direction_t; 335 336 typedef struct { 337 lxb_css_unicode_bidi_type_t type; 338 } 339 lxb_css_property_unicode_bidi_t; 340 341 typedef struct { 342 lxb_css_writing_mode_type_t type; 343 } 344 lxb_css_property_writing_mode_t; 345 346 typedef struct { 347 lxb_css_text_orientation_type_t type; 348 } 349 lxb_css_property_text_orientation_t; 350 351 typedef struct { 352 lxb_css_text_combine_upright_type_t type; 353 /* 354 * If the integer is omitted, it computes to 2. 355 * Integers outside the range 2-4 are invalid. 356 */ 357 lxb_css_value_integer_t digits; 358 } 359 lxb_css_property_text_combine_upright_t; 360 361 typedef struct { 362 lxb_css_overflow_x_type_t type; 363 } 364 lxb_css_property_overflow_x_t; 365 366 typedef struct { 367 lxb_css_overflow_y_type_t type; 368 } 369 lxb_css_property_overflow_y_t; 370 371 typedef struct { 372 lxb_css_overflow_block_type_t type; 373 } 374 lxb_css_property_overflow_block_t; 375 376 typedef struct { 377 lxb_css_overflow_inline_type_t type; 378 } 379 lxb_css_property_overflow_inline_t; 380 381 typedef struct { 382 lxb_css_text_overflow_type_t type; 383 } 384 lxb_css_property_text_overflow_t; 385 386 typedef struct { 387 lxb_css_text_decoration_line_type_t type; 388 lxb_css_text_decoration_line_type_t underline; 389 lxb_css_text_decoration_line_type_t overline; 390 lxb_css_text_decoration_line_type_t line_through; 391 lxb_css_text_decoration_line_type_t blink; 392 } 393 lxb_css_property_text_decoration_line_t; 394 395 typedef struct { 396 lxb_css_text_decoration_style_type_t type; 397 } 398 lxb_css_property_text_decoration_style_t; 399 400 typedef lxb_css_value_color_t lxb_css_property_text_decoration_color_t; 401 402 typedef struct { 403 lxb_css_property_text_decoration_line_t line; 404 lxb_css_property_text_decoration_style_t style; 405 lxb_css_property_text_decoration_color_t color; 406 } 407 lxb_css_property_text_decoration_t; 408 409 410 LXB_API const lxb_css_entry_data_t * 411 lxb_css_property_by_name(const lxb_char_t *name, size_t length); 412 413 LXB_API const lxb_css_entry_data_t * 414 lxb_css_property_by_id(uintptr_t id); 415 416 LXB_API const void * 417 lxb_css_property_initial_by_id(uintptr_t id); 418 419 LXB_API void * 420 lxb_css_property_destroy(lxb_css_memory_t *memory, void *style, 421 lxb_css_property_type_t type, bool self_destroy); 422 423 LXB_API lxb_status_t 424 lxb_css_property_serialize(const void *style, lxb_css_property_type_t type, 425 lexbor_serialize_cb_f cb, void *ctx); 426 427 LXB_API lxb_status_t 428 lxb_css_property_serialize_str(const void *style, lxb_css_property_type_t type, 429 lexbor_mraw_t *mraw, lexbor_str_t *str); 430 431 LXB_API lxb_status_t 432 lxb_css_property_serialize_name(const void *style, lxb_css_property_type_t type, 433 lexbor_serialize_cb_f cb, void *ctx); 434 435 LXB_API lxb_status_t 436 lxb_css_property_serialize_name_str(const void *style, lxb_css_property_type_t type, 437 lexbor_mraw_t *mraw, lexbor_str_t *str); 438 439 /* _undef. */ 440 441 LXB_API void * 442 lxb_css_property__undef_create(lxb_css_memory_t *memory); 443 444 LXB_API void * 445 lxb_css_property__undef_destroy(lxb_css_memory_t *memory, 446 void *style, bool self_destroy); 447 LXB_API lxb_status_t 448 lxb_css_property__undef_serialize(const void *style, 449 lexbor_serialize_cb_f cb, void *ctx); 450 451 LXB_API lxb_status_t 452 lxb_css_property__undef_serialize_name(const void *style, 453 lexbor_serialize_cb_f cb, void *ctx); 454 455 LXB_API lxb_status_t 456 lxb_css_property__undef_serialize_value(const void *style, 457 lexbor_serialize_cb_f cb, void *ctx); 458 459 /* _custom. */ 460 461 LXB_API void * 462 lxb_css_property__custom_create(lxb_css_memory_t *memory); 463 464 LXB_API void * 465 lxb_css_property__custom_destroy(lxb_css_memory_t *memory, 466 void *style, bool self_destroy); 467 LXB_API lxb_status_t 468 lxb_css_property__custom_serialize(const void *style, 469 lexbor_serialize_cb_f cb, void *ctx); 470 LXB_API lxb_status_t 471 lxb_css_property__custom_serialize_name(const void *style, 472 lexbor_serialize_cb_f cb, void *ctx); 473 LXB_API lxb_status_t 474 lxb_css_property__custom_serialize_value(const void *style, 475 lexbor_serialize_cb_f cb, void *ctx); 476 477 /* Display. */ 478 479 LXB_API void * 480 lxb_css_property_display_create(lxb_css_memory_t *memory); 481 482 LXB_API void * 483 lxb_css_property_display_destroy(lxb_css_memory_t *memory, 484 void *style, bool self_destroy); 485 LXB_API lxb_status_t 486 lxb_css_property_display_serialize(const void *style, 487 lexbor_serialize_cb_f cb, void *ctx); 488 489 /* Order. */ 490 491 LXB_API void * 492 lxb_css_property_order_create(lxb_css_memory_t *memory); 493 494 LXB_API void * 495 lxb_css_property_order_destroy(lxb_css_memory_t *memory, 496 void *style, bool self_destroy); 497 LXB_API lxb_status_t 498 lxb_css_property_order_serialize(const void *style, 499 lexbor_serialize_cb_f cb, void *ctx); 500 501 /* Visibility. */ 502 503 LXB_API void * 504 lxb_css_property_visibility_create(lxb_css_memory_t *memory); 505 506 LXB_API void * 507 lxb_css_property_visibility_destroy(lxb_css_memory_t *memory, 508 void *style, bool self_destroy); 509 LXB_API lxb_status_t 510 lxb_css_property_visibility_serialize(const void *style, 511 lexbor_serialize_cb_f cb, void *ctx); 512 513 /* Width. */ 514 515 LXB_API void * 516 lxb_css_property_width_create(lxb_css_memory_t *memory); 517 518 LXB_API void * 519 lxb_css_property_width_destroy(lxb_css_memory_t *memory, 520 void *style, bool self_destroy); 521 LXB_API lxb_status_t 522 lxb_css_property_width_serialize(const void *style, 523 lexbor_serialize_cb_f cb, void *ctx); 524 525 /* Height. */ 526 527 LXB_API void * 528 lxb_css_property_height_create(lxb_css_memory_t *memory); 529 530 LXB_API void * 531 lxb_css_property_height_destroy(lxb_css_memory_t *memory, 532 void *style, bool self_destroy); 533 LXB_API lxb_status_t 534 lxb_css_property_height_serialize(const void *style, 535 lexbor_serialize_cb_f cb, void *ctx); 536 537 /* Box-sizing. */ 538 539 LXB_API void * 540 lxb_css_property_box_sizing_create(lxb_css_memory_t *memory); 541 542 LXB_API void * 543 lxb_css_property_box_sizing_destroy(lxb_css_memory_t *memory, 544 void *style, bool self_destroy); 545 LXB_API lxb_status_t 546 lxb_css_property_box_sizing_serialize(const void *style, 547 lexbor_serialize_cb_f cb, void *ctx); 548 549 /* Min-width. */ 550 551 LXB_API void * 552 lxb_css_property_min_width_create(lxb_css_memory_t *memory); 553 554 LXB_API void * 555 lxb_css_property_min_width_destroy(lxb_css_memory_t *memory, 556 void *style, bool self_destroy); 557 LXB_API lxb_status_t 558 lxb_css_property_min_width_serialize(const void *style, 559 lexbor_serialize_cb_f cb, void *ctx); 560 561 /* Min-height. */ 562 563 LXB_API void * 564 lxb_css_property_min_height_create(lxb_css_memory_t *memory); 565 566 LXB_API void * 567 lxb_css_property_min_height_destroy(lxb_css_memory_t *memory, 568 void *style, bool self_destroy); 569 LXB_API lxb_status_t 570 lxb_css_property_min_height_serialize(const void *style, 571 lexbor_serialize_cb_f cb, void *ctx); 572 573 /* Max-width. */ 574 575 LXB_API void * 576 lxb_css_property_max_width_create(lxb_css_memory_t *memory); 577 578 LXB_API void * 579 lxb_css_property_max_width_destroy(lxb_css_memory_t *memory, 580 void *style, bool self_destroy); 581 LXB_API lxb_status_t 582 lxb_css_property_max_width_serialize(const void *style, 583 lexbor_serialize_cb_f cb, void *ctx); 584 585 /* Max-height. */ 586 587 LXB_API void * 588 lxb_css_property_max_height_create(lxb_css_memory_t *memory); 589 590 LXB_API void * 591 lxb_css_property_max_height_destroy(lxb_css_memory_t *memory, 592 void *style, bool self_destroy); 593 LXB_API lxb_status_t 594 lxb_css_property_max_height_serialize(const void *style, 595 lexbor_serialize_cb_f cb, void *ctx); 596 597 /* Margin. */ 598 599 LXB_API void * 600 lxb_css_property_margin_create(lxb_css_memory_t *memory); 601 602 LXB_API void * 603 lxb_css_property_margin_destroy(lxb_css_memory_t *memory, 604 void *style, bool self_destroy); 605 LXB_API lxb_status_t 606 lxb_css_property_margin_serialize(const void *style, 607 lexbor_serialize_cb_f cb, void *ctx); 608 609 /* Margin-top. */ 610 611 LXB_API void * 612 lxb_css_property_margin_top_create(lxb_css_memory_t *memory); 613 614 LXB_API void * 615 lxb_css_property_margin_top_destroy(lxb_css_memory_t *memory, 616 void *style, bool self_destroy); 617 LXB_API lxb_status_t 618 lxb_css_property_margin_top_serialize(const void *style, 619 lexbor_serialize_cb_f cb, void *ctx); 620 621 /* Margin-right. */ 622 623 LXB_API void * 624 lxb_css_property_margin_right_create(lxb_css_memory_t *memory); 625 626 LXB_API void * 627 lxb_css_property_margin_right_destroy(lxb_css_memory_t *memory, 628 void *style, bool self_destroy); 629 LXB_API lxb_status_t 630 lxb_css_property_margin_right_serialize(const void *style, 631 lexbor_serialize_cb_f cb, void *ctx); 632 633 /* Margin-bottom. */ 634 635 LXB_API void * 636 lxb_css_property_margin_bottom_create(lxb_css_memory_t *memory); 637 638 LXB_API void * 639 lxb_css_property_margin_bottom_destroy(lxb_css_memory_t *memory, 640 void *style, bool self_destroy); 641 LXB_API lxb_status_t 642 lxb_css_property_margin_bottom_serialize(const void *style, 643 lexbor_serialize_cb_f cb, void *ctx); 644 645 /* Margin-left. */ 646 647 LXB_API void * 648 lxb_css_property_margin_left_create(lxb_css_memory_t *memory); 649 650 LXB_API void * 651 lxb_css_property_margin_left_destroy(lxb_css_memory_t *memory, 652 void *style, bool self_destroy); 653 LXB_API lxb_status_t 654 lxb_css_property_margin_left_serialize(const void *style, 655 lexbor_serialize_cb_f cb, void *ctx); 656 657 /* Padding. */ 658 659 LXB_API void * 660 lxb_css_property_padding_create(lxb_css_memory_t *memory); 661 662 LXB_API void * 663 lxb_css_property_padding_destroy(lxb_css_memory_t *memory, 664 void *style, bool self_destroy); 665 LXB_API lxb_status_t 666 lxb_css_property_padding_serialize(const void *style, 667 lexbor_serialize_cb_f cb, void *ctx); 668 669 /* Padding-top. */ 670 671 LXB_API void * 672 lxb_css_property_padding_top_create(lxb_css_memory_t *memory); 673 674 LXB_API void * 675 lxb_css_property_padding_top_destroy(lxb_css_memory_t *memory, 676 void *style, bool self_destroy); 677 LXB_API lxb_status_t 678 lxb_css_property_padding_top_serialize(const void *style, 679 lexbor_serialize_cb_f cb, void *ctx); 680 681 /* Padding-right. */ 682 683 LXB_API void * 684 lxb_css_property_padding_right_create(lxb_css_memory_t *memory); 685 686 LXB_API void * 687 lxb_css_property_padding_right_destroy(lxb_css_memory_t *memory, 688 void *style, bool self_destroy); 689 LXB_API lxb_status_t 690 lxb_css_property_padding_right_serialize(const void *style, 691 lexbor_serialize_cb_f cb, void *ctx); 692 693 /* Padding-bottom. */ 694 695 LXB_API void * 696 lxb_css_property_padding_bottom_create(lxb_css_memory_t *memory); 697 698 LXB_API void * 699 lxb_css_property_padding_bottom_destroy(lxb_css_memory_t *memory, 700 void *style, bool self_destroy); 701 LXB_API lxb_status_t 702 lxb_css_property_padding_bottom_serialize(const void *style, 703 lexbor_serialize_cb_f cb, void *ctx); 704 705 /* Padding-left. */ 706 707 LXB_API void * 708 lxb_css_property_padding_left_create(lxb_css_memory_t *memory); 709 710 LXB_API void * 711 lxb_css_property_padding_left_destroy(lxb_css_memory_t *memory, 712 void *style, bool self_destroy); 713 LXB_API lxb_status_t 714 lxb_css_property_padding_left_serialize(const void *style, 715 lexbor_serialize_cb_f cb, void *ctx); 716 717 /* Border. */ 718 719 LXB_API void * 720 lxb_css_property_border_create(lxb_css_memory_t *memory); 721 722 LXB_API void * 723 lxb_css_property_border_destroy(lxb_css_memory_t *memory, 724 void *style, bool self_destroy); 725 LXB_API lxb_status_t 726 lxb_css_property_border_serialize(const void *style, 727 lexbor_serialize_cb_f cb, void *ctx); 728 729 /* Border-top. */ 730 731 LXB_API void * 732 lxb_css_property_border_top_create(lxb_css_memory_t *memory); 733 734 LXB_API void * 735 lxb_css_property_border_top_destroy(lxb_css_memory_t *memory, 736 void *style, bool self_destroy); 737 LXB_API lxb_status_t 738 lxb_css_property_border_top_serialize(const void *style, 739 lexbor_serialize_cb_f cb, void *ctx); 740 741 /* Border-right. */ 742 743 LXB_API void * 744 lxb_css_property_border_right_create(lxb_css_memory_t *memory); 745 746 LXB_API void * 747 lxb_css_property_border_right_destroy(lxb_css_memory_t *memory, 748 void *style, bool self_destroy); 749 LXB_API lxb_status_t 750 lxb_css_property_border_right_serialize(const void *style, 751 lexbor_serialize_cb_f cb, void *ctx); 752 753 /* Border-bottom. */ 754 755 LXB_API void * 756 lxb_css_property_border_bottom_create(lxb_css_memory_t *memory); 757 758 LXB_API void * 759 lxb_css_property_border_bottom_destroy(lxb_css_memory_t *memory, 760 void *style, bool self_destroy); 761 LXB_API lxb_status_t 762 lxb_css_property_border_bottom_serialize(const void *style, 763 lexbor_serialize_cb_f cb, void *ctx); 764 765 /* Border-left. */ 766 767 LXB_API void * 768 lxb_css_property_border_left_create(lxb_css_memory_t *memory); 769 770 LXB_API void * 771 lxb_css_property_border_left_destroy(lxb_css_memory_t *memory, 772 void *style, bool self_destroy); 773 LXB_API lxb_status_t 774 lxb_css_property_border_left_serialize(const void *style, 775 lexbor_serialize_cb_f cb, void *ctx); 776 777 /* Border-top-color. */ 778 779 LXB_API void * 780 lxb_css_property_border_top_color_create(lxb_css_memory_t *memory); 781 782 LXB_API void * 783 lxb_css_property_border_top_color_destroy(lxb_css_memory_t *memory, 784 void *style, bool self_destroy); 785 LXB_API lxb_status_t 786 lxb_css_property_border_top_color_serialize(const void *style, 787 lexbor_serialize_cb_f cb, void *ctx); 788 789 /* Border-right-color. */ 790 791 LXB_API void * 792 lxb_css_property_border_right_color_create(lxb_css_memory_t *memory); 793 794 LXB_API void * 795 lxb_css_property_border_right_color_destroy(lxb_css_memory_t *memory, 796 void *style, bool self_destroy); 797 LXB_API lxb_status_t 798 lxb_css_property_border_right_color_serialize(const void *style, 799 lexbor_serialize_cb_f cb, void *ctx); 800 801 /* Border-bottom-color. */ 802 803 LXB_API void * 804 lxb_css_property_border_bottom_color_create(lxb_css_memory_t *memory); 805 806 LXB_API void * 807 lxb_css_property_border_bottom_color_destroy(lxb_css_memory_t *memory, 808 void *style, bool self_destroy); 809 LXB_API lxb_status_t 810 lxb_css_property_border_bottom_color_serialize(const void *style, 811 lexbor_serialize_cb_f cb, void *ctx); 812 813 /* Border-left-color. */ 814 815 LXB_API void * 816 lxb_css_property_border_left_color_create(lxb_css_memory_t *memory); 817 818 LXB_API void * 819 lxb_css_property_border_left_color_destroy(lxb_css_memory_t *memory, 820 void *style, bool self_destroy); 821 LXB_API lxb_status_t 822 lxb_css_property_border_left_color_serialize(const void *style, 823 lexbor_serialize_cb_f cb, void *ctx); 824 825 /* Background-color. */ 826 827 LXB_API void * 828 lxb_css_property_background_color_create(lxb_css_memory_t *memory); 829 830 LXB_API void * 831 lxb_css_property_background_color_destroy(lxb_css_memory_t *memory, 832 void *style, bool self_destroy); 833 LXB_API lxb_status_t 834 lxb_css_property_background_color_serialize(const void *style, 835 lexbor_serialize_cb_f cb, void *ctx); 836 837 /* Color. */ 838 839 LXB_API void * 840 lxb_css_property_color_create(lxb_css_memory_t *memory); 841 842 LXB_API void * 843 lxb_css_property_color_destroy(lxb_css_memory_t *memory, 844 void *style, bool self_destroy); 845 LXB_API lxb_status_t 846 lxb_css_property_color_serialize(const void *style, 847 lexbor_serialize_cb_f cb, void *ctx); 848 849 /* Opacity. */ 850 851 LXB_API void * 852 lxb_css_property_opacity_create(lxb_css_memory_t *memory); 853 854 LXB_API void * 855 lxb_css_property_opacity_destroy(lxb_css_memory_t *memory, 856 void *style, bool self_destroy); 857 LXB_API lxb_status_t 858 lxb_css_property_opacity_serialize(const void *style, 859 lexbor_serialize_cb_f cb, void *ctx); 860 861 /* Position. */ 862 863 LXB_API void * 864 lxb_css_property_position_create(lxb_css_memory_t *memory); 865 866 LXB_API void * 867 lxb_css_property_position_destroy(lxb_css_memory_t *memory, 868 void *style, bool self_destroy); 869 LXB_API lxb_status_t 870 lxb_css_property_position_serialize(const void *style, 871 lexbor_serialize_cb_f cb, void *ctx); 872 873 /* Top. */ 874 875 LXB_API void * 876 lxb_css_property_top_create(lxb_css_memory_t *memory); 877 878 LXB_API void * 879 lxb_css_property_top_destroy(lxb_css_memory_t *memory, 880 void *style, bool self_destroy); 881 LXB_API lxb_status_t 882 lxb_css_property_top_serialize(const void *style, 883 lexbor_serialize_cb_f cb, void *ctx); 884 885 /* Right. */ 886 887 LXB_API void * 888 lxb_css_property_right_create(lxb_css_memory_t *memory); 889 890 LXB_API void * 891 lxb_css_property_right_destroy(lxb_css_memory_t *memory, 892 void *style, bool self_destroy); 893 LXB_API lxb_status_t 894 lxb_css_property_right_serialize(const void *style, 895 lexbor_serialize_cb_f cb, void *ctx); 896 897 /* Bottom. */ 898 899 LXB_API void * 900 lxb_css_property_bottom_create(lxb_css_memory_t *memory); 901 902 LXB_API void * 903 lxb_css_property_bottom_destroy(lxb_css_memory_t *memory, 904 void *style, bool self_destroy); 905 LXB_API lxb_status_t 906 lxb_css_property_bottom_serialize(const void *style, 907 lexbor_serialize_cb_f cb, void *ctx); 908 909 /* Left. */ 910 911 LXB_API void * 912 lxb_css_property_left_create(lxb_css_memory_t *memory); 913 914 LXB_API void * 915 lxb_css_property_left_destroy(lxb_css_memory_t *memory, 916 void *style, bool self_destroy); 917 LXB_API lxb_status_t 918 lxb_css_property_left_serialize(const void *style, 919 lexbor_serialize_cb_f cb, void *ctx); 920 921 /* Inset-block-start. */ 922 923 LXB_API void * 924 lxb_css_property_inset_block_start_create(lxb_css_memory_t *memory); 925 926 LXB_API void * 927 lxb_css_property_inset_block_start_destroy(lxb_css_memory_t *memory, 928 void *style, bool self_destroy); 929 LXB_API lxb_status_t 930 lxb_css_property_inset_block_start_serialize(const void *style, 931 lexbor_serialize_cb_f cb, void *ctx); 932 933 /* Inset-inline-start. */ 934 935 LXB_API void * 936 lxb_css_property_inset_inline_start_create(lxb_css_memory_t *memory); 937 938 LXB_API void * 939 lxb_css_property_inset_inline_start_destroy(lxb_css_memory_t *memory, 940 void *style, bool self_destroy); 941 LXB_API lxb_status_t 942 lxb_css_property_inset_inline_start_serialize(const void *style, 943 lexbor_serialize_cb_f cb, void *ctx); 944 945 /* Inset-block-end. */ 946 947 LXB_API void * 948 lxb_css_property_inset_block_end_create(lxb_css_memory_t *memory); 949 950 LXB_API void * 951 lxb_css_property_inset_block_end_destroy(lxb_css_memory_t *memory, 952 void *style, bool self_destroy); 953 LXB_API lxb_status_t 954 lxb_css_property_inset_block_end_serialize(const void *style, 955 lexbor_serialize_cb_f cb, void *ctx); 956 957 /* Inset-inline-end. */ 958 959 LXB_API void * 960 lxb_css_property_inset_inline_end_create(lxb_css_memory_t *memory); 961 962 LXB_API void * 963 lxb_css_property_inset_inline_end_destroy(lxb_css_memory_t *memory, 964 void *style, bool self_destroy); 965 LXB_API lxb_status_t 966 lxb_css_property_inset_inline_end_serialize(const void *style, 967 lexbor_serialize_cb_f cb, void *ctx); 968 969 /* Text-transform. */ 970 971 LXB_API void * 972 lxb_css_property_text_transform_create(lxb_css_memory_t *memory); 973 974 LXB_API void * 975 lxb_css_property_text_transform_destroy(lxb_css_memory_t *memory, 976 void *style, bool self_destroy); 977 978 LXB_API lxb_status_t 979 lxb_css_property_text_transform_serialize(const void *style, 980 lexbor_serialize_cb_f cb, void *ctx); 981 982 /* Text-align. */ 983 984 LXB_API void * 985 lxb_css_property_text_align_create(lxb_css_memory_t *memory); 986 987 LXB_API void * 988 lxb_css_property_text_align_destroy(lxb_css_memory_t *memory, 989 void *style, bool self_destroy); 990 991 LXB_API lxb_status_t 992 lxb_css_property_text_align_serialize(const void *style, 993 lexbor_serialize_cb_f cb, void *ctx); 994 995 /* Text-align-all. */ 996 997 LXB_API void * 998 lxb_css_property_text_align_all_create(lxb_css_memory_t *memory); 999 1000 LXB_API void * 1001 lxb_css_property_text_align_all_destroy(lxb_css_memory_t *memory, 1002 void *style, bool self_destroy); 1003 1004 LXB_API lxb_status_t 1005 lxb_css_property_text_align_all_serialize(const void *style, 1006 lexbor_serialize_cb_f cb, void *ctx); 1007 1008 /* Text-align-last. */ 1009 1010 LXB_API void * 1011 lxb_css_property_text_align_last_create(lxb_css_memory_t *memory); 1012 1013 LXB_API void * 1014 lxb_css_property_text_align_last_destroy(lxb_css_memory_t *memory, 1015 void *style, bool self_destroy); 1016 1017 LXB_API lxb_status_t 1018 lxb_css_property_text_align_last_serialize(const void *style, 1019 lexbor_serialize_cb_f cb, void *ctx); 1020 1021 /* Text-justify. */ 1022 1023 LXB_API void * 1024 lxb_css_property_text_justify_create(lxb_css_memory_t *memory); 1025 1026 LXB_API void * 1027 lxb_css_property_text_justify_destroy(lxb_css_memory_t *memory, 1028 void *style, bool self_destroy); 1029 1030 LXB_API lxb_status_t 1031 lxb_css_property_text_justify_serialize(const void *style, 1032 lexbor_serialize_cb_f cb, void *ctx); 1033 1034 /* Text-indent. */ 1035 1036 LXB_API void * 1037 lxb_css_property_text_indent_create(lxb_css_memory_t *memory); 1038 1039 LXB_API void * 1040 lxb_css_property_text_indent_destroy(lxb_css_memory_t *memory, 1041 void *style, bool self_destroy); 1042 1043 LXB_API lxb_status_t 1044 lxb_css_property_text_indent_serialize(const void *style, 1045 lexbor_serialize_cb_f cb, void *ctx); 1046 1047 /* White-space. */ 1048 1049 LXB_API void * 1050 lxb_css_property_white_space_create(lxb_css_memory_t *memory); 1051 1052 LXB_API void * 1053 lxb_css_property_white_space_destroy(lxb_css_memory_t *memory, 1054 void *style, bool self_destroy); 1055 1056 LXB_API lxb_status_t 1057 lxb_css_property_white_space_serialize(const void *style, 1058 lexbor_serialize_cb_f cb, void *ctx); 1059 1060 /* Tab-size. */ 1061 1062 LXB_API void * 1063 lxb_css_property_tab_size_create(lxb_css_memory_t *memory); 1064 1065 LXB_API void * 1066 lxb_css_property_tab_size_destroy(lxb_css_memory_t *memory, 1067 void *style, bool self_destroy); 1068 1069 LXB_API lxb_status_t 1070 lxb_css_property_tab_size_serialize(const void *style, 1071 lexbor_serialize_cb_f cb, void *ctx); 1072 1073 /* Word-break. */ 1074 1075 LXB_API void * 1076 lxb_css_property_word_break_create(lxb_css_memory_t *memory); 1077 1078 LXB_API void * 1079 lxb_css_property_word_break_destroy(lxb_css_memory_t *memory, 1080 void *style, bool self_destroy); 1081 1082 LXB_API lxb_status_t 1083 lxb_css_property_word_break_serialize(const void *style, 1084 lexbor_serialize_cb_f cb, void *ctx); 1085 1086 /* Line-break. */ 1087 1088 LXB_API void * 1089 lxb_css_property_line_break_create(lxb_css_memory_t *memory); 1090 1091 LXB_API void * 1092 lxb_css_property_line_break_destroy(lxb_css_memory_t *memory, 1093 void *style, bool self_destroy); 1094 1095 LXB_API lxb_status_t 1096 lxb_css_property_line_break_serialize(const void *style, 1097 lexbor_serialize_cb_f cb, void *ctx); 1098 1099 /* Hyphens. */ 1100 1101 LXB_API void * 1102 lxb_css_property_hyphens_create(lxb_css_memory_t *memory); 1103 1104 LXB_API void * 1105 lxb_css_property_hyphens_destroy(lxb_css_memory_t *memory, 1106 void *style, bool self_destroy); 1107 1108 LXB_API lxb_status_t 1109 lxb_css_property_hyphens_serialize(const void *style, 1110 lexbor_serialize_cb_f cb, void *ctx); 1111 1112 /* Overflow-wrap. */ 1113 1114 LXB_API void * 1115 lxb_css_property_overflow_wrap_create(lxb_css_memory_t *memory); 1116 1117 LXB_API void * 1118 lxb_css_property_overflow_wrap_destroy(lxb_css_memory_t *memory, 1119 void *style, bool self_destroy); 1120 1121 LXB_API lxb_status_t 1122 lxb_css_property_overflow_wrap_serialize(const void *style, 1123 lexbor_serialize_cb_f cb, void *ctx); 1124 1125 /* Word-wrap. */ 1126 1127 LXB_API void * 1128 lxb_css_property_word_wrap_create(lxb_css_memory_t *memory); 1129 1130 LXB_API void * 1131 lxb_css_property_word_wrap_destroy(lxb_css_memory_t *memory, 1132 void *style, bool self_destroy); 1133 1134 LXB_API lxb_status_t 1135 lxb_css_property_word_wrap_serialize(const void *style, 1136 lexbor_serialize_cb_f cb, void *ctx); 1137 1138 /* Word-spacing. */ 1139 1140 LXB_API void * 1141 lxb_css_property_word_spacing_create(lxb_css_memory_t *memory); 1142 1143 LXB_API void * 1144 lxb_css_property_word_spacing_destroy(lxb_css_memory_t *memory, 1145 void *style, bool self_destroy); 1146 1147 LXB_API lxb_status_t 1148 lxb_css_property_word_spacing_serialize(const void *style, 1149 lexbor_serialize_cb_f cb, void *ctx); 1150 1151 /* Letter-spacing. */ 1152 1153 LXB_API void * 1154 lxb_css_property_letter_spacing_create(lxb_css_memory_t *memory); 1155 1156 LXB_API void * 1157 lxb_css_property_letter_spacing_destroy(lxb_css_memory_t *memory, 1158 void *style, bool self_destroy); 1159 1160 LXB_API lxb_status_t 1161 lxb_css_property_letter_spacing_serialize(const void *style, 1162 lexbor_serialize_cb_f cb, void *ctx); 1163 1164 /* Hanging-punctuation. */ 1165 1166 LXB_API void * 1167 lxb_css_property_hanging_punctuation_create(lxb_css_memory_t *memory); 1168 1169 LXB_API void * 1170 lxb_css_property_hanging_punctuation_destroy(lxb_css_memory_t *memory, 1171 void *style, bool self_destroy); 1172 1173 LXB_API lxb_status_t 1174 lxb_css_property_hanging_punctuation_serialize(const void *style, 1175 lexbor_serialize_cb_f cb, void *ctx); 1176 1177 /* Font-family. */ 1178 1179 LXB_API void * 1180 lxb_css_property_font_family_create(lxb_css_memory_t *memory); 1181 1182 LXB_API void * 1183 lxb_css_property_font_family_destroy(lxb_css_memory_t *memory, 1184 void *style, bool self_destroy); 1185 1186 LXB_API lxb_status_t 1187 lxb_css_property_font_family_serialize(const void *style, 1188 lexbor_serialize_cb_f cb, void *ctx); 1189 1190 /* Font-weight. */ 1191 1192 LXB_API void * 1193 lxb_css_property_font_weight_create(lxb_css_memory_t *memory); 1194 1195 LXB_API void * 1196 lxb_css_property_font_weight_destroy(lxb_css_memory_t *memory, 1197 void *style, bool self_destroy); 1198 1199 LXB_API lxb_status_t 1200 lxb_css_property_font_weight_serialize(const void *style, 1201 lexbor_serialize_cb_f cb, void *ctx); 1202 1203 /* Font-stretch. */ 1204 1205 LXB_API void * 1206 lxb_css_property_font_stretch_create(lxb_css_memory_t *memory); 1207 1208 LXB_API void * 1209 lxb_css_property_font_stretch_destroy(lxb_css_memory_t *memory, 1210 void *style, bool self_destroy); 1211 1212 LXB_API lxb_status_t 1213 lxb_css_property_font_stretch_serialize(const void *style, 1214 lexbor_serialize_cb_f cb, void *ctx); 1215 1216 /* Font-style. */ 1217 1218 LXB_API void * 1219 lxb_css_property_font_style_create(lxb_css_memory_t *memory); 1220 1221 LXB_API void * 1222 lxb_css_property_font_style_destroy(lxb_css_memory_t *memory, 1223 void *style, bool self_destroy); 1224 1225 LXB_API lxb_status_t 1226 lxb_css_property_font_style_serialize(const void *style, 1227 lexbor_serialize_cb_f cb, void *ctx); 1228 1229 /* Font-size. */ 1230 1231 LXB_API void * 1232 lxb_css_property_font_size_create(lxb_css_memory_t *memory); 1233 1234 LXB_API void * 1235 lxb_css_property_font_size_destroy(lxb_css_memory_t *memory, 1236 void *style, bool self_destroy); 1237 1238 LXB_API lxb_status_t 1239 lxb_css_property_font_size_serialize(const void *style, 1240 lexbor_serialize_cb_f cb, void *ctx); 1241 1242 /* Float-reference. */ 1243 1244 LXB_API void * 1245 lxb_css_property_float_reference_create(lxb_css_memory_t *memory); 1246 1247 LXB_API void * 1248 lxb_css_property_float_reference_destroy(lxb_css_memory_t *memory, 1249 void *style, bool self_destroy); 1250 1251 LXB_API lxb_status_t 1252 lxb_css_property_float_reference_serialize(const void *style, 1253 lexbor_serialize_cb_f cb, void *ctx); 1254 1255 /* Float. */ 1256 1257 LXB_API void * 1258 lxb_css_property_float_create(lxb_css_memory_t *memory); 1259 1260 LXB_API void * 1261 lxb_css_property_float_destroy(lxb_css_memory_t *memory, 1262 void *style, bool self_destroy); 1263 1264 LXB_API lxb_status_t 1265 lxb_css_property_float_serialize(const void *style, 1266 lexbor_serialize_cb_f cb, void *ctx); 1267 1268 /* Clear. */ 1269 1270 LXB_API void * 1271 lxb_css_property_clear_create(lxb_css_memory_t *memory); 1272 1273 LXB_API void * 1274 lxb_css_property_clear_destroy(lxb_css_memory_t *memory, 1275 void *style, bool self_destroy); 1276 1277 LXB_API lxb_status_t 1278 lxb_css_property_clear_serialize(const void *style, 1279 lexbor_serialize_cb_f cb, void *ctx); 1280 1281 /* Float-defer. */ 1282 1283 LXB_API void * 1284 lxb_css_property_float_defer_create(lxb_css_memory_t *memory); 1285 1286 LXB_API void * 1287 lxb_css_property_float_defer_destroy(lxb_css_memory_t *memory, 1288 void *style, bool self_destroy); 1289 1290 LXB_API lxb_status_t 1291 lxb_css_property_float_defer_serialize(const void *style, 1292 lexbor_serialize_cb_f cb, void *ctx); 1293 1294 /* Float-offset. */ 1295 1296 LXB_API void * 1297 lxb_css_property_float_offset_create(lxb_css_memory_t *memory); 1298 1299 LXB_API void * 1300 lxb_css_property_float_offset_destroy(lxb_css_memory_t *memory, 1301 void *style, bool self_destroy); 1302 1303 LXB_API lxb_status_t 1304 lxb_css_property_float_offset_serialize(const void *style, 1305 lexbor_serialize_cb_f cb, void *ctx); 1306 1307 /* Wrap-flow. */ 1308 1309 LXB_API void * 1310 lxb_css_property_wrap_flow_create(lxb_css_memory_t *memory); 1311 1312 LXB_API void * 1313 lxb_css_property_wrap_flow_destroy(lxb_css_memory_t *memory, 1314 void *style, bool self_destroy); 1315 1316 LXB_API lxb_status_t 1317 lxb_css_property_wrap_flow_serialize(const void *style, 1318 lexbor_serialize_cb_f cb, void *ctx); 1319 1320 /* Wrap-through. */ 1321 1322 LXB_API void * 1323 lxb_css_property_wrap_through_create(lxb_css_memory_t *memory); 1324 1325 LXB_API void * 1326 lxb_css_property_wrap_through_destroy(lxb_css_memory_t *memory, 1327 void *style, bool self_destroy); 1328 1329 LXB_API lxb_status_t 1330 lxb_css_property_wrap_through_serialize(const void *style, 1331 lexbor_serialize_cb_f cb, void *ctx); 1332 1333 /* Flex-direction. */ 1334 1335 LXB_API void * 1336 lxb_css_property_flex_direction_create(lxb_css_memory_t *memory); 1337 1338 LXB_API void * 1339 lxb_css_property_flex_direction_destroy(lxb_css_memory_t *memory, 1340 void *style, bool self_destroy); 1341 1342 LXB_API lxb_status_t 1343 lxb_css_property_flex_direction_serialize(const void *style, 1344 lexbor_serialize_cb_f cb, void *ctx); 1345 1346 /* Flex-wrap. */ 1347 1348 LXB_API void * 1349 lxb_css_property_flex_wrap_create(lxb_css_memory_t *memory); 1350 1351 LXB_API void * 1352 lxb_css_property_flex_wrap_destroy(lxb_css_memory_t *memory, 1353 void *style, bool self_destroy); 1354 1355 LXB_API lxb_status_t 1356 lxb_css_property_flex_wrap_serialize(const void *style, 1357 lexbor_serialize_cb_f cb, void *ctx); 1358 1359 /* Flex-flow. */ 1360 1361 LXB_API void * 1362 lxb_css_property_flex_flow_create(lxb_css_memory_t *memory); 1363 1364 LXB_API void * 1365 lxb_css_property_flex_flow_destroy(lxb_css_memory_t *memory, 1366 void *style, bool self_destroy); 1367 1368 LXB_API lxb_status_t 1369 lxb_css_property_flex_flow_serialize(const void *style, 1370 lexbor_serialize_cb_f cb, void *ctx); 1371 1372 /* Flex. */ 1373 1374 LXB_API void * 1375 lxb_css_property_flex_create(lxb_css_memory_t *memory); 1376 1377 LXB_API void * 1378 lxb_css_property_flex_destroy(lxb_css_memory_t *memory, 1379 void *style, bool self_destroy); 1380 1381 LXB_API lxb_status_t 1382 lxb_css_property_flex_serialize(const void *style, 1383 lexbor_serialize_cb_f cb, void *ctx); 1384 1385 /* Flex-grow. */ 1386 1387 LXB_API void * 1388 lxb_css_property_flex_grow_create(lxb_css_memory_t *memory); 1389 1390 LXB_API void * 1391 lxb_css_property_flex_grow_destroy(lxb_css_memory_t *memory, 1392 void *style, bool self_destroy); 1393 1394 LXB_API lxb_status_t 1395 lxb_css_property_flex_grow_serialize(const void *style, 1396 lexbor_serialize_cb_f cb, void *ctx); 1397 1398 /* Flex-shrink. */ 1399 1400 LXB_API void * 1401 lxb_css_property_flex_shrink_create(lxb_css_memory_t *memory); 1402 1403 LXB_API void * 1404 lxb_css_property_flex_shrink_destroy(lxb_css_memory_t *memory, 1405 void *style, bool self_destroy); 1406 1407 LXB_API lxb_status_t 1408 lxb_css_property_flex_shrink_serialize(const void *style, 1409 lexbor_serialize_cb_f cb, void *ctx); 1410 1411 /* Flex-basis. */ 1412 1413 LXB_API void * 1414 lxb_css_property_flex_basis_create(lxb_css_memory_t *memory); 1415 1416 LXB_API void * 1417 lxb_css_property_flex_basis_destroy(lxb_css_memory_t *memory, 1418 void *style, bool self_destroy); 1419 1420 LXB_API lxb_status_t 1421 lxb_css_property_flex_basis_serialize(const void *style, 1422 lexbor_serialize_cb_f cb, void *ctx); 1423 1424 /* Justify-content. */ 1425 1426 LXB_API void * 1427 lxb_css_property_justify_content_create(lxb_css_memory_t *memory); 1428 1429 LXB_API void * 1430 lxb_css_property_justify_content_destroy(lxb_css_memory_t *memory, 1431 void *style, bool self_destroy); 1432 1433 LXB_API lxb_status_t 1434 lxb_css_property_justify_content_serialize(const void *style, 1435 lexbor_serialize_cb_f cb, void *ctx); 1436 1437 /* Align-items. */ 1438 1439 LXB_API void * 1440 lxb_css_property_align_items_create(lxb_css_memory_t *memory); 1441 1442 LXB_API void * 1443 lxb_css_property_align_items_destroy(lxb_css_memory_t *memory, 1444 void *style, bool self_destroy); 1445 1446 LXB_API lxb_status_t 1447 lxb_css_property_align_items_serialize(const void *style, 1448 lexbor_serialize_cb_f cb, void *ctx); 1449 1450 /* Align-self. */ 1451 1452 LXB_API void * 1453 lxb_css_property_align_self_create(lxb_css_memory_t *memory); 1454 1455 LXB_API void * 1456 lxb_css_property_align_self_destroy(lxb_css_memory_t *memory, 1457 void *style, bool self_destroy); 1458 1459 LXB_API lxb_status_t 1460 lxb_css_property_align_self_serialize(const void *style, 1461 lexbor_serialize_cb_f cb, void *ctx); 1462 1463 /* Align-content. */ 1464 1465 LXB_API void * 1466 lxb_css_property_align_content_create(lxb_css_memory_t *memory); 1467 1468 LXB_API void * 1469 lxb_css_property_align_content_destroy(lxb_css_memory_t *memory, 1470 void *style, bool self_destroy); 1471 1472 LXB_API lxb_status_t 1473 lxb_css_property_align_content_serialize(const void *style, 1474 lexbor_serialize_cb_f cb, void *ctx); 1475 1476 /* Dominant-baseline. */ 1477 1478 LXB_API void * 1479 lxb_css_property_dominant_baseline_create(lxb_css_memory_t *memory); 1480 1481 LXB_API void * 1482 lxb_css_property_dominant_baseline_destroy(lxb_css_memory_t *memory, 1483 void *style, bool self_destroy); 1484 1485 LXB_API lxb_status_t 1486 lxb_css_property_dominant_baseline_serialize(const void *style, 1487 lexbor_serialize_cb_f cb, void *ctx); 1488 1489 /* Vertical-align. */ 1490 1491 LXB_API void * 1492 lxb_css_property_vertical_align_create(lxb_css_memory_t *memory); 1493 1494 LXB_API void * 1495 lxb_css_property_vertical_align_destroy(lxb_css_memory_t *memory, 1496 void *style, bool self_destroy); 1497 1498 LXB_API lxb_status_t 1499 lxb_css_property_vertical_align_serialize(const void *style, 1500 lexbor_serialize_cb_f cb, void *ctx); 1501 1502 /* Baseline-source. */ 1503 1504 LXB_API void * 1505 lxb_css_property_baseline_source_create(lxb_css_memory_t *memory); 1506 1507 LXB_API void * 1508 lxb_css_property_baseline_source_destroy(lxb_css_memory_t *memory, 1509 void *style, bool self_destroy); 1510 1511 LXB_API lxb_status_t 1512 lxb_css_property_baseline_source_serialize(const void *style, 1513 lexbor_serialize_cb_f cb, void *ctx); 1514 1515 /* Alignment-baseline. */ 1516 1517 LXB_API void * 1518 lxb_css_property_alignment_baseline_create(lxb_css_memory_t *memory); 1519 1520 LXB_API void * 1521 lxb_css_property_alignment_baseline_destroy(lxb_css_memory_t *memory, 1522 void *style, bool self_destroy); 1523 1524 LXB_API lxb_status_t 1525 lxb_css_property_alignment_baseline_serialize(const void *style, 1526 lexbor_serialize_cb_f cb, void *ctx); 1527 1528 /* Baseline-shift. */ 1529 1530 LXB_API void * 1531 lxb_css_property_baseline_shift_create(lxb_css_memory_t *memory); 1532 1533 LXB_API void * 1534 lxb_css_property_baseline_shift_destroy(lxb_css_memory_t *memory, 1535 void *style, bool self_destroy); 1536 1537 LXB_API lxb_status_t 1538 lxb_css_property_baseline_shift_serialize(const void *style, 1539 lexbor_serialize_cb_f cb, void *ctx); 1540 1541 /* Line-height. */ 1542 1543 LXB_API void * 1544 lxb_css_property_line_height_create(lxb_css_memory_t *memory); 1545 1546 LXB_API void * 1547 lxb_css_property_line_height_destroy(lxb_css_memory_t *memory, 1548 void *style, bool self_destroy); 1549 1550 LXB_API lxb_status_t 1551 lxb_css_property_line_height_serialize(const void *style, 1552 lexbor_serialize_cb_f cb, void *ctx); 1553 1554 /* Z-index. */ 1555 1556 LXB_API void * 1557 lxb_css_property_z_index_create(lxb_css_memory_t *memory); 1558 1559 LXB_API void * 1560 lxb_css_property_z_index_destroy(lxb_css_memory_t *memory, 1561 void *style, bool self_destroy); 1562 1563 LXB_API lxb_status_t 1564 lxb_css_property_z_index_serialize(const void *style, 1565 lexbor_serialize_cb_f cb, void *ctx); 1566 1567 /* Direction. */ 1568 1569 LXB_API void * 1570 lxb_css_property_direction_create(lxb_css_memory_t *memory); 1571 1572 LXB_API void * 1573 lxb_css_property_direction_destroy(lxb_css_memory_t *memory, 1574 void *style, bool self_destroy); 1575 1576 LXB_API lxb_status_t 1577 lxb_css_property_direction_serialize(const void *style, 1578 lexbor_serialize_cb_f cb, void *ctx); 1579 1580 /* Unicode-bidi. */ 1581 1582 LXB_API void * 1583 lxb_css_property_unicode_bidi_create(lxb_css_memory_t *memory); 1584 1585 LXB_API void * 1586 lxb_css_property_unicode_bidi_destroy(lxb_css_memory_t *memory, 1587 void *style, bool self_destroy); 1588 1589 LXB_API lxb_status_t 1590 lxb_css_property_unicode_bidi_serialize(const void *style, 1591 lexbor_serialize_cb_f cb, void *ctx); 1592 1593 /* Writing-mode. */ 1594 1595 LXB_API void * 1596 lxb_css_property_writing_mode_create(lxb_css_memory_t *memory); 1597 1598 LXB_API void * 1599 lxb_css_property_writing_mode_destroy(lxb_css_memory_t *memory, 1600 void *style, bool self_destroy); 1601 1602 LXB_API lxb_status_t 1603 lxb_css_property_writing_mode_serialize(const void *style, 1604 lexbor_serialize_cb_f cb, void *ctx); 1605 1606 /* Text-orientation. */ 1607 1608 LXB_API void * 1609 lxb_css_property_text_orientation_create(lxb_css_memory_t *memory); 1610 1611 LXB_API void * 1612 lxb_css_property_text_orientation_destroy(lxb_css_memory_t *memory, 1613 void *style, bool self_destroy); 1614 1615 LXB_API lxb_status_t 1616 lxb_css_property_text_orientation_serialize(const void *style, 1617 lexbor_serialize_cb_f cb, void *ctx); 1618 1619 /* Text-combine-upright. */ 1620 1621 LXB_API void * 1622 lxb_css_property_text_combine_upright_create(lxb_css_memory_t *memory); 1623 1624 LXB_API void * 1625 lxb_css_property_text_combine_upright_destroy(lxb_css_memory_t *memory, 1626 void *style, bool self_destroy); 1627 1628 LXB_API lxb_status_t 1629 lxb_css_property_text_combine_upright_serialize(const void *style, 1630 lexbor_serialize_cb_f cb, void *ctx); 1631 1632 /* Overflow-x. */ 1633 1634 LXB_API void * 1635 lxb_css_property_overflow_x_create(lxb_css_memory_t *memory); 1636 1637 LXB_API void * 1638 lxb_css_property_overflow_x_destroy(lxb_css_memory_t *memory, 1639 void *style, bool self_destroy); 1640 1641 LXB_API lxb_status_t 1642 lxb_css_property_overflow_x_serialize(const void *style, 1643 lexbor_serialize_cb_f cb, void *ctx); 1644 1645 /* Overflow-y. */ 1646 1647 LXB_API void * 1648 lxb_css_property_overflow_y_create(lxb_css_memory_t *memory); 1649 1650 LXB_API void * 1651 lxb_css_property_overflow_y_destroy(lxb_css_memory_t *memory, 1652 void *style, bool self_destroy); 1653 1654 LXB_API lxb_status_t 1655 lxb_css_property_overflow_y_serialize(const void *style, 1656 lexbor_serialize_cb_f cb, void *ctx); 1657 1658 /* Overflow-block. */ 1659 1660 LXB_API void * 1661 lxb_css_property_overflow_block_create(lxb_css_memory_t *memory); 1662 1663 LXB_API void * 1664 lxb_css_property_overflow_block_destroy(lxb_css_memory_t *memory, 1665 void *style, bool self_destroy); 1666 1667 LXB_API lxb_status_t 1668 lxb_css_property_overflow_block_serialize(const void *style, 1669 lexbor_serialize_cb_f cb, void *ctx); 1670 1671 /* Overflow-inline. */ 1672 1673 LXB_API void * 1674 lxb_css_property_overflow_inline_create(lxb_css_memory_t *memory); 1675 1676 LXB_API void * 1677 lxb_css_property_overflow_inline_destroy(lxb_css_memory_t *memory, 1678 void *style, bool self_destroy); 1679 1680 LXB_API lxb_status_t 1681 lxb_css_property_overflow_inline_serialize(const void *style, 1682 lexbor_serialize_cb_f cb, void *ctx); 1683 1684 /* Text-overflow. */ 1685 1686 LXB_API void * 1687 lxb_css_property_text_overflow_create(lxb_css_memory_t *memory); 1688 1689 LXB_API void * 1690 lxb_css_property_text_overflow_destroy(lxb_css_memory_t *memory, 1691 void *style, bool self_destroy); 1692 1693 LXB_API lxb_status_t 1694 lxb_css_property_text_overflow_serialize(const void *style, 1695 lexbor_serialize_cb_f cb, void *ctx); 1696 1697 /* Text-decoration-line. */ 1698 1699 LXB_API void * 1700 lxb_css_property_text_decoration_line_create(lxb_css_memory_t *memory); 1701 1702 LXB_API void * 1703 lxb_css_property_text_decoration_line_destroy(lxb_css_memory_t *memory, 1704 void *style, bool self_destroy); 1705 1706 LXB_API lxb_status_t 1707 lxb_css_property_text_decoration_line_serialize(const void *style, 1708 lexbor_serialize_cb_f cb, void *ctx); 1709 1710 /* Text-decoration-style. */ 1711 1712 LXB_API void * 1713 lxb_css_property_text_decoration_style_create(lxb_css_memory_t *memory); 1714 1715 LXB_API void * 1716 lxb_css_property_text_decoration_style_destroy(lxb_css_memory_t *memory, 1717 void *style, bool self_destroy); 1718 1719 LXB_API lxb_status_t 1720 lxb_css_property_text_decoration_style_serialize(const void *style, 1721 lexbor_serialize_cb_f cb, void *ctx); 1722 1723 /* Text-decoration-color. */ 1724 1725 LXB_API void * 1726 lxb_css_property_text_decoration_color_create(lxb_css_memory_t *memory); 1727 1728 LXB_API void * 1729 lxb_css_property_text_decoration_color_destroy(lxb_css_memory_t *memory, 1730 void *style, bool self_destroy); 1731 1732 LXB_API lxb_status_t 1733 lxb_css_property_text_decoration_color_serialize(const void *style, 1734 lexbor_serialize_cb_f cb, void *ctx); 1735 1736 /* Text-decoration. */ 1737 1738 LXB_API void * 1739 lxb_css_property_text_decoration_create(lxb_css_memory_t *memory); 1740 1741 LXB_API void * 1742 lxb_css_property_text_decoration_destroy(lxb_css_memory_t *memory, 1743 void *style, bool self_destroy); 1744 1745 LXB_API lxb_status_t 1746 lxb_css_property_text_decoration_serialize(const void *style, 1747 lexbor_serialize_cb_f cb, void *ctx); 1748 1749 1750 #ifdef __cplusplus 1751 } /* extern "C" */ 1752 #endif 1753 1754 #endif /* LXB_CSS_PROPERTY_H */ 1755