Dillo v3.1.1-46-g8a360e32
Loading...
Searching...
No Matches
css.hh File Reference
#include "dw/core.hh"
#include "doctree.hh"
#include "html.hh"
Include dependency graph for css.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  CssBackgroundPosition
 
union  CssPropertyValue
 
class  CssProperty
 This class holds a CSS property and value pair. More...
 
class  CssPropertyList
 A list of CssProperty objects. More...
 
class  CssSimpleSelector
 
class  MatchCache
 
class  CssSelector
 CSS selector class. More...
 
struct  CssSelector::CombinatorAndSelector
 
class  CssRule
 A CssSelector CssPropertyList pair. More...
 
class  CssStyleSheet
 A list of CssRules. More...
 
class  CssStyleSheet::RuleList
 
class  CssStyleSheet::RuleMap
 
class  CssContext
 A set of CssStyleSheets. More...
 

Typedefs

typedef int CssLength
 Lengths are represented as int in the following way:
 

Enumerations

enum  CssPrimaryOrder {
  CSS_PRIMARY_USER_AGENT , CSS_PRIMARY_USER , CSS_PRIMARY_AUTHOR , CSS_PRIMARY_AUTHOR_IMPORTANT ,
  CSS_PRIMARY_USER_IMPORTANT , CSS_PRIMARY_LAST
}
 
enum  CssOrigin { CSS_ORIGIN_USER_AGENT , CSS_ORIGIN_USER , CSS_ORIGIN_AUTHOR }
 
enum  CssValueType {
  CSS_TYPE_INTEGER , CSS_TYPE_ENUM , CSS_TYPE_MULTI_ENUM , CSS_TYPE_LENGTH_PERCENTAGE ,
  CSS_TYPE_LENGTH , CSS_TYPE_SIGNED_LENGTH , CSS_TYPE_LENGTH_PERCENTAGE_NUMBER , CSS_TYPE_AUTO ,
  CSS_TYPE_COLOR , CSS_TYPE_FONT_WEIGHT , CSS_TYPE_STRING , CSS_TYPE_SYMBOL ,
  CSS_TYPE_URI , CSS_TYPE_BACKGROUND_POSITION , CSS_TYPE_UNUSED
}
 
enum  CssLengthType {
  CSS_LENGTH_TYPE_NONE , CSS_LENGTH_TYPE_PX , CSS_LENGTH_TYPE_MM , CSS_LENGTH_TYPE_EM ,
  CSS_LENGTH_TYPE_EX , CSS_LENGTH_TYPE_PERCENTAGE , CSS_LENGTH_TYPE_RELATIVE , CSS_LENGTH_TYPE_AUTO
}
 
enum  CssPropertyName {
  CSS_PROPERTY_END = -1 , CSS_PROPERTY_BACKGROUND_ATTACHMENT , CSS_PROPERTY_BACKGROUND_COLOR , CSS_PROPERTY_BACKGROUND_IMAGE ,
  CSS_PROPERTY_BACKGROUND_POSITION , CSS_PROPERTY_BACKGROUND_REPEAT , CSS_PROPERTY_BORDER_BOTTOM_COLOR , CSS_PROPERTY_BORDER_BOTTOM_STYLE ,
  CSS_PROPERTY_BORDER_BOTTOM_WIDTH , CSS_PROPERTY_BORDER_COLLAPSE , CSS_PROPERTY_BORDER_LEFT_COLOR , CSS_PROPERTY_BORDER_LEFT_STYLE ,
  CSS_PROPERTY_BORDER_LEFT_WIDTH , CSS_PROPERTY_BORDER_RIGHT_COLOR , CSS_PROPERTY_BORDER_RIGHT_STYLE , CSS_PROPERTY_BORDER_RIGHT_WIDTH ,
  CSS_PROPERTY_BORDER_SPACING , CSS_PROPERTY_BORDER_TOP_COLOR , CSS_PROPERTY_BORDER_TOP_STYLE , CSS_PROPERTY_BORDER_TOP_WIDTH ,
  CSS_PROPERTY_BOTTOM , CSS_PROPERTY_CAPTION_SIDE , CSS_PROPERTY_CLEAR , CSS_PROPERTY_CLIP ,
  CSS_PROPERTY_COLOR , CSS_PROPERTY_CONTENT , CSS_PROPERTY_COUNTER_INCREMENT , CSS_PROPERTY_COUNTER_RESET ,
  CSS_PROPERTY_CURSOR , CSS_PROPERTY_DIRECTION , CSS_PROPERTY_DISPLAY , CSS_PROPERTY_EMPTY_CELLS ,
  CSS_PROPERTY_FLOAT , CSS_PROPERTY_FONT_FAMILY , CSS_PROPERTY_FONT_SIZE , CSS_PROPERTY_FONT_SIZE_ADJUST ,
  CSS_PROPERTY_FONT_STRETCH , CSS_PROPERTY_FONT_STYLE , CSS_PROPERTY_FONT_VARIANT , CSS_PROPERTY_FONT_WEIGHT ,
  CSS_PROPERTY_HEIGHT , CSS_PROPERTY_LEFT , CSS_PROPERTY_LETTER_SPACING , CSS_PROPERTY_LINE_HEIGHT ,
  CSS_PROPERTY_LIST_STYLE_IMAGE , CSS_PROPERTY_LIST_STYLE_POSITION , CSS_PROPERTY_LIST_STYLE_TYPE , CSS_PROPERTY_MARGIN_BOTTOM ,
  CSS_PROPERTY_MARGIN_LEFT , CSS_PROPERTY_MARGIN_RIGHT , CSS_PROPERTY_MARGIN_TOP , CSS_PROPERTY_MARKER_OFFSET ,
  CSS_PROPERTY_MARKS , CSS_PROPERTY_MAX_HEIGHT , CSS_PROPERTY_MAX_WIDTH , CSS_PROPERTY_MIN_HEIGHT ,
  CSS_PROPERTY_MIN_WIDTH , CSS_PROPERTY_OUTLINE_COLOR , CSS_PROPERTY_OUTLINE_STYLE , CSS_PROPERTY_OUTLINE_WIDTH ,
  CSS_PROPERTY_OVERFLOW , CSS_PROPERTY_PADDING_BOTTOM , CSS_PROPERTY_PADDING_LEFT , CSS_PROPERTY_PADDING_RIGHT ,
  CSS_PROPERTY_PADDING_TOP , CSS_PROPERTY_POSITION , CSS_PROPERTY_QUOTES , CSS_PROPERTY_RIGHT ,
  CSS_PROPERTY_TEXT_ALIGN , CSS_PROPERTY_TEXT_DECORATION , CSS_PROPERTY_TEXT_INDENT , CSS_PROPERTY_TEXT_SHADOW ,
  CSS_PROPERTY_TEXT_TRANSFORM , CSS_PROPERTY_TOP , CSS_PROPERTY_UNICODE_BIDI , CSS_PROPERTY_VERTICAL_ALIGN ,
  CSS_PROPERTY_VISIBILITY , CSS_PROPERTY_WHITE_SPACE , CSS_PROPERTY_WIDTH , CSS_PROPERTY_WORD_SPACING ,
  CSS_PROPERTY_Z_INDEX , CSS_PROPERTY_X_LINK , CSS_PROPERTY_X_COLSPAN , CSS_PROPERTY_X_ROWSPAN ,
  PROPERTY_X_LINK , PROPERTY_X_LANG , PROPERTY_X_IMG , PROPERTY_X_TOOLTIP ,
  CSS_PROPERTY_LAST
}
 
enum  CssBorderWidthExtensions { CSS_BORDER_WIDTH_THIN , CSS_BORDER_WIDTH_MEDIUM , CSS_BORDER_WIDTH_THICK }
 
enum  CssFontWeightExtensions {
  CSS_FONT_WEIGHT_BOLD , CSS_FONT_WEIGHT_BOLDER , CSS_FONT_WEIGHT_LIGHT , CSS_FONT_WEIGHT_LIGHTER ,
  CSS_FONT_WEIGHT_NORMAL
}
 
enum  CssFontSizeExtensions {
  CSS_FONT_SIZE_LARGE , CSS_FONT_SIZE_LARGER , CSS_FONT_SIZE_MEDIUM , CSS_FONT_SIZE_SMALL ,
  CSS_FONT_SIZE_SMALLER , CSS_FONT_SIZE_XX_LARGE , CSS_FONT_SIZE_XX_SMALL , CSS_FONT_SIZE_X_LARGE ,
  CSS_FONT_SIZE_X_SMALL
}
 
enum  CssLetterSpacingExtensions { CSS_LETTER_SPACING_NORMAL }
 
enum  CssWordSpacingExtensions { CSS_WORD_SPACING_NORMAL }
 

Functions

CssLength CSS_CREATE_LENGTH (float v, CssLengthType t)
 
CssLengthType CSS_LENGTH_TYPE (CssLength l)
 
float CSS_LENGTH_VALUE (CssLength l)
 

Typedef Documentation

◆ CssLength

typedef int CssLength

Lengths are represented as int in the following way:

*
*    | <------   integer value   ------> |
*
*    +---+ - - - +---+---+- - - - - -+---+---+---+---+
*    |          integer part             |   type    |
*    +---+ - - - +---+---+- - - - - -+---+---+---+---+
*    | integer part  | decimal fraction  |   type    |
*    +---+ - - - +---+---+- - - - - -+---+---+---+---+
*     n-1          15  14              3   2  1   0
*
*    | <------ fixed point value ------> |
*
* 

where type is one of the CSS_LENGTH_TYPE_* values. CSS_LENGTH_TYPE_PX values are stored as 29 bit signed integer, all other types as fixed point values.

Definition at line 91 of file css.hh.

Enumeration Type Documentation

◆ CssBorderWidthExtensions

Enumerator
CSS_BORDER_WIDTH_THIN 
CSS_BORDER_WIDTH_MEDIUM 
CSS_BORDER_WIDTH_THICK 

Definition at line 264 of file css.hh.

◆ CssFontSizeExtensions

Enumerator
CSS_FONT_SIZE_LARGE 
CSS_FONT_SIZE_LARGER 
CSS_FONT_SIZE_MEDIUM 
CSS_FONT_SIZE_SMALL 
CSS_FONT_SIZE_SMALLER 
CSS_FONT_SIZE_XX_LARGE 
CSS_FONT_SIZE_XX_SMALL 
CSS_FONT_SIZE_X_LARGE 
CSS_FONT_SIZE_X_SMALL 

Definition at line 278 of file css.hh.

◆ CssFontWeightExtensions

Enumerator
CSS_FONT_WEIGHT_BOLD 
CSS_FONT_WEIGHT_BOLDER 
CSS_FONT_WEIGHT_LIGHT 
CSS_FONT_WEIGHT_LIGHTER 
CSS_FONT_WEIGHT_NORMAL 

Definition at line 270 of file css.hh.

◆ CssLengthType

Enumerator
CSS_LENGTH_TYPE_NONE 
CSS_LENGTH_TYPE_PX 
CSS_LENGTH_TYPE_MM 

"cm", "in", "pt" and "pc" are converted into millimeters.

CSS_LENGTH_TYPE_EM 
CSS_LENGTH_TYPE_EX 
CSS_LENGTH_TYPE_PERCENTAGE 
CSS_LENGTH_TYPE_RELATIVE 

This does not exist in CSS but is used in HTML.

CSS_LENGTH_TYPE_AUTO 

This can be used as a simple value.

Definition at line 93 of file css.hh.

◆ CssLetterSpacingExtensions

Enumerator
CSS_LETTER_SPACING_NORMAL 

Definition at line 290 of file css.hh.

◆ CssOrigin

enum CssOrigin
Enumerator
CSS_ORIGIN_USER_AGENT 
CSS_ORIGIN_USER 
CSS_ORIGIN_AUTHOR 

Definition at line 30 of file css.hh.

◆ CssPrimaryOrder

Enumerator
CSS_PRIMARY_USER_AGENT 
CSS_PRIMARY_USER 
CSS_PRIMARY_AUTHOR 
CSS_PRIMARY_AUTHOR_IMPORTANT 
CSS_PRIMARY_USER_IMPORTANT 
CSS_PRIMARY_LAST 

Definition at line 21 of file css.hh.

◆ CssPropertyName

Enumerator
CSS_PROPERTY_END 
CSS_PROPERTY_BACKGROUND_ATTACHMENT 
CSS_PROPERTY_BACKGROUND_COLOR 
CSS_PROPERTY_BACKGROUND_IMAGE 
CSS_PROPERTY_BACKGROUND_POSITION 
CSS_PROPERTY_BACKGROUND_REPEAT 
CSS_PROPERTY_BORDER_BOTTOM_COLOR 
CSS_PROPERTY_BORDER_BOTTOM_STYLE 
CSS_PROPERTY_BORDER_BOTTOM_WIDTH 
CSS_PROPERTY_BORDER_COLLAPSE 
CSS_PROPERTY_BORDER_LEFT_COLOR 
CSS_PROPERTY_BORDER_LEFT_STYLE 
CSS_PROPERTY_BORDER_LEFT_WIDTH 
CSS_PROPERTY_BORDER_RIGHT_COLOR 
CSS_PROPERTY_BORDER_RIGHT_STYLE 
CSS_PROPERTY_BORDER_RIGHT_WIDTH 
CSS_PROPERTY_BORDER_SPACING 
CSS_PROPERTY_BORDER_TOP_COLOR 
CSS_PROPERTY_BORDER_TOP_STYLE 
CSS_PROPERTY_BORDER_TOP_WIDTH 
CSS_PROPERTY_BOTTOM 
CSS_PROPERTY_CAPTION_SIDE 
CSS_PROPERTY_CLEAR 
CSS_PROPERTY_CLIP 
CSS_PROPERTY_COLOR 
CSS_PROPERTY_CONTENT 
CSS_PROPERTY_COUNTER_INCREMENT 
CSS_PROPERTY_COUNTER_RESET 
CSS_PROPERTY_CURSOR 
CSS_PROPERTY_DIRECTION 
CSS_PROPERTY_DISPLAY 
CSS_PROPERTY_EMPTY_CELLS 
CSS_PROPERTY_FLOAT 
CSS_PROPERTY_FONT_FAMILY 
CSS_PROPERTY_FONT_SIZE 
CSS_PROPERTY_FONT_SIZE_ADJUST 
CSS_PROPERTY_FONT_STRETCH 
CSS_PROPERTY_FONT_STYLE 
CSS_PROPERTY_FONT_VARIANT 
CSS_PROPERTY_FONT_WEIGHT 
CSS_PROPERTY_HEIGHT 
CSS_PROPERTY_LEFT 
CSS_PROPERTY_LETTER_SPACING 
CSS_PROPERTY_LINE_HEIGHT 
CSS_PROPERTY_LIST_STYLE_IMAGE 
CSS_PROPERTY_LIST_STYLE_POSITION 
CSS_PROPERTY_LIST_STYLE_TYPE 
CSS_PROPERTY_MARGIN_BOTTOM 
CSS_PROPERTY_MARGIN_LEFT 
CSS_PROPERTY_MARGIN_RIGHT 
CSS_PROPERTY_MARGIN_TOP 
CSS_PROPERTY_MARKER_OFFSET 
CSS_PROPERTY_MARKS 
CSS_PROPERTY_MAX_HEIGHT 
CSS_PROPERTY_MAX_WIDTH 
CSS_PROPERTY_MIN_HEIGHT 
CSS_PROPERTY_MIN_WIDTH 
CSS_PROPERTY_OUTLINE_COLOR 
CSS_PROPERTY_OUTLINE_STYLE 
CSS_PROPERTY_OUTLINE_WIDTH 
CSS_PROPERTY_OVERFLOW 
CSS_PROPERTY_PADDING_BOTTOM 
CSS_PROPERTY_PADDING_LEFT 
CSS_PROPERTY_PADDING_RIGHT 
CSS_PROPERTY_PADDING_TOP 
CSS_PROPERTY_POSITION 
CSS_PROPERTY_QUOTES 
CSS_PROPERTY_RIGHT 
CSS_PROPERTY_TEXT_ALIGN 
CSS_PROPERTY_TEXT_DECORATION 
CSS_PROPERTY_TEXT_INDENT 
CSS_PROPERTY_TEXT_SHADOW 
CSS_PROPERTY_TEXT_TRANSFORM 
CSS_PROPERTY_TOP 
CSS_PROPERTY_UNICODE_BIDI 
CSS_PROPERTY_VERTICAL_ALIGN 
CSS_PROPERTY_VISIBILITY 
CSS_PROPERTY_WHITE_SPACE 
CSS_PROPERTY_WIDTH 
CSS_PROPERTY_WORD_SPACING 
CSS_PROPERTY_Z_INDEX 
CSS_PROPERTY_X_LINK 
CSS_PROPERTY_X_COLSPAN 
CSS_PROPERTY_X_ROWSPAN 
PROPERTY_X_LINK 
PROPERTY_X_LANG 
PROPERTY_X_IMG 
PROPERTY_X_TOOLTIP 
CSS_PROPERTY_LAST 

Definition at line 161 of file css.hh.

◆ CssValueType

Enumerator
CSS_TYPE_INTEGER 

This type is only used internally, for x-* properties.

CSS_TYPE_ENUM 

Value is i, if represented by enum_symbols[i].

CSS_TYPE_MULTI_ENUM 

For all enum_symbols[i], 1 << i are combined.

CSS_TYPE_LENGTH_PERCENTAGE 

<length> or <percentage>.

Represented by CssLength.

CSS_TYPE_LENGTH 

<length>, represented as CssLength.

Note: In some cases, CSS_TYPE_LENGTH is used instead of CSS_TYPE_LENGTH_PERCENTAGE, only because Dw cannot handle percentages in this particular case (e.g. 'margin-*-width').

CSS_TYPE_SIGNED_LENGTH 

As CSS_TYPE_LENGTH but may be negative.

CSS_TYPE_LENGTH_PERCENTAGE_NUMBER 
CSS_TYPE_AUTO 

Represented as CssLength of type CSS_LENGTH_TYPE_AUTO.

CSS_TYPE_COLOR 

Represented as integer.

CSS_TYPE_FONT_WEIGHT 

this very special and only used by 'font-weight'

CSS_TYPE_STRING 

<string>

CSS_TYPE_SYMBOL 

Symbols, which are directly copied (as opposed to CSS_TYPE_ENUM and CSS_TYPE_MULTI_ENUM).

Used for 'font-family'.

CSS_TYPE_URI 

<uri>

CSS_TYPE_BACKGROUND_POSITION 
CSS_TYPE_UNUSED 

Not yet used.

Will itself get unused some day.

Definition at line 36 of file css.hh.

◆ CssWordSpacingExtensions

Enumerator
CSS_WORD_SPACING_NORMAL 

Definition at line 294 of file css.hh.

Function Documentation

◆ CSS_CREATE_LENGTH()

◆ CSS_LENGTH_TYPE()

◆ CSS_LENGTH_VALUE()