Dillo v3.1.1-98-g318d1f14
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
92
93/* Aligned to 64 bits */
94typedef struct {
96 union {
97 int i;
98 float f;
99 };
100} CssLength;
101
103 CssLength l;
104 l.type = t;
105 switch (t) {
107 l.i = lout::misc::roundInt(v);
108 break;
121 l.f = v;
122 break;
124 l.i = 0;
125 break;
126 default:
127 assert(false);
128 break;
129 }
130
131 return l;
132}
133
135 return l.type;
136}
137
138inline float CSS_LENGTH_VALUE (CssLength l) {
139 switch (CSS_LENGTH_TYPE(l)) {
141 return (float) l.i;
154 return l.f;
156 return 0.0;
157 default:
158 assert(false);
159 return 0.0;
160 }
161}
162
163typedef enum {
164 CSS_PROPERTY_END = -1, // used as terminator in CssShorthandInfo
254
259
266
272
280
292
296
300
301
306 public:
307
308 short name;
309 short type;
311
312 inline void free () {
313 switch (type) {
314 case CSS_TYPE_STRING:
315 case CSS_TYPE_SYMBOL:
316 case CSS_TYPE_URI:
318 break;
321 default:
322 break;
323 }
324 }
325 void print ();
326};
327
331class CssPropertyList : public lout::misc::SimpleVector <CssProperty> {
334 bool safe;
335
336 public:
337 inline CssPropertyList(bool ownerOfStrings = false) :
338 lout::misc::SimpleVector <CssProperty> (1) {
339 refCount = 0;
340 safe = true;
341 this->ownerOfStrings = ownerOfStrings;
342 };
343 CssPropertyList(const CssPropertyList &p, bool deep = false);
345
346 void set (CssPropertyName name, CssValueType type,
347 CssPropertyValue value);
348 void apply (CssPropertyList *props);
349 bool isSafe () { return safe; };
350 void print ();
351 inline void ref () { refCount++; }
352 inline void unref () { if (--refCount == 0) delete this; }
353};
354
356 private:
358 char *pseudo, *id;
359 lout::misc::SimpleVector <char *> klass;
360
361 public:
362 enum {
365 };
366
373
376 inline void setElement (int e) { element = e; };
377 void setSelect (SelectType t, const char *v);
378 inline lout::misc::SimpleVector <char *> *getClass () { return &klass; };
379 inline const char *getPseudoClass () { return pseudo; };
380 inline const char *getId () { return id; };
381 inline int getElement () { return element; };
382 bool match (const DoctreeNode *node);
383 int specificity ();
384 void print ();
385};
386
388 public:
389 MatchCache() : lout::misc::SimpleVector <int> (0) {};
390};
391
398 public:
405
406 private:
411
413 lout::misc::SimpleVector <struct CombinatorAndSelector> selectorList;
414
415 bool match (Doctree *dt, const DoctreeNode *node, int i, Combinator comb,
416 MatchCache *matchCache);
417
418 public:
419 CssSelector ();
420 ~CssSelector ();
423 return selectorList.getRef (selectorList.size () - 1)->selector;
424 }
425 inline int size () { return selectorList.size (); };
426 inline bool match (Doctree *dt, const DoctreeNode *node,
427 MatchCache *matchCache) {
428 return match (dt, node, selectorList.size () - 1, COMB_NONE,
429 matchCache);
430 }
431 inline void setMatchCacheOffset (int mo) {
432 if (matchCacheOffset == -1)
433 matchCacheOffset = mo;
434 }
435 inline int getRequiredMatchCache () {
436 return matchCacheOffset + size ();
437 }
438 int specificity ();
439 bool checksPseudoClass ();
440 void print ();
441 inline void ref () { refCount++; }
442 inline void unref () { if (--refCount == 0) delete this; }
443};
444
450class CssRule {
451 private:
453 int spec, pos;
454
455 public:
457
459 ~CssRule ();
460
461 void apply (CssPropertyList *props, Doctree *docTree,
462 const DoctreeNode *node, MatchCache *matchCache) const;
463 inline bool isSafe () {
464 return !selector->checksPseudoClass () || props->isSafe ();
465 };
466 inline int specificity () { return spec; };
467 inline int position () { return pos; };
468 void print ();
469};
470
477 private:
478 class RuleList : public lout::misc::SimpleVector <CssRule*>,
479 public lout::object::Object {
480 public:
481 RuleList () : lout::misc::SimpleVector <CssRule*> (1) {};
483 for (int i = 0; i < size (); i++)
484 delete get (i);
485 };
486
487 void insert (CssRule *rule);
488 inline bool equals (lout::object::Object *other) {
489 return this == other;
490 };
491 inline int hashValue () { return (intptr_t) this; };
492 };
493
495 <lout::object::ConstString, RuleList > {
496 public:
497 RuleMap () : lout::container::typed::HashTable
498 <lout::object::ConstString, RuleList > (true, true, 256) {};
499 };
500
501 static const int ntags = HTML_NTAGS;
502
506
507 public:
509 void addRule (CssRule *rule);
510 void apply (CssPropertyList *props, Doctree *docTree,
511 const DoctreeNode *node, MatchCache *matchCache) const;
513};
514
519 private:
523 int pos;
524
525 public:
526 CssContext ();
527
528 void addRule (CssSelector *sel, CssPropertyList *props,
529 CssPrimaryOrder order);
530 void apply (CssPropertyList *props,
531 Doctree *docTree, DoctreeNode *node,
532 CssPropertyList *tagStyle, CssPropertyList *tagStyleImportant,
533 CssPropertyList *nonCssHints);
534};
535
536#endif
A set of CssStyleSheets.
Definition css.hh:518
int pos
Definition css.hh:523
MatchCache matchCache
Definition css.hh:522
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:521
void addRule(CssSelector *sel, CssPropertyList *props, CssPrimaryOrder order)
Definition css.cc:529
static CssStyleSheet userAgentSheet
Definition css.hh:520
A list of CssProperty objects.
Definition css.hh:331
bool isSafe()
Definition css.hh:349
~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:352
CssPropertyList(bool ownerOfStrings=false)
Definition css.hh:337
void apply(CssPropertyList *props)
Merge properties into argument property list.
Definition css.cc:87
void ref()
Definition css.hh:351
bool ownerOfStrings
Definition css.hh:333
This class holds a CSS property and value pair.
Definition css.hh:305
short type
Definition css.hh:309
void free()
Definition css.hh:312
void print()
Definition css.cc:20
short name
Definition css.hh:308
CssPropertyValue value
Definition css.hh:310
A CssSelector CssPropertyList pair.
Definition css.hh:450
~CssRule()
Definition css.cc:331
CssSelector * selector
Definition css.hh:456
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:453
CssPropertyList * props
Definition css.hh:452
int spec
Definition css.hh:453
int position()
Definition css.hh:467
int specificity()
Definition css.hh:466
bool isSafe()
Definition css.hh:463
CSS selector class.
Definition css.hh:397
CssSimpleSelector * top()
Definition css.hh:422
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:412
bool match(Doctree *dt, const DoctreeNode *node, MatchCache *matchCache)
Definition css.hh:426
lout::misc::SimpleVector< struct CombinatorAndSelector > selectorList
Definition css.hh:413
@ COMB_DESCENDANT
Definition css.hh:401
@ COMB_CHILD
Definition css.hh:402
@ COMB_ADJACENT_SIBLING
Definition css.hh:403
@ COMB_NONE
Definition css.hh:400
bool checksPseudoClass()
Definition css.cc:184
int getRequiredMatchCache()
Definition css.hh:435
~CssSelector()
Definition css.cc:119
void setMatchCacheOffset(int mo)
Definition css.hh:431
int specificity()
Return the specificity of the selector.
Definition css.cc:197
int size()
Definition css.hh:425
int matchCacheOffset
Definition css.hh:412
void ref()
Definition css.hh:441
void unref()
Definition css.hh:442
void setElement(int e)
Definition css.hh:376
int getElement()
Definition css.hh:381
char * pseudo
Definition css.hh:358
const char * getPseudoClass()
Definition css.hh:379
const char * getId()
Definition css.hh:380
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:370
void setSelect(SelectType t, const char *v)
Definition css.cc:244
lout::misc::SimpleVector< char * > * getClass()
Definition css.hh:378
lout::misc::SimpleVector< char * > klass
Definition css.hh:359
bool equals(lout::object::Object *other)
Returns, whether two objects are equal.
Definition css.hh:488
int hashValue()
Return a hash value for the object.
Definition css.hh:491
void insert(CssRule *rule)
Definition css.cc:354
A list of CssRules.
Definition css.hh:476
void addRule(CssRule *rule)
Insert a rule into CssStyleSheet.
Definition css.cc:372
RuleMap idTable
Definition css.hh:504
RuleMap classTable
Definition css.hh:504
RuleList anyTable
Definition css.hh:503
CssStyleSheet()
Definition css.hh:508
RuleList elementTable[ntags]
Definition css.hh:503
int requiredMatchCache
Definition css.hh:505
static const int ntags
Definition css.hh:501
int getRequiredMatchCache()
Definition css.hh:512
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:389
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:115
CssRule * get(int i) const
Return the one element, explicitly.
Definition misc.hh:222
int size() const
Return the number of elements put into this vector.
Definition misc.hh:162
This is the base class for many other classes, which defines very common virtual methods.
Definition object.hh:25
CssWordSpacingExtensions
Definition css.hh:297
@ CSS_WORD_SPACING_NORMAL
Definition css.hh:298
CssFontWeightExtensions
Definition css.hh:273
@ CSS_FONT_WEIGHT_BOLDER
Definition css.hh:275
@ CSS_FONT_WEIGHT_LIGHT
Definition css.hh:276
@ CSS_FONT_WEIGHT_LIGHTER
Definition css.hh:277
@ CSS_FONT_WEIGHT_NORMAL
Definition css.hh:278
@ CSS_FONT_WEIGHT_BOLD
Definition css.hh:274
CssFontSizeExtensions
Definition css.hh:281
@ CSS_FONT_SIZE_MEDIUM
Definition css.hh:284
@ CSS_FONT_SIZE_XX_SMALL
Definition css.hh:288
@ CSS_FONT_SIZE_SMALLER
Definition css.hh:286
@ CSS_FONT_SIZE_XX_LARGE
Definition css.hh:287
@ CSS_FONT_SIZE_LARGER
Definition css.hh:283
@ CSS_FONT_SIZE_X_SMALL
Definition css.hh:290
@ CSS_FONT_SIZE_X_LARGE
Definition css.hh:289
@ CSS_FONT_SIZE_LARGE
Definition css.hh:282
@ CSS_FONT_SIZE_SMALL
Definition css.hh:285
CssLetterSpacingExtensions
Definition css.hh:293
@ CSS_LETTER_SPACING_NORMAL
Definition css.hh:294
CssBorderWidthExtensions
Definition css.hh:267
@ CSS_BORDER_WIDTH_THIN
Definition css.hh:268
@ CSS_BORDER_WIDTH_MEDIUM
Definition css.hh:269
@ CSS_BORDER_WIDTH_THICK
Definition css.hh:270
CssPropertyName
Definition css.hh:163
@ CSS_PROPERTY_MIN_WIDTH
Definition css.hh:220
@ CSS_PROPERTY_PADDING_TOP
Definition css.hh:228
@ CSS_PROPERTY_COUNTER_RESET
Definition css.hh:191
@ CSS_PROPERTY_LIST_STYLE_TYPE
Definition css.hh:210
@ CSS_PROPERTY_FONT_STRETCH
Definition css.hh:200
@ CSS_PROPERTY_BOTTOM
Definition css.hh:184
@ CSS_PROPERTY_MARGIN_BOTTOM
Definition css.hh:211
@ CSS_PROPERTY_VISIBILITY
Definition css.hh:240
@ CSS_PROPERTY_LETTER_SPACING
Definition css.hh:206
@ CSS_PROPERTY_BORDER_RIGHT_STYLE
Definition css.hh:178
@ CSS_PROPERTY_BORDER_BOTTOM_COLOR
Definition css.hh:170
@ CSS_PROPERTY_MARGIN_RIGHT
Definition css.hh:213
@ CSS_PROPERTY_RIGHT
Definition css.hh:231
@ CSS_PROPERTY_BORDER_TOP_COLOR
Definition css.hh:181
@ CSS_PROPERTY_LEFT
Definition css.hh:205
@ CSS_PROPERTY_BORDER_LEFT_COLOR
Definition css.hh:174
@ CSS_PROPERTY_LIST_STYLE_POSITION
Definition css.hh:209
@ PROPERTY_X_LANG
Definition css.hh:249
@ CSS_PROPERTY_END
Definition css.hh:164
@ CSS_PROPERTY_MARKS
Definition css.hh:216
@ CSS_PROPERTY_BORDER_RIGHT_WIDTH
Definition css.hh:179
@ CSS_PROPERTY_LAST
Definition css.hh:252
@ CSS_PROPERTY_BACKGROUND_REPEAT
Definition css.hh:169
@ CSS_PROPERTY_FONT_VARIANT
Definition css.hh:202
@ CSS_PROPERTY_BORDER_LEFT_WIDTH
Definition css.hh:176
@ CSS_PROPERTY_PADDING_BOTTOM
Definition css.hh:225
@ CSS_PROPERTY_Z_INDEX
Definition css.hh:244
@ CSS_PROPERTY_BACKGROUND_ATTACHMENT
Definition css.hh:165
@ CSS_PROPERTY_UNICODE_BIDI
Definition css.hh:238
@ PROPERTY_X_LINK
Definition css.hh:248
@ CSS_PROPERTY_MIN_HEIGHT
Definition css.hh:219
@ CSS_PROPERTY_OUTLINE_STYLE
Definition css.hh:222
@ CSS_PROPERTY_OVERFLOW
Definition css.hh:224
@ CSS_PROPERTY_MARKER_OFFSET
Definition css.hh:215
@ PROPERTY_X_TOOLTIP
Definition css.hh:251
@ CSS_PROPERTY_POSITION
Definition css.hh:229
@ CSS_PROPERTY_OUTLINE_WIDTH
Definition css.hh:223
@ CSS_PROPERTY_TOP
Definition css.hh:237
@ CSS_PROPERTY_LIST_STYLE_IMAGE
Definition css.hh:208
@ CSS_PROPERTY_TEXT_SHADOW
Definition css.hh:235
@ CSS_PROPERTY_MAX_WIDTH
Definition css.hh:218
@ CSS_PROPERTY_FLOAT
Definition css.hh:196
@ CSS_PROPERTY_MAX_HEIGHT
Definition css.hh:217
@ CSS_PROPERTY_COUNTER_INCREMENT
Definition css.hh:190
@ CSS_PROPERTY_MARGIN_LEFT
Definition css.hh:212
@ CSS_PROPERTY_CAPTION_SIDE
Definition css.hh:185
@ CSS_PROPERTY_HEIGHT
Definition css.hh:204
@ CSS_PROPERTY_WIDTH
Definition css.hh:242
@ CSS_PROPERTY_BORDER_COLLAPSE
Definition css.hh:173
@ CSS_PROPERTY_BORDER_RIGHT_COLOR
Definition css.hh:177
@ PROPERTY_X_IMG
Definition css.hh:250
@ CSS_PROPERTY_OUTLINE_COLOR
Definition css.hh:221
@ CSS_PROPERTY_X_COLSPAN
Definition css.hh:246
@ CSS_PROPERTY_BORDER_TOP_WIDTH
Definition css.hh:183
@ CSS_PROPERTY_MARGIN_TOP
Definition css.hh:214
@ CSS_PROPERTY_PADDING_RIGHT
Definition css.hh:227
@ CSS_PROPERTY_FONT_SIZE_ADJUST
Definition css.hh:199
@ CSS_PROPERTY_TEXT_TRANSFORM
Definition css.hh:236
@ CSS_PROPERTY_PADDING_LEFT
Definition css.hh:226
@ CSS_PROPERTY_VERTICAL_ALIGN
Definition css.hh:239
@ CSS_PROPERTY_BORDER_SPACING
Definition css.hh:180
@ CSS_PROPERTY_BORDER_LEFT_STYLE
Definition css.hh:175
@ CSS_PROPERTY_TEXT_ALIGN
Definition css.hh:232
@ CSS_PROPERTY_X_LINK
Definition css.hh:245
@ CSS_PROPERTY_BACKGROUND_IMAGE
Definition css.hh:167
@ CSS_PROPERTY_BORDER_TOP_STYLE
Definition css.hh:182
@ CSS_PROPERTY_FONT_STYLE
Definition css.hh:201
@ CSS_PROPERTY_QUOTES
Definition css.hh:230
@ CSS_PROPERTY_TEXT_INDENT
Definition css.hh:234
@ CSS_PROPERTY_DISPLAY
Definition css.hh:194
@ CSS_PROPERTY_BACKGROUND_COLOR
Definition css.hh:166
@ CSS_PROPERTY_WHITE_SPACE
Definition css.hh:241
@ CSS_PROPERTY_X_ROWSPAN
Definition css.hh:247
@ CSS_PROPERTY_EMPTY_CELLS
Definition css.hh:195
@ CSS_PROPERTY_COLOR
Definition css.hh:188
@ CSS_PROPERTY_LINE_HEIGHT
Definition css.hh:207
@ CSS_PROPERTY_WORD_SPACING
Definition css.hh:243
@ CSS_PROPERTY_FONT_SIZE
Definition css.hh:198
@ CSS_PROPERTY_BORDER_BOTTOM_STYLE
Definition css.hh:171
@ CSS_PROPERTY_CLIP
Definition css.hh:187
@ CSS_PROPERTY_CURSOR
Definition css.hh:192
@ CSS_PROPERTY_TEXT_DECORATION
Definition css.hh:233
@ CSS_PROPERTY_BORDER_BOTTOM_WIDTH
Definition css.hh:172
@ CSS_PROPERTY_BACKGROUND_POSITION
Definition css.hh:168
@ CSS_PROPERTY_CONTENT
Definition css.hh:189
@ CSS_PROPERTY_CLEAR
Definition css.hh:186
@ CSS_PROPERTY_FONT_FAMILY
Definition css.hh:197
@ CSS_PROPERTY_DIRECTION
Definition css.hh:193
@ CSS_PROPERTY_FONT_WEIGHT
Definition css.hh:203
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
CssLengthType CSS_LENGTH_TYPE(CssLength l)
Definition css.hh:134
CssLength CSS_CREATE_LENGTH(float v, CssLengthType t)
Definition css.hh:102
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
CSS lengths are represented by the CssLength struct, which can hold different types of values.
Definition css.hh:74
@ CSS_LENGTH_TYPE_NONE
Definition css.hh:75
@ CSS_LENGTH_TYPE_EM
Definition css.hh:79
@ CSS_LENGTH_TYPE_VW
Definition css.hh:83
@ CSS_LENGTH_TYPE_VMAX
Definition css.hh:86
@ CSS_LENGTH_TYPE_VMIN
Definition css.hh:85
@ CSS_LENGTH_TYPE_MM
"cm", "in", "pt" and "pc" are converted into millimeters.
Definition css.hh:77
@ CSS_LENGTH_TYPE_PX
Definition css.hh:76
@ CSS_LENGTH_TYPE_VH
Definition css.hh:84
@ CSS_LENGTH_TYPE_EX
Definition css.hh:80
@ CSS_LENGTH_TYPE_RELATIVE
This does not exist in CSS but is used in HTML.
Definition css.hh:88
@ CSS_LENGTH_TYPE_CH
Definition css.hh:81
@ CSS_LENGTH_TYPE_PERCENTAGE
Definition css.hh:87
@ CSS_LENGTH_TYPE_AUTO
This can be used as a simple value.
Definition css.hh:90
@ CSS_LENGTH_TYPE_REM
Definition css.hh:82
float CSS_LENGTH_VALUE(CssLength l)
Definition css.hh:138
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:68
#define HTML_NTAGS
Definition html.hh:24
int roundInt(double d)
Definition misc.hh:82
CssLength posX
Definition css.hh:256
CssLength posY
Definition css.hh:257
float f
Definition css.hh:98
CssLengthType type
Definition css.hh:95
int i
Definition css.hh:97
CssSimpleSelector * selector
Definition css.hh:409
CssBackgroundPosition * posVal
Definition css.hh:264
char * strVal
Definition css.hh:263
int32_t intVal
Definition css.hh:261
CssLength lenVal
Definition css.hh:262