|
|
Donner SVG 0.8.0-pre
SVG editor and embeddable C++20 engine.
|
Data for a <style> element. More...
#include "donner/svg/components/StylesheetComponent.h"
Public Member Functions | |
| bool | isCssType () const |
| Returns true if the <style> element has either no type attribute, or if it has been manually set to "text/css". | |
| bool | usesAttributeInSelector (std::string_view localName) const |
| Returns true if this stylesheet contains an attribute selector that could match an attribute with the given local name, meaning writing that attribute can change which elements the stylesheet matches. | |
| void | parseStylesheet (const RcStringOrRef &str) |
| Parse the contents of the <style> element. | |
| void | parseStylesheet (const RcStringOrRef &str, StylesheetSourceMap sourceMap) |
| Parse the contents of the <style> element with source provenance. | |
Public Attributes | |
| css::Stylesheet | stylesheet |
| The parsed stylesheet from the <style> element. | |
| RcString | text |
| The raw CSS text the stylesheet was parsed from. | |
| RcString | type |
| The type attribute of the <style> element. | |
| StylesheetSourceMap | sourceMap |
| Optional mapping from CSS offsets to SVG document source. | |
| bool | isUserAgentStylesheet = false |
| True if this is a user agent stylesheet, which is defined by the SVG specification and applied by default by the document. If set, this component is attached to an <svg> element instead. The stylesheet within is applied at lower priority, and should be considered a constant for Donner (it can be overridden, but the base style cannot be changed by the user). | |
| std::vector< RcString > | attributeSelectorNames |
| Local names of the attributes referenced by attribute selectors in stylesheet, cached when the stylesheet is parsed. | |
| bool | attributeSelectorMatchesAnyName = false |
| True when an attribute selector in stylesheet uses a wildcard local name, so any attribute write can change selector matching. | |
Data for a <style> element.
| void donner::svg::components::StylesheetComponent::parseStylesheet | ( | const RcStringOrRef & | str | ) |
| void donner::svg::components::StylesheetComponent::parseStylesheet | ( | const RcStringOrRef & | str, |
| StylesheetSourceMap | sourceMap ) |
|
inline |
Returns true if this stylesheet contains an attribute selector that could match an attribute with the given local name, meaning writing that attribute can change which elements the stylesheet matches.
Deliberately per-name rather than a single "uses any attribute selector" flag: the user agent stylesheet always contains one (*[xml|space=preserve]), so a single flag would be set for every document.
| localName | Attribute local name, compared case-insensitively to over-approximate. |
| bool donner::svg::components::StylesheetComponent::attributeSelectorMatchesAnyName = false |
True when an attribute selector in stylesheet uses a wildcard local name, so any attribute write can change selector matching.
No CSS syntax produces this today.
| std::vector<RcString> donner::svg::components::StylesheetComponent::attributeSelectorNames |
Local names of the attributes referenced by attribute selectors in stylesheet, cached when the stylesheet is parsed.
Used by usesAttributeInSelector.