Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
3584 sourcerer 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 
6
 */
7
 
8
#include "select/dispatch.h"
9
#include "select/properties/properties.h"
10
 
11
/**
12
 * Dispatch table for properties, indexed by opcode
13
 */
14
#define PROPERTY_FUNCS(pname)				\
15
	css__cascade_##pname,				\
16
	css__set_##pname##_from_hint,			\
17
	css__initial_##pname,				\
18
	css__compose_##pname
19
 
20
struct prop_table prop_dispatch[CSS_N_PROPERTIES] = {
21
	{
22
		PROPERTY_FUNCS(azimuth),
23
		1,
24
		GROUP_AURAL
25
	},
26
	{
27
		PROPERTY_FUNCS(background_attachment),
28
		0,
29
		GROUP_NORMAL
30
	},
31
	{
32
		PROPERTY_FUNCS(background_color),
33
		0,
34
		GROUP_NORMAL
35
	},
36
	{
37
		PROPERTY_FUNCS(background_image),
38
		0,
39
		GROUP_NORMAL
40
	},
41
	{
42
		PROPERTY_FUNCS(background_position),
43
		0,
44
		GROUP_NORMAL
45
	},
46
	{
47
		PROPERTY_FUNCS(background_repeat),
48
		0,
49
		GROUP_NORMAL
50
	},
51
	{
52
		PROPERTY_FUNCS(border_collapse),
53
		1,
54
		GROUP_NORMAL
55
	},
56
	{
57
		PROPERTY_FUNCS(border_spacing),
58
		1,
59
		GROUP_UNCOMMON
60
	},
61
	{
62
		PROPERTY_FUNCS(border_top_color),
63
		0,
64
		GROUP_NORMAL
65
	},
66
	{
67
		PROPERTY_FUNCS(border_right_color),
68
		0,
69
		GROUP_NORMAL
70
	},
71
	{
72
		PROPERTY_FUNCS(border_bottom_color),
73
		0,
74
		GROUP_NORMAL
75
	},
76
	{
77
		PROPERTY_FUNCS(border_left_color),
78
		0,
79
		GROUP_NORMAL
80
	},
81
	{
82
		PROPERTY_FUNCS(border_top_style),
83
		0,
84
		GROUP_NORMAL
85
	},
86
	{
87
		PROPERTY_FUNCS(border_right_style),
88
		0,
89
		GROUP_NORMAL
90
	},
91
	{
92
		PROPERTY_FUNCS(border_bottom_style),
93
		0,
94
		GROUP_NORMAL
95
	},
96
	{
97
		PROPERTY_FUNCS(border_left_style),
98
		0,
99
		GROUP_NORMAL
100
	},
101
	{
102
		PROPERTY_FUNCS(border_top_width),
103
		0,
104
		GROUP_NORMAL
105
	},
106
	{
107
		PROPERTY_FUNCS(border_right_width),
108
		0,
109
		GROUP_NORMAL
110
	},
111
	{
112
		PROPERTY_FUNCS(border_bottom_width),
113
		0,
114
		GROUP_NORMAL
115
	},
116
	{
117
		PROPERTY_FUNCS(border_left_width),
118
		0,
119
		GROUP_NORMAL
120
	},
121
	{
122
		PROPERTY_FUNCS(bottom),
123
		0,
124
		GROUP_NORMAL
125
	},
126
	{
127
		PROPERTY_FUNCS(caption_side),
128
		1,
129
		GROUP_NORMAL
130
	},
131
	{
132
		PROPERTY_FUNCS(clear),
133
		0,
134
		GROUP_NORMAL
135
	},
136
	{
137
		PROPERTY_FUNCS(clip),
138
		0,
139
		GROUP_UNCOMMON
140
	},
141
	{
142
		PROPERTY_FUNCS(color),
143
		1,
144
		GROUP_NORMAL
145
	},
146
	{
147
		PROPERTY_FUNCS(content),
148
		0,
149
		GROUP_UNCOMMON
150
	},
151
	{
152
		PROPERTY_FUNCS(counter_increment),
153
		0,
154
		GROUP_UNCOMMON
155
	},
156
	{
157
		PROPERTY_FUNCS(counter_reset),
158
		0,
159
		GROUP_UNCOMMON
160
	},
161
	{
162
		PROPERTY_FUNCS(cue_after),
163
		0,
164
		GROUP_AURAL
165
	},
166
	{
167
		PROPERTY_FUNCS(cue_before),
168
		0,
169
		GROUP_AURAL
170
	},
171
	{
172
		PROPERTY_FUNCS(cursor),
173
		1,
174
		GROUP_UNCOMMON
175
	},
176
	{
177
		PROPERTY_FUNCS(direction),
178
		1,
179
		GROUP_NORMAL
180
	},
181
	{
182
		PROPERTY_FUNCS(display),
183
		0,
184
		GROUP_NORMAL
185
	},
186
	{
187
		PROPERTY_FUNCS(elevation),
188
		1,
189
		GROUP_AURAL
190
	},
191
	{
192
		PROPERTY_FUNCS(empty_cells),
193
		1,
194
		GROUP_NORMAL
195
	},
196
	{
197
		PROPERTY_FUNCS(float),
198
		0,
199
		GROUP_NORMAL
200
	},
201
	{
202
		PROPERTY_FUNCS(font_family),
203
		1,
204
		GROUP_NORMAL
205
	},
206
	{
207
		PROPERTY_FUNCS(font_size),
208
		1,
209
		GROUP_NORMAL
210
	},
211
	{
212
		PROPERTY_FUNCS(font_style),
213
		1,
214
		GROUP_NORMAL
215
	},
216
	{
217
		PROPERTY_FUNCS(font_variant),
218
		1,
219
		GROUP_NORMAL
220
	},
221
	{
222
		PROPERTY_FUNCS(font_weight),
223
		1,
224
		GROUP_NORMAL
225
	},
226
	{
227
		PROPERTY_FUNCS(height),
228
		0,
229
		GROUP_NORMAL
230
	},
231
	{
232
		PROPERTY_FUNCS(left),
233
		0,
234
		GROUP_NORMAL
235
	},
236
	{
237
		PROPERTY_FUNCS(letter_spacing),
238
		1,
239
		GROUP_UNCOMMON
240
	},
241
	{
242
		PROPERTY_FUNCS(line_height),
243
		1,
244
		GROUP_NORMAL
245
	},
246
	{
247
		PROPERTY_FUNCS(list_style_image),
248
		1,
249
		GROUP_NORMAL
250
	},
251
	{
252
		PROPERTY_FUNCS(list_style_position),
253
		1,
254
		GROUP_NORMAL
255
	},
256
	{
257
		PROPERTY_FUNCS(list_style_type),
258
		1,
259
		GROUP_NORMAL
260
	},
261
	{
262
		PROPERTY_FUNCS(margin_top),
263
		0,
264
		GROUP_NORMAL
265
	},
266
	{
267
		PROPERTY_FUNCS(margin_right),
268
		0,
269
		GROUP_NORMAL
270
	},
271
	{
272
		PROPERTY_FUNCS(margin_bottom),
273
		0,
274
		GROUP_NORMAL
275
	},
276
	{
277
		PROPERTY_FUNCS(margin_left),
278
		0,
279
		GROUP_NORMAL
280
	},
281
	{
282
		PROPERTY_FUNCS(max_height),
283
		0,
284
		GROUP_NORMAL
285
	},
286
	{
287
		PROPERTY_FUNCS(max_width),
288
		0,
289
		GROUP_NORMAL
290
	},
291
	{
292
		PROPERTY_FUNCS(min_height),
293
		0,
294
		GROUP_NORMAL
295
	},
296
	{
297
		PROPERTY_FUNCS(min_width),
298
		0,
299
		GROUP_NORMAL
300
	},
301
	{
302
		PROPERTY_FUNCS(orphans),
303
		1,
304
		GROUP_PAGE
305
	},
306
	{
307
		PROPERTY_FUNCS(outline_color),
308
		0,
309
		GROUP_UNCOMMON
310
	},
311
	{
312
		PROPERTY_FUNCS(outline_style),
313
		0,
314
		GROUP_NORMAL
315
	},
316
	{
317
		PROPERTY_FUNCS(outline_width),
318
		0,
319
		GROUP_UNCOMMON
320
	},
321
	{
322
		PROPERTY_FUNCS(overflow),
323
		0,
324
		GROUP_NORMAL
325
	},
326
	{
327
		PROPERTY_FUNCS(padding_top),
328
		0,
329
		GROUP_NORMAL
330
	},
331
	{
332
		PROPERTY_FUNCS(padding_right),
333
		0,
334
		GROUP_NORMAL
335
	},
336
	{
337
		PROPERTY_FUNCS(padding_bottom),
338
		0,
339
		GROUP_NORMAL
340
	},
341
	{
342
		PROPERTY_FUNCS(padding_left),
343
		0,
344
		GROUP_NORMAL
345
	},
346
	{
347
		PROPERTY_FUNCS(page_break_after),
348
		0,
349
		GROUP_PAGE
350
	},
351
	{
352
		PROPERTY_FUNCS(page_break_before),
353
		0,
354
		GROUP_PAGE
355
	},
356
	{
357
		PROPERTY_FUNCS(page_break_inside),
358
		1,
359
		GROUP_PAGE
360
	},
361
	{
362
		PROPERTY_FUNCS(pause_after),
363
		0,
364
		GROUP_AURAL
365
	},
366
	{
367
		PROPERTY_FUNCS(pause_before),
368
		0,
369
		GROUP_AURAL
370
	},
371
	{
372
		PROPERTY_FUNCS(pitch_range),
373
		1,
374
		GROUP_AURAL
375
	},
376
	{
377
		PROPERTY_FUNCS(pitch),
378
		1,
379
		GROUP_AURAL
380
	},
381
	{
382
		PROPERTY_FUNCS(play_during),
383
		0,
384
		GROUP_AURAL
385
	},
386
	{
387
		PROPERTY_FUNCS(position),
388
		0,
389
		GROUP_NORMAL
390
	},
391
	{
392
		PROPERTY_FUNCS(quotes),
393
		1,
394
		GROUP_NORMAL
395
	},
396
	{
397
		PROPERTY_FUNCS(richness),
398
		1,
399
		GROUP_AURAL
400
	},
401
	{
402
		PROPERTY_FUNCS(right),
403
		0,
404
		GROUP_NORMAL
405
	},
406
	{
407
		PROPERTY_FUNCS(speak_header),
408
		1,
409
		GROUP_AURAL
410
	},
411
	{
412
		PROPERTY_FUNCS(speak_numeral),
413
		1,
414
		GROUP_AURAL
415
	},
416
	{
417
		PROPERTY_FUNCS(speak_punctuation),
418
		1,
419
		GROUP_AURAL
420
	},
421
	{
422
		PROPERTY_FUNCS(speak),
423
		1,
424
		GROUP_AURAL
425
	},
426
	{
427
		PROPERTY_FUNCS(speech_rate),
428
		1,
429
		GROUP_AURAL
430
	},
431
	{
432
		PROPERTY_FUNCS(stress),
433
		1,
434
		GROUP_AURAL
435
	},
436
	{
437
		PROPERTY_FUNCS(table_layout),
438
		0,
439
		GROUP_NORMAL
440
	},
441
	{
442
		PROPERTY_FUNCS(text_align),
443
		1,
444
		GROUP_NORMAL
445
	},
446
	{
447
		PROPERTY_FUNCS(text_decoration),
448
		0,
449
		GROUP_NORMAL
450
	},
451
	{
452
		PROPERTY_FUNCS(text_indent),
453
		1,
454
		GROUP_NORMAL
455
	},
456
	{
457
		PROPERTY_FUNCS(text_transform),
458
		1,
459
		GROUP_NORMAL
460
	},
461
	{
462
		PROPERTY_FUNCS(top),
463
		0,
464
		GROUP_NORMAL
465
	},
466
	{
467
		PROPERTY_FUNCS(unicode_bidi),
468
		0,
469
		GROUP_NORMAL
470
	},
471
	{
472
		PROPERTY_FUNCS(vertical_align),
473
		0,
474
		GROUP_NORMAL
475
	},
476
	{
477
		PROPERTY_FUNCS(visibility),
478
		1,
479
		GROUP_NORMAL
480
	},
481
	{
482
		PROPERTY_FUNCS(voice_family),
483
		1,
484
		GROUP_AURAL
485
	},
486
	{
487
		PROPERTY_FUNCS(volume),
488
		1,
489
		GROUP_AURAL
490
	},
491
	{
492
		PROPERTY_FUNCS(white_space),
493
		1,
494
		GROUP_NORMAL
495
	},
496
	{
497
		PROPERTY_FUNCS(widows),
498
		1,
499
		GROUP_PAGE
500
	},
501
	{
502
		PROPERTY_FUNCS(width),
503
		0,
504
		GROUP_NORMAL
505
	},
506
	{
507
		PROPERTY_FUNCS(word_spacing),
508
		1,
509
		GROUP_UNCOMMON
510
	},
511
	{
512
		PROPERTY_FUNCS(z_index),
513
		0,
514
		GROUP_NORMAL
515
	},
516
	{
517
		PROPERTY_FUNCS(opacity),
518
		0,
519
		GROUP_NORMAL
520
	},
521
	{
522
		PROPERTY_FUNCS(break_after),
523
		0,
524
		GROUP_NORMAL
525
	},
526
	{
527
		PROPERTY_FUNCS(break_before),
528
		0,
529
		GROUP_NORMAL
530
	},
531
	{
532
		PROPERTY_FUNCS(break_inside),
533
		0,
534
		GROUP_NORMAL
535
	},
536
	{
537
		PROPERTY_FUNCS(column_count),
538
		0,
539
		GROUP_NORMAL
540
	},
541
	{
542
		PROPERTY_FUNCS(column_fill),
543
		0,
544
		GROUP_NORMAL
545
	},
546
	{
547
		PROPERTY_FUNCS(column_gap),
548
		0,
549
		GROUP_NORMAL
550
	},
551
	{
552
		PROPERTY_FUNCS(column_rule_color),
553
		0,
554
		GROUP_NORMAL
555
	},
556
	{
557
		PROPERTY_FUNCS(column_rule_style),
558
		0,
559
		GROUP_NORMAL
560
	},
561
	{
562
		PROPERTY_FUNCS(column_rule_width),
563
		0,
564
		GROUP_NORMAL
565
	},
566
	{
567
		PROPERTY_FUNCS(column_span),
568
		0,
569
		GROUP_NORMAL
570
	},
571
	{
572
		PROPERTY_FUNCS(column_width),
573
		0,
574
		GROUP_NORMAL
575
	}
576
};