summaryrefslogtreecommitdiffstats
path: root/src/sp-stop.cpp
diff options
context:
space:
mode:
authorJon A. Cruz <jon@joncruz.org>2010-07-18 08:46:40 +0000
committerJon A. Cruz <jon@joncruz.org>2010-07-18 08:46:40 +0000
commit1c3d6f7f4ada17b71735cb65f22325f590df32d6 (patch)
tree922a4ed19f4f08edbcf0b5ee216bc95e4773ea8f /src/sp-stop.cpp
parentForgot CMakeLists, now 0.48.0 as well. (diff)
downloadinkscape-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.cpp29
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;
+}
+
/*