1 /*
2  * This file is part of LibCSS
3  * Licensed under the MIT License,
4  *                http://www.opensource.org/licenses/mit-license.php
5  * Copyright 2009 John-Mark Bell <jmb@netsurf-browser.org>
6  */
7 
8 #ifndef css_select_properties_h_
9 #define css_select_properties_h_
10 
11 #include <libcss/errors.h>
12 #include <libcss/computed.h>
13 
14 #include "stylesheet.h"
15 #include "select/select.h"
16 
17 #define PROPERTY_FUNCS(pname)                                           \
18   css_error css__cascade_##pname (uint32_t opv, css_style *style, css_select_state *state); \
19   css_error css__set_##pname##_from_hint(const css_hint *hint, css_computed_style *style); \
20   css_error css__initial_##pname (css_select_state *state);                  \
21   css_error css__compose_##pname (const css_computed_style *parent, const css_computed_style *child, css_computed_style *result); \
22   uint32_t destroy_##pname (void *bytecode)
23 
24 PROPERTY_FUNCS(align_content);
25 PROPERTY_FUNCS(align_items);
26 PROPERTY_FUNCS(align_self);
27 PROPERTY_FUNCS(azimuth);
28 PROPERTY_FUNCS(background_attachment);
29 PROPERTY_FUNCS(background_color);
30 PROPERTY_FUNCS(background_image);
31 PROPERTY_FUNCS(background_position);
32 PROPERTY_FUNCS(background_repeat);
33 PROPERTY_FUNCS(border_collapse);
34 PROPERTY_FUNCS(border_spacing);
35 PROPERTY_FUNCS(border_top_color);
36 PROPERTY_FUNCS(border_right_color);
37 PROPERTY_FUNCS(border_bottom_color);
38 PROPERTY_FUNCS(border_left_color);
39 PROPERTY_FUNCS(border_top_style);
40 PROPERTY_FUNCS(border_right_style);
41 PROPERTY_FUNCS(border_bottom_style);
42 PROPERTY_FUNCS(border_left_style);
43 PROPERTY_FUNCS(border_top_width);
44 PROPERTY_FUNCS(border_right_width);
45 PROPERTY_FUNCS(border_bottom_width);
46 PROPERTY_FUNCS(border_left_width);
47 PROPERTY_FUNCS(bottom);
48 PROPERTY_FUNCS(box_sizing);
49 PROPERTY_FUNCS(break_after);
50 PROPERTY_FUNCS(break_before);
51 PROPERTY_FUNCS(break_inside);
52 PROPERTY_FUNCS(caption_side);
53 PROPERTY_FUNCS(clear);
54 PROPERTY_FUNCS(clip);
55 PROPERTY_FUNCS(color);
56 PROPERTY_FUNCS(column_count);
57 PROPERTY_FUNCS(column_fill);
58 PROPERTY_FUNCS(column_gap);
59 PROPERTY_FUNCS(column_rule_color);
60 PROPERTY_FUNCS(column_rule_style);
61 PROPERTY_FUNCS(column_rule_width);
62 PROPERTY_FUNCS(column_span);
63 PROPERTY_FUNCS(column_width);
64 PROPERTY_FUNCS(content);
65 PROPERTY_FUNCS(counter_increment);
66 PROPERTY_FUNCS(counter_reset);
67 PROPERTY_FUNCS(cue_after);
68 PROPERTY_FUNCS(cue_before);
69 PROPERTY_FUNCS(cursor);
70 PROPERTY_FUNCS(direction);
71 PROPERTY_FUNCS(display);
72 PROPERTY_FUNCS(elevation);
73 PROPERTY_FUNCS(empty_cells);
74 PROPERTY_FUNCS(flex_basis);
75 PROPERTY_FUNCS(flex_direction);
76 PROPERTY_FUNCS(flex_grow);
77 PROPERTY_FUNCS(flex_shrink);
78 PROPERTY_FUNCS(flex_wrap);
79 PROPERTY_FUNCS(float);
80 PROPERTY_FUNCS(font_family);
81 PROPERTY_FUNCS(font_size);
82 PROPERTY_FUNCS(font_style);
83 PROPERTY_FUNCS(font_variant);
84 PROPERTY_FUNCS(font_weight);
85 PROPERTY_FUNCS(height);
86 PROPERTY_FUNCS(justify_content);
87 PROPERTY_FUNCS(left);
88 PROPERTY_FUNCS(letter_spacing);
89 PROPERTY_FUNCS(line_height);
90 PROPERTY_FUNCS(list_style_image);
91 PROPERTY_FUNCS(list_style_position);
92 PROPERTY_FUNCS(list_style_type);
93 PROPERTY_FUNCS(margin_top);
94 PROPERTY_FUNCS(margin_right);
95 PROPERTY_FUNCS(margin_bottom);
96 PROPERTY_FUNCS(margin_left);
97 PROPERTY_FUNCS(max_height);
98 PROPERTY_FUNCS(max_width);
99 PROPERTY_FUNCS(min_height);
100 PROPERTY_FUNCS(min_width);
101 PROPERTY_FUNCS(opacity);
102 PROPERTY_FUNCS(order);
103 PROPERTY_FUNCS(orphans);
104 PROPERTY_FUNCS(outline_color);
105 PROPERTY_FUNCS(outline_style);
106 PROPERTY_FUNCS(outline_width);
107 PROPERTY_FUNCS(overflow_x);
108 PROPERTY_FUNCS(overflow_y);
109 PROPERTY_FUNCS(padding_top);
110 PROPERTY_FUNCS(padding_right);
111 PROPERTY_FUNCS(padding_bottom);
112 PROPERTY_FUNCS(padding_left);
113 PROPERTY_FUNCS(page_break_after);
114 PROPERTY_FUNCS(page_break_before);
115 PROPERTY_FUNCS(page_break_inside);
116 PROPERTY_FUNCS(pause_after);
117 PROPERTY_FUNCS(pause_before);
118 PROPERTY_FUNCS(pitch_range);
119 PROPERTY_FUNCS(pitch);
120 PROPERTY_FUNCS(play_during);
121 PROPERTY_FUNCS(position);
122 PROPERTY_FUNCS(quotes);
123 PROPERTY_FUNCS(richness);
124 PROPERTY_FUNCS(right);
125 PROPERTY_FUNCS(speak_header);
126 PROPERTY_FUNCS(speak_numeral);
127 PROPERTY_FUNCS(speak_punctuation);
128 PROPERTY_FUNCS(speak);
129 PROPERTY_FUNCS(speech_rate);
130 PROPERTY_FUNCS(stress);
131 PROPERTY_FUNCS(table_layout);
132 PROPERTY_FUNCS(text_align);
133 PROPERTY_FUNCS(text_decoration);
134 PROPERTY_FUNCS(text_indent);
135 PROPERTY_FUNCS(text_transform);
136 PROPERTY_FUNCS(top);
137 PROPERTY_FUNCS(unicode_bidi);
138 PROPERTY_FUNCS(vertical_align);
139 PROPERTY_FUNCS(visibility);
140 PROPERTY_FUNCS(voice_family);
141 PROPERTY_FUNCS(volume);
142 PROPERTY_FUNCS(white_space);
143 PROPERTY_FUNCS(widows);
144 PROPERTY_FUNCS(width);
145 PROPERTY_FUNCS(word_spacing);
146 PROPERTY_FUNCS(writing_mode);
147 PROPERTY_FUNCS(z_index);
148 
149 #undef PROPERTY_FUNCS
150 
151 #endif
152