diff options
author | Florin Malita <fmalita@chromium.org> | 2017-10-12 11:33:28 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-10-12 17:06:34 +0000 |
commit | ffe6ae49e48a8c5cb53cec93643a2ad054faf74a (patch) | |
tree | a05f09ad8de93641de8abdcb4a878443d40d8ae4 /experimental/svg/model/SkSVGAttributeParser.cpp | |
parent | 177e695589edb1f776cc5c28b9d3eee244d48284 (diff) |
[SVGDom] Add 'visibility' support
https://www.w3.org/TR/SVG/painting.html#VisibilityProperty
Change-Id: I8b872af26150d93cf39cf8eeba23c91e1decace3
Reviewed-on: https://skia-review.googlesource.com/58863
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Diffstat (limited to 'experimental/svg/model/SkSVGAttributeParser.cpp')
-rw-r--r-- | experimental/svg/model/SkSVGAttributeParser.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/experimental/svg/model/SkSVGAttributeParser.cpp b/experimental/svg/model/SkSVGAttributeParser.cpp index f8eef8cfa7..aee15b394e 100644 --- a/experimental/svg/model/SkSVGAttributeParser.cpp +++ b/experimental/svg/model/SkSVGAttributeParser.cpp @@ -593,3 +593,27 @@ bool SkSVGAttributeParser::parseFillRule(SkSVGFillRule* fillRule) { return parsedValue && this->parseEOSToken(); } + +// https://www.w3.org/TR/SVG/painting.html#VisibilityProperty +bool SkSVGAttributeParser::parseVisibility(SkSVGVisibility* visibility) { + static const struct { + SkSVGVisibility::Type fType; + const char* fName; + } gVisibilityInfo[] = { + { SkSVGVisibility::Type::kVisible , "visible" }, + { SkSVGVisibility::Type::kHidden , "hidden" }, + { SkSVGVisibility::Type::kCollapse, "collapse" }, + { SkSVGVisibility::Type::kInherit , "inherit" }, + }; + + bool parsedValue = false; + for (const auto& parseInfo : gVisibilityInfo) { + if (this->parseExpectedStringToken(parseInfo.fName)) { + *visibility = SkSVGVisibility(parseInfo.fType); + parsedValue = true; + break; + } + } + + return parsedValue && this->parseEOSToken(); +} |