diff --git a/src/sp-stop.cpp b/src/sp-stop.cpp
index 740cfef7853e49dc0eedf63a13ea247ccb08d388..0c0a3b03aa19f3c9fbf981227e634ef47ddca7a6 100644 (file)
--- a/src/sp-stop.cpp
+++ b/src/sp-stop.cpp
#include "sp-stop.h"
-
+#include "style.h"
// A stop might have some non-stop siblings
SPStop* SPStop::getNextStop()
return result;
}
+SPColor SPStop::readStopColor( Glib::ustring const &styleStr, guint32 dfl )
+{
+ SPColor color(dfl);
+ SPStyle* style = sp_style_new(0);
+ SPIPaint paint;
+ paint.read( styleStr.c_str(), *style );
+ if ( paint.isColor() ) {
+ color = paint.value.color;
+ }
+ sp_style_unref(style);
+ return color;
+}
+
+SPColor SPStop::getEffectiveColor() const
+{
+ SPColor ret;
+ if (currentColor) {
+ char const *str = getStyleProperty("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;
+}
+
/*
fill-column:99
End:
*/
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :