/* // http://www.w3.org/TR/SVG/pservers.html#InterfaceSVGGradientElement interface SVGGradientElement : SVGElement, SVGURIReference, SVGExternalResourcesRequired, SVGStylable, SVGUnitTypes { // Spread Method Types const unsigned short SVG_SPREADMETHOD_UNKNOWN = 0; const unsigned short SVG_SPREADMETHOD_PAD = 1; const unsigned short SVG_SPREADMETHOD_REFLECT = 2; const unsigned short SVG_SPREADMETHOD_REPEAT = 3; readonly attribute SVGAnimatedEnumeration gradientUnits; readonly attribute SVGAnimatedTransformList gradientTransform; readonly attribute SVGAnimatedEnumeration spreadMethod; */ #import "SVGElement.h" #import "SVGRect.h" #import "SVGGradientStop.h" #import "SVGTransformable.h" #import "SVGPreserveAspectRatio.h" #import "SVGUnitTypes.h" typedef NS_ENUM(NSUInteger, SVGSpreadMethod) { SVGSpreadMethodUnkown = 0, SVGSpreadMethodPad = 1, SVGSpreadMethodReflect = 2, SVGSpreadMethodRepeat = 3 }; @class SVGGradientLayer; @interface SVGGradientElement : SVGElement /* NB: does NOT implemente "SVGLayeredElement" because spec says that these specifically NEVER appear in the output */ @property (readonly, strong) NSArray *stops; /* FIXME: not in SVG Spec */ @property (readonly, strong) NSArray *locations; /* FIXME: not in SVG Spec */ @property (readonly, strong) NSArray *colors; /* FIXME: not in SVG Spec */ @property (readonly, assign) SVG_UNIT_TYPE gradientUnits; @property (readonly, assign) SVGSpreadMethod spreadMethod; /* FIXME: currently only support `pad`. other methods are not supported */ -(void)addStop:(SVGGradientStop *)gradientStop; /* FIXME: not in SVG Spec */ -(NSString*) getAttributeInheritedIfNil:(NSString*)attrName; -(SVGGradientLayer *)newGradientLayerForObjectRect:(CGRect)objectRect viewportRect:(SVGRect)viewportRect transform:(CGAffineTransform)transform; - (void)synthesizeProperties; // resolve any xlink:hrefs to other gradients @end