diff options
| author | Martin Owens <doctormo@gmail.com> | 2018-11-13 00:25:05 +0000 |
|---|---|---|
| committer | Martin Owens <doctormo@gmail.com> | 2018-11-13 00:25:05 +0000 |
| commit | db722f5b79ef1517f0b6e9a96968ad257dffc6f9 (patch) | |
| tree | f7992f8cc42739e3aef74233efaf840045c9cb87 /src/object/sp-style-elem.cpp | |
| parent | Support multiple style sheets or style elements in an svg document (diff) | |
| download | inkscape-db722f5b79ef1517f0b6e9a96968ad257dffc6f9.tar.gz inkscape-db722f5b79ef1517f0b6e9a96968ad257dffc6f9.zip | |
Add capability to get style rulesets as SPStyle objects
Diffstat (limited to 'src/object/sp-style-elem.cpp')
| -rw-r--r-- | src/object/sp-style-elem.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/object/sp-style-elem.cpp b/src/object/sp-style-elem.cpp index 14e4a8d90..de2041764 100644 --- a/src/object/sp-style-elem.cpp +++ b/src/object/sp-style-elem.cpp @@ -450,6 +450,23 @@ void update_style_recursively( SPObject *object ) { } } +/* + * Returns each statement as an SPStyle + */ +std::vector<SPStyle *> SPStyleElem::getStyles() { + std::vector<SPStyle *> ret; + gint count = cr_stylesheet_nr_rules(style_sheet); + + for (gint x = 0; x < count; x++) { + SPStyle *item = new SPStyle(nullptr, nullptr); + CRStatement *statement = cr_stylesheet_statement_get_from_list(style_sheet, x); + item->mergeStatement(statement); + ret.push_back(item); + } + + return ret; +} + void SPStyleElem::read_content() { // First, create the style-sheet object and track it in this |
