{-# LANGUAGE OverloadedStrings #-} ------------------------------------------------------------------------------- -- | -- Module : Graphics.Svg.Attributes -- Copyright : (c) 2015 Jeffrey Rosenbluth -- License : BSD-style (see LICENSE) -- Maintainer : jeffrey.rosenbluth@gmail.com -- -- SVG Attributes. -- ------------------------------------------------------------------------------- module Graphics.Svg.Attributes ( (<<-) , (->>) , bindAttr , AttrTag(..) ) where import Graphics.Svg.Core import Data.Text (Text) -- | Make an 'Attribute' from it's value constructor and it's text value. -- by combining an 'AttrTag' with it's value. -- -- > [bindAttr Width "100%, bindAttr Height "100%", bindAttr Fill "red"] bindAttr :: AttrTag -> Text -> Attribute bindAttr t v = makeAttribute (tag2text t) v -- | Infix version of 'bindAttr' -- Each argument is set using '<<-', the 'bindAttr' function or '->>'. -- -- > [Width_ <<- "100%", Height_ <<- "100%", Fill_ <<- "red"] infix 4 <<- (<<-) :: AttrTag -> Text -> Attribute (<<-) = bindAttr -- | Infix version of 'bindAttr' with it's arguments reversed. -- -- > ["100%" ->> Width_, "100%" ->> Height_, "red" ->> Fill_] infix 4 ->> (->>) :: Text -> AttrTag -> Attribute (->>) = flip bindAttr data AttrTag = Accent_height_ | Accumulate_ | Additive_ | Alignment_baseline_ | Alphabetic_ | Amplitude_ | Arabic_form_ | Ascent_ | AttributeName_ | AttributeType_ | Azimuth_ | BaseFrequency_ | Baseprofile_ | Baseline_shift_ | Bbox_ | Begin_ | Bias_ | By_ | CalcMode_ | Cap_height_ | Class_ | Clip_ | Clip_path_ | Clip_rule_ | ClipPathUnits_ | Color_ | Color_interpolation_ | Color_interpolation_filters_ | Color_profile_ | Color_rendering_ | ContentScriptType_ | ContentStyleType_ | Cursor_ | Cx_ | Cy_ | D_ | Descent_ | DiffuseConstant_ | Direction_ | Display_ | Divisor_ | Dominant_baseline_ | Dur_ | Dx_ | Dy_ | EdgeMode_ | Elevation_ | Enable_background_ | End_ | Exponent_ | ExternalResourcesRequired_ | Fill_ | Fill_opacity_ | Fill_rule_ | Filter_ | FilterRes_ | FilterUnits_ | Flood_color_ | Flood_opacity_ | Font_family_ | Font_size_ | Font_size_adjust_ | Font_stretch_ | Font_style_ | Font_variant_ | Font_weight_ | Format_ | From_ | Fx_ | Fy_ | G1_ | G2_ | Glyph_name_ | Glyph_orientation_horizontal_ | Glyph_orientation_vertical_ | GradientTransform_ | GradientUnits_ | Hanging_ | Height_ | Horiz_adv_x_ | Horiz_origin_x_ | Horiz_origin_y_ | Id_ | Ideographic_ | Image_rendering_ | In_ | In2_ | Intercept_ | K_ | K1_ | K2_ | K3_ | K4_ | KernelMatrix_ | KernelUnitLength_ | Kerning_ | KeyPoints_ | KeySplines_ | KeyTimes_ | Lang_ | LengthAdjust_ | Letter_spacing_ | Lighting_color_ | LimitingConeAngle_ | Local_ | Marker_end_ | Marker_mid_ | Marker_start_ | MarkerHeight_ | MarkerUnits_ | MarkerWidth_ | MaskContentUnits_ | MaskUnits_ | Mathematical_ | Max_ | Media_ | Method_ | Min_ | Mode_ | Name_ | NumOctaves_ | Offset_ | Onabort_ | Onactivate_ | Onbegin_ | Onclick_ | Onend_ | Onerror_ | Onfocusin_ | Onfocusout_ | Onload_ | Onmousedown_ | Onmousemove_ | Onmouseout_ | Onmouseover_ | Onmouseup_ | Onrepeat_ | Onresize_ | Onscroll_ | Onunload_ | Onzoom_ | Opacity_ | Operator_ | Order_ | Orient_ | Orientation_ | Origin_ | Overflow_ | Overline_position_ | Overline_thickness_ | Panose_1_ | Paint_order_ | Path_ | PathLength_ | PatternContentUnits_ | PatternTransform_ | PatternUnits_ | Pointer_events_ | Points_ | PointsAtX_ | PointsAtY_ | PointsAtZ_ | PreserveAlpha_ | PreserveAspectRatio_ | PrimitiveUnits_ | R_ | Radius_ | RefX_ | RefY_ | Rendering_intent_ | RepeatCount_ | RepeatDur_ | RequiredExtensions_ | RequiredFeatures_ | Restart_ | Result_ | Rotate_ | Rx_ | Ry_ | Scale_ | Seed_ | Shape_rendering_ | Slope_ | Spacing_ | SpecularConstant_ | SpecularExponent_ | SpreadMethod_ | StartOffset_ | StdDeviation_ | Stemh_ | Stemv_ | StitchTiles_ | Stop_color_ | Stop_opacity_ | Strikethrough_position_ | Strikethrough_thickness_ | String_ | Stroke_ | Stroke_dasharray_ | Stroke_dashoffset_ | Stroke_linecap_ | Stroke_linejoin_ | Stroke_miterlimit_ | Stroke_opacity_ | Stroke_width_ | Style_ | SurfaceScale_ | SystemLanguage_ | TableValues_ | Target_ | TargetX_ | TargetY_ | Text_anchor_ | Text_decoration_ | Text_rendering_ | TextLength_ | To_ | Transform_ | Type_ | U1_ | U2_ | Underline_position_ | Underline_thickness_ | Unicode_ | Unicode_bidi_ | Unicode_range_ | Units_per_em_ | V_alphabetic_ | V_hanging_ | V_ideographic_ | V_mathematical_ | Values_ | Version_ | Vert_adv_y_ | Vert_origin_x_ | Vert_origin_y_ | ViewBox_ | ViewTarget_ | Visibility_ | Width_ | Widths_ | Word_spacing_ | Writing_mode_ | X_ | X_height_ | X1_ | X2_ | XChannelSelector_ | XlinkActuate_ | XlinkArcrole_ | XlinkHref_ | XlinkRole_ | XlinkShow_ | XlinkTitle_ | XlinkType_ | XmlBase_ | XmlLang_ | XmlSpace_ | Y_ | Y1_ | Y2_ | YChannelselector_ | Z_ | ZoomAndPan_ -- Link the tags to their svg strings. tag2text :: AttrTag -> Text tag2text Accent_height_ = "accent-height" tag2text Accumulate_ = "accumulate" tag2text Additive_ = "additive" tag2text Alignment_baseline_ = "alignment-baseline" tag2text Alphabetic_ = "alphabetic" tag2text Amplitude_ = "amplitude" tag2text Arabic_form_ = "arabic-form" tag2text Ascent_ = "ascent" tag2text AttributeName_ = "attributeName" tag2text AttributeType_ = "attributeType" tag2text Azimuth_ = "azimuth" tag2text BaseFrequency_ = "baseFrequency" tag2text Baseprofile_ = "baseprofile" tag2text Baseline_shift_ = "baseline-shift" tag2text Bbox_ = "bbox" tag2text Begin_ = "begin" tag2text Bias_ = "bias" tag2text By_ = "by" tag2text CalcMode_ = "calcMode" tag2text Cap_height_ = "cap-height" tag2text Class_ = "class" tag2text Clip_ = "clip" tag2text Clip_path_ = "clip-path" tag2text Clip_rule_ = "clip-rule" tag2text ClipPathUnits_ = "clipPathUnits" tag2text Color_ = "color" tag2text Color_interpolation_ = "color-interpolation" tag2text Color_interpolation_filters_ = "color-interpolation-filters" tag2text Color_profile_ = "color-profile" tag2text Color_rendering_ = "color-rendering" tag2text ContentScriptType_ = "contentScriptType" tag2text ContentStyleType_ = "contentStyleType" tag2text Cursor_ = "cursor" tag2text Cx_ = "cx" tag2text Cy_ = "cy" tag2text D_ = "d" tag2text Descent_ = "descent" tag2text DiffuseConstant_ = "diffuseConstant" tag2text Direction_ = "direction" tag2text Display_ = "display" tag2text Divisor_ = "divisor" tag2text Dominant_baseline_ = "dominant-baseline" tag2text Dur_ = "dur" tag2text Dx_ = "dx" tag2text Dy_ = "dy" tag2text EdgeMode_ = "edgeMode" tag2text Elevation_ = "elevation" tag2text Enable_background_ = "enable-background" tag2text End_ = "end" tag2text Exponent_ = "exponent" tag2text ExternalResourcesRequired_ = "externalResourcesRequired" tag2text Fill_ = "fill" tag2text Fill_opacity_ = "fill-opacity" tag2text Fill_rule_ = "fill-rule" tag2text Filter_ = "filter" tag2text FilterRes_ = "filterRes" tag2text FilterUnits_ = "filterUnits" tag2text Flood_color_ = "flood-color" tag2text Flood_opacity_ = "flood-opacity" tag2text Font_family_ = "font-family" tag2text Font_size_ = "font-size" tag2text Font_size_adjust_ = "font-size-adjust" tag2text Font_stretch_ = "font-stretch" tag2text Font_style_ = "font-style" tag2text Font_variant_ = "font-variant" tag2text Font_weight_ = "font-weight" tag2text Format_ = "format" tag2text From_ = "from" tag2text Fx_ = "fx" tag2text Fy_ = "fy" tag2text G1_ = "g1" tag2text G2_ = "g2" tag2text Glyph_name_ = "glyph-name" tag2text Glyph_orientation_horizontal_ = "glyph-orientation-horizontal" tag2text Glyph_orientation_vertical_ = "glyph-orientation-vertical" tag2text GradientTransform_ = "gradientTransform" tag2text GradientUnits_ = "gradientUnits" tag2text Hanging_ = "hanging" tag2text Height_ = "height" tag2text Horiz_adv_x_ = "horiz-adv-x" tag2text Horiz_origin_x_ = "horiz-origin-x" tag2text Horiz_origin_y_ = "horiz-origin-y" tag2text Id_ = "id" tag2text Ideographic_ = "ideographic" tag2text Image_rendering_ = "image-rendering" tag2text In_ = "in" tag2text In2_ = "in2" tag2text Intercept_ = "intercept" tag2text K_ = "k" tag2text K1_ = "k1" tag2text K2_ = "k2" tag2text K3_ = "k3" tag2text K4_ = "k4" tag2text KernelMatrix_ = "kernelMatrix" tag2text KernelUnitLength_ = "kernelUnitLength" tag2text Kerning_ = "kerning" tag2text KeyPoints_ = "keyPoints" tag2text KeySplines_ = "keySplines" tag2text KeyTimes_ = "keyTimes" tag2text Lang_ = "lang" tag2text LengthAdjust_ = "lengthAdjust" tag2text Letter_spacing_ = "letter-spacing" tag2text Lighting_color_ = "lighting-color" tag2text LimitingConeAngle_ = "limitingConeAngle" tag2text Local_ = "local" tag2text Marker_end_ = "marker-end" tag2text Marker_mid_ = "marker-mid" tag2text Marker_start_ = "marker-start" tag2text MarkerHeight_ = "markerHeight" tag2text MarkerUnits_ = "markerUnits" tag2text MarkerWidth_ = "markerWidth" tag2text MaskContentUnits_ = "maskContentUnits" tag2text MaskUnits_ = "maskUnits" tag2text Mathematical_ = "mathematical" tag2text Max_ = "max" tag2text Media_ = "media" tag2text Method_ = "method" tag2text Min_ = "min" tag2text Mode_ = "mode" tag2text Name_ = "name" tag2text NumOctaves_ = "numOctaves" tag2text Offset_ = "offset" tag2text Onabort_ = "onabort" tag2text Onactivate_ = "onactivate" tag2text Onbegin_ = "onbegin" tag2text Onclick_ = "onclick" tag2text Onend_ = "onend" tag2text Onerror_ = "onerror" tag2text Onfocusin_ = "onfocusin" tag2text Onfocusout_ = "onfocusout" tag2text Onload_ = "onload" tag2text Onmousedown_ = "onmousedown" tag2text Onmousemove_ = "onmousemove" tag2text Onmouseout_ = "onmouseout" tag2text Onmouseover_ = "onmouseover" tag2text Onmouseup_ = "onmouseup" tag2text Onrepeat_ = "onrepeat" tag2text Onresize_ = "onresize" tag2text Onscroll_ = "onscroll" tag2text Onunload_ = "onunload" tag2text Onzoom_ = "onzoom" tag2text Opacity_ = "opacity" tag2text Operator_ = "operator" tag2text Order_ = "order" tag2text Orient_ = "orient" tag2text Orientation_ = "orientation" tag2text Origin_ = "origin" tag2text Overflow_ = "overflow" tag2text Overline_position_ = "overline-position" tag2text Overline_thickness_ = "overline-thickness" tag2text Panose_1_ = "panose-1" tag2text Paint_order_ = "paint-order" tag2text Path_ = "path" tag2text PathLength_ = "pathLength" tag2text PatternContentUnits_ = "patternContentUnits" tag2text PatternTransform_ = "patternTransform" tag2text PatternUnits_ = "patternUnits" tag2text Pointer_events_ = "pointer-events" tag2text Points_ = "points" tag2text PointsAtX_ = "pointsAtX" tag2text PointsAtY_ = "pointsAtY" tag2text PointsAtZ_ = "pointsAtZ" tag2text PreserveAlpha_ = "preserveAlpha" tag2text PreserveAspectRatio_ = "preserveAspectRatio" tag2text PrimitiveUnits_ = "primitiveUnits" tag2text R_ = "r" tag2text Radius_ = "radius" tag2text RefX_ = "refX" tag2text RefY_ = "refY" tag2text Rendering_intent_ = "rendering-intent" tag2text RepeatCount_ = "repeatCount" tag2text RepeatDur_ = "repeatDur" tag2text RequiredExtensions_ = "requiredExtensions" tag2text RequiredFeatures_ = "requiredFeatures" tag2text Restart_ = "restart" tag2text Result_ = "result" tag2text Rotate_ = "rotate" tag2text Rx_ = "rx" tag2text Ry_ = "ry" tag2text Scale_ = "scale" tag2text Seed_ = "seed" tag2text Shape_rendering_ = "shape-rendering" tag2text Slope_ = "slope" tag2text Spacing_ = "spacing" tag2text SpecularConstant_ = "specularConstant" tag2text SpecularExponent_ = "specularExponent" tag2text SpreadMethod_ = "spreadMethod" tag2text StartOffset_ = "startOffset" tag2text StdDeviation_ = "stdDeviation" tag2text Stemh_ = "stemh" tag2text Stemv_ = "stemv" tag2text StitchTiles_ = "stitchTiles" tag2text Stop_color_ = "stop-color" tag2text Stop_opacity_ = "stop-opacity" tag2text Strikethrough_position_ = "strikethrough-position" tag2text Strikethrough_thickness_ = "strikethrough-thickness" tag2text String_ = "string" tag2text Stroke_ = "stroke" tag2text Stroke_dasharray_ = "stroke-dasharray" tag2text Stroke_dashoffset_ = "stroke-dashoffset" tag2text Stroke_linecap_ = "stroke-linecap" tag2text Stroke_linejoin_ = "stroke-linejoin" tag2text Stroke_miterlimit_ = "stroke-miterlimit" tag2text Stroke_opacity_ = "stroke-opacity" tag2text Stroke_width_ = "stroke-width" tag2text Style_ = "style" tag2text SurfaceScale_ = "surfaceScale" tag2text SystemLanguage_ = "systemLanguage" tag2text TableValues_ = "tableValues" tag2text Target_ = "target" tag2text TargetX_ = "targetX" tag2text TargetY_ = "targetY" tag2text Text_anchor_ = "text-anchor" tag2text Text_decoration_ = "text-decoration" tag2text Text_rendering_ = "text-rendering" tag2text TextLength_ = "textLength" tag2text To_ = "to" tag2text Transform_ = "transform" tag2text Type_ = "type" tag2text U1_ = "u1" tag2text U2_ = "u2" tag2text Underline_position_ = "underline-position" tag2text Underline_thickness_ = "underline-thickness" tag2text Unicode_ = "unicode" tag2text Unicode_bidi_ = "unicode-bidi" tag2text Unicode_range_ = "unicode-range" tag2text Units_per_em_ = "units-per-em" tag2text V_alphabetic_ = "v-alphabetic" tag2text V_hanging_ = "v-hanging" tag2text V_ideographic_ = "v-ideographic" tag2text V_mathematical_ = "v-mathematical" tag2text Values_ = "values" tag2text Version_ = "version" tag2text Vert_adv_y_ = "vert-adv-y" tag2text Vert_origin_x_ = "vert-origin-x" tag2text Vert_origin_y_ = "vert-origin-y" tag2text ViewBox_ = "viewBox" tag2text ViewTarget_ = "viewTarget" tag2text Visibility_ = "visibility" tag2text Width_ = "width" tag2text Widths_ = "widths" tag2text Word_spacing_ = "word-spacing" tag2text Writing_mode_ = "writing-mode" tag2text X_ = "x" tag2text X_height_ = "x-height" tag2text X1_ = "x1" tag2text X2_ = "x2" tag2text XChannelSelector_ = "xChannelSelector" tag2text XlinkActuate_ = "xlink:actuate" tag2text XlinkArcrole_ = "xlink:arcrole" tag2text XlinkHref_ = "xlink:href" tag2text XlinkRole_ = "xlink:role" tag2text XlinkShow_ = "xlink:show" tag2text XlinkTitle_ = "xlink:title" tag2text XlinkType_ = "xlink:type" tag2text XmlBase_ = "xml:base" tag2text XmlLang_ = "xml:lang" tag2text XmlSpace_ = "xml:space" tag2text Y_ = "y" tag2text Y1_ = "y1" tag2text Y2_ = "y2" tag2text YChannelselector_ = "yChannelSelector" tag2text Z_ = "z" tag2text ZoomAndPan_ = "zoomAndPan"