1 | /* |
2 | * Copyright (C) 2010 Carlos Garnacho <carlosg@gnome.org> |
3 | * |
4 | * This library is free software; you can redistribute it and/or |
5 | * modify it under the terms of the GNU Lesser General Public |
6 | * License as published by the Free Software Foundation; either |
7 | * version 2 of the License, or (at your option) any later version. |
8 | * |
9 | * This library is distributed in the hope that it will be useful, |
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
12 | * Lesser General Public License for more details. |
13 | * |
14 | * You should have received a copy of the GNU Lesser General Public |
15 | * License along with this library. If not, see <http://www.gnu.org/licenses/>. |
16 | */ |
17 | |
18 | #include "config.h" |
19 | |
20 | #include "gtkstylepropertyprivate.h" |
21 | |
22 | #include <gobject/gvaluecollector.h> |
23 | #include <gdk-pixbuf/gdk-pixbuf.h> |
24 | #include <math.h> |
25 | |
26 | #include <gtk/css/gtkcss.h> |
27 | #include "gtk/css/gtkcsstokenizerprivate.h" |
28 | #include "gtk/css/gtkcssparserprivate.h" |
29 | #include "gtkcssstylepropertyprivate.h" |
30 | #include "gtkcsstypesprivate.h" |
31 | #include "gtkintl.h" |
32 | #include "gtkprivatetypebuiltins.h" |
33 | |
34 | /* the actual parsers we have */ |
35 | #include "gtkcssarrayvalueprivate.h" |
36 | #include "gtkcssbgsizevalueprivate.h" |
37 | #include "gtkcssbordervalueprivate.h" |
38 | #include "gtkcsscolorvalueprivate.h" |
39 | #include "gtkcsscornervalueprivate.h" |
40 | #include "gtkcsseasevalueprivate.h" |
41 | #include "gtkcssfiltervalueprivate.h" |
42 | #include "gtkcssfontfeaturesvalueprivate.h" |
43 | #include "gtkcssimageprivate.h" |
44 | #include "gtkcssimagevalueprivate.h" |
45 | #include "gtkcssinitialvalueprivate.h" |
46 | #include "gtkcssenumvalueprivate.h" |
47 | #include "gtkcssnumbervalueprivate.h" |
48 | #include "gtkcsspalettevalueprivate.h" |
49 | #include "gtkcsspositionvalueprivate.h" |
50 | #include "gtkcssrepeatvalueprivate.h" |
51 | #include "gtkcssshadowvalueprivate.h" |
52 | #include "gtkcssstringvalueprivate.h" |
53 | #include "gtkcsstransformvalueprivate.h" |
54 | #include "gtkcssfontvariationsvalueprivate.h" |
55 | #include "gtkcsslineheightvalueprivate.h" |
56 | #include "gtktypebuiltins.h" |
57 | |
58 | /*** REGISTRATION ***/ |
59 | |
60 | typedef enum { |
61 | GTK_STYLE_PROPERTY_INHERIT = (1 << 0), |
62 | GTK_STYLE_PROPERTY_ANIMATED = (1 << 1), |
63 | } GtkStylePropertyFlags; |
64 | |
65 | static void |
66 | gtk_css_style_property_register (const char * name, |
67 | guint expected_id, |
68 | GtkStylePropertyFlags flags, |
69 | GtkCssAffects affects, |
70 | GtkCssStylePropertyParseFunc parse_value, |
71 | GtkCssValue * initial_value) |
72 | { |
73 | GtkCssStyleProperty *node; |
74 | |
75 | g_assert (initial_value != NULL); |
76 | g_assert (parse_value != NULL); |
77 | |
78 | node = g_object_new (GTK_TYPE_CSS_STYLE_PROPERTY, |
79 | first_property_name: "affects" , affects, |
80 | "animated" , (flags & GTK_STYLE_PROPERTY_ANIMATED) ? TRUE : FALSE, |
81 | "inherit" , (flags & GTK_STYLE_PROPERTY_INHERIT) ? TRUE : FALSE, |
82 | "initial-value" , initial_value, |
83 | "name" , name, |
84 | NULL); |
85 | |
86 | node->parse_value = parse_value; |
87 | |
88 | _gtk_css_value_unref (value: initial_value); |
89 | |
90 | g_assert (_gtk_css_style_property_get_id (node) == expected_id); |
91 | } |
92 | |
93 | /*** IMPLEMENTATIONS ***/ |
94 | |
95 | static GtkCssValue * |
96 | color_parse (GtkCssStyleProperty *property, |
97 | GtkCssParser *parser) |
98 | { |
99 | return _gtk_css_color_value_parse (parser); |
100 | } |
101 | |
102 | static GtkCssValue * |
103 | font_family_parse_one (GtkCssParser *parser) |
104 | { |
105 | char *name; |
106 | |
107 | if (gtk_css_parser_has_token (self: parser, token_type: GTK_CSS_TOKEN_IDENT)) |
108 | { |
109 | GString *string = g_string_new (NULL); |
110 | |
111 | name = gtk_css_parser_consume_ident (self: parser); |
112 | g_string_append (string, val: name); |
113 | g_free (mem: name); |
114 | while (gtk_css_parser_has_token (self: parser, token_type: GTK_CSS_TOKEN_IDENT)) |
115 | { |
116 | name = gtk_css_parser_consume_ident (self: parser); |
117 | g_string_append_c (string, ' '); |
118 | g_string_append (string, val: name); |
119 | g_free (mem: name); |
120 | } |
121 | name = g_string_free (string, FALSE); |
122 | } |
123 | else |
124 | { |
125 | name = gtk_css_parser_consume_string (self: parser); |
126 | if (name == NULL) |
127 | return NULL; |
128 | } |
129 | |
130 | return _gtk_css_string_value_new_take (string: name); |
131 | } |
132 | |
133 | GtkCssValue * |
134 | gtk_css_font_family_value_parse (GtkCssParser *parser) |
135 | { |
136 | return _gtk_css_array_value_parse (parser, parse_func: font_family_parse_one); |
137 | } |
138 | |
139 | static GtkCssValue * |
140 | font_family_parse (GtkCssStyleProperty *property, |
141 | GtkCssParser *parser) |
142 | { |
143 | return gtk_css_font_family_value_parse (parser); |
144 | } |
145 | |
146 | static GtkCssValue * |
147 | font_style_parse (GtkCssStyleProperty *property, |
148 | GtkCssParser *parser) |
149 | { |
150 | GtkCssValue *value = _gtk_css_font_style_value_try_parse (parser); |
151 | |
152 | if (value == NULL) |
153 | gtk_css_parser_error_syntax (self: parser, format: "unknown font style value" ); |
154 | |
155 | return value; |
156 | } |
157 | |
158 | static GtkCssValue * |
159 | font_weight_parse (GtkCssStyleProperty *property, |
160 | GtkCssParser *parser) |
161 | { |
162 | GtkCssValue *value; |
163 | |
164 | value = gtk_css_font_weight_value_try_parse (parser); |
165 | if (value == NULL) |
166 | { |
167 | value = _gtk_css_number_value_parse (parser, flags: GTK_CSS_PARSE_NUMBER | GTK_CSS_POSITIVE_ONLY); |
168 | if (value == NULL) |
169 | return NULL; |
170 | |
171 | if (_gtk_css_number_value_get (number: value, one_hundred_percent: 100) < 1 || |
172 | _gtk_css_number_value_get (number: value, one_hundred_percent: 100) > 1000) |
173 | { |
174 | gtk_css_parser_error_value (self: parser, format: "Font weight values must be between 1 and 1000" ); |
175 | g_clear_pointer (&value, gtk_css_value_unref); |
176 | } |
177 | } |
178 | |
179 | return value; |
180 | } |
181 | |
182 | static GtkCssValue * |
183 | font_stretch_parse (GtkCssStyleProperty *property, |
184 | GtkCssParser *parser) |
185 | { |
186 | GtkCssValue *value = _gtk_css_font_stretch_value_try_parse (parser); |
187 | |
188 | if (value == NULL) |
189 | gtk_css_parser_error_syntax (self: parser, format: "unknown font stretch value" ); |
190 | |
191 | return value; |
192 | } |
193 | |
194 | static GtkCssValue * |
195 | parse_border_style (GtkCssStyleProperty *property, |
196 | GtkCssParser *parser) |
197 | { |
198 | GtkCssValue *value = _gtk_css_border_style_value_try_parse (parser); |
199 | |
200 | if (value == NULL) |
201 | gtk_css_parser_error_syntax (self: parser, format: "unknown border style value" ); |
202 | |
203 | return value; |
204 | } |
205 | |
206 | static GtkCssValue * |
207 | parse_css_area_one (GtkCssParser *parser) |
208 | { |
209 | GtkCssValue *value = _gtk_css_area_value_try_parse (parser); |
210 | |
211 | if (value == NULL) |
212 | gtk_css_parser_error_syntax (self: parser, format: "unknown box value" ); |
213 | |
214 | return value; |
215 | } |
216 | |
217 | static GtkCssValue * |
218 | parse_css_area (GtkCssStyleProperty *property, |
219 | GtkCssParser *parser) |
220 | { |
221 | return _gtk_css_array_value_parse (parser, parse_func: parse_css_area_one); |
222 | } |
223 | |
224 | static GtkCssValue * |
225 | parse_one_css_direction (GtkCssParser *parser) |
226 | { |
227 | GtkCssValue *value = _gtk_css_direction_value_try_parse (parser); |
228 | |
229 | if (value == NULL) |
230 | gtk_css_parser_error_syntax (self: parser, format: "unknown direction value" ); |
231 | |
232 | return value; |
233 | } |
234 | |
235 | static GtkCssValue * |
236 | parse_css_direction (GtkCssStyleProperty *property, |
237 | GtkCssParser *parser) |
238 | { |
239 | return _gtk_css_array_value_parse (parser, parse_func: parse_one_css_direction); |
240 | } |
241 | |
242 | static GtkCssValue * |
243 | opacity_parse (GtkCssStyleProperty *property, |
244 | GtkCssParser *parser) |
245 | { |
246 | return _gtk_css_number_value_parse (parser, flags: GTK_CSS_PARSE_NUMBER); |
247 | } |
248 | |
249 | static GtkCssValue * |
250 | parse_one_css_play_state (GtkCssParser *parser) |
251 | { |
252 | GtkCssValue *value = _gtk_css_play_state_value_try_parse (parser); |
253 | |
254 | if (value == NULL) |
255 | gtk_css_parser_error_syntax (self: parser, format: "unknown play state value" ); |
256 | |
257 | return value; |
258 | } |
259 | |
260 | static GtkCssValue * |
261 | parse_css_play_state (GtkCssStyleProperty *property, |
262 | GtkCssParser *parser) |
263 | { |
264 | return _gtk_css_array_value_parse (parser, parse_func: parse_one_css_play_state); |
265 | } |
266 | |
267 | static GtkCssValue * |
268 | parse_one_css_fill_mode (GtkCssParser *parser) |
269 | { |
270 | GtkCssValue *value = _gtk_css_fill_mode_value_try_parse (parser); |
271 | |
272 | if (value == NULL) |
273 | gtk_css_parser_error_syntax (self: parser, format: "unknown fill mode value" ); |
274 | |
275 | return value; |
276 | } |
277 | |
278 | static GtkCssValue * |
279 | parse_css_fill_mode (GtkCssStyleProperty *property, |
280 | GtkCssParser *parser) |
281 | { |
282 | return _gtk_css_array_value_parse (parser, parse_func: parse_one_css_fill_mode); |
283 | } |
284 | |
285 | static GtkCssValue * |
286 | icon_size_parse (GtkCssStyleProperty *property, |
287 | GtkCssParser *parser) |
288 | { |
289 | return _gtk_css_number_value_parse (parser, |
290 | flags: GTK_CSS_PARSE_LENGTH |
291 | | GTK_CSS_PARSE_PERCENT |
292 | | GTK_CSS_POSITIVE_ONLY); |
293 | } |
294 | |
295 | static GtkCssValue * |
296 | icon_palette_parse (GtkCssStyleProperty *property, |
297 | GtkCssParser *parser) |
298 | { |
299 | return gtk_css_palette_value_parse (parser); |
300 | } |
301 | |
302 | static GtkCssValue * |
303 | icon_style_parse (GtkCssStyleProperty *property, |
304 | GtkCssParser *parser) |
305 | { |
306 | GtkCssValue *value = _gtk_css_icon_style_value_try_parse (parser); |
307 | |
308 | if (value == NULL) |
309 | gtk_css_parser_error_syntax (self: parser, format: "unknown icon style value" ); |
310 | |
311 | return value; |
312 | } |
313 | |
314 | static GtkCssValue * |
315 | parse_letter_spacing (GtkCssStyleProperty *property, |
316 | GtkCssParser *parser) |
317 | { |
318 | return _gtk_css_number_value_parse (parser, flags: GTK_CSS_PARSE_LENGTH); |
319 | } |
320 | |
321 | static gboolean |
322 | value_is_done_parsing (GtkCssParser *parser) |
323 | { |
324 | return gtk_css_parser_has_token (self: parser, token_type: GTK_CSS_TOKEN_EOF) || |
325 | gtk_css_parser_has_token (self: parser, token_type: GTK_CSS_TOKEN_COMMA) || |
326 | gtk_css_parser_has_token (self: parser, token_type: GTK_CSS_TOKEN_SEMICOLON) || |
327 | gtk_css_parser_has_token (self: parser, token_type: GTK_CSS_TOKEN_CLOSE_CURLY); |
328 | } |
329 | |
330 | static GtkCssValue * |
331 | parse_text_decoration_line (GtkCssStyleProperty *property, |
332 | GtkCssParser *parser) |
333 | { |
334 | GtkCssValue *value = NULL; |
335 | GtkTextDecorationLine line; |
336 | |
337 | line = 0; |
338 | do { |
339 | GtkTextDecorationLine parsed; |
340 | |
341 | parsed = _gtk_css_text_decoration_line_try_parse_one (parser, base: line); |
342 | if (parsed == 0 || parsed == line) |
343 | { |
344 | gtk_css_parser_error_syntax (self: parser, format: "Not a valid value" ); |
345 | return NULL; |
346 | } |
347 | line = parsed; |
348 | } while (!value_is_done_parsing (parser)); |
349 | |
350 | value = _gtk_css_text_decoration_line_value_new (line); |
351 | if (value == NULL) |
352 | gtk_css_parser_error_syntax (self: parser, format: "Invalid combination of values" ); |
353 | |
354 | return value; |
355 | } |
356 | |
357 | static GtkCssValue * |
358 | parse_text_decoration_style (GtkCssStyleProperty *property, |
359 | GtkCssParser *parser) |
360 | { |
361 | GtkCssValue *value = _gtk_css_text_decoration_style_value_try_parse (parser); |
362 | |
363 | if (value == NULL) |
364 | gtk_css_parser_error_syntax (self: parser, format: "unknown text decoration style value" ); |
365 | |
366 | return value; |
367 | } |
368 | |
369 | static GtkCssValue * |
370 | parse_text_transform (GtkCssStyleProperty *property, |
371 | GtkCssParser *parser) |
372 | { |
373 | GtkCssValue *value = _gtk_css_text_transform_value_try_parse (parser); |
374 | |
375 | if (value == NULL) |
376 | gtk_css_parser_error_syntax (self: parser, format: "unknown text transform value" ); |
377 | |
378 | return value; |
379 | } |
380 | |
381 | static GtkCssValue * |
382 | parse_font_kerning (GtkCssStyleProperty *property, |
383 | GtkCssParser *parser) |
384 | { |
385 | GtkCssValue *value = _gtk_css_font_kerning_value_try_parse (parser); |
386 | |
387 | if (value == NULL) |
388 | gtk_css_parser_error_syntax (self: parser, format: "unknown font kerning value" ); |
389 | |
390 | return value; |
391 | } |
392 | |
393 | static GtkCssValue * |
394 | parse_font_variant_ligatures (GtkCssStyleProperty *property, |
395 | GtkCssParser *parser) |
396 | { |
397 | GtkCssValue *value = NULL; |
398 | GtkCssFontVariantLigature ligatures; |
399 | |
400 | ligatures = 0; |
401 | do { |
402 | GtkCssFontVariantLigature parsed; |
403 | |
404 | parsed = _gtk_css_font_variant_ligature_try_parse_one (parser, base: ligatures); |
405 | if (parsed == 0 || parsed == ligatures) |
406 | { |
407 | gtk_css_parser_error_syntax (self: parser, format: "Not a valid value" ); |
408 | return NULL; |
409 | } |
410 | ligatures = parsed; |
411 | } while (!value_is_done_parsing (parser)); |
412 | |
413 | value = _gtk_css_font_variant_ligature_value_new (ligatures); |
414 | if (value == NULL) |
415 | gtk_css_parser_error_syntax (self: parser, format: "Invalid combination of values" ); |
416 | |
417 | return value; |
418 | } |
419 | |
420 | static GtkCssValue * |
421 | parse_font_variant_position (GtkCssStyleProperty *property, |
422 | GtkCssParser *parser) |
423 | { |
424 | GtkCssValue *value = _gtk_css_font_variant_position_value_try_parse (parser); |
425 | |
426 | if (value == NULL) |
427 | gtk_css_parser_error_syntax (self: parser, format: "unknown font variant position value" ); |
428 | |
429 | return value; |
430 | } |
431 | |
432 | static GtkCssValue * |
433 | parse_font_variant_caps (GtkCssStyleProperty *property, |
434 | GtkCssParser *parser) |
435 | { |
436 | GtkCssValue *value = _gtk_css_font_variant_caps_value_try_parse (parser); |
437 | |
438 | if (value == NULL) |
439 | gtk_css_parser_error_syntax (self: parser, format: "unknown font variant caps value" ); |
440 | |
441 | return value; |
442 | } |
443 | |
444 | static GtkCssValue * |
445 | parse_font_variant_numeric (GtkCssStyleProperty *property, |
446 | GtkCssParser *parser) |
447 | { |
448 | GtkCssValue *value = NULL; |
449 | GtkCssFontVariantNumeric numeric; |
450 | |
451 | numeric = 0; |
452 | do { |
453 | GtkCssFontVariantNumeric parsed; |
454 | |
455 | parsed = _gtk_css_font_variant_numeric_try_parse_one (parser, base: numeric); |
456 | if (parsed == 0 || parsed == numeric) |
457 | { |
458 | gtk_css_parser_error_syntax (self: parser, format: "Not a valid value" ); |
459 | return NULL; |
460 | } |
461 | numeric = parsed; |
462 | } while (!value_is_done_parsing (parser)); |
463 | |
464 | value = _gtk_css_font_variant_numeric_value_new (numeric); |
465 | if (value == NULL) |
466 | gtk_css_parser_error_syntax (self: parser, format: "Invalid combination of values" ); |
467 | |
468 | return value; |
469 | } |
470 | |
471 | static GtkCssValue * |
472 | parse_font_variant_alternates (GtkCssStyleProperty *property, |
473 | GtkCssParser *parser) |
474 | { |
475 | GtkCssValue *value = _gtk_css_font_variant_alternate_value_try_parse (parser); |
476 | |
477 | if (value == NULL) |
478 | gtk_css_parser_error_syntax (self: parser, format: "unknown font variant alternate value" ); |
479 | |
480 | return value; |
481 | } |
482 | |
483 | static GtkCssValue * |
484 | parse_font_variant_east_asian (GtkCssStyleProperty *property, |
485 | GtkCssParser *parser) |
486 | { |
487 | GtkCssValue *value = NULL; |
488 | GtkCssFontVariantEastAsian east_asian; |
489 | |
490 | east_asian = 0; |
491 | do { |
492 | GtkCssFontVariantEastAsian parsed; |
493 | |
494 | parsed = _gtk_css_font_variant_east_asian_try_parse_one (parser, base: east_asian); |
495 | if (parsed == 0 || parsed == east_asian) |
496 | { |
497 | gtk_css_parser_error_syntax (self: parser, format: "Not a valid value" ); |
498 | return NULL; |
499 | } |
500 | east_asian = parsed; |
501 | } while (!value_is_done_parsing (parser)); |
502 | |
503 | value = _gtk_css_font_variant_east_asian_value_new (east_asian); |
504 | if (value == NULL) |
505 | gtk_css_parser_error_syntax (self: parser, format: "Invalid combination of values" ); |
506 | |
507 | return value; |
508 | } |
509 | |
510 | static GtkCssValue * |
511 | parse_font_feature_settings (GtkCssStyleProperty *property, |
512 | GtkCssParser *parser) |
513 | { |
514 | return gtk_css_font_features_value_parse (parser); |
515 | } |
516 | |
517 | static GtkCssValue * |
518 | parse_font_variation_settings (GtkCssStyleProperty *property, |
519 | GtkCssParser *parser) |
520 | { |
521 | return gtk_css_font_variations_value_parse (parser); |
522 | } |
523 | |
524 | static GtkCssValue * |
525 | box_shadow_value_parse (GtkCssStyleProperty *property, |
526 | GtkCssParser *parser) |
527 | { |
528 | return gtk_css_shadow_value_parse (parser, TRUE); |
529 | } |
530 | |
531 | static GtkCssValue * |
532 | shadow_value_parse (GtkCssStyleProperty *property, |
533 | GtkCssParser *parser) |
534 | { |
535 | return gtk_css_shadow_value_parse (parser, FALSE); |
536 | } |
537 | |
538 | static GtkCssValue * |
539 | transform_value_parse (GtkCssStyleProperty *property, |
540 | GtkCssParser *parser) |
541 | { |
542 | return _gtk_css_transform_value_parse (parser); |
543 | } |
544 | |
545 | static GtkCssValue * |
546 | filter_value_parse (GtkCssStyleProperty *property, |
547 | GtkCssParser *parser) |
548 | { |
549 | return gtk_css_filter_value_parse (parser); |
550 | } |
551 | |
552 | static GtkCssValue * |
553 | border_spacing_value_parse (GtkCssStyleProperty *property, |
554 | GtkCssParser *parser) |
555 | { |
556 | return gtk_css_position_value_parse_spacing (parser); |
557 | } |
558 | |
559 | static GtkCssValue * |
560 | border_corner_radius_value_parse (GtkCssStyleProperty *property, |
561 | GtkCssParser *parser) |
562 | { |
563 | return _gtk_css_corner_value_parse (parser); |
564 | } |
565 | |
566 | static GtkCssValue * |
567 | css_image_value_parse (GtkCssStyleProperty *property, |
568 | GtkCssParser *parser) |
569 | { |
570 | GtkCssImage *image; |
571 | |
572 | if (gtk_css_parser_try_ident (self: parser, ident: "none" )) |
573 | image = NULL; |
574 | else |
575 | { |
576 | image = _gtk_css_image_new_parse (parser); |
577 | if (image == NULL) |
578 | return NULL; |
579 | } |
580 | |
581 | return _gtk_css_image_value_new (image); |
582 | } |
583 | |
584 | static GtkCssValue * |
585 | background_image_value_parse_one (GtkCssParser *parser) |
586 | { |
587 | return css_image_value_parse (NULL, parser); |
588 | } |
589 | |
590 | static GtkCssValue * |
591 | background_image_value_parse (GtkCssStyleProperty *property, |
592 | GtkCssParser *parser) |
593 | { |
594 | return _gtk_css_array_value_parse (parser, parse_func: background_image_value_parse_one); |
595 | } |
596 | |
597 | static GtkCssValue * |
598 | dpi_parse (GtkCssStyleProperty *property, |
599 | GtkCssParser *parser) |
600 | { |
601 | return _gtk_css_number_value_parse (parser, flags: GTK_CSS_PARSE_NUMBER); |
602 | } |
603 | |
604 | GtkCssValue * |
605 | gtk_css_font_size_value_parse (GtkCssParser *parser) |
606 | { |
607 | GtkCssValue *value; |
608 | |
609 | value = _gtk_css_font_size_value_try_parse (parser); |
610 | if (value) |
611 | return value; |
612 | |
613 | return _gtk_css_number_value_parse (parser, |
614 | flags: GTK_CSS_PARSE_LENGTH |
615 | | GTK_CSS_PARSE_PERCENT |
616 | | GTK_CSS_POSITIVE_ONLY); |
617 | } |
618 | |
619 | static GtkCssValue * |
620 | font_size_parse (GtkCssStyleProperty *property, |
621 | GtkCssParser *parser) |
622 | { |
623 | return gtk_css_font_size_value_parse (parser); |
624 | } |
625 | |
626 | static GtkCssValue * |
627 | outline_parse (GtkCssStyleProperty *property, |
628 | GtkCssParser *parser) |
629 | { |
630 | return _gtk_css_number_value_parse (parser, |
631 | flags: GTK_CSS_PARSE_LENGTH); |
632 | } |
633 | |
634 | static GtkCssValue * |
635 | border_image_repeat_parse (GtkCssStyleProperty *property, |
636 | GtkCssParser *parser) |
637 | { |
638 | GtkCssValue *value = _gtk_css_border_repeat_value_try_parse (parser); |
639 | |
640 | if (value == NULL) |
641 | { |
642 | gtk_css_parser_error_syntax (self: parser, format: "Not a valid border repeat value" ); |
643 | return NULL; |
644 | } |
645 | |
646 | return value; |
647 | } |
648 | |
649 | static GtkCssValue * |
650 | border_image_slice_parse (GtkCssStyleProperty *property, |
651 | GtkCssParser *parser) |
652 | { |
653 | return _gtk_css_border_value_parse (parser, |
654 | flags: GTK_CSS_PARSE_PERCENT |
655 | | GTK_CSS_PARSE_NUMBER |
656 | | GTK_CSS_POSITIVE_ONLY, |
657 | FALSE, |
658 | TRUE); |
659 | } |
660 | |
661 | static GtkCssValue * |
662 | border_image_width_parse (GtkCssStyleProperty *property, |
663 | GtkCssParser *parser) |
664 | { |
665 | return _gtk_css_border_value_parse (parser, |
666 | flags: GTK_CSS_PARSE_PERCENT |
667 | | GTK_CSS_PARSE_LENGTH |
668 | | GTK_CSS_PARSE_NUMBER |
669 | | GTK_CSS_POSITIVE_ONLY, |
670 | TRUE, |
671 | FALSE); |
672 | } |
673 | |
674 | static GtkCssValue * |
675 | minmax_parse (GtkCssStyleProperty *property, |
676 | GtkCssParser *parser) |
677 | { |
678 | return _gtk_css_number_value_parse (parser, |
679 | flags: GTK_CSS_PARSE_LENGTH |
680 | | GTK_CSS_POSITIVE_ONLY); |
681 | } |
682 | |
683 | static GtkCssValue * |
684 | transition_property_parse_one (GtkCssParser *parser) |
685 | { |
686 | GtkCssValue *value; |
687 | |
688 | value = _gtk_css_ident_value_try_parse (parser); |
689 | |
690 | if (value == NULL) |
691 | { |
692 | gtk_css_parser_error_syntax (self: parser, format: "Expected an identifier" ); |
693 | return NULL; |
694 | } |
695 | |
696 | return value; |
697 | } |
698 | |
699 | static GtkCssValue * |
700 | transition_property_parse (GtkCssStyleProperty *property, |
701 | GtkCssParser *parser) |
702 | { |
703 | return _gtk_css_array_value_parse (parser, parse_func: transition_property_parse_one); |
704 | } |
705 | |
706 | static GtkCssValue * |
707 | transition_time_parse_one (GtkCssParser *parser) |
708 | { |
709 | return _gtk_css_number_value_parse (parser, flags: GTK_CSS_PARSE_TIME); |
710 | } |
711 | |
712 | static GtkCssValue * |
713 | transition_time_parse (GtkCssStyleProperty *property, |
714 | GtkCssParser *parser) |
715 | { |
716 | return _gtk_css_array_value_parse (parser, parse_func: transition_time_parse_one); |
717 | } |
718 | |
719 | static GtkCssValue * |
720 | transition_timing_function_parse (GtkCssStyleProperty *property, |
721 | GtkCssParser *parser) |
722 | { |
723 | return _gtk_css_array_value_parse (parser, parse_func: _gtk_css_ease_value_parse); |
724 | } |
725 | |
726 | static GtkCssValue * |
727 | iteration_count_parse_one (GtkCssParser *parser) |
728 | { |
729 | if (gtk_css_parser_try_ident (self: parser, ident: "infinite" )) |
730 | return _gtk_css_number_value_new (HUGE_VAL, unit: GTK_CSS_NUMBER); |
731 | |
732 | return _gtk_css_number_value_parse (parser, flags: GTK_CSS_PARSE_NUMBER | GTK_CSS_POSITIVE_ONLY); |
733 | } |
734 | |
735 | static GtkCssValue * |
736 | iteration_count_parse (GtkCssStyleProperty *property, |
737 | GtkCssParser *parser) |
738 | { |
739 | return _gtk_css_array_value_parse (parser, parse_func: iteration_count_parse_one); |
740 | } |
741 | |
742 | static GtkCssValue * |
743 | parse_margin (GtkCssStyleProperty *property, |
744 | GtkCssParser *parser) |
745 | { |
746 | return _gtk_css_number_value_parse (parser, |
747 | flags: GTK_CSS_PARSE_LENGTH); |
748 | } |
749 | |
750 | static GtkCssValue * |
751 | parse_padding (GtkCssStyleProperty *property, |
752 | GtkCssParser *parser) |
753 | { |
754 | return _gtk_css_number_value_parse (parser, |
755 | flags: GTK_CSS_POSITIVE_ONLY |
756 | | GTK_CSS_PARSE_LENGTH); |
757 | } |
758 | |
759 | static GtkCssValue * |
760 | parse_border_width (GtkCssStyleProperty *property, |
761 | GtkCssParser *parser) |
762 | { |
763 | return _gtk_css_number_value_parse (parser, |
764 | flags: GTK_CSS_POSITIVE_ONLY |
765 | | GTK_CSS_PARSE_LENGTH); |
766 | } |
767 | |
768 | static GtkCssValue * |
769 | blend_mode_value_parse_one (GtkCssParser *parser) |
770 | { |
771 | GtkCssValue *value = _gtk_css_blend_mode_value_try_parse (parser); |
772 | |
773 | if (value == NULL) |
774 | gtk_css_parser_error_syntax (self: parser, format: "Unknown blend mode value" ); |
775 | |
776 | return value; |
777 | } |
778 | |
779 | static GtkCssValue * |
780 | blend_mode_value_parse (GtkCssStyleProperty *property, |
781 | GtkCssParser *parser) |
782 | { |
783 | return _gtk_css_array_value_parse (parser, parse_func: blend_mode_value_parse_one); |
784 | } |
785 | |
786 | static GtkCssValue * |
787 | background_repeat_value_parse_one (GtkCssParser *parser) |
788 | { |
789 | GtkCssValue *value = _gtk_css_background_repeat_value_try_parse (parser); |
790 | |
791 | if (value == NULL) |
792 | { |
793 | gtk_css_parser_error_syntax (self: parser, format: "Unknown repeat value" ); |
794 | return NULL; |
795 | } |
796 | |
797 | return value; |
798 | } |
799 | |
800 | static GtkCssValue * |
801 | background_repeat_value_parse (GtkCssStyleProperty *property, |
802 | GtkCssParser *parser) |
803 | { |
804 | return _gtk_css_array_value_parse (parser, parse_func: background_repeat_value_parse_one); |
805 | } |
806 | |
807 | static GtkCssValue * |
808 | background_size_parse (GtkCssStyleProperty *property, |
809 | GtkCssParser *parser) |
810 | { |
811 | return _gtk_css_array_value_parse (parser, parse_func: _gtk_css_bg_size_value_parse); |
812 | } |
813 | |
814 | static GtkCssValue * |
815 | background_position_parse (GtkCssStyleProperty *property, |
816 | GtkCssParser *parser) |
817 | { |
818 | return _gtk_css_array_value_parse (parser, parse_func: _gtk_css_position_value_parse); |
819 | } |
820 | |
821 | static GtkCssValue * |
822 | transform_origin_parse (GtkCssStyleProperty *property, |
823 | GtkCssParser *parser) |
824 | { |
825 | return _gtk_css_position_value_parse (parser); |
826 | } |
827 | |
828 | static GtkCssValue * |
829 | parse_line_height (GtkCssStyleProperty *property, |
830 | GtkCssParser *parser) |
831 | { |
832 | return gtk_css_line_height_value_parse (parser); |
833 | } |
834 | |
835 | /*** REGISTRATION ***/ |
836 | |
837 | G_STATIC_ASSERT (GTK_CSS_PROPERTY_COLOR == 0); |
838 | G_STATIC_ASSERT (GTK_CSS_PROPERTY_DPI < GTK_CSS_PROPERTY_FONT_SIZE); |
839 | |
840 | void |
841 | _gtk_css_style_property_init_properties (void) |
842 | { |
843 | /* Initialize "color", "-gtk-dpi" and "font-size" first, |
844 | * so that when computing values later they are |
845 | * done first. That way, 'currentColor' and font |
846 | * sizes in em can be looked up properly */ |
847 | gtk_css_style_property_register (name: "color" , |
848 | expected_id: GTK_CSS_PROPERTY_COLOR, |
849 | flags: GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED, |
850 | affects: GTK_CSS_AFFECTS_CONTENT | GTK_CSS_AFFECTS_ICON_REDRAW_SYMBOLIC, |
851 | parse_value: color_parse, |
852 | initial_value: gtk_css_color_value_new_white ()); |
853 | gtk_css_style_property_register (name: "-gtk-dpi" , |
854 | expected_id: GTK_CSS_PROPERTY_DPI, |
855 | flags: GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED, |
856 | affects: GTK_CSS_AFFECTS_SIZE | GTK_CSS_AFFECTS_TEXT_SIZE, |
857 | parse_value: dpi_parse, |
858 | initial_value: _gtk_css_number_value_new (value: 96.0, unit: GTK_CSS_NUMBER)); |
859 | gtk_css_style_property_register (name: "font-size" , |
860 | expected_id: GTK_CSS_PROPERTY_FONT_SIZE, |
861 | flags: GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED, |
862 | affects: GTK_CSS_AFFECTS_SIZE | GTK_CSS_AFFECTS_TEXT_SIZE, |
863 | parse_value: font_size_parse, |
864 | initial_value: _gtk_css_font_size_value_new (size: GTK_CSS_FONT_SIZE_MEDIUM)); |
865 | gtk_css_style_property_register (name: "-gtk-icon-palette" , |
866 | expected_id: GTK_CSS_PROPERTY_ICON_PALETTE, |
867 | flags: GTK_STYLE_PROPERTY_ANIMATED | GTK_STYLE_PROPERTY_INHERIT, |
868 | affects: GTK_CSS_AFFECTS_ICON_REDRAW_SYMBOLIC, |
869 | parse_value: icon_palette_parse, |
870 | initial_value: gtk_css_palette_value_new_default ()); |
871 | |
872 | |
873 | /* properties that aren't referenced when computing values |
874 | * start here */ |
875 | gtk_css_style_property_register (name: "background-color" , |
876 | expected_id: GTK_CSS_PROPERTY_BACKGROUND_COLOR, |
877 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
878 | affects: GTK_CSS_AFFECTS_BACKGROUND, |
879 | parse_value: color_parse, |
880 | initial_value: gtk_css_color_value_new_transparent ()); |
881 | |
882 | gtk_css_style_property_register (name: "font-family" , |
883 | expected_id: GTK_CSS_PROPERTY_FONT_FAMILY, |
884 | flags: GTK_STYLE_PROPERTY_INHERIT, |
885 | affects: GTK_CSS_AFFECTS_TEXT_SIZE, |
886 | parse_value: font_family_parse, |
887 | initial_value: _gtk_css_string_value_new (string: "Sans" )); |
888 | gtk_css_style_property_register (name: "font-style" , |
889 | expected_id: GTK_CSS_PROPERTY_FONT_STYLE, |
890 | flags: GTK_STYLE_PROPERTY_INHERIT, |
891 | affects: GTK_CSS_AFFECTS_TEXT_SIZE, |
892 | parse_value: font_style_parse, |
893 | initial_value: _gtk_css_font_style_value_new (style: PANGO_STYLE_NORMAL)); |
894 | gtk_css_style_property_register (name: "font-weight" , |
895 | expected_id: GTK_CSS_PROPERTY_FONT_WEIGHT, |
896 | flags: GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED, |
897 | affects: GTK_CSS_AFFECTS_TEXT_SIZE, |
898 | parse_value: font_weight_parse, |
899 | initial_value: _gtk_css_number_value_new (value: PANGO_WEIGHT_NORMAL, unit: GTK_CSS_NUMBER)); |
900 | gtk_css_style_property_register (name: "font-stretch" , |
901 | expected_id: GTK_CSS_PROPERTY_FONT_STRETCH, |
902 | flags: GTK_STYLE_PROPERTY_INHERIT, |
903 | affects: GTK_CSS_AFFECTS_TEXT_SIZE, |
904 | parse_value: font_stretch_parse, |
905 | initial_value: _gtk_css_font_stretch_value_new (stretch: PANGO_STRETCH_NORMAL)); |
906 | |
907 | gtk_css_style_property_register (name: "letter-spacing" , |
908 | expected_id: GTK_CSS_PROPERTY_LETTER_SPACING, |
909 | flags: GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED, |
910 | affects: GTK_CSS_AFFECTS_TEXT_ATTRS | GTK_CSS_AFFECTS_TEXT_SIZE, |
911 | parse_value: parse_letter_spacing, |
912 | initial_value: _gtk_css_number_value_new (value: 0.0, unit: GTK_CSS_PX)); |
913 | |
914 | gtk_css_style_property_register (name: "text-decoration-line" , |
915 | expected_id: GTK_CSS_PROPERTY_TEXT_DECORATION_LINE, |
916 | flags: 0, |
917 | affects: GTK_CSS_AFFECTS_TEXT_ATTRS, |
918 | parse_value: parse_text_decoration_line, |
919 | initial_value: _gtk_css_text_decoration_line_value_new (line: GTK_CSS_TEXT_DECORATION_LINE_NONE)); |
920 | gtk_css_style_property_register (name: "text-decoration-color" , |
921 | expected_id: GTK_CSS_PROPERTY_TEXT_DECORATION_COLOR, |
922 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
923 | affects: GTK_CSS_AFFECTS_TEXT_ATTRS, |
924 | parse_value: color_parse, |
925 | initial_value: _gtk_css_color_value_new_current_color ()); |
926 | gtk_css_style_property_register (name: "text-decoration-style" , |
927 | expected_id: GTK_CSS_PROPERTY_TEXT_DECORATION_STYLE, |
928 | flags: 0, |
929 | affects: GTK_CSS_AFFECTS_TEXT_ATTRS, |
930 | parse_value: parse_text_decoration_style, |
931 | initial_value: _gtk_css_text_decoration_style_value_new (style: GTK_CSS_TEXT_DECORATION_STYLE_SOLID)); |
932 | gtk_css_style_property_register (name: "text-transform" , |
933 | expected_id: GTK_CSS_PROPERTY_TEXT_TRANSFORM, |
934 | flags: 0, |
935 | affects: GTK_CSS_AFFECTS_TEXT_ATTRS | GTK_CSS_AFFECTS_TEXT_SIZE, |
936 | parse_value: parse_text_transform, |
937 | initial_value: _gtk_css_text_transform_value_new (transform: GTK_CSS_TEXT_TRANSFORM_NONE)); |
938 | gtk_css_style_property_register (name: "font-kerning" , |
939 | expected_id: GTK_CSS_PROPERTY_FONT_KERNING, |
940 | flags: 0, |
941 | affects: GTK_CSS_AFFECTS_TEXT_ATTRS | GTK_CSS_AFFECTS_TEXT_SIZE, |
942 | parse_value: parse_font_kerning, |
943 | initial_value: _gtk_css_font_kerning_value_new (kerning: GTK_CSS_FONT_KERNING_AUTO)); |
944 | gtk_css_style_property_register (name: "font-variant-ligatures" , |
945 | expected_id: GTK_CSS_PROPERTY_FONT_VARIANT_LIGATURES, |
946 | flags: 0, |
947 | affects: GTK_CSS_AFFECTS_TEXT_ATTRS, |
948 | parse_value: parse_font_variant_ligatures, |
949 | initial_value: _gtk_css_font_variant_ligature_value_new (ligatures: GTK_CSS_FONT_VARIANT_LIGATURE_NORMAL)); |
950 | gtk_css_style_property_register (name: "font-variant-position" , |
951 | expected_id: GTK_CSS_PROPERTY_FONT_VARIANT_POSITION, |
952 | flags: 0, |
953 | affects: GTK_CSS_AFFECTS_TEXT_ATTRS, |
954 | parse_value: parse_font_variant_position, |
955 | initial_value: _gtk_css_font_variant_position_value_new (position: GTK_CSS_FONT_VARIANT_POSITION_NORMAL)); |
956 | gtk_css_style_property_register (name: "font-variant-caps" , |
957 | expected_id: GTK_CSS_PROPERTY_FONT_VARIANT_CAPS, |
958 | flags: 0, |
959 | affects: GTK_CSS_AFFECTS_TEXT_ATTRS, |
960 | parse_value: parse_font_variant_caps, |
961 | initial_value: _gtk_css_font_variant_caps_value_new (caps: GTK_CSS_FONT_VARIANT_CAPS_NORMAL)); |
962 | gtk_css_style_property_register (name: "font-variant-numeric" , |
963 | expected_id: GTK_CSS_PROPERTY_FONT_VARIANT_NUMERIC, |
964 | flags: 0, |
965 | affects: GTK_CSS_AFFECTS_TEXT_ATTRS, |
966 | parse_value: parse_font_variant_numeric, |
967 | initial_value: _gtk_css_font_variant_numeric_value_new (numeric: GTK_CSS_FONT_VARIANT_NUMERIC_NORMAL)); |
968 | gtk_css_style_property_register (name: "font-variant-alternates" , |
969 | expected_id: GTK_CSS_PROPERTY_FONT_VARIANT_ALTERNATES, |
970 | flags: 0, |
971 | affects: GTK_CSS_AFFECTS_TEXT_ATTRS, |
972 | parse_value: parse_font_variant_alternates, |
973 | initial_value: _gtk_css_font_variant_alternate_value_new (alternates: GTK_CSS_FONT_VARIANT_ALTERNATE_NORMAL)); |
974 | gtk_css_style_property_register (name: "font-variant-east-asian" , |
975 | expected_id: GTK_CSS_PROPERTY_FONT_VARIANT_EAST_ASIAN, |
976 | flags: 0, |
977 | affects: GTK_CSS_AFFECTS_TEXT_ATTRS, |
978 | parse_value: parse_font_variant_east_asian, |
979 | initial_value: _gtk_css_font_variant_east_asian_value_new (east_asian: GTK_CSS_FONT_VARIANT_EAST_ASIAN_NORMAL)); |
980 | gtk_css_style_property_register (name: "text-shadow" , |
981 | expected_id: GTK_CSS_PROPERTY_TEXT_SHADOW, |
982 | flags: GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED, |
983 | affects: GTK_CSS_AFFECTS_TEXT_CONTENT, |
984 | parse_value: shadow_value_parse, |
985 | initial_value: gtk_css_shadow_value_new_none ()); |
986 | |
987 | gtk_css_style_property_register (name: "box-shadow" , |
988 | expected_id: GTK_CSS_PROPERTY_BOX_SHADOW, |
989 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
990 | affects: GTK_CSS_AFFECTS_BACKGROUND, |
991 | parse_value: box_shadow_value_parse, |
992 | initial_value: gtk_css_shadow_value_new_none ()); |
993 | |
994 | gtk_css_style_property_register (name: "margin-top" , |
995 | expected_id: GTK_CSS_PROPERTY_MARGIN_TOP, |
996 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
997 | affects: GTK_CSS_AFFECTS_SIZE, |
998 | parse_value: parse_margin, |
999 | initial_value: _gtk_css_number_value_new (value: 0.0, unit: GTK_CSS_PX)); |
1000 | gtk_css_style_property_register (name: "margin-left" , |
1001 | expected_id: GTK_CSS_PROPERTY_MARGIN_LEFT, |
1002 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1003 | affects: GTK_CSS_AFFECTS_SIZE, |
1004 | parse_value: parse_margin, |
1005 | initial_value: _gtk_css_number_value_new (value: 0.0, unit: GTK_CSS_PX)); |
1006 | gtk_css_style_property_register (name: "margin-bottom" , |
1007 | expected_id: GTK_CSS_PROPERTY_MARGIN_BOTTOM, |
1008 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1009 | affects: GTK_CSS_AFFECTS_SIZE, |
1010 | parse_value: parse_margin, |
1011 | initial_value: _gtk_css_number_value_new (value: 0.0, unit: GTK_CSS_PX)); |
1012 | gtk_css_style_property_register (name: "margin-right" , |
1013 | expected_id: GTK_CSS_PROPERTY_MARGIN_RIGHT, |
1014 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1015 | affects: GTK_CSS_AFFECTS_SIZE, |
1016 | parse_value: parse_margin, |
1017 | initial_value: _gtk_css_number_value_new (value: 0.0, unit: GTK_CSS_PX)); |
1018 | gtk_css_style_property_register (name: "padding-top" , |
1019 | expected_id: GTK_CSS_PROPERTY_PADDING_TOP, |
1020 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1021 | affects: GTK_CSS_AFFECTS_SIZE, |
1022 | parse_value: parse_padding, |
1023 | initial_value: _gtk_css_number_value_new (value: 0.0, unit: GTK_CSS_PX)); |
1024 | gtk_css_style_property_register (name: "padding-left" , |
1025 | expected_id: GTK_CSS_PROPERTY_PADDING_LEFT, |
1026 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1027 | affects: GTK_CSS_AFFECTS_SIZE, |
1028 | parse_value: parse_padding, |
1029 | initial_value: _gtk_css_number_value_new (value: 0.0, unit: GTK_CSS_PX)); |
1030 | gtk_css_style_property_register (name: "padding-bottom" , |
1031 | expected_id: GTK_CSS_PROPERTY_PADDING_BOTTOM, |
1032 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1033 | affects: GTK_CSS_AFFECTS_SIZE, |
1034 | parse_value: parse_padding, |
1035 | initial_value: _gtk_css_number_value_new (value: 0.0, unit: GTK_CSS_PX)); |
1036 | gtk_css_style_property_register (name: "padding-right" , |
1037 | expected_id: GTK_CSS_PROPERTY_PADDING_RIGHT, |
1038 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1039 | affects: GTK_CSS_AFFECTS_SIZE, |
1040 | parse_value: parse_padding, |
1041 | initial_value: _gtk_css_number_value_new (value: 0.0, unit: GTK_CSS_PX)); |
1042 | /* IMPORTANT: the border-width properties must come after border-style properties, |
1043 | * they depend on them for their value computation. |
1044 | */ |
1045 | gtk_css_style_property_register (name: "border-top-style" , |
1046 | expected_id: GTK_CSS_PROPERTY_BORDER_TOP_STYLE, |
1047 | flags: 0, |
1048 | affects: GTK_CSS_AFFECTS_BORDER, |
1049 | parse_value: parse_border_style, |
1050 | initial_value: _gtk_css_border_style_value_new (border_style: GTK_BORDER_STYLE_NONE)); |
1051 | gtk_css_style_property_register (name: "border-top-width" , |
1052 | expected_id: GTK_CSS_PROPERTY_BORDER_TOP_WIDTH, |
1053 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1054 | affects: GTK_CSS_AFFECTS_BORDER | GTK_CSS_AFFECTS_SIZE, |
1055 | parse_value: parse_border_width, |
1056 | initial_value: _gtk_css_number_value_new (value: 0.0, unit: GTK_CSS_PX)); |
1057 | gtk_css_style_property_register (name: "border-left-style" , |
1058 | expected_id: GTK_CSS_PROPERTY_BORDER_LEFT_STYLE, |
1059 | flags: 0, |
1060 | affects: GTK_CSS_AFFECTS_BORDER, |
1061 | parse_value: parse_border_style, |
1062 | initial_value: _gtk_css_border_style_value_new (border_style: GTK_BORDER_STYLE_NONE)); |
1063 | gtk_css_style_property_register (name: "border-left-width" , |
1064 | expected_id: GTK_CSS_PROPERTY_BORDER_LEFT_WIDTH, |
1065 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1066 | affects: GTK_CSS_AFFECTS_BORDER | GTK_CSS_AFFECTS_SIZE, |
1067 | parse_value: parse_border_width, |
1068 | initial_value: _gtk_css_number_value_new (value: 0.0, unit: GTK_CSS_PX)); |
1069 | gtk_css_style_property_register (name: "border-bottom-style" , |
1070 | expected_id: GTK_CSS_PROPERTY_BORDER_BOTTOM_STYLE, |
1071 | flags: 0, |
1072 | affects: GTK_CSS_AFFECTS_BORDER, |
1073 | parse_value: parse_border_style, |
1074 | initial_value: _gtk_css_border_style_value_new (border_style: GTK_BORDER_STYLE_NONE)); |
1075 | gtk_css_style_property_register (name: "border-bottom-width" , |
1076 | expected_id: GTK_CSS_PROPERTY_BORDER_BOTTOM_WIDTH, |
1077 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1078 | affects: GTK_CSS_AFFECTS_BORDER | GTK_CSS_AFFECTS_SIZE, |
1079 | parse_value: parse_border_width, |
1080 | initial_value: _gtk_css_number_value_new (value: 0.0, unit: GTK_CSS_PX)); |
1081 | gtk_css_style_property_register (name: "border-right-style" , |
1082 | expected_id: GTK_CSS_PROPERTY_BORDER_RIGHT_STYLE, |
1083 | flags: 0, |
1084 | affects: GTK_CSS_AFFECTS_BORDER, |
1085 | parse_value: parse_border_style, |
1086 | initial_value: _gtk_css_border_style_value_new (border_style: GTK_BORDER_STYLE_NONE)); |
1087 | gtk_css_style_property_register (name: "border-right-width" , |
1088 | expected_id: GTK_CSS_PROPERTY_BORDER_RIGHT_WIDTH, |
1089 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1090 | affects: GTK_CSS_AFFECTS_BORDER | GTK_CSS_AFFECTS_SIZE, |
1091 | parse_value: parse_border_width, |
1092 | initial_value: _gtk_css_number_value_new (value: 0.0, unit: GTK_CSS_PX)); |
1093 | |
1094 | gtk_css_style_property_register (name: "border-top-left-radius" , |
1095 | expected_id: GTK_CSS_PROPERTY_BORDER_TOP_LEFT_RADIUS, |
1096 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1097 | affects: GTK_CSS_AFFECTS_BACKGROUND | GTK_CSS_AFFECTS_BORDER, |
1098 | parse_value: border_corner_radius_value_parse, |
1099 | initial_value: _gtk_css_number_value_new (value: 0, unit: GTK_CSS_PX)); |
1100 | gtk_css_style_property_register (name: "border-top-right-radius" , |
1101 | expected_id: GTK_CSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS, |
1102 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1103 | affects: GTK_CSS_AFFECTS_BACKGROUND | GTK_CSS_AFFECTS_BORDER, |
1104 | parse_value: border_corner_radius_value_parse, |
1105 | initial_value: _gtk_css_number_value_new (value: 0, unit: GTK_CSS_PX)); |
1106 | gtk_css_style_property_register (name: "border-bottom-right-radius" , |
1107 | expected_id: GTK_CSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS, |
1108 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1109 | affects: GTK_CSS_AFFECTS_BACKGROUND | GTK_CSS_AFFECTS_BORDER, |
1110 | parse_value: border_corner_radius_value_parse, |
1111 | initial_value: _gtk_css_number_value_new (value: 0, unit: GTK_CSS_PX)); |
1112 | gtk_css_style_property_register (name: "border-bottom-left-radius" , |
1113 | expected_id: GTK_CSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS, |
1114 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1115 | affects: GTK_CSS_AFFECTS_BACKGROUND | GTK_CSS_AFFECTS_BORDER, |
1116 | parse_value: border_corner_radius_value_parse, |
1117 | initial_value: _gtk_css_number_value_new (value: 0, unit: GTK_CSS_PX)); |
1118 | |
1119 | gtk_css_style_property_register (name: "outline-style" , |
1120 | expected_id: GTK_CSS_PROPERTY_OUTLINE_STYLE, |
1121 | flags: 0, |
1122 | affects: GTK_CSS_AFFECTS_OUTLINE, |
1123 | parse_value: parse_border_style, |
1124 | initial_value: _gtk_css_border_style_value_new (border_style: GTK_BORDER_STYLE_NONE)); |
1125 | gtk_css_style_property_register (name: "outline-width" , |
1126 | expected_id: GTK_CSS_PROPERTY_OUTLINE_WIDTH, |
1127 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1128 | affects: GTK_CSS_AFFECTS_OUTLINE, |
1129 | parse_value: parse_border_width, |
1130 | initial_value: _gtk_css_number_value_new (value: 0.0, unit: GTK_CSS_PX)); |
1131 | gtk_css_style_property_register (name: "outline-offset" , |
1132 | expected_id: GTK_CSS_PROPERTY_OUTLINE_OFFSET, |
1133 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1134 | affects: GTK_CSS_AFFECTS_OUTLINE, |
1135 | parse_value: outline_parse, |
1136 | initial_value: _gtk_css_number_value_new (value: 0.0, unit: GTK_CSS_PX)); |
1137 | |
1138 | gtk_css_style_property_register (name: "background-clip" , |
1139 | expected_id: GTK_CSS_PROPERTY_BACKGROUND_CLIP, |
1140 | flags: 0, |
1141 | affects: GTK_CSS_AFFECTS_BACKGROUND, |
1142 | parse_value: parse_css_area, |
1143 | initial_value: _gtk_css_area_value_new (area: GTK_CSS_AREA_BORDER_BOX)); |
1144 | gtk_css_style_property_register (name: "background-origin" , |
1145 | expected_id: GTK_CSS_PROPERTY_BACKGROUND_ORIGIN, |
1146 | flags: 0, |
1147 | affects: GTK_CSS_AFFECTS_BACKGROUND, |
1148 | parse_value: parse_css_area, |
1149 | initial_value: _gtk_css_area_value_new (area: GTK_CSS_AREA_PADDING_BOX)); |
1150 | gtk_css_style_property_register (name: "background-size" , |
1151 | expected_id: GTK_CSS_PROPERTY_BACKGROUND_SIZE, |
1152 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1153 | affects: GTK_CSS_AFFECTS_BACKGROUND, |
1154 | parse_value: background_size_parse, |
1155 | initial_value: _gtk_css_bg_size_value_new (NULL, NULL)); |
1156 | gtk_css_style_property_register (name: "background-position" , |
1157 | expected_id: GTK_CSS_PROPERTY_BACKGROUND_POSITION, |
1158 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1159 | affects: GTK_CSS_AFFECTS_BACKGROUND, |
1160 | parse_value: background_position_parse, |
1161 | initial_value: _gtk_css_position_value_new (x: _gtk_css_number_value_new (value: 0, unit: GTK_CSS_PERCENT), |
1162 | y: _gtk_css_number_value_new (value: 0, unit: GTK_CSS_PERCENT))); |
1163 | |
1164 | gtk_css_style_property_register (name: "border-top-color" , |
1165 | expected_id: GTK_CSS_PROPERTY_BORDER_TOP_COLOR, |
1166 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1167 | affects: GTK_CSS_AFFECTS_BORDER, |
1168 | parse_value: color_parse, |
1169 | initial_value: _gtk_css_color_value_new_current_color ()); |
1170 | gtk_css_style_property_register (name: "border-right-color" , |
1171 | expected_id: GTK_CSS_PROPERTY_BORDER_RIGHT_COLOR, |
1172 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1173 | affects: GTK_CSS_AFFECTS_BORDER, |
1174 | parse_value: color_parse, |
1175 | initial_value: _gtk_css_color_value_new_current_color ()); |
1176 | gtk_css_style_property_register (name: "border-bottom-color" , |
1177 | expected_id: GTK_CSS_PROPERTY_BORDER_BOTTOM_COLOR, |
1178 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1179 | affects: GTK_CSS_AFFECTS_BORDER, |
1180 | parse_value: color_parse, |
1181 | initial_value: _gtk_css_color_value_new_current_color ()); |
1182 | gtk_css_style_property_register (name: "border-left-color" , |
1183 | expected_id: GTK_CSS_PROPERTY_BORDER_LEFT_COLOR, |
1184 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1185 | affects: GTK_CSS_AFFECTS_BORDER, |
1186 | parse_value: color_parse, |
1187 | initial_value: _gtk_css_color_value_new_current_color ()); |
1188 | gtk_css_style_property_register (name: "outline-color" , |
1189 | expected_id: GTK_CSS_PROPERTY_OUTLINE_COLOR, |
1190 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1191 | affects: GTK_CSS_AFFECTS_OUTLINE, |
1192 | parse_value: color_parse, |
1193 | initial_value: _gtk_css_color_value_new_current_color ()); |
1194 | |
1195 | gtk_css_style_property_register (name: "background-repeat" , |
1196 | expected_id: GTK_CSS_PROPERTY_BACKGROUND_REPEAT, |
1197 | flags: 0, |
1198 | affects: GTK_CSS_AFFECTS_BACKGROUND, |
1199 | parse_value: background_repeat_value_parse, |
1200 | initial_value: _gtk_css_background_repeat_value_new (x: GTK_CSS_REPEAT_STYLE_REPEAT, |
1201 | y: GTK_CSS_REPEAT_STYLE_REPEAT)); |
1202 | gtk_css_style_property_register (name: "background-image" , |
1203 | expected_id: GTK_CSS_PROPERTY_BACKGROUND_IMAGE, |
1204 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1205 | affects: GTK_CSS_AFFECTS_BACKGROUND, |
1206 | parse_value: background_image_value_parse, |
1207 | initial_value: _gtk_css_image_value_new (NULL)); |
1208 | |
1209 | gtk_css_style_property_register (name: "background-blend-mode" , |
1210 | expected_id: GTK_CSS_PROPERTY_BACKGROUND_BLEND_MODE, |
1211 | flags: 0, |
1212 | affects: GTK_CSS_AFFECTS_BACKGROUND, |
1213 | parse_value: blend_mode_value_parse, |
1214 | initial_value: _gtk_css_blend_mode_value_new (blend_mode: GSK_BLEND_MODE_DEFAULT)); |
1215 | |
1216 | gtk_css_style_property_register (name: "border-image-source" , |
1217 | expected_id: GTK_CSS_PROPERTY_BORDER_IMAGE_SOURCE, |
1218 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1219 | affects: GTK_CSS_AFFECTS_BORDER, |
1220 | parse_value: css_image_value_parse, |
1221 | initial_value: _gtk_css_image_value_new (NULL)); |
1222 | gtk_css_style_property_register (name: "border-image-repeat" , |
1223 | expected_id: GTK_CSS_PROPERTY_BORDER_IMAGE_REPEAT, |
1224 | flags: 0, |
1225 | affects: GTK_CSS_AFFECTS_BORDER, |
1226 | parse_value: border_image_repeat_parse, |
1227 | initial_value: _gtk_css_border_repeat_value_new (x: GTK_CSS_REPEAT_STYLE_STRETCH, |
1228 | y: GTK_CSS_REPEAT_STYLE_STRETCH)); |
1229 | |
1230 | gtk_css_style_property_register (name: "border-image-slice" , |
1231 | expected_id: GTK_CSS_PROPERTY_BORDER_IMAGE_SLICE, |
1232 | flags: 0, |
1233 | affects: GTK_CSS_AFFECTS_BORDER, |
1234 | parse_value: border_image_slice_parse, |
1235 | initial_value: _gtk_css_border_value_new (top: _gtk_css_number_value_new (value: 100, unit: GTK_CSS_PERCENT), |
1236 | right: _gtk_css_number_value_new (value: 100, unit: GTK_CSS_PERCENT), |
1237 | bottom: _gtk_css_number_value_new (value: 100, unit: GTK_CSS_PERCENT), |
1238 | left: _gtk_css_number_value_new (value: 100, unit: GTK_CSS_PERCENT))); |
1239 | gtk_css_style_property_register (name: "border-image-width" , |
1240 | expected_id: GTK_CSS_PROPERTY_BORDER_IMAGE_WIDTH, |
1241 | flags: 0, |
1242 | affects: GTK_CSS_AFFECTS_BORDER, |
1243 | parse_value: border_image_width_parse, |
1244 | initial_value: _gtk_css_border_value_new (top: _gtk_css_number_value_new (value: 1, unit: GTK_CSS_NUMBER), |
1245 | right: _gtk_css_number_value_new (value: 1, unit: GTK_CSS_NUMBER), |
1246 | bottom: _gtk_css_number_value_new (value: 1, unit: GTK_CSS_NUMBER), |
1247 | left: _gtk_css_number_value_new (value: 1, unit: GTK_CSS_NUMBER))); |
1248 | |
1249 | gtk_css_style_property_register (name: "-gtk-icon-source" , |
1250 | expected_id: GTK_CSS_PROPERTY_ICON_SOURCE, |
1251 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1252 | affects: GTK_CSS_AFFECTS_ICON_TEXTURE, |
1253 | parse_value: css_image_value_parse, |
1254 | initial_value: _gtk_css_image_value_new (NULL)); |
1255 | gtk_css_style_property_register (name: "-gtk-icon-size" , |
1256 | expected_id: GTK_CSS_PROPERTY_ICON_SIZE, |
1257 | flags: GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED, |
1258 | affects: GTK_CSS_AFFECTS_SIZE | GTK_CSS_AFFECTS_ICON_SIZE, |
1259 | parse_value: icon_size_parse, |
1260 | initial_value: _gtk_css_number_value_new (value: 16, unit: GTK_CSS_PX)); |
1261 | gtk_css_style_property_register (name: "-gtk-icon-shadow" , |
1262 | expected_id: GTK_CSS_PROPERTY_ICON_SHADOW, |
1263 | flags: GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED, |
1264 | affects: GTK_CSS_AFFECTS_ICON_REDRAW, |
1265 | parse_value: shadow_value_parse, |
1266 | initial_value: gtk_css_shadow_value_new_none ()); |
1267 | gtk_css_style_property_register (name: "-gtk-icon-style" , |
1268 | expected_id: GTK_CSS_PROPERTY_ICON_STYLE, |
1269 | flags: GTK_STYLE_PROPERTY_INHERIT, |
1270 | affects: GTK_CSS_AFFECTS_ICON_TEXTURE, |
1271 | parse_value: icon_style_parse, |
1272 | initial_value: _gtk_css_icon_style_value_new (icon_style: GTK_CSS_ICON_STYLE_REQUESTED)); |
1273 | gtk_css_style_property_register (name: "-gtk-icon-transform" , |
1274 | expected_id: GTK_CSS_PROPERTY_ICON_TRANSFORM, |
1275 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1276 | affects: GTK_CSS_AFFECTS_CONTENT, |
1277 | parse_value: transform_value_parse, |
1278 | initial_value: _gtk_css_transform_value_new_none ()); |
1279 | gtk_css_style_property_register (name: "-gtk-icon-filter" , |
1280 | expected_id: GTK_CSS_PROPERTY_ICON_FILTER, |
1281 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1282 | affects: GTK_CSS_AFFECTS_CONTENT, |
1283 | parse_value: filter_value_parse, |
1284 | initial_value: gtk_css_filter_value_new_none ()); |
1285 | gtk_css_style_property_register (name: "border-spacing" , |
1286 | expected_id: GTK_CSS_PROPERTY_BORDER_SPACING, |
1287 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1288 | affects: GTK_CSS_AFFECTS_SIZE, |
1289 | parse_value: border_spacing_value_parse, |
1290 | initial_value: _gtk_css_position_value_new (x: _gtk_css_number_value_new (value: 0, unit: GTK_CSS_PX), |
1291 | y: _gtk_css_number_value_new (value: 0, unit: GTK_CSS_PX))); |
1292 | |
1293 | gtk_css_style_property_register (name: "transform" , |
1294 | expected_id: GTK_CSS_PROPERTY_TRANSFORM, |
1295 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1296 | affects: GTK_CSS_AFFECTS_TRANSFORM, |
1297 | parse_value: transform_value_parse, |
1298 | initial_value: _gtk_css_transform_value_new_none ()); |
1299 | gtk_css_style_property_register (name: "transform-origin" , |
1300 | expected_id: GTK_CSS_PROPERTY_TRANSFORM_ORIGIN, |
1301 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1302 | affects: GTK_CSS_AFFECTS_TRANSFORM, |
1303 | parse_value: transform_origin_parse, |
1304 | initial_value: _gtk_css_position_value_new (x: _gtk_css_number_value_new (value: 50, unit: GTK_CSS_PERCENT), |
1305 | y: _gtk_css_number_value_new (value: 50, unit: GTK_CSS_PERCENT))); |
1306 | gtk_css_style_property_register (name: "min-width" , |
1307 | expected_id: GTK_CSS_PROPERTY_MIN_WIDTH, |
1308 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1309 | affects: GTK_CSS_AFFECTS_SIZE, |
1310 | parse_value: minmax_parse, |
1311 | initial_value: _gtk_css_number_value_new (value: 0, unit: GTK_CSS_PX)); |
1312 | gtk_css_style_property_register (name: "min-height" , |
1313 | expected_id: GTK_CSS_PROPERTY_MIN_HEIGHT, |
1314 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1315 | affects: GTK_CSS_AFFECTS_SIZE, |
1316 | parse_value: minmax_parse, |
1317 | initial_value: _gtk_css_number_value_new (value: 0, unit: GTK_CSS_PX)); |
1318 | |
1319 | gtk_css_style_property_register (name: "transition-property" , |
1320 | expected_id: GTK_CSS_PROPERTY_TRANSITION_PROPERTY, |
1321 | flags: 0, |
1322 | affects: 0, |
1323 | parse_value: transition_property_parse, |
1324 | initial_value: _gtk_css_ident_value_new (ident: "all" )); |
1325 | gtk_css_style_property_register (name: "transition-duration" , |
1326 | expected_id: GTK_CSS_PROPERTY_TRANSITION_DURATION, |
1327 | flags: 0, |
1328 | affects: 0, |
1329 | parse_value: transition_time_parse, |
1330 | initial_value: _gtk_css_number_value_new (value: 0, unit: GTK_CSS_S)); |
1331 | gtk_css_style_property_register (name: "transition-timing-function" , |
1332 | expected_id: GTK_CSS_PROPERTY_TRANSITION_TIMING_FUNCTION, |
1333 | flags: 0, |
1334 | affects: 0, |
1335 | parse_value: transition_timing_function_parse, |
1336 | initial_value: _gtk_css_ease_value_new_cubic_bezier (x1: 0.25, y1: 0.1, x2: 0.25, y2: 1.0)); |
1337 | gtk_css_style_property_register (name: "transition-delay" , |
1338 | expected_id: GTK_CSS_PROPERTY_TRANSITION_DELAY, |
1339 | flags: 0, |
1340 | affects: 0, |
1341 | parse_value: transition_time_parse, |
1342 | initial_value: _gtk_css_number_value_new (value: 0, unit: GTK_CSS_S)); |
1343 | |
1344 | gtk_css_style_property_register (name: "animation-name" , |
1345 | expected_id: GTK_CSS_PROPERTY_ANIMATION_NAME, |
1346 | flags: 0, |
1347 | affects: 0, |
1348 | parse_value: transition_property_parse, |
1349 | initial_value: _gtk_css_ident_value_new (ident: "none" )); |
1350 | gtk_css_style_property_register (name: "animation-duration" , |
1351 | expected_id: GTK_CSS_PROPERTY_ANIMATION_DURATION, |
1352 | flags: 0, |
1353 | affects: 0, |
1354 | parse_value: transition_time_parse, |
1355 | initial_value: _gtk_css_number_value_new (value: 0, unit: GTK_CSS_S)); |
1356 | gtk_css_style_property_register (name: "animation-timing-function" , |
1357 | expected_id: GTK_CSS_PROPERTY_ANIMATION_TIMING_FUNCTION, |
1358 | flags: 0, |
1359 | affects: 0, |
1360 | parse_value: transition_timing_function_parse, |
1361 | initial_value: _gtk_css_ease_value_new_cubic_bezier (x1: 0.25, y1: 0.1, x2: 0.25, y2: 1.0)); |
1362 | gtk_css_style_property_register (name: "animation-iteration-count" , |
1363 | expected_id: GTK_CSS_PROPERTY_ANIMATION_ITERATION_COUNT, |
1364 | flags: 0, |
1365 | affects: 0, |
1366 | parse_value: iteration_count_parse, |
1367 | initial_value: _gtk_css_number_value_new (value: 1, unit: GTK_CSS_NUMBER)); |
1368 | gtk_css_style_property_register (name: "animation-direction" , |
1369 | expected_id: GTK_CSS_PROPERTY_ANIMATION_DIRECTION, |
1370 | flags: 0, |
1371 | affects: 0, |
1372 | parse_value: parse_css_direction, |
1373 | initial_value: _gtk_css_direction_value_new (direction: GTK_CSS_DIRECTION_NORMAL)); |
1374 | gtk_css_style_property_register (name: "animation-play-state" , |
1375 | expected_id: GTK_CSS_PROPERTY_ANIMATION_PLAY_STATE, |
1376 | flags: 0, |
1377 | affects: 0, |
1378 | parse_value: parse_css_play_state, |
1379 | initial_value: _gtk_css_play_state_value_new (play_state: GTK_CSS_PLAY_STATE_RUNNING)); |
1380 | gtk_css_style_property_register (name: "animation-delay" , |
1381 | expected_id: GTK_CSS_PROPERTY_ANIMATION_DELAY, |
1382 | flags: 0, |
1383 | affects: 0, |
1384 | parse_value: transition_time_parse, |
1385 | initial_value: _gtk_css_number_value_new (value: 0, unit: GTK_CSS_S)); |
1386 | gtk_css_style_property_register (name: "animation-fill-mode" , |
1387 | expected_id: GTK_CSS_PROPERTY_ANIMATION_FILL_MODE, |
1388 | flags: 0, |
1389 | affects: 0, |
1390 | parse_value: parse_css_fill_mode, |
1391 | initial_value: _gtk_css_fill_mode_value_new (fill_mode: GTK_CSS_FILL_NONE)); |
1392 | |
1393 | gtk_css_style_property_register (name: "opacity" , |
1394 | expected_id: GTK_CSS_PROPERTY_OPACITY, |
1395 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1396 | affects: GTK_CSS_AFFECTS_POSTEFFECT, |
1397 | parse_value: opacity_parse, |
1398 | initial_value: _gtk_css_number_value_new (value: 1, unit: GTK_CSS_NUMBER)); |
1399 | gtk_css_style_property_register (name: "filter" , |
1400 | expected_id: GTK_CSS_PROPERTY_FILTER, |
1401 | flags: GTK_STYLE_PROPERTY_ANIMATED, |
1402 | affects: GTK_CSS_AFFECTS_POSTEFFECT, |
1403 | parse_value: filter_value_parse, |
1404 | initial_value: gtk_css_filter_value_new_none ()); |
1405 | |
1406 | gtk_css_style_property_register (name: "caret-color" , |
1407 | expected_id: GTK_CSS_PROPERTY_CARET_COLOR, |
1408 | flags: GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED, |
1409 | affects: GTK_CSS_AFFECTS_CONTENT, |
1410 | parse_value: color_parse, |
1411 | initial_value: _gtk_css_color_value_new_current_color ()); |
1412 | gtk_css_style_property_register (name: "-gtk-secondary-caret-color" , |
1413 | expected_id: GTK_CSS_PROPERTY_SECONDARY_CARET_COLOR, |
1414 | flags: GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED, |
1415 | affects: GTK_CSS_AFFECTS_CONTENT, |
1416 | parse_value: color_parse, |
1417 | initial_value: _gtk_css_color_value_new_current_color ()); |
1418 | gtk_css_style_property_register (name: "font-feature-settings" , |
1419 | expected_id: GTK_CSS_PROPERTY_FONT_FEATURE_SETTINGS, |
1420 | flags: GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED, |
1421 | affects: GTK_CSS_AFFECTS_TEXT_ATTRS | GTK_CSS_AFFECTS_TEXT_SIZE, |
1422 | parse_value: parse_font_feature_settings, |
1423 | initial_value: gtk_css_font_features_value_new_default ()); |
1424 | gtk_css_style_property_register (name: "font-variation-settings" , |
1425 | expected_id: GTK_CSS_PROPERTY_FONT_VARIATION_SETTINGS, |
1426 | flags: GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED, |
1427 | affects: GTK_CSS_AFFECTS_TEXT_ATTRS | GTK_CSS_AFFECTS_TEXT_SIZE, |
1428 | parse_value: parse_font_variation_settings, |
1429 | initial_value: gtk_css_font_variations_value_new_default ()); |
1430 | gtk_css_style_property_register (name: "line-height" , |
1431 | expected_id: GTK_CSS_PROPERTY_LINE_HEIGHT, |
1432 | flags: GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED, |
1433 | affects: GTK_CSS_AFFECTS_TEXT_ATTRS | GTK_CSS_AFFECTS_TEXT_SIZE, |
1434 | parse_value: parse_line_height, |
1435 | _gtk_css_value_ref (value: gtk_css_line_height_value_get_default ())); |
1436 | } |
1437 | |