From 998e601fb0de79b7617fa9402eb36537041663c6 Mon Sep 17 00:00:00 2001 From: "Jon A. Cruz" Date: Fri, 5 Mar 2010 22:31:33 -0800 Subject: New tab in Fill&Stroke dialog for swatch fills. (bzr r9153) --- src/sp-gradient.cpp | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'src/sp-gradient.cpp') diff --git a/src/sp-gradient.cpp b/src/sp-gradient.cpp index 3fd120fb3..fb16e9e5a 100644 --- a/src/sp-gradient.cpp +++ b/src/sp-gradient.cpp @@ -638,19 +638,27 @@ sp_gradient_modified(SPObject *object, guint flags) } } - -bool SPGradient::isSolid() const +SPStop* SPGradient::getFirstStop() { - bool solid = false; - if ( SP_GRADIENT_HAS_STOPS(this) && (sp_number_of_stops(this) == 0) ) { - gchar const * attr = repr->attribute("osb:paint"); - if (attr && !strcmp(attr, "solid")) { - solid = true; + SPStop* first = 0; + for (SPObject *ochild = sp_object_first_child(this); ochild && !first; ochild = SP_OBJECT_NEXT(ochild)) { + if (SP_IS_STOP(ochild)) { + first = SP_STOP(ochild); } } - return solid; + return first; } +int SPGradient::getStopCount() const +{ + int count = 0; + + for (SPStop *stop = const_cast(this)->getFirstStop(); stop && sp_next_stop(stop); stop = sp_next_stop(stop)) { + count++; + } + + return count; +} /** * Write gradient attributes to repr. -- cgit v1.2.3