php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
element.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2018-2022 Alexander Borisov
3 *
4 * Author: Alexander Borisov <borisov@lexbor.com>
5 */
6
7#ifndef LEXBOR_HTML_ELEMENT_H
8#define LEXBOR_HTML_ELEMENT_H
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14#include "lexbor/core/avl.h"
15
17#include "lexbor/html/style.h"
19#include "lexbor/css/rule.h"
20
21
27
28typedef enum {
30}
32
33
36 const lxb_css_rule_declaration_t *declr,
37 void *ctx, lxb_css_selector_specificity_t spec,
38 bool is_weak);
39
40
43
46
47
50 const lxb_char_t *html, size_t size);
51
54 const lxb_char_t *name, size_t size);
55
58
61
64 const lxb_char_t *name, size_t size);
65
66LXB_API const void *
68
72 bool with_weak);
73
76 const lxb_char_t *style, size_t size);
77
82
87
88LXB_API void
90
91LXB_API void
93 const lxb_char_t *name, size_t size);
94
97 lexbor_avl_node_t **root,
98 lxb_html_style_node_t *style, bool bs);
99
102 lexbor_avl_node_t **root,
103 lxb_html_style_node_t *style);
104
107 lexbor_avl_node_t **root,
110
114 lexbor_serialize_cb_f cb, void *ctx);
115
118 lexbor_str_t *str,
120
121
122/*
123 * Inline functions
124 */
127{
128 return lxb_dom_interface_node(element)->local_name;
129}
130
133{
134 return lxb_dom_interface_node(element)->ns;
135}
136
137lxb_inline void
143
144lxb_inline void
150
151lxb_inline void
157
158lxb_inline void
163
169
170
171#ifdef __cplusplus
172} /* extern "C" */
173#endif
174
175#endif /* LEXBOR_HTML_ELEMENT_H */
char * cb
Definition assert.c:26
struct lexbor_avl_node lexbor_avl_node_t
Definition avl.h:19
lxb_status_t(* lexbor_serialize_cb_f)(const lxb_char_t *data, size_t len, void *ctx)
Definition base.h:82
struct lxb_css_rule_declaration lxb_css_rule_declaration_t
Definition base.h:70
struct lxb_css_rule_declaration_list lxb_css_rule_declaration_list_t
Definition base.h:69
#define LXB_API
Definition def.h:48
#define lxb_dom_interface_node(obj)
Definition interface.h:31
struct lxb_dom_element lxb_dom_element_t
Definition interface.h:39
new_type size
Definition ffi.c:4365
#define lxb_html_interface_document(obj)
Definition interface.h:20
struct lxb_html_element lxb_html_element_t
Definition interface.h:111
struct lxb_html_document lxb_html_document_t
Definition interface.h:95
LXB_API void lxb_html_element_style_remove_by_name(lxb_html_element_t *element, const lxb_char_t *name, size_t size)
Definition element.c:410
LXB_API void lxb_html_element_style_remove_by_id(lxb_html_element_t *element, uintptr_t id)
Definition element.c:428
lxb_inline void lxb_html_element_insert_before(lxb_html_element_t *dst, lxb_html_element_t *src)
Definition element.h:138
LXB_API lxb_status_t lxb_html_element_style_walk(lxb_html_element_t *element, lxb_html_element_style_cb_f cb, void *ctx, bool with_weak)
Definition element.c:191
LXB_API const void * lxb_html_element_css_property_by_id(lxb_html_element_t *element, uintptr_t id)
Definition element.c:172
lxb_inline lxb_tag_id_t lxb_html_element_tag_id(lxb_html_element_t *element)
Definition element.h:126
lxb_inline void lxb_html_element_insert_after(lxb_html_element_t *dst, lxb_html_element_t *src)
Definition element.h:145
lxb_inline void lxb_html_element_remove(lxb_html_element_t *element)
Definition element.h:159
lxb_status_t(* lxb_html_element_style_cb_f)(lxb_html_element_t *element, const lxb_css_rule_declaration_t *declr, void *ctx, lxb_css_selector_specificity_t spec, bool is_weak)
Definition element.h:35
lxb_html_element_style_opt_t
Definition element.h:28
@ LXB_HTML_ELEMENT_OPT_UNDEF
Definition element.h:29
LXB_API const lxb_html_style_node_t * lxb_html_element_style_node_by_id(lxb_html_element_t *element, uintptr_t id)
Definition element.c:142
LXB_API const lxb_html_style_node_t * lxb_html_element_style_node_by_name(lxb_html_element_t *element, const lxb_char_t *name, size_t size)
Definition element.c:152
LXB_API lxb_html_style_node_t * lxb_html_element_style_remove_by_list(lxb_html_document_t *doc, lexbor_avl_node_t **root, lxb_html_style_node_t *style, lxb_css_rule_declaration_list_t *list)
Definition element.c:522
lxb_inline lxb_html_document_t * lxb_html_element_document(lxb_html_element_t *element)
Definition element.h:165
lxb_inline void lxb_html_element_insert_child(lxb_html_element_t *dst, lxb_html_element_t *src)
Definition element.h:152
LXB_API lxb_html_element_t * lxb_html_element_interface_create(lxb_html_document_t *document)
Definition element.c:49
LXB_API lxb_status_t lxb_html_element_style_parse(lxb_html_element_t *element, const lxb_char_t *style, size_t size)
Definition element.c:238
LXB_API lxb_status_t lxb_html_element_style_list_append(lxb_html_element_t *element, lxb_css_rule_declaration_list_t *list, lxb_css_selector_specificity_t spec)
Definition element.c:379
LXB_API lxb_status_t lxb_html_element_style_serialize_str(lxb_html_element_t *element, lexbor_str_t *str, lxb_html_element_style_opt_t opt)
Definition element.c:619
LXB_API lxb_html_element_t * lxb_html_element_interface_destroy(lxb_html_element_t *element)
Definition element.c:68
LXB_API const lxb_css_rule_declaration_t * lxb_html_element_style_by_name(lxb_html_element_t *element, const lxb_char_t *name, size_t size)
Definition element.c:104
lxb_inline lxb_ns_id_t lxb_html_element_ns_id(lxb_html_element_t *element)
Definition element.h:132
LXB_API lxb_status_t lxb_html_element_style_append(lxb_html_element_t *element, lxb_css_rule_declaration_t *declr, lxb_css_selector_specificity_t spec)
Definition element.c:263
LXB_API lxb_html_element_t * lxb_html_element_inner_html_set(lxb_html_element_t *element, const lxb_char_t *html, size_t size)
Definition element.c:75
LXB_API lxb_html_style_node_t * lxb_html_element_style_remove_all_not(lxb_html_document_t *doc, lexbor_avl_node_t **root, lxb_html_style_node_t *style, bool bs)
Definition element.c:444
LXB_API const lxb_css_rule_declaration_t * lxb_html_element_style_by_id(lxb_html_element_t *element, uintptr_t id)
Definition element.c:126
LXB_API lxb_status_t lxb_html_element_style_serialize(lxb_html_element_t *element, lxb_html_element_style_opt_t opt, lexbor_serialize_cb_f cb, void *ctx)
Definition element.c:581
LXB_API lxb_html_style_node_t * lxb_html_element_style_remove_all(lxb_html_document_t *doc, lexbor_avl_node_t **root, lxb_html_style_node_t *style)
Definition element.c:498
void lxb_dom_node_remove(lxb_dom_node_t *node)
Definition node.c:478
void lxb_dom_node_insert_child(lxb_dom_node_t *to, lxb_dom_node_t *node)
Definition node.c:385
void lxb_dom_node_insert_after(lxb_dom_node_t *to, lxb_dom_node_t *node)
Definition node.c:442
void lxb_dom_node_insert_before(lxb_dom_node_t *to, lxb_dom_node_t *node)
Definition node.c:414
uintptr_t lxb_ns_id_t
Definition const.h:20
uint32_t lxb_css_selector_specificity_t
Definition selector.h:107
lexbor_avl_node_t * style
Definition element.h:24
lxb_css_rule_declaration_list_t * list
Definition element.h:25
lxb_dom_element_t element
Definition element.h:23
uintptr_t lxb_tag_id_t
Definition const.h:21
unsigned int lxb_status_t
Definition types.h:28
#define lxb_inline
Definition types.h:21
unsigned char lxb_char_t
Definition types.h:27
zend_string * name