diff options
| author | Jon A. Cruz <jon@joncruz.org> | 2010-07-18 08:46:40 +0000 |
|---|---|---|
| committer | Jon A. Cruz <jon@joncruz.org> | 2010-07-18 08:46:40 +0000 |
| commit | 1c3d6f7f4ada17b71735cb65f22325f590df32d6 (patch) | |
| tree | 922a4ed19f4f08edbcf0b5ee216bc95e4773ea8f /src/sp-stop.cpp | |
| parent | Forgot CMakeLists, now 0.48.0 as well. (diff) | |
| download | inkscape-1c3d6f7f4ada17b71735cb65f22325f590df32d6.tar.gz inkscape-1c3d6f7f4ada17b71735cb65f22325f590df32d6.zip | |
Correcting black gradient stops when swatches are set or drug.
Fixed bugs:
- https://launchpad.net/bugs/594441
(bzr r9606.1.10)
Diffstat (limited to 'src/sp-stop.cpp')
| -rw-r--r-- | src/sp-stop.cpp | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/sp-stop.cpp b/src/sp-stop.cpp index 740cfef78..031c6a3ea 100644 --- a/src/sp-stop.cpp +++ b/src/sp-stop.cpp @@ -15,7 +15,7 @@ #include "sp-stop.h" - +#include "style.h" // A stop might have some non-stop siblings SPStop* SPStop::getNextStop() @@ -52,6 +52,33 @@ SPStop* SPStop::getPrevStop() return result; } +SPColor SPStop::readStopColor( Glib::ustring const &styleStr, guint32 dfl ) +{ + SPColor color(dfl); + SPStyle style; + SPIPaint paint; + paint.read( styleStr.c_str(), style ); + if ( paint.isColor() ) { + color = paint.value.color; + } + return color; +} + +SPColor SPStop::getEffectiveColor() const +{ + SPColor ret; + if (currentColor) { + char const *str = sp_object_get_style_property(this, "color", NULL); + /* Default value: arbitrarily black. (SVG1.1 and CSS2 both say that the initial + * value depends on user agent, and don't give any further restrictions that I can + * see.) */ + ret = readStopColor( str, 0 ); + } else { + ret = specified_color; + } + return ret; +} + /* |
