359 lout::misc::SimpleVector <char *>
klass;
483 for (
int i = 0; i <
size (); i++)
489 return this == other;
495 <lout::object::ConstString, RuleList > {
498 <
lout::object::ConstString,
RuleList > (true, true, 256) {};
void apply(CssPropertyList *props, Doctree *docTree, DoctreeNode *node, CssPropertyList *tagStyle, CssPropertyList *tagStyleImportant, CssPropertyList *nonCssHints)
Apply a CSS context to a property list.
CssStyleSheet sheet[CSS_PRIMARY_USER_IMPORTANT+1]
void addRule(CssSelector *sel, CssPropertyList *props, CssPrimaryOrder order)
static CssStyleSheet userAgentSheet
A list of CssProperty objects.
void set(CssPropertyName name, CssValueType type, CssPropertyValue value)
Set property to a given name and type.
CssPropertyList(bool ownerOfStrings=false)
void apply(CssPropertyList *props)
Merge properties into argument property list.
This class holds a CSS property and value pair.
A CssSelector CssPropertyList pair.
void apply(CssPropertyList *props, Doctree *docTree, const DoctreeNode *node, MatchCache *matchCache) const
CssSimpleSelector * top()
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.
void addSimpleSelector(Combinator c)
bool match(Doctree *dt, const DoctreeNode *node, MatchCache *matchCache)
lout::misc::SimpleVector< struct CombinatorAndSelector > selectorList
int getRequiredMatchCache()
void setMatchCacheOffset(int mo)
int specificity()
Return the specificity of the selector.
const char * getPseudoClass()
bool match(const DoctreeNode *node)
Return whether simple selector matches at a given node of the document tree.
int specificity()
Return the specificity of the simple selector.
void setSelect(SelectType t, const char *v)
lout::misc::SimpleVector< char * > * getClass()
lout::misc::SimpleVector< char * > klass
bool equals(lout::object::Object *other)
Returns, whether two objects are equal.
int hashValue()
Return a hash value for the object.
void insert(CssRule *rule)
void addRule(CssRule *rule)
Insert a rule into CssStyleSheet.
RuleList elementTable[ntags]
int getRequiredMatchCache()
void apply(CssPropertyList *props, Doctree *docTree, const DoctreeNode *node, MatchCache *matchCache) const
Apply a stylesheet to a property list.
HTML document tree interface.
Typed version of container::untyped::HashTable.
HashTable(bool ownerOfKeys, bool ownerOfValues, int tableSize=251)
Simple (simpler than container::untyped::Vector and container::typed::Vector) template based vector.
CssRule * get(int i) const
Return the one element, explicitly.
int size() const
Return the number of elements put into this vector.
SimpleVector(int initAlloc=1)
This is the base class for many other classes, which defines very common virtual methods.
@ CSS_WORD_SPACING_NORMAL
@ CSS_FONT_WEIGHT_LIGHTER
CssLetterSpacingExtensions
@ CSS_LETTER_SPACING_NORMAL
@ CSS_BORDER_WIDTH_MEDIUM
@ CSS_PROPERTY_PADDING_TOP
@ CSS_PROPERTY_COUNTER_RESET
@ CSS_PROPERTY_LIST_STYLE_TYPE
@ CSS_PROPERTY_FONT_STRETCH
@ CSS_PROPERTY_MARGIN_BOTTOM
@ CSS_PROPERTY_VISIBILITY
@ CSS_PROPERTY_LETTER_SPACING
@ CSS_PROPERTY_BORDER_RIGHT_STYLE
@ CSS_PROPERTY_BORDER_BOTTOM_COLOR
@ CSS_PROPERTY_MARGIN_RIGHT
@ CSS_PROPERTY_BORDER_TOP_COLOR
@ CSS_PROPERTY_BORDER_LEFT_COLOR
@ CSS_PROPERTY_LIST_STYLE_POSITION
@ CSS_PROPERTY_BORDER_RIGHT_WIDTH
@ CSS_PROPERTY_BACKGROUND_REPEAT
@ CSS_PROPERTY_FONT_VARIANT
@ CSS_PROPERTY_BORDER_LEFT_WIDTH
@ CSS_PROPERTY_PADDING_BOTTOM
@ CSS_PROPERTY_BACKGROUND_ATTACHMENT
@ CSS_PROPERTY_UNICODE_BIDI
@ CSS_PROPERTY_MIN_HEIGHT
@ CSS_PROPERTY_OUTLINE_STYLE
@ CSS_PROPERTY_MARKER_OFFSET
@ CSS_PROPERTY_OUTLINE_WIDTH
@ CSS_PROPERTY_LIST_STYLE_IMAGE
@ CSS_PROPERTY_TEXT_SHADOW
@ CSS_PROPERTY_MAX_HEIGHT
@ CSS_PROPERTY_COUNTER_INCREMENT
@ CSS_PROPERTY_MARGIN_LEFT
@ CSS_PROPERTY_CAPTION_SIDE
@ CSS_PROPERTY_BORDER_COLLAPSE
@ CSS_PROPERTY_BORDER_RIGHT_COLOR
@ CSS_PROPERTY_OUTLINE_COLOR
@ CSS_PROPERTY_BORDER_TOP_WIDTH
@ CSS_PROPERTY_MARGIN_TOP
@ CSS_PROPERTY_PADDING_RIGHT
@ CSS_PROPERTY_FONT_SIZE_ADJUST
@ CSS_PROPERTY_TEXT_TRANSFORM
@ CSS_PROPERTY_PADDING_LEFT
@ CSS_PROPERTY_VERTICAL_ALIGN
@ CSS_PROPERTY_BORDER_SPACING
@ CSS_PROPERTY_BORDER_LEFT_STYLE
@ CSS_PROPERTY_TEXT_ALIGN
@ CSS_PROPERTY_BACKGROUND_IMAGE
@ CSS_PROPERTY_BORDER_TOP_STYLE
@ CSS_PROPERTY_FONT_STYLE
@ CSS_PROPERTY_TEXT_INDENT
@ CSS_PROPERTY_BACKGROUND_COLOR
@ CSS_PROPERTY_WHITE_SPACE
@ CSS_PROPERTY_EMPTY_CELLS
@ CSS_PROPERTY_LINE_HEIGHT
@ CSS_PROPERTY_WORD_SPACING
@ CSS_PROPERTY_BORDER_BOTTOM_STYLE
@ CSS_PROPERTY_TEXT_DECORATION
@ CSS_PROPERTY_BORDER_BOTTOM_WIDTH
@ CSS_PROPERTY_BACKGROUND_POSITION
@ CSS_PROPERTY_FONT_FAMILY
@ CSS_PROPERTY_FONT_WEIGHT
@ CSS_TYPE_UNUSED
Not yet used.
@ CSS_TYPE_ENUM
Value is i, if represented by enum_symbols[i].
@ CSS_TYPE_INTEGER
This type is only used internally, for x-* properties.
@ CSS_TYPE_LENGTH_PERCENTAGE_NUMBER
@ CSS_TYPE_SIGNED_LENGTH
As CSS_TYPE_LENGTH but may be negative.
@ CSS_TYPE_MULTI_ENUM
For all enum_symbols[i], 1 << i are combined.
@ CSS_TYPE_LENGTH_PERCENTAGE
<length> or <percentage>.
@ CSS_TYPE_LENGTH
<length>, represented as CssLength.
@ CSS_TYPE_STRING
<string>
@ CSS_TYPE_SYMBOL
Symbols, which are directly copied (as opposed to CSS_TYPE_ENUM and CSS_TYPE_MULTI_ENUM).
@ CSS_TYPE_FONT_WEIGHT
this very special and only used by 'font-weight'
@ CSS_TYPE_COLOR
Represented as integer.
@ CSS_TYPE_BACKGROUND_POSITION
@ CSS_TYPE_AUTO
Represented as CssLength of type CSS_LENGTH_TYPE_AUTO.
CssLengthType CSS_LENGTH_TYPE(CssLength l)
CssLength CSS_CREATE_LENGTH(float v, CssLengthType t)
@ CSS_PRIMARY_USER_IMPORTANT
@ CSS_PRIMARY_AUTHOR_IMPORTANT
CssLengthType
CSS lengths are represented by the CssLength struct, which can hold different types of values.
@ CSS_LENGTH_TYPE_MM
"cm", "in", "pt" and "pc" are converted into millimeters.
@ CSS_LENGTH_TYPE_RELATIVE
This does not exist in CSS but is used in HTML.
@ CSS_LENGTH_TYPE_PERCENTAGE
@ CSS_LENGTH_TYPE_AUTO
This can be used as a simple value.
float CSS_LENGTH_VALUE(CssLength l)
CssSimpleSelector * selector
CssBackgroundPosition * posVal