ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ Rc@sdZddlmZddlmZmZmZddlmZm Z m Z m Z deefdYZ de efdYZ d eeefd YZd eeefd YZd efdYZdeeefdYZdS(s Text that is to be rendered as part of an SVG document fragment is specified using the **text** element. The characters to be drawn are expressed as XML character data inside the **text** element. i(t BaseElement(t Presentationt TransformtXLink(t iterflatlisttstrlistt is_stringt to_unicodetTSpancBs8eZdZdZdddddddZdZRS(s% Within a **Text** element, text and font properties and the current text position can be adjusted with absolute or relative coordinate values by using the **TSpan** element. The characters to be drawn are expressed as XML character data inside the **TSpan** element. ttspanc Kshtt|j|||_|d k r~t|rFtdn|sR|ratdn|dg}|dg}n|d k rtt t |d|d or a with at least two elements.s;Use 'insert' and 'x' or 'y' parameter not at the same time!iit txtytdxtdytrotateN( tsuperRt__init__ttexttNoneRt TypeErrort ValueErrorRtlistR( tselfRtinsertR R R RRtextra((s>/opt/alt/python27/lib/python2.7/site-packages/svgwrite/text.pyRs&      " " " " cCs+tt|j}t|j|_|S(N(RRtget_xmlRR(Rtxml((s>/opt/alt/python27/lib/python2.7/site-packages/svgwrite/text.pyRDsN(t__name__t __module__t__doc__t elementnameRRR(((s>/opt/alt/python27/lib/python2.7/site-packages/svgwrite/text.pyRs%tTextcBseZdZdZRS(s The **Text** element defines a graphics element consisting of text. The characters to be drawn are expressed as XML character data inside the **Text** element. R(RRRR(((s>/opt/alt/python27/lib/python2.7/site-packages/svgwrite/text.pyR JstTRefcBs&eZdZdZdZdZRS(s The textual content for a **Text** can be either character data directly embedded within the element or the character data content of a referenced element, where the referencing is specified with a **TRef** element. ttrefcKs'tt|j||j|dS(sA :param element: create a reference this element, if element is a `string` its the **id** name of the referenced element, if element is a :class:`~svgwrite.base.BaseElement` the **id** SVG Attribute is used to create the reference. N(RR!Rtset_href(RtelementR((s>/opt/alt/python27/lib/python2.7/site-packages/svgwrite/text.pyR^scCs|jtt|jS(N(t update_idRR!R(R((s>/opt/alt/python27/lib/python2.7/site-packages/svgwrite/text.pyRis (RRRRRR(((s>/opt/alt/python27/lib/python2.7/site-packages/svgwrite/text.pyR!Ts tTextPathcBs/eZdZdZddddZdZRS(sx In addition to text drawn in a straight line, SVG also includes the ability to place text along the shape of a **path** element. To specify that a block of text is to be rendered along the shape of a **path**, include the given text within a **textPath** element which includes an **xlink:href** attribute with a IRI reference to a **path** element. ttextPathtaligntexactcKsutt|j|||_|dkr8||d/opt/alt/python27/lib/python2.7/site-packages/svgwrite/text.pyRys       cCs5|jtt|j}t|j|_|S(N(R%RR&RRR(RR((s>/opt/alt/python27/lib/python2.7/site-packages/svgwrite/text.pyRs N(RRRRRRR(((s>/opt/alt/python27/lib/python2.7/site-packages/svgwrite/text.pyR&nstTBreakcBs2eZdZdZdZdZdZRS(ttbreakcKstt|j|dS(N(RR0R(RR((s>/opt/alt/python27/lib/python2.7/site-packages/svgwrite/text.pyRscCstddS(Ns,__getitem__() not supported by TBreak class.(tNotImplementedError(Rtkey((s>/opt/alt/python27/lib/python2.7/site-packages/svgwrite/text.pyt __getitem__scCstddS(Ns,__setitem__() not supported by TBreak class.(R2(RR3tvalue((s>/opt/alt/python27/lib/python2.7/site-packages/svgwrite/text.pyt __setitem__scCstddS(Ns$add() not supported by TBreak class.(R2(RR$((s>/opt/alt/python27/lib/python2.7/site-packages/svgwrite/text.pytadds(RRRRR4R6R7(((s>/opt/alt/python27/lib/python2.7/site-packages/svgwrite/text.pyR0s    tTextAreacBs8eZdZdZddddZdZdZRS(s At this time **textArea** is only available for SVG 1.2 Tiny profile. The **textArea** element allows simplistic wrapping of text content within a given region. The `tiny` profile of SVG specifies a single rectangular region. Other profiles may allow a sequence of arbitrary shapes. Text wrapping via the **textArea** element is available as a lightweight and convenient facility for simple text wrapping where a complete box model layout engine is not required. The layout of wrapped text is user agent dependent; thus, content developers need to be aware that there might be different results, particularly with regard to where line breaks occur. The TextArea class wraps every text added by write() or writeline() as **tspan** element. ttextAreacKstt|j||dk r2|j|n|dk r]|d|d<|d|d/opt/alt/python27/lib/python2.7/site-packages/svgwrite/text.pyRs   cCs||d/opt/alt/python27/lib/python2.7/site-packages/svgwrite/text.pytline_incrementscKsd|kr%|jt||nz|jd}xA|d D]5}|rd|jt||n|jtq?W|dr|jt|d|ndS(s Add text as **tspan** elements, with extra-params for the **tspan** element. Use the '\\n' character for line breaks. s iN(R7RtsplitR0(RRRtlinestline((s>/opt/alt/python27/lib/python2.7/site-packages/svgwrite/text.pyR<s  N(RRRRRRR>R<(((s>/opt/alt/python27/lib/python2.7/site-packages/svgwrite/text.pyR8s  N(Rt svgwrite.baseRtsvgwrite.mixinsRRRtsvgwrite.utilsRRRRRR R!R&R0R8(((s>/opt/alt/python27/lib/python2.7/site-packages/svgwrite/text.pyt s"6 &