Dillo v3.1.1-11-g8f0909b7
Loading...
Searching...
No Matches
css.hh
Go to the documentation of this file.
1/*
2 * File: css.hh
3 *
4 * Copyright (C) 2008-2014 Johannes Hofmann <Johannes.Hofmann@gmx.de>
5 * Copyright (C) 2024 Rodrigo Arias Mallo <rodarima@gmail.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 3 of the License, or
10 * (at your option) any later version.
11 */
12
13#ifndef __CSS_HH__
14#define __CSS_HH__
15
16#include "dw/core.hh"
17#include "doctree.hh"
18#include "html.hh"
19
20/* Origin and weight. Used only internally.*/
29
35
68
91typedef int CssLength;
92
105
107 static const int CSS_LENGTH_FRAC_MAX = (1 << (32 - 15 - 1)) - 1;
108 static const int CSS_LENGTH_INT_MAX = (1 << (32 - 4)) - 1;
109 int iv;
110
111 switch (t) {
113 iv = lout::misc::roundInt(v);
114 if (iv > CSS_LENGTH_INT_MAX)
115 iv = CSS_LENGTH_INT_MAX;
116 else if (iv < -CSS_LENGTH_INT_MAX)
117 iv = -CSS_LENGTH_INT_MAX;
118 return iv << 3 | t;
125 if (v > CSS_LENGTH_FRAC_MAX)
126 v = CSS_LENGTH_FRAC_MAX;
127 else if (v < -CSS_LENGTH_FRAC_MAX)
128 v = -CSS_LENGTH_FRAC_MAX;
129 return ((int) (v * (1 << 15)) & ~7 ) | t;
131 return t;
132 default:
133 assert(false);
135 }
136}
137
139 return (CssLengthType) (l & 7);
140}
141
142inline float CSS_LENGTH_VALUE (CssLength l) {
143 switch (CSS_LENGTH_TYPE(l)) {
145 return (float) (l >> 3);
152 return ((float)(l & ~7)) / (1 << 15);
154 return 0.0;
155 default:
156 assert(false);
157 return 0.0;
158 }
159}
160
161typedef enum {
162 CSS_PROPERTY_END = -1, // used as terminator in CssShorthandInfo
252
253typedef struct {
254 int32_t posX;
255 int32_t posY;
257
263
269
277
289
293
297
298
303 public:
304
305 short name;
306 short type;
308
309 inline void free () {
310 switch (type) {
311 case CSS_TYPE_STRING:
312 case CSS_TYPE_SYMBOL:
313 case CSS_TYPE_URI:
315 break;
318 default:
319 break;
320 }
321 }
322 void print ();
323};
324
328class CssPropertyList : public lout::misc::SimpleVector <CssProperty> {
331 bool safe;
332
333 public:
334 inline CssPropertyList(bool ownerOfStrings = false) :
335 lout::misc::SimpleVector <CssProperty> (1) {
336 refCount = 0;
337 safe = true;
338 this->ownerOfStrings = ownerOfStrings;
339 };
340 CssPropertyList(const CssPropertyList &p, bool deep = false);
342
343 void set (CssPropertyName name, CssValueType type,
344 CssPropertyValue value);
345 void apply (CssPropertyList *props);
346 bool isSafe () { return safe; };
347 void print ();
348 inline void ref () { refCount++; }
349 inline void unref () { if (--refCount == 0) delete this; }
350};
351
353 private:
355 char *pseudo, *id;
356 lout::misc::SimpleVector <char *> klass;
357
358 public:
359 enum {
362 };
363
370
373 inline void setElement (int e) { element = e; };
374 void setSelect (SelectType t, const char *v);
375 inline lout::misc::SimpleVector <char *> *getClass () { return &klass; };
376 inline const char *getPseudoClass () { return pseudo; };
377 inline const char *getId () { return id; };
378 inline int getElement () { return element; };
379 bool match (const DoctreeNode *node);
380 int specificity ();
381 void print ();
382};
383
385 public:
386 MatchCache() : lout::misc::SimpleVector <int> (0) {};
387};
388
395 public:
402
403 private:
408
410 lout::misc::SimpleVector <struct CombinatorAndSelector> selectorList;
411
412 bool match (Doctree *dt, const DoctreeNode *node, int i, Combinator comb,
413 MatchCache *matchCache);
414
415 public:
416 CssSelector ();
417 ~CssSelector ();
420 return selectorList.getRef (selectorList.size () - 1)->selector;
421 }
422 inline int size () { return selectorList.size (); };
423 inline bool match (Doctree *dt, const DoctreeNode *node,
424 MatchCache *matchCache) {
425 return match (dt, node, selectorList.size () - 1, COMB_NONE,
426 matchCache);
427 }
428 inline void setMatchCacheOffset (int mo) {
429 if (matchCacheOffset == -1)
430 matchCacheOffset = mo;
431 }
432 inline int getRequiredMatchCache () {
433 return matchCacheOffset + size ();
434 }
435 int specificity ();
436 bool checksPseudoClass ();
437 void print ();
438 inline void ref () { refCount++; }
439 inline void unref () { if (--refCount == 0) delete this; }
440};
441
447class CssRule {
448 private:
450 int spec, pos;
451
452 public:
454
456 ~CssRule ();
457
458 void apply (CssPropertyList *props, Doctree *docTree,
459 const DoctreeNode *node, MatchCache *matchCache) const;
460 inline bool isSafe () {
461 return !selector->checksPseudoClass () || props->isSafe ();
462 };
463 inline int specificity () { return spec; };
464 inline int position () { return pos; };
465 void print ();
466};
467
474 private:
475 class RuleList : public lout::misc::SimpleVector <CssRule*>,
476 public lout::object::Object {
477 public:
478 RuleList () : lout::misc::SimpleVector <CssRule*> (1) {};
480 for (int i = 0; i < size (); i++)
481 delete get (i);
482 };
483
484 void insert (CssRule *rule);
485 inline bool equals (lout::object::Object *other) {
486 return this == other;
487 };
488 inline int hashValue () { return (intptr_t) this; };
489 };
490
492 <lout::object::ConstString, RuleList > {
493 public:
494 RuleMap () : lout::container::typed::HashTable
495 <lout::object::ConstString, RuleList > (true, true, 256) {};
496 };
497
498 static const int ntags = HTML_NTAGS;
499
503
504 public:
506 void addRule (CssRule *rule);
507 void apply (CssPropertyList *props, Doctree *docTree,
508 const DoctreeNode *node, MatchCache *matchCache) const;
510};
511
516 private:
520 int pos;
521
522 public:
523 CssContext ();
524
525 void addRule (CssSelector *sel, CssPropertyList *props,
526 CssPrimaryOrder order);
527 void apply (CssPropertyList *props,
528 Doctree *docTree, DoctreeNode *node,
529 CssPropertyList *tagStyle, CssPropertyList *tagStyleImportant,
530 CssPropertyList *nonCssHints);
531};
532
533#endif
A set of CssStyleSheets.
Definition css.hh:515
int pos
Definition css.hh:520
MatchCache matchCache
Definition css.hh:519
void apply(CssPropertyList *props, Doctree *docTree, DoctreeNode *node, CssPropertyList *tagStyle, CssPropertyList *tagStyleImportant, CssPropertyList *nonCssHints)
Apply a CSS context to a property list.
Definition css.cc:503
CssContext()
Definition css.cc:489
CssStyleSheet sheet[CSS_PRIMARY_USER_IMPORTANT+1]
Definition css.hh:518
void addRule(CssSelector *sel, CssPropertyList *props, CssPrimaryOrder order)
Definition css.cc:529
static CssStyleSheet userAgentSheet
Definition css.hh:517
A list of CssProperty objects.
Definition css.hh:328
bool isSafe()
Definition css.hh:346
~CssPropertyList()
Definition css.cc:49
void print()
Definition css.cc:102
void set(CssPropertyName name, CssValueType type, CssPropertyValue value)
Set property to a given name and type.
Definition css.cc:58
void unref()
Definition css.hh:349
CssPropertyList(bool ownerOfStrings=false)
Definition css.hh:334
void apply(CssPropertyList *props)
Merge properties into argument property list.
Definition css.cc:87
void ref()
Definition css.hh:348
bool ownerOfStrings
Definition css.hh:330
This class holds a CSS property and value pair.
Definition css.hh:302
short type
Definition css.hh:306
void free()
Definition css.hh:309
void print()
Definition css.cc:20
short name
Definition css.hh:305
CssPropertyValue value
Definition css.hh:307
A CssSelector CssPropertyList pair.
Definition css.hh:447
~CssRule()
Definition css.cc:331
CssSelector * selector
Definition css.hh:453
void apply(CssPropertyList *props, Doctree *docTree, const DoctreeNode *node, MatchCache *matchCache) const
Definition css.cc:336
void print()
Definition css.cc:342
int pos
Definition css.hh:450
CssPropertyList * props
Definition css.hh:449
int spec
Definition css.hh:450
int position()
Definition css.hh:464
int specificity()
Definition css.hh:463
bool isSafe()
Definition css.hh:460
CSS selector class.
Definition css.hh:394
CssSimpleSelector * top()
Definition css.hh:419
bool match(Doctree *dt, const DoctreeNode *node, int i, Combinator comb, MatchCache *matchCache)
Return whether selector matches at a given node in the document tree.
Definition css.cc:127
void print()
Definition css.cc:206
CssSelector()
Definition css.cc:107
void addSimpleSelector(Combinator c)
Definition css.cc:173
int refCount
Definition css.hh:409
bool match(Doctree *dt, const DoctreeNode *node, MatchCache *matchCache)
Definition css.hh:423
lout::misc::SimpleVector< struct CombinatorAndSelector > selectorList
Definition css.hh:410
@ COMB_DESCENDANT
Definition css.hh:398
@ COMB_CHILD
Definition css.hh:399
@ COMB_ADJACENT_SIBLING
Definition css.hh:400
@ COMB_NONE
Definition css.hh:397
bool checksPseudoClass()
Definition css.cc:184
int getRequiredMatchCache()
Definition css.hh:432
~CssSelector()
Definition css.cc:119
void setMatchCacheOffset(int mo)
Definition css.hh:428
int specificity()
Return the specificity of the selector.
Definition css.cc:197
int size()
Definition css.hh:422
int matchCacheOffset
Definition css.hh:409
void ref()
Definition css.hh:438
void unref()
Definition css.hh:439
void setElement(int e)
Definition css.hh:373
int getElement()
Definition css.hh:378
char * pseudo
Definition css.hh:355
const char * getPseudoClass()
Definition css.hh:376
const char * getId()
Definition css.hh:377
bool match(const DoctreeNode *node)
Return whether simple selector matches at a given node of the document tree.
Definition css.cc:267
int specificity()
Return the specificity of the simple selector.
Definition css.cc:298
void print()
Definition css.cc:312
@ SELECT_PSEUDO_CLASS
Definition css.hh:367
void setSelect(SelectType t, const char *v)
Definition css.cc:244
lout::misc::SimpleVector< char * > * getClass()
Definition css.hh:375
lout::misc::SimpleVector< char * > klass
Definition css.hh:356
bool equals(lout::object::Object *other)
Returns, whether two objects are equal.
Definition css.hh:485
int hashValue()
Return a hash value for the object.
Definition css.hh:488
void insert(CssRule *rule)
Definition css.cc:354
A list of CssRules.
Definition css.hh:473
void addRule(CssRule *rule)
Insert a rule into CssStyleSheet.
Definition css.cc:372
RuleMap idTable
Definition css.hh:501
RuleMap classTable
Definition css.hh:501
RuleList anyTable
Definition css.hh:500
CssStyleSheet()
Definition css.hh:505
RuleList elementTable[ntags]
Definition css.hh:500
int requiredMatchCache
Definition css.hh:502
static const int ntags
Definition css.hh:498
int getRequiredMatchCache()
Definition css.hh:509
void apply(CssPropertyList *props, Doctree *docTree, const DoctreeNode *node, MatchCache *matchCache) const
Apply a stylesheet to a property list.
Definition css.cc:417
HTML document tree interface.
Definition doctree.hh:48
MatchCache()
Definition css.hh:386
Typed version of container::untyped::HashTable.
Definition container.hh:536
HashTable(bool ownerOfKeys, bool ownerOfValues, int tableSize=251)
Definition container.hh:538
Simple (simpler than container::untyped::Vector and container::typed::Vector) template based vector.
Definition misc.hh:94
CssRule * get(int i) const
Return the one element, explicitly.
Definition misc.hh:201
int size() const
Return the number of elements put into this vector.
Definition misc.hh:141
This is the base class for many other classes, which defines very common virtual methods.
Definition object.hh:25
CssWordSpacingExtensions
Definition css.hh:294
@ CSS_WORD_SPACING_NORMAL
Definition css.hh:295
CssFontWeightExtensions
Definition css.hh:270
@ CSS_FONT_WEIGHT_BOLDER
Definition css.hh:272
@ CSS_FONT_WEIGHT_LIGHT
Definition css.hh:273
@ CSS_FONT_WEIGHT_LIGHTER
Definition css.hh:274
@ CSS_FONT_WEIGHT_NORMAL
Definition css.hh:275
@ CSS_FONT_WEIGHT_BOLD
Definition css.hh:271
CssFontSizeExtensions
Definition css.hh:278
@ CSS_FONT_SIZE_MEDIUM
Definition css.hh:281
@ CSS_FONT_SIZE_XX_SMALL
Definition css.hh:285
@ CSS_FONT_SIZE_SMALLER
Definition css.hh:283
@ CSS_FONT_SIZE_XX_LARGE
Definition css.hh:284
@ CSS_FONT_SIZE_LARGER
Definition css.hh:280
@ CSS_FONT_SIZE_X_SMALL
Definition css.hh:287
@ CSS_FONT_SIZE_X_LARGE
Definition css.hh:286
@ CSS_FONT_SIZE_LARGE
Definition css.hh:279
@ CSS_FONT_SIZE_SMALL
Definition css.hh:282
CssLetterSpacingExtensions
Definition css.hh:290
@ CSS_LETTER_SPACING_NORMAL
Definition css.hh:291
CssBorderWidthExtensions
Definition css.hh:264
@ CSS_BORDER_WIDTH_THIN
Definition css.hh:265
@ CSS_BORDER_WIDTH_MEDIUM
Definition css.hh:266
@ CSS_BORDER_WIDTH_THICK
Definition css.hh:267
CssPropertyName
Definition css.hh:161
@ CSS_PROPERTY_MIN_WIDTH
Definition css.hh:218
@ CSS_PROPERTY_PADDING_TOP
Definition css.hh:226
@ CSS_PROPERTY_COUNTER_RESET
Definition css.hh:189
@ CSS_PROPERTY_LIST_STYLE_TYPE
Definition css.hh:208
@ CSS_PROPERTY_FONT_STRETCH
Definition css.hh:198
@ CSS_PROPERTY_BOTTOM
Definition css.hh:182
@ CSS_PROPERTY_MARGIN_BOTTOM
Definition css.hh:209
@ CSS_PROPERTY_VISIBILITY
Definition css.hh:238
@ CSS_PROPERTY_LETTER_SPACING
Definition css.hh:204
@ CSS_PROPERTY_BORDER_RIGHT_STYLE
Definition css.hh:176
@ CSS_PROPERTY_BORDER_BOTTOM_COLOR
Definition css.hh:168
@ CSS_PROPERTY_MARGIN_RIGHT
Definition css.hh:211
@ CSS_PROPERTY_RIGHT
Definition css.hh:229
@ CSS_PROPERTY_BORDER_TOP_COLOR
Definition css.hh:179
@ CSS_PROPERTY_LEFT
Definition css.hh:203
@ CSS_PROPERTY_BORDER_LEFT_COLOR
Definition css.hh:172
@ CSS_PROPERTY_LIST_STYLE_POSITION
Definition css.hh:207
@ PROPERTY_X_LANG
Definition css.hh:247
@ CSS_PROPERTY_END
Definition css.hh:162
@ CSS_PROPERTY_MARKS
Definition css.hh:214
@ CSS_PROPERTY_BORDER_RIGHT_WIDTH
Definition css.hh:177
@ CSS_PROPERTY_LAST
Definition css.hh:250
@ CSS_PROPERTY_BACKGROUND_REPEAT
Definition css.hh:167
@ CSS_PROPERTY_FONT_VARIANT
Definition css.hh:200
@ CSS_PROPERTY_BORDER_LEFT_WIDTH
Definition css.hh:174
@ CSS_PROPERTY_PADDING_BOTTOM
Definition css.hh:223
@ CSS_PROPERTY_Z_INDEX
Definition css.hh:242
@ CSS_PROPERTY_BACKGROUND_ATTACHMENT
Definition css.hh:163
@ CSS_PROPERTY_UNICODE_BIDI
Definition css.hh:236
@ PROPERTY_X_LINK
Definition css.hh:246
@ CSS_PROPERTY_MIN_HEIGHT
Definition css.hh:217
@ CSS_PROPERTY_OUTLINE_STYLE
Definition css.hh:220
@ CSS_PROPERTY_OVERFLOW
Definition css.hh:222
@ CSS_PROPERTY_MARKER_OFFSET
Definition css.hh:213
@ PROPERTY_X_TOOLTIP
Definition css.hh:249
@ CSS_PROPERTY_POSITION
Definition css.hh:227
@ CSS_PROPERTY_OUTLINE_WIDTH
Definition css.hh:221
@ CSS_PROPERTY_TOP
Definition css.hh:235
@ CSS_PROPERTY_LIST_STYLE_IMAGE
Definition css.hh:206
@ CSS_PROPERTY_TEXT_SHADOW
Definition css.hh:233
@ CSS_PROPERTY_MAX_WIDTH
Definition css.hh:216
@ CSS_PROPERTY_FLOAT
Definition css.hh:194
@ CSS_PROPERTY_MAX_HEIGHT
Definition css.hh:215
@ CSS_PROPERTY_COUNTER_INCREMENT
Definition css.hh:188
@ CSS_PROPERTY_MARGIN_LEFT
Definition css.hh:210
@ CSS_PROPERTY_CAPTION_SIDE
Definition css.hh:183
@ CSS_PROPERTY_HEIGHT
Definition css.hh:202
@ CSS_PROPERTY_WIDTH
Definition css.hh:240
@ CSS_PROPERTY_BORDER_COLLAPSE
Definition css.hh:171
@ CSS_PROPERTY_BORDER_RIGHT_COLOR
Definition css.hh:175
@ PROPERTY_X_IMG
Definition css.hh:248
@ CSS_PROPERTY_OUTLINE_COLOR
Definition css.hh:219
@ CSS_PROPERTY_X_COLSPAN
Definition css.hh:244
@ CSS_PROPERTY_BORDER_TOP_WIDTH
Definition css.hh:181
@ CSS_PROPERTY_MARGIN_TOP
Definition css.hh:212
@ CSS_PROPERTY_PADDING_RIGHT
Definition css.hh:225
@ CSS_PROPERTY_FONT_SIZE_ADJUST
Definition css.hh:197
@ CSS_PROPERTY_TEXT_TRANSFORM
Definition css.hh:234
@ CSS_PROPERTY_PADDING_LEFT
Definition css.hh:224
@ CSS_PROPERTY_VERTICAL_ALIGN
Definition css.hh:237
@ CSS_PROPERTY_BORDER_SPACING
Definition css.hh:178
@ CSS_PROPERTY_BORDER_LEFT_STYLE
Definition css.hh:173
@ CSS_PROPERTY_TEXT_ALIGN
Definition css.hh:230
@ CSS_PROPERTY_X_LINK
Definition css.hh:243
@ CSS_PROPERTY_BACKGROUND_IMAGE
Definition css.hh:165
@ CSS_PROPERTY_BORDER_TOP_STYLE
Definition css.hh:180
@ CSS_PROPERTY_FONT_STYLE
Definition css.hh:199
@ CSS_PROPERTY_QUOTES
Definition css.hh:228
@ CSS_PROPERTY_TEXT_INDENT
Definition css.hh:232
@ CSS_PROPERTY_DISPLAY
Definition css.hh:192
@ CSS_PROPERTY_BACKGROUND_COLOR
Definition css.hh:164
@ CSS_PROPERTY_WHITE_SPACE
Definition css.hh:239
@ CSS_PROPERTY_X_ROWSPAN
Definition css.hh:245
@ CSS_PROPERTY_EMPTY_CELLS
Definition css.hh:193
@ CSS_PROPERTY_COLOR
Definition css.hh:186
@ CSS_PROPERTY_LINE_HEIGHT
Definition css.hh:205
@ CSS_PROPERTY_WORD_SPACING
Definition css.hh:241
@ CSS_PROPERTY_FONT_SIZE
Definition css.hh:196
@ CSS_PROPERTY_BORDER_BOTTOM_STYLE
Definition css.hh:169
@ CSS_PROPERTY_CLIP
Definition css.hh:185
@ CSS_PROPERTY_CURSOR
Definition css.hh:190
@ CSS_PROPERTY_TEXT_DECORATION
Definition css.hh:231
@ CSS_PROPERTY_BORDER_BOTTOM_WIDTH
Definition css.hh:170
@ CSS_PROPERTY_BACKGROUND_POSITION
Definition css.hh:166
@ CSS_PROPERTY_CONTENT
Definition css.hh:187
@ CSS_PROPERTY_CLEAR
Definition css.hh:184
@ CSS_PROPERTY_FONT_FAMILY
Definition css.hh:195
@ CSS_PROPERTY_DIRECTION
Definition css.hh:191
@ CSS_PROPERTY_FONT_WEIGHT
Definition css.hh:201
CssValueType
Definition css.hh:36
@ CSS_TYPE_UNUSED
Not yet used.
Definition css.hh:65
@ CSS_TYPE_ENUM
Value is i, if represented by enum_symbols[i].
Definition css.hh:39
@ CSS_TYPE_INTEGER
This type is only used internally, for x-* properties.
Definition css.hh:37
@ CSS_TYPE_LENGTH_PERCENTAGE_NUMBER
Definition css.hh:52
@ CSS_TYPE_SIGNED_LENGTH
As CSS_TYPE_LENGTH but may be negative.
Definition css.hh:51
@ CSS_TYPE_MULTI_ENUM
For all enum_symbols[i], 1 << i are combined.
Definition css.hh:41
@ CSS_TYPE_URI
<uri>
Definition css.hh:63
@ CSS_TYPE_LENGTH_PERCENTAGE
<length> or <percentage>.
Definition css.hh:43
@ CSS_TYPE_LENGTH
<length>, represented as CssLength.
Definition css.hh:45
@ CSS_TYPE_STRING
<string>
Definition css.hh:58
@ CSS_TYPE_SYMBOL
Symbols, which are directly copied (as opposed to CSS_TYPE_ENUM and CSS_TYPE_MULTI_ENUM).
Definition css.hh:59
@ CSS_TYPE_FONT_WEIGHT
this very special and only used by 'font-weight'
Definition css.hh:56
@ CSS_TYPE_COLOR
Represented as integer.
Definition css.hh:55
@ CSS_TYPE_BACKGROUND_POSITION
Definition css.hh:64
@ CSS_TYPE_AUTO
Represented as CssLength of type CSS_LENGTH_TYPE_AUTO.
Definition css.hh:53
int CssLength
Lengths are represented as int in the following way:
Definition css.hh:91
CssLengthType CSS_LENGTH_TYPE(CssLength l)
Definition css.hh:138
CssLength CSS_CREATE_LENGTH(float v, CssLengthType t)
Definition css.hh:106
CssPrimaryOrder
Definition css.hh:21
@ CSS_PRIMARY_USER_IMPORTANT
Definition css.hh:26
@ CSS_PRIMARY_LAST
Definition css.hh:27
@ CSS_PRIMARY_AUTHOR_IMPORTANT
Definition css.hh:25
@ CSS_PRIMARY_USER
Definition css.hh:23
@ CSS_PRIMARY_AUTHOR
Definition css.hh:24
@ CSS_PRIMARY_USER_AGENT
Definition css.hh:22
CssLengthType
Definition css.hh:93
@ CSS_LENGTH_TYPE_NONE
Definition css.hh:94
@ CSS_LENGTH_TYPE_EM
Definition css.hh:98
@ CSS_LENGTH_TYPE_MM
"cm", "in", "pt" and "pc" are converted into millimeters.
Definition css.hh:96
@ CSS_LENGTH_TYPE_PX
Definition css.hh:95
@ CSS_LENGTH_TYPE_EX
Definition css.hh:99
@ CSS_LENGTH_TYPE_RELATIVE
This does not exist in CSS but is used in HTML.
Definition css.hh:101
@ CSS_LENGTH_TYPE_PERCENTAGE
Definition css.hh:100
@ CSS_LENGTH_TYPE_AUTO
This can be used as a simple value.
Definition css.hh:103
float CSS_LENGTH_VALUE(CssLength l)
Definition css.hh:142
CssOrigin
Definition css.hh:30
@ CSS_ORIGIN_USER
Definition css.hh:32
@ CSS_ORIGIN_AUTHOR
Definition css.hh:33
@ CSS_ORIGIN_USER_AGENT
Definition css.hh:31
void dFree(void *mem)
Definition dlib.c:66
#define HTML_NTAGS
Definition html.hh:24
int roundInt(double d)
Definition misc.hh:61
CssSimpleSelector * selector
Definition css.hh:406
CssBackgroundPosition * posVal
Definition css.hh:261
char * strVal
Definition css.hh:260
int32_t intVal
Definition css.hh:259