8#ifndef css_stylesheet_h_
9#define css_stylesheet_h_
14#include <libwapcaplet/libwapcaplet.h>
89#define CSS_SPECIFICITY_A 0x01000000
90#define CSS_SPECIFICITY_B 0x00010000
91#define CSS_SPECIFICITY_C 0x00000100
92#define CSS_SPECIFICITY_D 0x00000001
229 opcode_t opcode, uint8_t flags, uint16_t value)
232 style->sheet->uses_revert =
true;
235 buildOPV(opcode, flags, value));
258 style->sheet->uses_revert =
true;
277 style->sheet->uses_revert =
true;
280 buildOPV(opcode,
flag, 0));
311 css_rule *rule, lwc_string *charset);
327 uint32_t string_number, lwc_string **
string);
330 lwc_string *
string, uint32_t *string_number);
flag_value
Definition bytecode.h:23
uint32_t css_code_t
Definition bytecode.h:19
flag
Definition bytecode.h:31
@ FLAG_UNSET
Definition bytecode.h:36
@ FLAG_REVERT
Definition bytecode.h:35
@ FLAG_INITIAL
Definition bytecode.h:34
@ FLAG_INHERIT
Definition bytecode.h:33
enum css_properties_e opcode_t
Definition bytecode.h:21
css_error
Definition errors.h:18
css_error(* css_color_resolution_fn)(void *pw, lwc_string *name, css_color *color)
Definition stylesheet.h:59
css_error(* css_import_notification_fn)(void *pw, css_stylesheet *parent, lwc_string *url)
Definition stylesheet.h:47
css_error(* css_font_resolution_fn)(void *pw, lwc_string *name, css_system_font *system_font)
Definition stylesheet.h:88
css_error(* css_url_resolution_fn)(void *pw, const char *base, lwc_string *rel, lwc_string **abs)
Definition stylesheet.h:30
dict style
Definition select_config.py:26
css_error css__stylesheet_add_rule(css_stylesheet *sheet, css_rule *rule, css_rule *parent)
Definition stylesheet.c:1416
css_error css__stylesheet_selector_create(css_stylesheet *sheet, css_qname *qname, css_selector **selector)
Definition stylesheet.c:791
css_error css__stylesheet_string_add(css_stylesheet *sheet, lwc_string *string, uint32_t *string_number)
Definition stylesheet.c:38
css_rule_type
Definition stylesheet.h:98
@ CSS_RULE_PAGE
Definition stylesheet.h:105
@ CSS_RULE_SELECTOR
Definition stylesheet.h:100
@ CSS_RULE_MEDIA
Definition stylesheet.h:103
@ CSS_RULE_CHARSET
Definition stylesheet.h:101
@ CSS_RULE_UNKNOWN
Definition stylesheet.h:99
@ CSS_RULE_IMPORT
Definition stylesheet.h:102
@ CSS_RULE_FONT_FACE
Definition stylesheet.h:104
css_error css__stylesheet_rule_add_selector(css_stylesheet *sheet, css_rule *rule, css_selector *selector)
Definition stylesheet.c:1222
css_error css__stylesheet_style_create(css_stylesheet *sheet, css_style **style)
Definition stylesheet.c:641
css_error css__stylesheet_selector_combine(css_stylesheet *sheet, css_combinator type, css_selector *a, css_selector *b)
Definition stylesheet.c:1020
css_error css__stylesheet_style_append(css_style *style, css_code_t code)
Definition stylesheet.c:726
css_selector_detail_value_type
Definition stylesheet.h:59
@ CSS_SELECTOR_DETAIL_VALUE_STRING
Definition stylesheet.h:60
@ CSS_SELECTOR_DETAIL_VALUE_NTH
Definition stylesheet.h:61
css_error css__stylesheet_style_vappend(css_style *style, uint32_t style_count,...)
Definition stylesheet.c:707
css_error css__stylesheet_rule_destroy(css_stylesheet *sheet, css_rule *rule)
Definition stylesheet.c:1111
css_error css__stylesheet_remove_rule(css_stylesheet *sheet, css_rule *rule)
Definition stylesheet.c:1486
css_error css__stylesheet_rule_set_media(css_stylesheet *sheet, css_rule *rule, css_mq_query *media)
Definition stylesheet.c:1361
css_error css__stylesheet_rule_create(css_stylesheet *sheet, css_rule_type type, css_rule **rule)
Definition stylesheet.c:1058
css_error css__stylesheet_rule_set_nascent_import(css_stylesheet *sheet, css_rule *rule, lwc_string *url, css_mq_query *media)
Definition stylesheet.c:1334
css_error css__stylesheet_merge_style(css_style *target, css_style *style)
Definition stylesheet.c:674
css_error css__stylesheet_rule_set_charset(css_stylesheet *sheet, css_rule *rule, lwc_string *charset)
Definition stylesheet.c:1307
css_error css__stylesheet_string_get(css_stylesheet *sheet, uint32_t string_number, lwc_string **string)
Definition stylesheet.c:105
css_error css__stylesheet_selector_append_specific(css_stylesheet *sheet, css_selector **parent, const css_selector_detail *specific)
Definition stylesheet.c:942
css_error css__stylesheet_rule_append_style(css_stylesheet *sheet, css_rule *rule, css_style *style)
Definition stylesheet.c:1259
css_combinator
Definition stylesheet.h:51
@ CSS_COMBINATOR_ANCESTOR
Definition stylesheet.h:53
@ CSS_COMBINATOR_GENERIC_SIBLING
Definition stylesheet.h:56
@ CSS_COMBINATOR_SIBLING
Definition stylesheet.h:55
@ CSS_COMBINATOR_PARENT
Definition stylesheet.h:54
@ CSS_COMBINATOR_NONE
Definition stylesheet.h:52
css_error css__stylesheet_rule_set_page_selector(css_stylesheet *sheet, css_rule *rule, css_selector *sel)
Definition stylesheet.c:1386
css_rule_parent_type
Definition stylesheet.h:108
@ CSS_RULE_PARENT_RULE
Definition stylesheet.h:110
@ CSS_RULE_PARENT_STYLESHEET
Definition stylesheet.h:109
css_error css__stylesheet_selector_detail_init(css_stylesheet *sheet, css_selector_type type, css_qname *qname, css_selector_detail_value value, css_selector_detail_value_type value_type, bool negate, css_selector_detail *detail)
Definition stylesheet.c:913
css_error css__stylesheet_selector_destroy(css_stylesheet *sheet, css_selector *selector)
Definition stylesheet.c:840
css_selector_type
Definition stylesheet.h:36
@ CSS_SELECTOR_ATTRIBUTE_PREFIX
Definition stylesheet.h:46
@ CSS_SELECTOR_ATTRIBUTE_SUBSTRING
Definition stylesheet.h:48
@ CSS_SELECTOR_ATTRIBUTE_INCLUDES
Definition stylesheet.h:45
@ CSS_SELECTOR_CLASS
Definition stylesheet.h:38
@ CSS_SELECTOR_ID
Definition stylesheet.h:39
@ CSS_SELECTOR_ATTRIBUTE_EQUAL
Definition stylesheet.h:43
@ CSS_SELECTOR_ATTRIBUTE_DASHMATCH
Definition stylesheet.h:44
@ CSS_SELECTOR_ATTRIBUTE_SUFFIX
Definition stylesheet.h:47
@ CSS_SELECTOR_PSEUDO_CLASS
Definition stylesheet.h:40
@ CSS_SELECTOR_PSEUDO_ELEMENT
Definition stylesheet.h:41
@ CSS_SELECTOR_ELEMENT
Definition stylesheet.h:37
@ CSS_SELECTOR_ATTRIBUTE
Definition stylesheet.h:42
css_error css__stylesheet_style_destroy(css_style *style)
Definition stylesheet.c:756
Definition font_face.h:26
Definition stylesheet.h:164
lwc_string * encoding
Definition stylesheet.h:167
css_rule base
Definition stylesheet.h:165
Definition stylesheet.h:142
css_rule base
Definition stylesheet.h:143
css_font_face * font_face
Definition stylesheet.h:145
Definition stylesheet.h:155
lwc_string * url
Definition stylesheet.h:158
css_stylesheet * sheet
Definition stylesheet.h:161
css_mq_query * media
Definition stylesheet.h:159
css_rule base
Definition stylesheet.h:156
Definition stylesheet.h:148
css_selector * selector
Definition stylesheet.h:151
css_style * style
Definition stylesheet.h:152
css_rule base
Definition stylesheet.h:149
Definition stylesheet.h:126
css_style * style
Definition stylesheet.h:130
css_selector ** selectors
Definition stylesheet.h:129
css_rule base
Definition stylesheet.h:127
Definition stylesheet.h:113
uint8_t ptype
Definition stylesheet.h:123
uint32_t index
Definition stylesheet.h:120
void * parent
Definition stylesheet.h:114
css_rule * next
Definition stylesheet.h:117
uint16_t items
Definition stylesheet.h:121
uint8_t type
Definition stylesheet.h:122
css_rule * prev
Definition stylesheet.h:118
Definition stylesheet.h:72
unsigned int negate
Definition stylesheet.h:81
unsigned int type
Definition stylesheet.h:76
css_qname qname
Definition stylesheet.h:73
unsigned int comb
Definition stylesheet.h:77
unsigned int next
Definition stylesheet.h:79
unsigned int value_type
Definition stylesheet.h:80
css_selector_detail_value value
Definition stylesheet.h:74
Definition stylesheet.h:84
css_selector_detail data
Definition stylesheet.h:95
css_selector * combinator
Definition stylesheet.h:85
uint32_t specificity
Definition stylesheet.h:93
css_rule * rule
Definition stylesheet.h:87
Definition stylesheet.h:29
css_code_t * bytecode
Definition stylesheet.h:30
struct css_stylesheet * sheet
Definition stylesheet.h:33
uint32_t allocated
Definition stylesheet.h:32
uint32_t used
Definition stylesheet.h:31
Definition stylesheet.h:170
void * import_pw
Definition stylesheet.h:198
void * resolve_pw
Definition stylesheet.h:201
css_rule * last_rule
Definition stylesheet.h:175
void * color_pw
Definition stylesheet.h:204
lwc_string ** propstrings
Definition stylesheet.h:186
uint32_t string_vector_c
Definition stylesheet.h:215
lwc_string ** string_vector
Definition stylesheet.h:212
uint32_t rule_count
Definition stylesheet.h:173
bool uses_revert
Definition stylesheet.h:191
bool disabled
Definition stylesheet.h:177
char * url
Definition stylesheet.h:180
uint32_t string_vector_l
Definition stylesheet.h:213
css_style * cached_style
Definition stylesheet.h:210
css_color_resolution_fn color
Definition stylesheet.h:203
bool inline_style
Definition stylesheet.h:193
css_parser * parser
Definition stylesheet.h:184
css_language_level level
Definition stylesheet.h:183
void * parser_frontend
Definition stylesheet.h:185
size_t size
Definition stylesheet.h:195
css_selector_hash * selectors
Definition stylesheet.h:171
bool quirks_used
Definition stylesheet.h:189
css_rule * rule_list
Definition stylesheet.h:174
void * font_pw
Definition stylesheet.h:208
char * title
Definition stylesheet.h:181
css_font_resolution_fn font
Definition stylesheet.h:207
bool quirks_allowed
Definition stylesheet.h:188
css_url_resolution_fn resolve
Definition stylesheet.h:200
css_language_level
Definition types.h:40
Definition stylesheet.h:64
lwc_string * string
Definition stylesheet.h:65
struct css_selector_detail_value::@23 nth
int32_t a
Definition stylesheet.h:67
int32_t b
Definition stylesheet.h:68