Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qcssparser_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QCSSPARSER_P_H
5#define QCSSPARSER_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtGui/private/qtguiglobal_p.h>
19#include <QtCore/QStringList>
20#include <QtCore/QList>
21#include <QtCore/QVariant>
22#include <QtCore/QSize>
23#include <QtCore/QMultiHash>
24#include <QtGui/QFont>
25#include <QtGui/QPalette>
26#include <QtCore/QSharedData>
27
28QT_BEGIN_NAMESPACE
29class QIcon;
31
32#ifndef QT_NO_CSSPARSER
33
34// VxWorks defines NONE as (-1) "for times when NULL won't do"
35#if defined(Q_OS_VXWORKS) && defined(NONE)
36# undef NONE
37#endif
38#if defined(Q_OS_INTEGRITY)
39# undef Value
40#endif
41// Hurd has #define TILDE 0x00080000 from <sys/ioctl.h>
42#if defined(TILDE)
43# undef TILDE
44#endif
45
46#define QT_CSS_DECLARE_TYPEINFO(Class, Type)
47 } /* namespace QCss */
48 Q_DECLARE_TYPEINFO(QCss:: Class, Type);
49 namespace QCss {
50
52
53namespace QCss
54{
55
179};
180
241
242 /* keep these in same order as QPalette::ColorRole */
267
273
275};
276
293
301
308
316
325
334
343
350
357
380QT_CSS_DECLARE_TYPEINFO(Value, Q_RELOCATABLE_TYPE)
381
382struct ColorData {
384 ColorData(const QColor &col) : color(col), role(QPalette::NoRole), type(Color) {}
385 ColorData(QPalette::ColorRole r) : role(r), type(Role) {}
388 enum { Invalid, Color, Role} type;
389};
390QT_CSS_DECLARE_TYPEINFO(ColorData, Q_RELOCATABLE_TYPE)
391
392struct BrushData {
394 BrushData(const QBrush &br) : brush(br), role(QPalette::NoRole), type(Brush) {}
395 BrushData(QPalette::ColorRole r) : role(r), type(Role) {}
399};
400QT_CSS_DECLARE_TYPEINFO(BrushData, Q_RELOCATABLE_TYPE)
401
408QT_CSS_DECLARE_TYPEINFO(BackgroundData, Q_RELOCATABLE_TYPE)
409
412 enum { None, Px, Ex, Em, Percent } unit;
413};
414QT_CSS_DECLARE_TYPEINFO(LengthData, Q_PRIMITIVE_TYPE)
415
421QT_CSS_DECLARE_TYPEINFO(BorderData, Q_RELOCATABLE_TYPE)
422
423// 1. StyleRule - x:hover, y:clicked > z:checked { prop1: value1; prop2: value2; }
424// 2. QList<Selector> - x:hover, y:clicked z:checked
425// 3. QList<BasicSelector> - y:clicked z:checked
426// 4. QList<Declaration> - { prop1: value1; prop2: value2; }
427// 5. Declaration - prop1: value1;
428
429struct Q_GUI_EXPORT Declaration
430{
442 inline Declaration() : d(new DeclarationData()) {}
443 inline bool isEmpty() const { return d->property.isEmpty() && d->propertyId == UnknownProperty; }
444
445 // helper functions
446 QColor colorValue(const QPalette & = QPalette()) const;
447 void colorValues(QColor *c, const QPalette & = QPalette()) const;
448 QBrush brushValue(const QPalette & = QPalette()) const;
449 void brushValues(QBrush *c, const QPalette & = QPalette()) const;
450
451 BorderStyle styleValue() const;
452 void styleValues(BorderStyle *s) const;
453
454 Origin originValue() const;
455 Repeat repeatValue() const;
456 Qt::Alignment alignmentValue() const;
459 int styleFeaturesValue() const;
460
461 bool intValue(int *i, const char *unit = nullptr) const;
462 bool realValue(qreal *r, const char *unit = nullptr) const;
463
464 QSize sizeValue() const;
465 QRect rectValue() const;
466 QString uriValue() const;
467 QIcon iconValue() const;
468
469 void borderImageValue(QString *image, int *cuts, TileMode *h, TileMode *v) const;
470 bool borderCollapseValue() const;
471
472 QList<qreal> dashArray() const;
473};
474QT_CSS_DECLARE_TYPEINFO(Declaration, Q_RELOCATABLE_TYPE)
475
476const quint64 PseudoClass_Unknown = Q_UINT64_C(0x0000000000000000);
477const quint64 PseudoClass_Enabled = Q_UINT64_C(0x0000000000000001);
478const quint64 PseudoClass_Disabled = Q_UINT64_C(0x0000000000000002);
479const quint64 PseudoClass_Pressed = Q_UINT64_C(0x0000000000000004);
480const quint64 PseudoClass_Focus = Q_UINT64_C(0x0000000000000008);
481const quint64 PseudoClass_Hover = Q_UINT64_C(0x0000000000000010);
482const quint64 PseudoClass_Checked = Q_UINT64_C(0x0000000000000020);
483const quint64 PseudoClass_Unchecked = Q_UINT64_C(0x0000000000000040);
484const quint64 PseudoClass_Indeterminate = Q_UINT64_C(0x0000000000000080);
485const quint64 PseudoClass_Unspecified = Q_UINT64_C(0x0000000000000100);
486const quint64 PseudoClass_Selected = Q_UINT64_C(0x0000000000000200);
487const quint64 PseudoClass_Horizontal = Q_UINT64_C(0x0000000000000400);
488const quint64 PseudoClass_Vertical = Q_UINT64_C(0x0000000000000800);
489const quint64 PseudoClass_Window = Q_UINT64_C(0x0000000000001000);
490const quint64 PseudoClass_Children = Q_UINT64_C(0x0000000000002000);
491const quint64 PseudoClass_Sibling = Q_UINT64_C(0x0000000000004000);
492const quint64 PseudoClass_Default = Q_UINT64_C(0x0000000000008000);
493const quint64 PseudoClass_First = Q_UINT64_C(0x0000000000010000);
494const quint64 PseudoClass_Last = Q_UINT64_C(0x0000000000020000);
495const quint64 PseudoClass_Middle = Q_UINT64_C(0x0000000000040000);
496const quint64 PseudoClass_OnlyOne = Q_UINT64_C(0x0000000000080000);
497const quint64 PseudoClass_PreviousSelected = Q_UINT64_C(0x0000000000100000);
498const quint64 PseudoClass_NextSelected = Q_UINT64_C(0x0000000000200000);
499const quint64 PseudoClass_Flat = Q_UINT64_C(0x0000000000400000);
500const quint64 PseudoClass_Left = Q_UINT64_C(0x0000000000800000);
501const quint64 PseudoClass_Right = Q_UINT64_C(0x0000000001000000);
502const quint64 PseudoClass_Top = Q_UINT64_C(0x0000000002000000);
503const quint64 PseudoClass_Bottom = Q_UINT64_C(0x0000000004000000);
504const quint64 PseudoClass_Exclusive = Q_UINT64_C(0x0000000008000000);
505const quint64 PseudoClass_NonExclusive = Q_UINT64_C(0x0000000010000000);
506const quint64 PseudoClass_Frameless = Q_UINT64_C(0x0000000020000000);
507const quint64 PseudoClass_ReadOnly = Q_UINT64_C(0x0000000040000000);
508const quint64 PseudoClass_Active = Q_UINT64_C(0x0000000080000000);
509const quint64 PseudoClass_Closable = Q_UINT64_C(0x0000000100000000);
510const quint64 PseudoClass_Movable = Q_UINT64_C(0x0000000200000000);
511const quint64 PseudoClass_Floatable = Q_UINT64_C(0x0000000400000000);
512const quint64 PseudoClass_Minimized = Q_UINT64_C(0x0000000800000000);
513const quint64 PseudoClass_Maximized = Q_UINT64_C(0x0000001000000000);
514const quint64 PseudoClass_On = Q_UINT64_C(0x0000002000000000);
515const quint64 PseudoClass_Off = Q_UINT64_C(0x0000004000000000);
516const quint64 PseudoClass_Editable = Q_UINT64_C(0x0000008000000000);
517const quint64 PseudoClass_Item = Q_UINT64_C(0x0000010000000000);
518const quint64 PseudoClass_Closed = Q_UINT64_C(0x0000020000000000);
519const quint64 PseudoClass_Open = Q_UINT64_C(0x0000040000000000);
520const quint64 PseudoClass_EditFocus = Q_UINT64_C(0x0000080000000000);
521const quint64 PseudoClass_Alternate = Q_UINT64_C(0x0000100000000000);
522// The Any specifier is never generated, but can be used as a wildcard in searches.
523const quint64 PseudoClass_Any = Q_UINT64_C(0x0000ffffffffffff);
524const int NumPseudos = 45;
525
534QT_CSS_DECLARE_TYPEINFO(Pseudo, Q_RELOCATABLE_TYPE)
535
553
574QT_CSS_DECLARE_TYPEINFO(BasicSelector, Q_RELOCATABLE_TYPE)
575
576struct Q_GUI_EXPORT Selector
577{
579 int specificity() const;
580 quint64 pseudoClass(quint64 *negated = nullptr) const;
581 QString pseudoElement() const;
582};
583QT_CSS_DECLARE_TYPEINFO(Selector, Q_RELOCATABLE_TYPE)
584
592QT_CSS_DECLARE_TYPEINFO(StyleRule, Q_RELOCATABLE_TYPE)
593
599QT_CSS_DECLARE_TYPEINFO(MediaRule, Q_RELOCATABLE_TYPE)
600
606QT_CSS_DECLARE_TYPEINFO(PageRule, Q_RELOCATABLE_TYPE)
607
619QT_CSS_DECLARE_TYPEINFO(AnimationRule, Q_RELOCATABLE_TYPE)
620
626QT_CSS_DECLARE_TYPEINFO(ImportRule, Q_RELOCATABLE_TYPE)
627
635
637{
639 QList<StyleRule> styleRules; // only contains rules that are not indexed
645 int depth; // applicable only for inline style sheets
648
649 Q_GUI_EXPORT void buildIndexes(Qt::CaseSensitivity nameCaseSensitivity = Qt::CaseSensitive);
650};
651QT_CSS_DECLARE_TYPEINFO(StyleSheet, Q_RELOCATABLE_TYPE)
652
653
654class Q_GUI_EXPORT StyleSelector
655{
656public:
658 virtual ~StyleSelector();
659
660 union NodePtr {
661 void *ptr;
662 int id;
663 };
664
667
668 virtual bool nodeNameEquals(NodePtr node, const QString& nodeName) const;
670 virtual bool hasAttributes(NodePtr node) const = 0;
671 virtual QStringList nodeIds(NodePtr node) const;
672 virtual QStringList nodeNames(NodePtr node) const = 0;
673 virtual bool isNullNode(NodePtr node) const = 0;
674 virtual NodePtr parentNode(NodePtr node) const = 0;
676 virtual NodePtr duplicateNode(NodePtr node) const = 0;
677 virtual void freeNode(NodePtr node) const = 0;
678
682private:
687};
688
740
741struct Symbol
742{
743 inline Symbol() : token(NONE), start(0), len(-1) {}
746 int start, len;
747 Q_GUI_EXPORT QString lexem() const;
748};
749QT_CSS_DECLARE_TYPEINFO(Symbol, Q_RELOCATABLE_TYPE)
750
751class Q_GUI_EXPORT Scanner
752{
753public:
754 static QString preprocess(const QString &input, bool *hasEscapeSequences = nullptr);
755 static void scan(const QString &preprocessedInput, QList<Symbol> *symbols);
756};
757
758class Q_GUI_EXPORT Parser
759{
760public:
761 Parser();
762 explicit Parser(const QString &css, bool file = false);
763
764 void init(const QString &css, bool file = false);
767
780 bool parseClass(QString *name);
786 bool parseExpr(QList<Value> *values);
787 bool parseTerm(Value *value);
789 bool parseHexColor(QColor *col);
791
792 inline bool testRuleset() { return testSelector(); }
793 inline bool testSelector() { return testSimpleSelector(); }
794 inline bool parseNextSelector(Selector *sel) { if (!testSelector()) return recordError(); return parseSelector(sel); }
795 bool testSimpleSelector();
797 inline bool testElementName() { return test(IDENT) || test(STAR); }
798 inline bool testClass() { return test(DOT); }
799 inline bool testAttrib() { return test(LBRACKET); }
800 inline bool testPseudo() { return test(COLON); }
801 inline bool testMedium() { return test(IDENT); }
802 inline bool parseNextMedium(QStringList *media) { if (!testMedium()) return recordError(); return parseMedium(media); }
803 inline bool testPseudoPage() { return test(COLON); }
807 inline bool testAnimation() { return testTokenAndEndsWith(ATKEYWORD_SYM, QLatin1StringView("keyframes")); }
808 inline bool testCombinator() { return test(PLUS) || test(GREATER) || test(TILDE) || test(S); }
809 inline bool testProperty() { return test(IDENT); }
810 bool testTerm();
811 inline bool testExpr() { return testTerm(); }
813 {
814 if (!testExpr())
815 return recordError();
816 return parseExpr(values);
817 }
818 bool testPrio();
819 inline bool testHexColor() { return test(HASH); }
820 inline bool testFunction() { return test(FUNCTION); }
821 inline bool parseNextFunction(QString *name, QString *args) { if (!testFunction()) return recordError(); return parseFunction(name, args); }
822
823 inline bool lookupElementName() const { return lookup() == IDENT || lookup() == STAR; }
824
825 inline void skipSpace() { while (test(S)) {}; }
826
827 inline bool hasNext() const { return index < symbols.size(); }
828 inline TokenType next() { return symbols.at(index++).token; }
829 bool next(TokenType t);
830 bool test(TokenType t);
831 inline void prev() { index--; }
832 inline const Symbol &symbol() const { return symbols.at(index - 1); }
833 inline QString lexem() const { return symbol().lexem(); }
834 QString unquotedLexem() const;
837 inline TokenType lookup() const {
838 return (index - 1) < symbols.size() ? symbols.at(index - 1).token : NONE;
839 }
840
842
843 inline bool recordError() { errorIndex = index; return false; }
844
846 int index;
850};
851
852struct Q_GUI_EXPORT ValueExtractor
853{
855
858 QCss::Origin *);
859 bool extractGeometry(int *w, int *h, int *minw, int *minh, int *maxw, int *maxh);
860 bool extractPosition(int *l, int *t, int *r, int *b, QCss::Origin *, Qt::Alignment *,
862 bool extractBox(int *margins, int *paddings, int *spacing = nullptr);
867 QBrush *accent);
871
872 void lengthValues(const Declaration &decl, int *m);
874
875private:
876 void extractFont();
879 int lengthValue(const Declaration &decl);
881 void sizeValues(const Declaration &decl, QSize *radii);
882
884 QFont f;
885 int adjustment;
886 int fontExtracted;
888};
889
890} // namespace QCss
891
892QT_END_NAMESPACE
893
894QT_DECL_METATYPE_EXTERN_TAGGED(QCss::BackgroundData, QCss__BackgroundData, Q_GUI_EXPORT)
895QT_DECL_METATYPE_EXTERN_TAGGED(QCss::LengthData, QCss__LengthData, Q_GUI_EXPORT)
896QT_DECL_METATYPE_EXTERN_TAGGED(QCss::BorderData, QCss__BorderData, Q_GUI_EXPORT)
897
898#undef QT_CSS_DECLARE_TYPEINFO
899
900#endif // QT_NO_CSSPARSER
901
902#endif
\inmodule QtGui
Definition qbrush.h:465
\inmodule QtGui
Definition qbrush.h:413
\inmodule QtGui
Definition qbrush.h:431
const quint64 PseudoClass_Unknown
const quint64 PseudoClass_Floatable
const quint64 PseudoClass_Movable
@ BottomEdge
@ RightEdge
const int NumPseudos
const quint64 PseudoClass_Children
const quint64 PseudoClass_Disabled
const quint64 PseudoClass_Sibling
const quint64 PseudoClass_ReadOnly
const quint64 PseudoClass_Closed
const quint64 PseudoClass_Maximized
const quint64 PseudoClass_Default
@ Repeat_XY
@ Repeat_Unknown
@ Repeat_None
@ NumKnownRepeats
const quint64 PseudoClass_Bottom
@ TopRightCorner
@ BottomRightCorner
@ BottomLeftCorner
@ TopLeftCorner
const quint64 PseudoClass_EditFocus
const quint64 PseudoClass_Focus
const quint64 PseudoClass_Enabled
const quint64 PseudoClass_Editable
const quint64 PseudoClass_Vertical
const quint64 PseudoClass_Flat
const quint64 PseudoClass_NonExclusive
@ Origin_Padding
@ Origin_Content
@ NumKnownOrigins
@ Origin_Unknown
@ Origin_Margin
@ Origin_Border
@ ATKEYWORD_SYM
@ DASHMATCH
@ PERCENTAGE
@ BEGINSWITH
@ SEMICOLON
@ EXCLAMATION_SYM
const quint64 PseudoClass_Pressed
const quint64 PseudoClass_Item
const quint64 PseudoClass_Alternate
const quint64 PseudoClass_PreviousSelected
const quint64 PseudoClass_Closable
const quint64 PseudoClass_Horizontal
const quint64 PseudoClass_Off
const quint64 PseudoClass_Active
const quint64 PseudoClass_NextSelected
@ StyleFeature_BackgroundGradient
@ NumKnownStyleFeatures
@ StyleFeature_BackgroundColor
@ StyleFeature_None
const quint64 PseudoClass_Open
const quint64 PseudoClass_Frameless
const quint64 PseudoClass_Checked
const quint64 PseudoClass_Any
const quint64 PseudoClass_Selected
@ Attachment_Fixed
@ NumKnownAttachments
@ Attachment_Scroll
@ Attachment_Unknown
const quint64 PseudoClass_Right
@ Value_Disc
@ Value_Bottom
@ Value_Wave
@ Value_UpperRoman
@ Value_Oblique
@ Value_Selected
@ Value_XXLarge
@ Value_Decimal
@ Value_PreWrap
@ Value_Link
@ Value_Active
@ Value_Button
@ Value_Left
@ Value_Circle
@ Value_Medium
@ Value_Midlight
@ Value_SvgMiterJoin
@ Value_Pre
@ Value_SquareCap
@ Value_Normal
@ Value_LineThrough
@ Value_DotDotDash
@ Value_Square
@ Value_Small
@ Value_Groove
@ Value_Transparent
@ Value_LowerAlpha
@ Value_Off
@ Value_Solid
@ Value_Disabled
@ Value_Light
@ Value_Super
@ Value_NoWrap
@ Value_LastColorRole
@ Value_Base
@ Value_Outset
@ NumKnownValues
@ Value_Accent
@ Value_Shadow
@ Value_Native
@ Value_ButtonText
@ Value_RoundJoin
@ Value_FirstColorRole
@ Value_LowerRoman
@ Value_Top
@ Value_None
@ Value_Highlight
@ Value_Bold
@ Value_ToolTipText
@ UnknownValue
@ Value_Dark
@ Value_Center
@ Value_Right
@ Value_Sub
@ Value_Text
@ Value_PreLine
@ Value_HighlightedText
@ Value_WindowText
@ Value_FlatCap
@ Value_Underline
@ Value_ToolTipBase
@ Value_DotDash
@ Value_Uppercase
@ Value_Auto
@ Value_Inset
@ Value_Large
@ Value_XLarge
@ Value_MiterJoin
@ Value_SmallCaps
@ Value_RoundCap
@ Value_Double
@ Value_AlternateBase
@ Value_BevelJoin
@ Value_Mid
@ Value_Overline
@ Value_Ridge
@ Value_UpperAlpha
@ Value_PlaceholderText
@ Value_Dashed
@ Value_BrightText
@ Value_Always
@ Value_LinkVisited
@ Value_Dotted
@ Value_Middle
@ Value_Window
@ Value_NoRole
@ Value_Lowercase
@ Value_Italic
@ BorderImage
@ BorderTopLeftRadius
@ BackgroundColor
@ Whitespace
@ OutlineTopLeftRadius
@ MarginLeft
@ QtAlternateBackground
@ QtStrokeMiterLimit
@ BorderTopColor
@ QtPlaceHolderTextColor
@ MarginRight
@ BorderBottomLeftRadius
@ QtStrokeDashArray
@ QtTableType
@ BorderBottom
@ Padding
@ QtStyleFeatures
@ BorderTopStyle
@ OutlineBottomRightRadius
@ FontKerning
@ NumProperties
@ BorderRightWidth
@ QtStrokeColor
@ PaddingRight
@ QtStrokeDashOffset
@ BackgroundOrigin
@ BorderBottomColor
@ UnknownProperty
@ MarginTop
@ TextUnderlineStyle
@ QtListIndent
@ PaddingLeft
@ PaddingTop
@ QtForeground
@ QtSpacing
@ BorderLeftColor
@ OutlineTopRightRadius
@ BorderRightColor
@ QtSelectionForeground
@ PaddingBottom
@ LetterSpacing
@ BorderBottomRightRadius
@ QtListNumberPrefix
@ OutlineWidth
@ PageBreakAfter
@ BorderRight
@ OutlineColor
@ OutlineBottomLeftRadius
@ FontWeight
@ QtBackgroundRole
@ QtForegroundTextureCacheKey
@ TextIndent
@ QtPosition
@ BorderColor
@ MarginBottom
@ MaximumWidth
@ QtUserState
@ OutlineStyle
@ BorderLeftWidth
@ BorderCollapse
@ QtBlockIndent
@ BackgroundPosition
@ WordSpacing
@ QtStrokeWidth
@ BackgroundImage
@ BorderRightStyle
@ FontStyle
@ TextTransform
@ FontFamily
@ FontVariant
@ BorderWidth
@ VerticalAlignment
@ LineHeight
@ QtParagraphType
@ QtSelectionBackground
@ BorderStyles
@ BorderLeft
@ TextDecoration
@ BorderTopRightRadius
@ ListStyleType
@ OutlineOffset
@ BorderRadius
@ ListStyle
@ QtStrokeLineJoin
@ BorderBottomWidth
@ Background
@ BorderTopWidth
@ OutlineRadius
@ MinimumWidth
@ BackgroundAttachment
@ TextAlignment
@ BackgroundClip
@ TextDecorationColor
@ QtListNumberSuffix
@ QtImageAlignment
@ BorderBottomStyle
@ BorderTop
@ FontSize
@ PageBreakBefore
@ QtLineHeightType
@ BackgroundRepeat
@ BorderLeftStyle
@ MinimumHeight
@ MaximumHeight
@ QtStrokeLineCap
const quint64 PseudoClass_Window
const quint64 PseudoClass_Minimized
@ TileMode_Unknown
@ TileMode_Repeat
@ NumKnownTileModes
@ TileMode_Round
@ TileMode_Stretch
StyleSheetOrigin
@ StyleSheetOrigin_UserAgent
@ StyleSheetOrigin_User
@ StyleSheetOrigin_Author
@ StyleSheetOrigin_Unspecified
@ StyleSheetOrigin_Inline
const quint64 PseudoClass_On
const quint64 PseudoClass_Unspecified
const quint64 PseudoClass_Unchecked
const quint64 PseudoClass_First
const quint64 PseudoClass_Indeterminate
const quint64 PseudoClass_Middle
@ PositionMode_Absolute
@ PositionMode_Relative
@ PositionMode_Unknown
@ PositionMode_Static
@ PositionMode_Fixed
@ NumKnownPositionModes
const quint64 PseudoClass_Top
const quint64 PseudoClass_Hover
@ BorderStyle_Dotted
@ BorderStyle_Solid
@ BorderStyle_Double
@ BorderStyle_DotDash
@ BorderStyle_Ridge
@ BorderStyle_Unknown
@ BorderStyle_Dashed
@ BorderStyle_Outset
@ BorderStyle_Groove
@ BorderStyle_Native
@ NumKnownBorderStyles
@ BorderStyle_None
@ BorderStyle_DotDotDash
@ BorderStyle_Inset
const quint64 PseudoClass_Left
const quint64 PseudoClass_Last
const quint64 PseudoClass_OnlyOne
const quint64 PseudoClass_Exclusive
Combined button and popup list for selecting options.
static void setTextDecorationFromValues(const QList< QCss::Value > &values, QFont *font)
static const QCssKnownValue origins[NumKnownOrigins - 1]
static bool operator<(const QString &name, const QCssKnownValue &prop)
static void removeOptionalQuotes(QString *str)
static const QCssKnownValue attachments[NumKnownAttachments - 1]
static bool setFontFamilyFromValues(const QList< QCss::Value > &values, QFont *font, int start=0)
static bool setFontWeightFromValue(const QCss::Value &value, QFont *font)
static const QCssKnownValue repeats[NumKnownRepeats - 1]
static int lengthValueFromData(const LengthData &data, const QFont &f)
static bool operator<(const QCssKnownValue &prop, const QString &name)
static const QCssKnownValue pseudos[NumPseudos - 1]
static void setTextTransformFromValue(const QCss::Value &value, QFont *font)
static const short indexOfId[NumKnownValues]
static bool setFontSizeFromValue(QCss::Value value, QFont *font, int *fontSizeAdjustment)
static bool setFontStyleFromValue(const QCss::Value &value, QFont *font)
static ColorData parseColorValue(QCss::Value v)
static BorderStyle parseStyleValue(const QCss::Value &v)
static void setFontVariantFromValue(const QCss::Value &value, QFont *font)
static const QCssKnownValue values[NumKnownValues - 1]
static bool intValueHelper(const QCss::Value &v, int *i, const char *unit)
static quint64 findKnownValue(const QString &name, const QCssKnownValue *start, int numValues)
static const QCssKnownValue tileModes[NumKnownTileModes - 1]
static Qt::Alignment parseAlignment(const QCss::Value *values, int count)
static const QCssKnownValue styleFeatures[NumKnownStyleFeatures - 1]
static void setLetterSpacingFromValue(const QCss::Value &value, QFont *font)
static BrushData parseBrushValue(const QCss::Value &v, const QPalette &pal)
static bool isHexDigit(const char c)
static bool isInheritable(Property propertyId)
static bool setFontKerningFromValue(const QCss::Value &value, QFont *font)
static void parseShorthandBackgroundProperty(const QList< QCss::Value > &values, BrushData *brush, QString *image, Repeat *repeat, Qt::Alignment *alignment, const QPalette &pal)
static const QCssKnownValue properties[NumProperties - 1]
static const QCssKnownValue positions[NumKnownPositionModes - 1]
static void parseShorthandFontProperty(const QList< QCss::Value > &values, QFont *font, int *fontSizeAdjustment)
static QBrush brushFromData(const BrushData &c, const QPalette &pal)
static void setWordSpacingFromValue(const QCss::Value &value, QFont *font)
static QColor colorFromData(const ColorData &c, const QPalette &pal)
#define QT_CSS_DECLARE_TYPEINFO(Class, Type)
const char name[28]
QList< AnimationRuleSet > ruleSets
ValueMatchType valueMatchCriterium
Qt::Alignment alignment
QList< Pseudo > pseudos
QList< AttributeSelector > attributeSelectors
BorderStyle style
BrushData(QPalette::ColorRole r)
BrushData(const QBrush &br)
QPalette::ColorRole role
ColorData(const QColor &col)
QPalette::ColorRole role
ColorData(QPalette::ColorRole r)
QStringList media
QStringList media
QList< StyleRule > styleRules
QList< Declaration > declarations
QString function
QList< Selector > selectors
QList< Declaration > declarations
QList< StyleRule > styleRules
QList< MediaRule > mediaRules
QList< AnimationRule > animationRules
Q_GUI_EXPORT void buildIndexes(Qt::CaseSensitivity nameCaseSensitivity=Qt::CaseSensitive)
QMultiHash< QString, StyleRule > idIndex
QMultiHash< QString, StyleRule > nameIndex
StyleSheetOrigin origin
QList< ImportRule > importRules
QList< PageRule > pageRules
TokenType token
QVariant variant