+
    bIi{                        R t Rt^ RIHt ^ RI5 ^ RI5 ^ RIHtHt ^ RI	H
t
 ^ RIHt ^ RI	Ht  ! R R	]4      t ! R
 R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R  R!]4      t ! R" R#]4      t ! R$ R%]4      t ! R& R']4      t ! R( R)]4      tR* t] R+8X  d
   ]! 4        R,# R,# )-z3.3.0a  This file is a collection of widgets to produce some common signs and symbols.

Widgets include:

- ETriangle (an equilateral triangle),
- RTriangle (a right angled triangle),
- Octagon,
- Crossbox,
- Tickbox,
- SmileyFace,
- StopSign,
- NoEntry,
- NotAllowed (the red roundel from 'no smoking' signs),
- NoSmoking,
- DangerSign (a black exclamation point in a yellow triangle),
- YesNo (returns a tickbox or a crossbox depending on a testvalue),
- FloppyDisk,
- ArrowOne, and
- ArrowTwo
- CrossHair
)colors)*)isStr	asUnicode)shapes)Widget)	renderPDFc                      a  ] tR t^(t o Rt^t]! ]! ]RR7      ]! ]RR7      ]! ]RR7      ]! ]RR7      ]! ]4      ]! ]	4      ]! ]	4      ]! ]4      R7      t
R tR tR	tV tR
# )_SymbolzWAbstract base widget
possible attributes:
'x', 'y', 'size', 'fillColor', 'strokeColor'
zsymbol x coordinatedesczsymbol y coordinatezsymbol x coordinate adjustment)xydxdysize	fillColorstrokeColorstrokeWidthc                    V P                   P                  R 8w  g   Q R4       h^ ;V n        ;V n        ;V n        V n        ^dV n        \        P                  V n	        RV n
        RV n        R# )r
   z#Abstract class _Symbol instantiatedN皙?)	__class____name__r   r   r   r   r   r   redr   r   r   selfs   &ړC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO CLAUDE\MAESTRO\maestro-backend\venv\Lib\site-packages\reportlab/graphics/widgets/signsandsymbols.py__init___Symbol.__init__8   s^    ~~&&	1X3XX1.////$'DG	    c                   \         P                  ! ^^d4      p\        V P                  4      pV P	                  4       p^2Vn        ^ Vn        VP                  4        VP                  V4       VP                  \         P                  ! VP
                  V^,          ,           VP                  ^,
          VP                  P                  \        P                  R^
R7      4       V# )   middler   
textAnchorfontSize)r   Drawingfloatr   r   r   r   drawaddStringr   r   black)r   Dsobs   &   r   demo_Symbol.demo@   s    NN3$$))^^
		b		fmmBDD!A#JRLL11V\\V^%') 	* r   )r   r   r   r   r   r   r   r   N)r   
__module____qualname____firstlineno____doc___nodocAttrMapAttrMapValueisNumberisColorOrNone_attrMapr   r/   __static_attributes____classdictcell____classdict__s   @r   r
   r
   (   sv      F'<='<=((HI((HIH% /"=1"8,	
H r   r
   c                   0   a  ] tR t^Mt o RtR tR tRtV tR# )	ETriangle#This draws an equilateral triangle.c                0    \         P                  V 4       R # N)r
   r   r   s   &r   r   ETriangle.__init__P   s    r   c           	        \        V P                  4      p\        P                  ! 4       pVR ,          p\        P                  ! V P
                  V P                  V P
                  V,           V P                  V P
                  V^,          ,           V P                  V,           .V P                  V P                  VR,          R7      pVP                  V4       V#       ?g      I@pointsr   r   r   
r'   r   r   GroupPolygonr   r   r   r   r)   r   r-   gaetriangles   &    r   r(   ETriangle.drawS   s    $))LLN uW>>FFDFFFF1HdffFFAaCL,#  >>!--S5" 	
hr    N	r   r1   r2   r3   r4   r   r(   r;   r<   r=   s   @r   r@   r@   M   s     - r   r@   c                   0   a  ] tR t^dt o RtR tR tRtV tR# )	RTrianglezhThis draws a right-angled triangle.

possible attributes:
'x', 'y', 'size', 'fillColor', 'strokeColor'

c                h    ^ V n         ^ V n        ^dV n        \        P                  V n        RV n        R#     N)r   r   r   r   greenr   r   r   s   &r   r   RTriangle.__init__l   s*    	r   c           	        \        V P                  4      p\        P                  ! 4       pVR ,          p\        P                  ! V P
                  V P                  V P
                  V,           V P                  V P
                  V P                  V,           .V P                  V P                  VR,          R7      pVP                  V4       V# rF   rJ   rM   s   &    r   r(   RTriangle.draws   s    $))LLN uW>>FFDFFFF1HdffFF466!8,  >>!--S5" 	
hr   r   r   r   r   r   NrS   r=   s   @r   rU   rU   d   s       r   rU   c                   0   a  ] tR t^t o RtR tR tRtV tR# )OctagonzbThis widget draws an Octagon.

possible attributes:
'x', 'y', 'size', 'fillColor', 'strokeColor'

c                h    ^ V n         ^ V n        ^dV n        \        P                  V n        RV n        R# rW   )r   r   r   r   yellowr   r   r   s   &r   r   Octagon.__init__   s*    	r   c                *   \        V P                  4      p\        P                  ! 4       pV^,          p\        P                  ! V P
                  V,           V P                  V P
                  V P                  V,           V P
                  V P                  V^,          ,           V P
                  V,           V P                  V,           V P
                  V^,          ,           V P                  V,           V P
                  V,           V P                  V^,          ,           V P
                  V,           V P                  V,           V P
                  V^,          ,           V P                  .V P                  V P                  ^
R7      pVP                  V4       V# )   rI   r   r   r   )
r'   r   r   rK   rL   r   r   r   r   r)   )r   r-   rN   athirdoctagons   &    r   r(   Octagon.draw   s   $))LLN s...2ffdffVm.2ffdfffQh6G.2ffVmTVVAX.2fffQh.?.2ffQhq8I.2ffQhv.2fffQh.?)I 594D4D26..24
6 	
gr   r]   NrS   r=   s   @r   r_   r_      s       r   r_   c                   ^   a  ] tR t^t o Rt]! ]]! ]4      ]! ]	4      R7      t
R tR tRtV tR# )CrossboxzThis draws a black box with a red cross in it - a 'checkbox'.

possible attributes:
'x', 'y', 'size', 'crossColor', 'strokeColor', 'crosswidth'

)BASE
crossColor
crosswidthc                    ^ V n         ^ V n        ^dV n        \        P                  V n        \        P                  V n        \        P                  V n	        ^
V n
        R# rW   )r   r   r   r   whiter   r   rl   r+   r   rm   r   s   &r   r   Crossbox.__init__   s@    	 **!<<r   c           
        \        V P                  4      p\        P                  ! 4       p\        P                  ! V P
                  ^,           V P                  ^,           V^,
          V^,
          V P                  V P                  ^R7      pVP                  V4       \        P                  ! V P
                  VR,          ,           V P                  VR,          ,           V P
                  VR,          ,           V P                  VR,          ,           V P                  V P                  V P                  R7      pVP                  V4       \        P                  ! V P
                  VR,          ,           V P                  VR,          ,           V P
                  VR,          ,           V P                  VR,          ,           V P                  V P                  V P                  R7      pVP                  V4       V# )   r   r   r   333333?333333?)r'   r   r   rK   Rectr   r   r   r   r)   Linerl   rm   )r   r-   rN   box
crossLine1
crossLine2s   &     r   r(   Crossbox.draw   sP   $))LLN kk$&&(DFF1Hac1Q3>>!-- 	
c
[[4$&&!D&/4661T6?TXTZTZ\]^b\bTc??!__!__.
 	
j[[4$&&!D&/4661T6?TXTZTZ\]^b\bTc??!__!__.
 	
jr   )rl   rm   r   r   r   r   r   Nr   r1   r2   r3   r4   r6   r
   r7   r9   r8   r:   r   r(   r;   r<   r=   s   @r   rj   rj      s7      G!-0!(+
H
 r   rj   c                   ^   a  ] tR t^t o Rt]! ]]! ]4      ]! ]	4      R7      t
R tR tRtV tR# )TickboxzThis draws a black box with a red tick in it - another 'checkbox'.

possible attributes:
'x', 'y', 'size', 'tickColor', 'strokeColor', 'tickwidth'

)rk   	tickColor	tickwidthc                    ^ V n         ^ V n        ^dV n        \        P                  V n        \        P                  V n        \        P                  V n	        ^
V n
        R# rW   )r   r   r   r   r   r   r+   r   ro   r   r   r   s   &r   r   Tickbox.__init__   s@    	!<<r   c                `   \        V P                  4      p\        P                  ! 4       p\        P                  ! V P
                  ^,           V P                  ^,           V^,
          V^,
          V P                  V P                  ^R7      pVP                  V4       \        P                  ! V P
                  VR,          ,           V P                  VR,          ,           V P
                  VR,          ,           V P                  VR,          ,           V P
                  VR,          ,           V P                  VR,          ,           V P
                  VR,          ,           V P                  VR,          ,           .V P                  V P                  V P                  R7      pVP                  V4       V# )rr   rs   rt   ffffff?ru   rH   )r'   r   r   rK   rv   r   r   r   r   r)   PolyLiner   r   )r   r-   rN   rx   tickLines   &    r   r(   Tickbox.draw   s+   $))LLN kk$&&(DFF1Hac1Q3>>!-- 	
c
??TVVQtV_dffafotvvWXY]W]`d`f`fhijnhn`o-1VVQtV_dffafotvvWXY]W]`d`f`fhijnhn`o-q>>!^^!^^	-
 	
hr   )r   r   r   r   r   r   r   Nr|   r=   s   @r   r~   r~      s7      G / *
H
 r   r~   c                   0   a  ] tR tRt o RtR tR tRtV tR# )
SmileyFacei  zWThis draws a classic smiley face.

possible attributes:
'x', 'y', 'size', 'fillColor'

c                    \         P                  V 4       ^ V n        ^ V n        ^dV n        \
        P                  V n        \
        P                  V n	        R# rW   )
r
   r   r   r   r   r   ra   r   r+   r   r   s   &r   r   SmileyFace.__init__  s<    	!<<r   c                d   \        V P                  4      p\        P                  ! 4       pVP	                  \        P
                  ! V P                  V^,          ,           V P                  V^,          ,           V^,          V P                  V P                  \        VR,          V P                  4      R7      4       R F  pVP	                  \        P                  ! V P                  V^,          V,          ,           V P                  V^,          ^,          ,           V^,          V^
,          V P                  V P                  \        VR,          V P                  4      R7      4       K  	  V P                  V^,          ,           pV P                  V^,          ,           pV^,          pTpTp^p	Rp
^p. pVP                  p^ RIHpHpHp VR,          pVV,          pV	V,          pV
V,          pVV8  d   V^V,          ,           pK  TpVV8  dF   WO! V4      V,          ,           pW^! V4      V,          ,           pV! V4       V! V4       VV,           pKL  \        P$                  ! VV P                  V P                  \        VR,          V P                  4      R7      pVP	                  V4       V# )   g      C@cxcyrr   r   r   rs   iT  sincospi     f@)rr   r   )r'   r   r   rK   r)   Circler   r   r   r   maxr   Ellipseappendmathr   r   r   r   )r   r-   rN   icenterxcenteryradiusyradiusxradiusstartangledegreesendangledegreesdegreedelta
pointslistar   r   r   degreestoradiansradiansdelta
startangleendangleangler   r   smiles   &                        r   r(   SmileyFace.draw  s!   $))LLN 	
fmmtvvqs|!!..d6F6F#d&6&679 	: AEE&..1a!Qw"ad"..d>N>N #AcE$*:*: ;= >  !!s
%%e8"#33&'77
"#33z!!!B$hHn#e*V++A#e*W,,AaD!A$,&E 
++!-- 3t'7'78: 	
er   r]   NrS   r=   s   @r   r   r     s     (0 0r   r   c                   T   a  ] tR tRt o Rt]! ]]! ]RR7      R7      t	R t
R tRtV tR	# )
StopSigniG  zJThis draws a (British) stop sign.

possible attributes:
'x', 'y', 'size'

zcolor of the word stopr   )rk   	stopColorc                    ^ V n         ^ V n        ^dV n        \        P                  V n        \        P                  V n        \        P                  V n	        R# rW   )
r   r   r   r   r+   r   	orangeredr   
ghostwhiter   r   s   &r   r   StopSign.__init__R  s=    	!<<))**r   c                ~   \        V P                  4      p\        P                  ! 4       pV^,          p\        P                  ! V P
                  V,           V P                  V P
                  V P                  V,           V P
                  V P                  V^,          ,           V P
                  V,           V P                  V,           V P
                  V^,          ,           V P                  V,           V P
                  V,           V P                  V^,          ,           V P
                  V,           V P                  V,           V P
                  V^,          ,           V P                  .V P                  R^R7      pVP                  V4       \        P                  ! V P
                  V,           V^K,          ,           V P                  V^K,          ,           V P
                  V^K,          ,           V P                  V,           V^K,          ,           V P
                  V^K,          ,           V P                  V^,          ,           V^K,          ,
          V P
                  V,           V^K,          ,           V P                  V,           V^K,          ,
          V P
                  V^,          ,           V^K,          ,
          V P                  V,           V^K,          ,
          V P
                  V,           V^K,          ,
          V P                  V^,          ,           V^K,          ,
          V P
                  V,           V^K,          ,
          V P                  V,           V^K,          ,           V P
                  V^,          ,           V^K,          ,
          V P                  V^K,          ,           .RV P                  ^ R7      pVP                  V4       V P                  '       dn   VP                  \        P                  ! V P
                  VR,          ,           V P                  VR,          ,           RV P                  RV^,          RR7      4       V# )	rd   Nre         ?皙?STOPr"   zHelvetica-Bold)r   r$   r%   fontName)r'   r   r   rK   rL   r   r   r   r)   r   r   r*   )r   r-   rN   rf   outerOctagoninnerOctagons   &     r   r(   StopSign.drawZ  s   $))LLN s~~dffVmTVV.2ffdffVm.2ffdfffQh6G.2ffVmTVVAX.2fffQh.?.2ffQhq8I.2ffQhv.2fffQh.?.I 594D4D2623
5 	
l~~dffVmQrT.BDFFAbDM.2ffadmTVVF]AbD=Q.2ffadmTVVVAX=NPQRTPT=U.2ffVmQrT.BDFF1HaPRdO.2fffQh.?2.FPQTUVXTXHY/3vvax!B$.?PQARTUVXTXAY/3vvax!B$.?PQRTPTAU.2fffQh.?2.FPQRTPT.W 5926..23
5 	
l>>>EE&--#tvvqu~"dnn%&qS3CE F r   )r   r   r   r   r   r   Nr   r1   r2   r3   r4   r6   r
   r7   r9   r:   r   r(   r;   r<   r=   s   @r   r   r   G  s2      G 4LM
H+' 'r   r   c                   T   a  ] tR tRt o Rt]! ]]! ]RR7      R7      t	R t
R tRtV tR	# )
NoEntryi  zuThis draws a (British) No Entry sign - a red circle with a white line on it.

possible attributes:
'x', 'y', 'size'

zcolor of the inner barr   )rk   innerBarColorc                    ^ V n         ^ V n        ^dV n        \        P                  V n        \        P                  V n        \        P                  V n	        R# rW   )
r   r   r   r   r+   r   r   r   r   r   r   s   &r   r   NoEntry.__init__  s>    	!<<))#..r   c                j   \        V P                  4      p\        P                  ! 4       pV P                  '       dm   VP                  \        P                  ! V P                  V^,          ,           V P                  V^,          ,           V^,          RV P                  ^R7      4       V P                  '       d{   VP                  \        P                  ! V P                  V^,          ,           V P                  V^,          ,           V^,          V^2,          ,
          V P                  R^ R7      4       V P                  pV'       dk   VP                  \        P                  ! V P                  VR,          ,           V P                  VR,          ,           VR,          VR,          W3^^ R7      4       V# )r   Nr   r   r   皙?皙?)widthheightr   r   strokeLineCapr   )r'   r   r   rK   r   r)   r   r   r   r   r   rv   )r   r-   rN   r   s   &   r   r(   NoEntry.draw  sO   $))LLN EE&--dffacl4661Q3<aPQc_csw  tD  tD  RS  T  U>>>EE&--dffacl$&&!A#,qQRsUVWYUYlimiwiw  HL  Z[  \  ]**EE&++dffaendffaenAcERSTWRWer  bc  st  u  vr   )r   r   r   r   r   r   Nr   r=   s   @r   r   r     s2      G$]8PQ
H/ r   r   c                   B   a  ] tR tRt o Rt]! ]R7      tR tR t	Rt
V tR# )
NotAllowedi  zkThis draws a 'forbidden' roundel (as used in the no-smoking sign).

possible attributes:
'x', 'y', 'size'

)rk   c                    ^ V n         ^ V n        ^dV n        \        P                  V n        \        P                  V n        R# rW   )r   r   r   r   r   r   ro   r   r   s   &r   r   NotAllowed.__init__  s.    	!::r   c           	        \        V P                  4      p\        P                  ! 4       pV P                  p\        P
                  ! V P                  V^,          ,           V P                  V^,          ,           V^,          V^
,          ,
          V P                  W1R,          R7      pVP                  V4       V P                  V,           pV P                  V^,          ,           V^,          ,
          pW^,          ,
          pV^,          pV^,          p	^dp
Rp^Zp. pVP                  p^ RIHpHpHp VR,          pVV,          pV
V,          pVV,          pVV8  d   V^V,          ,           pK  TpVV8  dG   VV! V4      V,          ,           pWo! V4      V,          ,           pV! V4       V! V4       VV,           pKM  \        P                  ! WW1R,          R7      pVP                  V4       V# )r   g      $@r   r   r   rs   i)r'   r   r   rK   r   r   r   r   r   r)   r   r   r   r   r   r   )r   r-   rN   r   outerCircler   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   crossbars   &                         r   r(   NotAllowed.draw  s   $))LLN&& mm$&&!A#,tvvqs|STUVSVYZ[]Y]R^lplzlz  KV  fi  di  j	kq!ac"A#w((
%%e8"#33&'77
"#33z!"}HHn#e*V++A#e*W,,AaD!A$,&E??:Vasvqvw	hr   r]   N)r   r1   r2   r3   r4   r6   r
   r:   r   r(   r;   r<   r=   s   @r   r   r     s'      G 
H&# #r   r   c                   0   a  ] tR tRt o RtR tR tRtV tR# )	NoSmokingi  zFThis draws a no-smoking sign.

possible attributes:
'x', 'y', 'size'

c                0    \         P                  V 4       R # rC   )r   r   r   s   &r   r   NoSmoking.__init__  s    D!r   c           
        \        V P                  4      p\        P                  V 4      pV P                  V^,          ,           VR,          ,
          pV P
                  V^,          ,           V^ ,          ,
          p\        P                  ! W4V^,          V^,          \        P                  \        P                  ^ R7      pW1^,          ,           V^@,          ,           pVP                  RV4       \        P                  ! W4V^P,          V^,          \        P                  R^ R7      pW1^#,          ,           pVP                  RV4       \        P                  ! W4V^P,          V^,          \        P                  R^ R7      pW1^#,          ,           pVP                  RV4       \        P                  ! W4V^P,          V^,          \        P                  R^ R7      pW1^#,          ,           pVP                  RV4       V# )r   g      @r   r   r   r   r   r   r   N)r'   r   r   r(   r   r   r   rv   r   r   grayinsertr   )	r   r-   rN   newxnewycigarrette1cigarrette2cigarrette3cigarrette4s	   &        r   r(   NoSmoking.draw  sw   $))OOD! vvqs|QsU#vvqs|QrT"kkdqsaPRd"--V[[VWYQ3Z2	K kkdqtqQSt",,DaQbDk	K kkdqtqQSt",,DaQbDk	K kkdqtqQSt",,DaQbDk	K r   rR   NrS   r=   s   @r   r   r     s     " r   r   c                   0   a  ] tR tRt o RtR tR tRtV tR# )
DangerSigni  zThis draws a 'danger' sign: a yellow box with a black exclamation point.

possible attributes:
'x', 'y', 'size', 'strokeColor', 'fillColor', 'strokeWidth'

c                    ^ V n         ^ V n        ^dV n        \        P                  V n        \        P                  V n        V P                  R,          V n        R# )rX   rG   N)	r   r   r   r   r+   r   goldr   r   r   s   &r   r   DangerSign.__init__  s>    	!<<99U?r   c                r   \        V P                  4      p\        P                  ! 4       pV P                  pVR ,          pV P                  pVR ,          p\        P
                  ! V P                  V P                  V P                  V,           V P                  V P                  V^,          ,           V P                  V,           .RV P                  ^ R7      pVP                  V4       \        P
                  ! V P                  V^2,          ,           V P                  V^K,          ,           V P                  V,           V^2,          ,
          V P                  V^K,          ,           V P                  V^,          ,           V P                  V,           V^2,          ,
          .V P                  R^ R7      pVP                  V4       \        P
                  ! V P                  V^,          ,           V^,          ,
          V P                  VR,          ,           V P                  V^,          ,           V^,          ,           V P                  VR,          ,           V P                  V^,          ,           V^,          ,           V^,          ,           V P                  VR,          ,           V P                  V^,          ,           V^,          ,
          V^,          ,
          V P                  VR,          ,           .V P                  RR7      pVP                  V4       \        P
                  ! V P                  V^,          ,           V^,          ,
          V P                  V,           V P                  V^,          ,           V^,          ,           V P                  V,           V P                  V^,          ,           V^,          ,           V P                  V^,          ,           V P                  V^,          ,           V^,          ,
          V P                  V^,          ,           .V P                  RR7      pVP                  V4       V# )rG   NrH   g      @g      @)rI   r   r   )r'   r   r   rK   r   rL   r   r   r   r)   r   )	r   r-   rN   ewrO   outerTriangleinnerTriangleexmarkexdots	   &        r   r(   DangerSign.draw  s   $))LLNuW
 uWFFDFFFF1HdffFFAaCL1#  !-- 	
mFFAbDM4661R4=VVAX"tvvqt}FFAaCL$&&(QrT*1,  >>! 	
mffQqSj"Q$3ffQqSj"Q$3ffQqSjBqD"BqD)DFF2c6MffQqSjBqD"BqD)DFF2c6M	(;
  ++!# 	
fffQqSj"Q$ffQqSj"Q$ffQqSj"Q$1ffQqSj"Q$1	'.
  ++!# 	
er   r   r   r   r   r   r   NrS   r=   s   @r   r   r     s     +1 1r   r   c                   r   a  ] tR tRt o Rt]! ]]! ]4      ]! ]4      ]! ]	4      R7      t
R tR tR tRtV tR# )	YesNoiO  a!  This widget draw a tickbox or crossbox depending on 'testValue'.

If this widget is supplied with a 'True' or 1 as a value for
testValue, it will use the tickbox widget. Otherwise, it will
produce a crossbox.

possible attributes:
'x', 'y', 'size', 'tickcolor', 'crosscolor', 'testValue'

)rk   	tickcolor
crosscolor	testValuec                    ^ V n         ^ V n        ^dV n        \        P                  V n        \        P                  V n        ^V n        R# rW   )	r   r   r   r   rY   r   r   r   r   r   s   &r   r   YesNo.__init__a  s4    	 **r   c                   V P                   '       d   \        4       pV P                  Vn        M\	        4       pV P
                  Vn        V P                  Vn        V P                  Vn        V P                  Vn	        VP                  4        V# rC   )r   r~   r   r   rj   r   rl   r   r   r   r(   )r   yns   & r   r(   
YesNo.drawi  s^    >>>yBBLzB//BMVVVV		
		r   c                   \         P                  ! ^^d4      p\        4       p^Vn        ^Vn        ^FVn        ^ Vn        VP                  4        VP                  V4       \        4       p^xVn        ^Vn        ^FVn        ^Vn        VP                  4        VP                  V4       ^pVP                  \         P                  ! VP                  VP
                  ^,          ,           VP                  RV,          ,
          R\        P                  RVR7      4       VP                  \         P                  ! VP                  VP
                  ^,          ,           VP                  RV,          ,
          R\        P                  RVR7      4       ^
pVP                  \         P                  ! VP                  ^U,           VP                  ^,
          V P                  P                  \        P                  RVR7      4       V# )r!   333333?ztestValue=0r"   r#   ztestValue=1)r   r&   r   r   r   r   r   r(   r)   r*   r   r+   r   r   )r   r,   r   yn2labelFontSizes   &    r   r/   
YesNo.demow  si   NN3$W
		b	g
	c
	fmmBDD"''!),bddC4E.F)V\\h%24 	5 	
fmmCEE388A:.s=7H0I)V\\h%24 	5 	fmmBDDGRTT"W NN33v||X`%24 	5 r   )r   r   r   r   r   r   N)r   r1   r2   r3   r4   r6   r
   r7   isColor	isBooleanr:   r   r(   r/   r;   r<   r=   s   @r   r   r   O  sD     	 G )!'* +
H r   r   c                   P   a  ] tR tRt o Rt]! ]]! ]4      R7      t	R t
R tRtV tR# )
FloppyDiski  zaThis widget draws an icon of a floppy disk.

possible attributes:
'x', 'y', 'size', 'diskcolor'

)rk   	diskColorc                Z    ^ V n         ^ V n        ^dV n        \        P                  V n        R# rW   )r   r   r   r   r+   r  r   s   &r   r   FloppyDisk.__init__  s"    	r   c           
        \        V P                  4      p\        P                  ! 4       p\        P                  ! V P
                  V P                  V^d,          ,           WV^d,          ,
          V P                  R^ R7      pVP                  V4       \        P                  ! V P
                  VR,          ,           V P                  V,           VR,          ,
          VR,          VR,          \        P                  R^ R7      pVP                  V4       \        P                  ! V P
                  VR,          ,           V P                  V,           VR,          ,
          VR,          VR,          \        P                  R^ R7      pVP                  V4       \        P                  ! V P
                  VR,          ,           V P                  R	V,          ,           V P
                  VR
,          ,           V P                  R	V,          ,           \        P                  \        P                  ^ R7      pVP                  V4       \        P                  ! V P
                  VR,          ,           V P                  RV,          ,           V P
                  VR
,          ,           V P                  RV,          ,           \        P                  \        P                  ^ R7      pVP                  V4       \        P                  ! V P
                  VR,          ,           V P                  RV,          ,           V P
                  VR
,          ,           V P                  RV,          ,           \        P                  \        P                  ^ R7      pVP                  V4       \        P                  ! V P
                  VR,          ,           V P                  VR,          VR,          \        P                  R^ R7      p	VP                  V	4       \        P                  ! V P
                  VR,          ,           V P                  VR,          ,           VR,          VR,          V P                  R^ R7      p
VP                  V
4       V# )d   Nr   r   r   r   gQ?g{Gz?rt   g333333?ru   )x1y1x2y2r   r   r   gffffff?r   r   gQ?gQ?gQ?)r'   r   r   rK   rv   r   r   r  r)   r   
whitesmoke	royalbluerw   r+   silver)r   r-   rN   diskBodylabellabelsplashline1line2line3
metalcover	coverslots   &          r   r(   FloppyDisk.draw  s	   $))LLN ;;4661S5>aPSe9>>! 	
hdffaenAcE0B!C%XYZ^X^!,,! 	
ekkDFFAcENtvvax!C%6HPQRUPU^_`d^d!++! 	
k tvvqv4663q5>dffaPTfoZ^Z`Z`befgbgZh!<<#\\ 	
etvvqv4663q5>dffaPTfoZ^Z`Z`befgbgZh!<<#\\ 	
etvvqv4663q5>dffaPTfoZ^Z`Z`befgbgZh!<<#\\ 	
e[[4661S5>dffQsUSTUYSY!==!
 	
jKK$&&!D&/dffqw5GqQUv^_`d^d>>!	 	
ir   )r  r   r   r   N)r   r1   r2   r3   r4   r6   r
   r7   r   r:   r   r(   r;   r<   r=   s   @r   r  r    s/      G )
H&8 8r   r  c                   0   a  ] tR tRt o RtR tR tRtV tR# )ArrowOnei  z]This widget draws an arrow (style one).

possible attributes:
'x', 'y', 'size', 'fillColor'

c                v    ^ V n         ^ V n        ^dV n        \        P                  V n        ^ V n        RV n        R# rW   )r   r   r   r   r   r   r   r   r   s   &r   r   ArrowOne.__init__  s2    	r   c                (   \        V P                  4      p\        P                  ! 4       pV P                  pV P
                  pV^,          pV^,          pV^,          pVP                  \        P                  ! W4V,           W4^V,          ,           W5,           V^V,          ,           W5,           V^V,          ,           W1,           WE,           W5,           WG,           W5,           WF,           .V P                  V P                  V P                  R7      4       V# )r   rH   r'   r   r   rK   r   r   r)   rL   r   r   r   )r   r-   rN   r   r   s2s3s5s   &       r   r(   ArrowOne.draw  s    $))LLNFFFFqSqSqS	fnn()B$()AbD&()QqtV()QqtV()AD()QT()QT') !NN"..".. 	 r   r   NrS   r=   s   @r   r  r    s       r   r  c                   0   a  ] tR tRt o RtR tR tRtV tR# )ArrowTwoi	  z]This widget draws an arrow (style two).

possible attributes:
'x', 'y', 'size', 'fillColor'

c                v    ^ V n         ^ V n        ^dV n        \        P                  V n        ^ V n        RV n        R# rW   )r   r   r   r   bluer   r   r   r   s   &r   r   ArrowTwo.__init__  s2    	r   c                   \        V P                  4      p\        P                  ! 4       pV P                  pV P
                  pV^,          pV^,          pV^,          pV^,          pVP                  \        P                  ! W4^V,          ,           W4^V,          ,           VRV,          ,           V^V,          ,           V^V,          ,           V^V,          ,           W1,           WE,           V^V,          ,           WF,           VRV,          ,           V^V,          ,           .V P                  V P                  V P                  R7      4       V# )r   g     2@rH   r  )	r   r-   rN   r   r   r  r  r  s24s	   &        r   r(   ArrowTwo.draw  s    $))LLN FFFFqSqSqSd	fnn3h3heCiK2c6adFAadFCadFADeCiK2c6 ****, 	 r   r   NrS   r=   s   @r   r"  r"  	  s       r   r"  c            	       d   a  ] tR tRt o Rt]! ]]! ]! ]	]
34      RR7      R7      tR tR tRtV tR	# )
	CrossHairi7  rA   z( gap at centre as "x%" or points or Noner   )rk   innerGapc                    ^ ;V n         ;V n        ;V n        V n        ^
V n        RV n        \        P                  V n        RV n	        RV n
        R# )rX   Nr   z20%)r   r   r   r   r   r   r   r+   r   r   r+  r   s   &r   r   CrossHair.__init__=  sG    .////$'DG	!<<r   c                   \        V P                  4      p\        P                  ! 4       pV P                  pV P
                  V P                  ,           pV P                  V P                  ,           pR V P                  ,          pV'       g&   WF,
          WTV,           V3WEV,
          WEV,           3.pM\        V4      '       dS   \        V4      pVP                  R4      '       d   V\        VRR 4      ,          R,          pM\        V4      R ,          pM	VR ,          pWF,
          WTV,
          V3WH,           WTV,           V3WEV,
          WEV,
          3WEV,           WEV,           3.p\        P                  ! V P                  V P                  R7      p	V F(  w  rrV	P                  W4       V	P!                  W4       K*  	  VP#                  V	4       V# )r   %Ng      Y@)r   r   r   )r'   r   r   rK   r+  r   r   r   r   r   r   endswithPathr   r   moveTolineTor)   )r   r-   rN   igr   r   hsizeLgsPx0y0r  r  s   &             r   r(   CrossHair.drawE  sc   $))LLN]]FF477NFF477NDII'!eGA&U71uW(=>ARyyr];;t$$uRW~-e3Br3BV'!bD#ad1uWQ%7!eGAd9KaRTPTUVY^W^M_`AKKD$4$4AQAQRKB"HHROHHRO  	
ar   )	r   r   r   r+  r   r   r   r   r   N)r   r1   r2   r3   r4   r6   r
   r7   EitherOrisStringisNumberOrNoner:   r   r(   r;   r<   r=   s   @r   r*  r*  7  s8     -G#Hh~-F$GMwx
H r   r*  c                    ^
p \         P                  ! RR4      p\        4       p^Vn        RVn        VP                  V4       VP                  \         P                  ! VP                  VP                  ^,          ,           VP                  RV ,          ,
          VP                  P                  \        P                  RV R7      4       \        4       p^Vn        RVn        VP                  V4       VP                  \         P                  ! VP                  VP                  ^,          ,           VP                  RV ,          ,
          VP                  P                  \        P                  RV R7      4       \        4       pRVn        RVn        VP                  V4       VP                  P                  R,           pVP                  \         P                  ! VP                  VP                  ^,          ,           VP                  RV ,          ,
          V\        P                  RV R7      4       VP                  \         P                  ! ^^R	\        P                  RV R
,          R7      4       \        4       p^Vn        RVn        VP                  V4       VP                  \         P                  ! VP                  VP                  ^,          ,           VP                  RV ,          ,
          VP                  P                  \        P                  RV R7      4       \        4       p^Vn        RVn        VP                  V4       VP                  \         P                  ! VP                  VP                  ^,          ,           VP                  RV ,          ,
          VP                  P                  \        P                  RV R7      4       \!        4       pRVn        RVn        VP                  V4       VP                  \         P                  ! VP                  VP                  ^,          ,           VP                  RV ,          ,
          VP                  P                  \        P                  RV R7      4       \#        4       p	^V	n        RV	n        VP                  V	4       VP                  \         P                  ! V	P                  V	P                  ^,          ,           V	P                  RV ,          ,
          V	P                  P                  \        P                  RV R7      4       \%        4       p
^V
n        RV
n        VP                  V
4       VP                  \         P                  ! V
P                  V
P                  ^,          ,           V
P                  RV ,          ,
          V
P                  P                  \        P                  RV R7      4       \'        4       pRVn        RVn        VP                  V4       VP                  \         P                  ! VP                  VP                  ^,          ,           VP                  RV ,          ,
          VP                  P                  \        P                  RV R7      4       \)        4       p^Vn        ^Vn        VP                  V4       VP                  \         P                  ! VP                  VP                  ^,          ,           VP                  RV ,          ,
          VP                  P                  \        P                  RV R7      4       \+        4       p^Vn        ^Vn        VP                  V4       VP                  \         P                  ! VP                  VP                  ^,          ,           VP                  RV ,          ,
          VP                  P                  \        P                  RV R7      4       \-        4       pRVn        ^Vn        VP                  V4       VP                  \         P                  ! VP                  VP                  ^,          ,           VP                  RV ,          ,
          VP                  P                  \        P                  RV R7      4       \.        P0                  ! VRR4       \3        R4       R# )z\This function produces a pdf with examples of all the signs and symbols from this file.
    i  i  i  r   r"   r#   i@  r   zT(The 'YesNo' widget returns a tickbox if testvalue=1, and a crossbox if testvalue=0)g      ?i  i  zsignsandsymbols.pdfzsignsandsymbols.pyzwrote file: signsandsymbols.pdfN)r   r&   rj   r   r   r)   r*   r   r   r   r   r+   r~   r   r   r   r   r   r   r   r  r"  r  r   
drawToFileprint)r   r,   cbtbr   
tempstringssnesfdsnansa1a2fds                  r   testrN  b  s    Ms3A	BBDBDEE"IEE&--bggai("$$M0A*B<<00FLLU]$13 4 
BBDBDEE"IEE&--bggai("$$M0A*BLL11V\\V^%24 5
 
BBDBDEE"I&&,JEE&--bggai("$$M0A*B&&,,8%24 5 EE&--Ar  E  K  K  X`%24%79 :
 
BBDBDEE"IEE&--bggai("$$M0A*BLL11V\\V^%24 5 
BBDBDEE"IEE&--bggai("$$M0A*BLL11V\\V^%24 5 
BBDBDEE"IEE&--bggai("$$M0A*BLL11V\\V^%24 5 
BBDBDEE"IEE&--bggai("$$M0A*BLL11V\\V^%24 5 
BBDBDEE"IEE&--bggai("$$M0A*BLL11V\\V^%24 5 
BBDBDEE"IEE&--bggai("$$M0A*BLL11V\\V^%24 5 
BBDBDEE"IEE&--bggai("$$M0A*BLL11V\\V^%24 5 
BBDBDEE"IEE&--bggai("$$M0A*BLL11V\\V^%24 5 
BBDBDEE"IEE&--bggai("$$M0A*BLL11V\\V^%24 5 13GH	
+,r   __main__N)!__version__r4   reportlab.libr   reportlab.lib.validatorsreportlab.lib.attrmapreportlab.lib.utilsr   r   reportlab.graphicsr   reportlab.graphics.widgetbaser   r   r
   r@   rU   r_   rj   r~   r   r   r   r   r   r   r   r  r  r"  r*  rN  r   rR   r   r   <module>rW     s)   	, ! & # 0 % 0 (#f #J . @#g #J.w .b)g )V@ @D:w :z#g #J5 5p'
 'TA AHCG CJJ JX'w 'R,x ,\( (Vl-\ ZF r   