a
    ¦¾de§{  ã                   @   s„  d Z dZddlmZ ddlT ddlT ddlmZmZ ddl	m
Z
 ddlmZ ddl	mZ G d	d
„ d
eƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd „ d eƒZG d!d"„ d"eƒZG d#d$„ d$eƒZG d%d&„ d&eƒZG d'd(„ d(eƒZG d)d*„ d*eƒZd+d,„ Ze d-k�r€eƒ  d.S )/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                
   @   sl   e Zd ZdZdZeeedd�eedd�eedd�eedd�eeƒeeƒeeƒeeƒd�Z	dd	„ Z
d
d„ ZdS )Ú_SymbolzcAbstract 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                 C   sJ   | j jdksJ dƒ‚d | _ | _ | _| _d| _tj| _	d | _
d| _d S )Nr	   z#Abstract class _Symbol instantiatedr   éd   çš™™™™™¹?)Ú	__class__Ú__name__r   r   r   r   r   r   Úredr   r   r   ©Úself© r   úc/var/www/sistema_ama/venv/lib/python3.9/site-packages/reportlab/graphics/widgets/signsandsymbols.pyÚ__init__8   s    z_Symbol.__init__c              
   C   sr   t  dd¡}t| jƒ}|  ¡ }d|_d|_| ¡  | |¡ | t j	|j|d  |jd |jj
tjddd	�¡ |S )
NéÈ   r   é2   r   é   é   Úmiddleé
   ©r   Ú
textAnchorÚfontSize)r   ÚDrawingÚfloatr   r   r   r   ÚdrawÚaddÚStringr   r   Úblack)r   ÚDÚsÚobr   r   r   Údemo@   s    

þz_Symbol.demoN)r   Ú
__module__Ú__qualname__Ú__doc__Z_nodocÚAttrMapÚAttrMapValueÚisNumberÚisColorOrNoneÚ_attrMapr   r1   r   r   r   r   r	   (   s   



ø
r	   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )Ú	ETriangleú#This draws an equilateral triangle.c                 C   s   t  | ¡ d S ©N)r	   r   r   r   r   r   r   P   s    zETriangle.__init__c                 C   sj   t | jƒ}t ¡ }|d }tj| j| j| j| | j| j|d  | j| g| j| j|d d�}| 	|¡ |S )Nç      À?r!   ç      I@©Úpointsr   r   r   ©
r)   r   r   ÚGroupÚPolygonr   r   r   r   r+   ©r   r/   ÚgÚaeZtriangler   r   r   r*   S   s    
ýú
zETriangle.drawN©r   r2   r3   r4   r   r*   r   r   r   r   r:   M   s   r:   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )Ú	RTrianglez€This draws a right-angled triangle.

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

        c                 C   s$   d| _ d| _d| _tj| _d | _d S ©Nr   r   )r   r   r   r   Úgreenr   r   r   r   r   r   r   l   s
    zRTriangle.__init__c                 C   sb   t | jƒ}t ¡ }|d }tj| j| j| j| | j| j| j| g| j| j|d d�}| 	|¡ |S )Nr=   r>   r?   rA   rD   r   r   r   r*   s   s    
ýú
zRTriangle.drawNrG   r   r   r   r   rH   d   s   rH   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚOctagonzvThis widget draws an Octagon.

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

    c                 C   s$   d| _ d| _d| _tj| _d | _d S rI   )r   r   r   r   Úyellowr   r   r   r   r   r   r   Œ   s
    zOctagon.__init__c                 C   s¾   t | jƒ}t ¡ }|d }tj| j| | j| j| j| | j| j|d  | j| | j| | j|d  | j| | j| | j|d  | j| | j| | j|d  | jg| j| jdd�}| 	|¡ |S )Né   r!   r$   ©r@   r   r   r   )
r)   r   r   rB   rC   r   r   r   r   r+   )r   r/   rE   ÚathirdZoctagonr   r   r   r*   “   s$    
ùö
zOctagon.drawNrG   r   r   r   r   rK   „   s   rK   c                   @   s6   e Zd ZdZeeeeƒeeƒd�Z	dd„ Z
dd„ ZdS )ÚCrossboxz¥This draws a black box with a red cross in it - a 'checkbox'.

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

    )ÚBASEÚ
crossColorÚ
crosswidthc                 C   s4   d| _ d| _d| _tj| _tj| _tj| _	d| _
d S ©Nr   r   r$   )r   r   r   r   Úwhiter   r   rR   r-   r   rS   r   r   r   r   r   ¶   s    zCrossbox.__init__c              	   C   sð   t | jƒ}t ¡ }tj| jd | jd |d |d | j| jdd�}| 	|¡ tj
| j|d  | j|d  | j|d  | j|d  | j| j| jd�}| 	|¡ tj
| j|d  | j|d  | j|d  | j|d  | j| j| jd�}| 	|¡ |S )Nr
   r!   ©r   r   r   ç333333Ã?ç333333ë?)r)   r   r   rB   ÚRectr   r   r   r   r+   ÚLinerR   rS   )r   r/   rE   ÚboxZ
crossLine1Z
crossLine2r   r   r   r*   ¿   s*    
 ý
4ý
4ý
zCrossbox.drawN©r   r2   r3   r4   r5   r	   r6   r8   r7   r9   r   r*   r   r   r   r   rP   ©   s   þ	rP   c                   @   s6   e Zd ZdZeeeeƒeeƒd�Z	dd„ Z
dd„ ZdS )ÚTickboxz¤This draws a black box with a red tick in it - another 'checkbox'.

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

)rQ   Ú	tickColorÚ	tickwidthc                 C   s4   d| _ d| _d| _tj| _tj| _tj| _	d| _
d S rT   )r   r   r   r   r   r^   r-   r   rU   r   r_   r   r   r   r   r   ç   s    zTickbox.__init__c                 C   sÒ   t | jƒ}t ¡ }tj| jd | jd |d |d | j| jdd�}| 	|¡ tj
| j|d  | j|d  | j|d  | j|d  | j|d  | j|d  | j|d  | j|d  g| j| j| jd�}| 	|¡ |S )Nr
   r!   rV   rW   çffffffÖ?rX   r?   )r)   r   r   rB   rY   r   r   r   r   r+   ÚPolyLiner^   r_   )r   r/   rE   r[   ZtickLiner   r   r   r*   ð   s"    
 ý
40ÿü
zTickbox.drawNr\   r   r   r   r   r]   Ú   s   þ	r]   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )Ú
SmileyFacezkThis draws a classic smiley face.

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

    c                 C   s0   t  | ¡ d| _d| _d| _tj| _tj| _	d S rI   )
r	   r   r   r   r   r   rL   r   r-   r   r   r   r   r   r     s    
zSmileyFace.__init__c                 C   s¼  t | jƒ}t ¡ }| tj| j|d  | j|d  |d | j| j	t
|d | jƒd�¡ dD ]V}| tj| j|d |  | j|d d  |d |d | j	| j	t
|d | jƒd�¡ qZ| j|d  }| j|d  }|d }|}|}d	}	d
}
d}g }|j}ddlm}m}m} |d }|| }|	| }|
| }||k �rB|d|  }�q(|}||k �rŒ|||ƒ|  }|||ƒ|  }||ƒ ||ƒ || }�qFtj|| j	| j	t
|d | jƒd�}| |¡ |S )Nr!   g      C@©ZcxÚcyÚrr   r   r   )r
   r!   rM   é   r$   rV   r   iT  r
   r   ©ÚsinÚcosÚpiç     €f@)r)   r   r   rB   r+   ÚCircler   r   r   r   Úmaxr   ZEllipseÚappendÚmathrh   ri   rj   ra   )r   r/   rE   ÚiÚcenterxÚcenteryÚradiusÚyradiusÚxradiusÚstartangledegreesÚendangledegreesÚdegreedeltaÚ
pointslistÚarh   ri   rj   ÚdegreestoradiansÚradiansdeltaÚ
startangleÚendangleÚangler   r   Zsmiler   r   r   r*     sR    
&þ4þ


ý
zSmileyFace.drawNrG   r   r   r   r   rb     s   rb   c                   @   s4   e Zd ZdZeeeedd�d�Zdd„ Z	dd„ Z
d	S )
ÚStopSignzbThis draws a (British) stop sign.

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

        zcolor of the word stopr   )rQ   Ú	stopColorc                 C   s.   d| _ d| _d| _tj| _tj| _tj| _	d S rI   )
r   r   r   r   r-   r   Ú	orangeredr   Ú
ghostwhiter�   r   r   r   r   r   R  s    zStopSign.__init__c                 C   s  t | jƒ}t ¡ }|d }tj| j| | j| j| j| | j| j|d  | j| | j| | j|d  | j| | j| | j|d  | j| | j| | j|d  | jg| jd dd�}| |¡ tj| j| |d  | j|d  | j|d  | j| |d  | j|d  | j|d  |d  | j| |d  | j| |d  | j|d  |d  | j| |d  | j| |d  | j|d  |d  | j| |d  | j| |d  | j|d  |d  | j|d  gd | j	dd�}| |¡ | j
�r| tj| j|d  | j|d  d	| j
d
|d dd�¡ |S )NrM   r!   r
   rN   éK   r   ç      à?çš™™™™™Ù?ÚSTOPr#   zHelvetica-Bold)r   r&   r'   ZfontName)r)   r   r   rB   rC   r   r   r   r+   r   r�   r,   )r   r/   rE   rO   ZouterOctagonZinnerOctagonr   r   r   r*   Z  sJ    
ùö
   $$  ùö
 þzStopSign.drawN©r   r2   r3   r4   r5   r	   r6   r8   r9   r   r*   r   r   r   r   r€   G  s   
ÿr€   c                   @   s4   e Zd ZdZeeeedd�d�Zdd„ Z	dd„ Z
d	S )
ÚNoEntryz�This 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   )rQ   ÚinnerBarColorc                 C   s.   d| _ d| _d| _tj| _tj| _tj| _	d S rI   )
r   r   r   r   r-   r   r‚   r   rƒ   rŠ   r   r   r   r   r   �  s    zNoEntry.__init__c                 C   sÜ   t | jƒ}t ¡ }| jrN| tj| j|d  | j|d  |d d | jdd�¡ | j	r’| tj| j|d  | j|d  |d |d  | j	d dd�¡ | j
}|rØ| tj| j|d  | j|d  |d |d	 ||ddd
�¡ |S )Nr!   r
   rc   r    r   r   r†   çš™™™™™é?çš™™™™™É?)ÚwidthÚheightr   r   ZstrokeLineCapr   )r)   r   r   rB   r   r+   rl   r   r   r   rŠ   rY   )r   r/   rE   rŠ   r   r   r   r*   ˜  s    
6><zNoEntry.drawNrˆ   r   r   r   r   r‰   „  s   
ÿr‰   c                   @   s*   e Zd ZdZeed�Zdd„ Zdd„ ZdS )Ú
NotAllowedzƒThis draws a 'forbidden' roundel (as used in the no-smoking sign).

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

        )rQ   c                 C   s&   d| _ d| _d| _tj| _tj| _d S rI   )r   r   r   r   r   r   rU   r   r   r   r   r   r   ´  s
    zNotAllowed.__init__c                 C   sf  t | jƒ}t ¡ }| j}tj| j|d  | j|d  |d |d  | j||d d�}| 	|¡ | j| }| j|d  |d  }||d  }|d }|d }	d}
d}d}g }|j
}d	d
lm}m}m} |d }|| }|
| }|| }||k rú|d|  }qä|}||k �rB|||ƒ|  }|||ƒ|  }||ƒ ||ƒ || }qþtj||||d d�}| 	|¡ |S )Nr!   r$   g      $@rc   é   r   i°ÿÿÿéZ   r   rg   rk   rV   )r)   r   r   rB   r   rl   r   r   r   r+   rn   ro   rh   ri   rj   ra   )r   r/   rE   r   ZouterCirclerq   rr   rs   rt   ru   rv   rw   rx   ry   rz   rh   ri   rj   r{   r|   r}   r~   r   r   r   Zcrossbarr   r   r   r*   »  s>    
<




zNotAllowed.drawN)	r   r2   r3   r4   r5   r	   r9   r   r*   r   r   r   r   r�   ©  s   
r�   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )Ú	NoSmokingz^This draws a no-smoking sign.

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

        c                 C   s   t  | ¡ d S r<   )r�   r   r   r   r   r   r   é  s    zNoSmoking.__init__c           	   	   C   s6  t | jƒ}t | ¡}| j|d  |d  }| j|d  |d  }tj|||d |d tj	tj
dd�}||d  |d  }| d|¡ tj|||d	 |d tjd dd�}||d
  }| d|¡ tj|||d	 |d tjd dd�}||d
  }| d|¡ tj|||d	 |d tjd dd�}||d
  }| d|¡ |S )Nr!   g      @é    é   r   ©r   r   r�   rŽ   r   r   r   é@   éÿÿÿÿéP   é#   )r)   r   r�   r*   r   r   r   rY   r   rƒ   ZgrayÚinsertr‚   )	r   r/   rE   ZnewxZnewyZcigarrette1Zcigarrette2Zcigarrette3Zcigarrette4r   r   r   r*   ì  s2    


ÿÿÿÿzNoSmoking.drawNrG   r   r   r   r   r’   á  s   r’   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )Ú
DangerSignz´This draws a 'danger' sign: a yellow box with a black exclamation point.

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

        c                 C   s2   d| _ d| _d| _tj| _tj| _| jd | _d S )Nr   r   r=   )	r   r   r   r   r-   r   Zgoldr   r   r   r   r   r   r     s    zDangerSign.__init__c           	      C   s&  t | jƒ}t ¡ }| j}|d }| j}|d }tj| j| j| j| | j| j|d  | j| gd | jdd�}| 	|¡ tj| j|d  | j|d  | j| |d  | j|d  | j|d  | j| |d  g| j
d dd�}| 	|¡ tj| j|d  |d  | j|d  | j|d  |d  | j|d  | j|d  |d  |d  | j|d	  | j|d  |d  |d  | j|d	  g| jd d
�}| 	|¡ tj| j|d  |d  | j| | j|d  |d  | j| | j|d  |d  | j|d  | j|d  |d  | j|d  g| jd d
�}| 	|¡ |S )Nr=   r!   r   r?   r    r„   g      @r�   g      @)r@   r   r   )r)   r   r   rB   r   rC   r   r   r   r+   r   )	r   r/   rE   ÚewrF   ZouterTriangleZinnerTriangleZexmarkZexdotr   r   r   r*     s^    
ýú
ýú
  ((üú
  üú
zDangerSign.drawNrG   r   r   r   r   r›     s   r›   c                   @   sD   e Zd ZdZeeeeƒeeƒeeƒd�Z	dd„ Z
dd„ Zdd„ Zd	S )
ÚYesNoaI  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'

)rQ   Ú	tickcolorÚ
crosscolorÚ	testValuec                 C   s,   d| _ d| _d| _tj| _tj| _d| _d S )Nr   r   r
   )	r   r   r   r   rJ   rž   r   rŸ   r    r   r   r   r   r   a  s    zYesNo.__init__c                 C   sH   | j rtƒ }| j|_ntƒ }| j|_| j|_| j|_| j	|_	| 
¡  |S r<   )r    r]   rž   r^   rP   rŸ   rR   r   r   r   r*   )r   Úynr   r   r   r*   i  s    
z
YesNo.drawc              
   C   s  t  dd¡}tƒ }d|_d|_d|_d|_| ¡  | |¡ tƒ }d|_d|_d|_d|_| ¡  | |¡ d	}| t j	|j|jd
  |jd|  dt
jd|d�¡ | t j	|j|jd
  |jd|  dt
jd|d�¡ d}| t j	|jd |jd | jjt
jd|d�¡ |S )Nr   r   é   é   éF   r   éx   r
   é   r!   ç333333ó?ztestValue=0r#   r%   ztestValue=1r$   éU   é   )r   r(   r�   r   r   r   r    r*   r+   r,   r   r-   r   r   )r   r.   r¡   Zyn2ÚlabelFontSizer   r   r   r1   w  s<    

"þ"þþz
YesNo.demoN)r   r2   r3   r4   r5   r	   r6   ÚisColorZ	isBooleanr9   r   r*   r1   r   r   r   r   r�   O  s   ýr�   c                   @   s0   e Zd ZdZeeeeƒd�Zdd„ Z	dd„ Z
dS )Ú
FloppyDiskzyThis widget draws an icon of a floppy disk.

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

        )rQ   Ú	diskColorc                 C   s   d| _ d| _d| _tj| _d S rI   )r   r   r   r   r-   r­   r   r   r   r   r      s    zFloppyDisk.__init__c              	   C   s8  t | jƒ}t ¡ }tj| j| j|d  |||d  | jd dd�}| |¡ tj| j|d  | j| |d  |d |d t	j
d dd�}| |¡ tj| j|d  | j| |d  |d |d t	jd dd�}| |¡ tj| j|d	  | jd
|  | j|d  | jd
|  t	jt	jdd�}| |¡ tj| j|d	  | jd|  | j|d  | jd|  t	jt	jdd�}| |¡ tj| j|d	  | jd|  | j|d  | jd|  t	jt	jdd�}| |¡ tj| j|d  | j|d |d t	jd dd�}	| |	¡ tj| j|d  | j|d  |d |d | jd dd�}
| |
¡ |S )Nr   r   r•   r   r…   r‹   g¸…ëQ¸Þ?g{®Gáz´?rW   g333333ã?rX   )Úx1Úy1Zx2Úy2r   r   r   gffffffæ?rŒ   r`   gìQ¸…ëÑ?gìQ¸…ë¡?g¸…ëQ¸¾?)r)   r   r   rB   rY   r   r   r­   r+   r   Z
whitesmokeZ	royalbluerZ   r-   Zsilver)r   r/   rE   ZdiskBodyÚlabelZlabelsplashZline1Zline2Zline3Z
metalcoverZ	coverslotr   r   r   r*   ¦  sf    
 ý
,ý
,ý
4ý
4ý
4ý
 ý
(ý
zFloppyDisk.drawN)r   r2   r3   r4   r5   r	   r6   r«   r9   r   r*   r   r   r   r   r¬   ”  s   ÿr¬   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚArrowOnezuThis widget draws an arrow (style one).

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

        c                 C   s*   d| _ d| _d| _tj| _d| _d | _d S rI   )r   r   r   r   r   r   r   r   r   r   r   r   r   ç  s    zArrowOne.__init__c                 C   s°   t | jƒ}t ¡ }| j}| j}|d }|d }|d }| tj||| ||d|  || |d|  || |d|  || || || || || || g| j| j	| j
d�¡ |S )Nr!   rM   é   é   r?   ©r)   r   r   rB   r   r   r+   rC   r   r   r   )r   r/   rE   r   r   Ús2Ús3Ús5r   r   r   r*   ï  s*    
ù	õzArrowOne.drawNrG   r   r   r   r   r²   à  s   r²   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚArrowTwozuThis widget draws an arrow (style two).

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

        c                 C   s*   d| _ d| _d| _tj| _d| _d | _d S rI   )r   r   r   r   Zbluer   r   r   r   r   r   r   r     s    zArrowTwo.__init__c           	      C   sÐ   t | jƒ}t ¡ }| j}| j}|d }|d }|d }|d }| tj||d|  ||d|  |d|  |d|  |d|  |d|  || || |d|  || |d|  |d|  g| j| j	| j
d�¡ |S )	Nr!   rM   r³   é   é   é   g     À2@r?   rµ   )	r   r/   rE   r   r   r¶   r·   r¸   Zs24r   r   r   r*     s,    
ù	ôzArrowTwo.drawNrG   r   r   r   r   r¹   	  s   r¹   c                   @   s<   e Zd ZdZeeeeee	fƒdd�d�Z
dd„ Zdd„ Zd	S )
Ú	CrossHairr;   z( gap at centre as "x%" or points or Noner   )rQ   ÚinnerGapc                 C   s<   d | _  | _ | _| _d| _d | _tj| _d| _	d| _
d S )Nr   r$   r…   z20%)r   r   r   r   r   r   r   r-   r   r   r¾   r   r   r   r   r   =  s    zCrossHair.__init__c                 C   sJ  t | jƒ}t ¡ }| j}| j| j }| j| j }d| j }|sh|| ||| |f||| ||| fg}n–t	|ƒrªt
|ƒ}| d¡rœ|t |d d… ƒ d }q²t |ƒd }n|d }|| ||| |f|| ||| |f||| ||| f||| ||| fg}tj| j| jd�}	|D ]&\}
}}}|	 |
|¡ |	 ||¡ �q| |	¡ |S )Nr…   ú%r—   g      Y@)r   r   )r)   r   r   rB   r¾   r   r   r   r   r   r   ÚendswithÚPathr   r   ZmoveToZlineTor+   )r   r/   rE   Zigr   r   ZhsizeÚLZgsÚPZx0Zy0r®   r¯   r   r   r   r*   E  s*    

*
L
zCrossHair.drawN)r   r2   r3   r4   r5   r	   r6   ZEitherOrZisStringZisNumberOrNoner9   r   r*   r   r   r   r   r½   7  s   ÿr½   c               
   C   sD  d} t  dd¡}tƒ }d|_d|_| |¡ | t j|j|jd  |jd|   |jj	t
jd| d	�¡ tƒ }d
|_d|_| |¡ | t j|j|jd  |jd|   |jj	t
jd| d	�¡ tƒ }d|_d|_| |¡ |jj	d }| t j|j|jd  |jd|   |t
jd| d	�¡ | t jdddt
jd| d d	�¡ tƒ }d|_d|_| |¡ | t j|j|jd  |jd|   |jj	t
jd| d	�¡ tƒ }d
|_d|_| |¡ | t j|j|jd  |jd|   |jj	t
jd| d	�¡ tƒ }d|_d|_| |¡ | t j|j|jd  |jd|   |jj	t
jd| d	�¡ tƒ }	d|	_d|	_| |	¡ | t j|	j|	jd  |	jd|   |	jj	t
jd| d	�¡ tƒ }
d
|
_d|
_| |
¡ | t j|
j|
jd  |
jd|   |
jj	t
jd| d	�¡ tƒ }d|_d|_| |¡ | t j|j|jd  |jd|   |jj	t
jd| d	�¡ tƒ }d|_d|_| |¡ | t j|j|jd  |jd|   |jj	t
jd| d	�¡ tƒ }d
|_d|_| |¡ | t j|j|jd  |jd|   |jj	t
jd| d	�¡ tƒ }d|_d|_| |¡ | t j|j|jd  |jd|   |jj	t
jd| d	�¡ t |dd¡ tdƒ dS )z\This function produces a pdf with examples of all the signs and symbols from this file.
    r$   iÂ  iŠ  r©   i  r!   r§   r#   r%   éª   i@  r   é‚   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(   rP   r   r   r+   r,   r   r   r   r   r-   r]   r�   r€   r‰   rb   r›   r�   r’   r²   r¹   r¬   r   Z
drawToFileÚprint)rª   r.   ÚcbÚtbr¡   Z
tempstringÚssÚneZsfZdsÚnaÚnsZa1Za2Úfdr   r   r   Útestb  sÒ    
"þ
"þ
"þþ
"þ
"þ
"þ
"þ
"þ
"þ
"þ
"þ
"þrÏ   Ú__main__N)!Ú__version__r4   Zreportlab.libr   Zreportlab.lib.validatorsZreportlab.lib.attrmapZreportlab.lib.utilsr   r   Zreportlab.graphicsr   Zreportlab.graphics.widgetbaser   r   r	   r:   rH   rK   rP   r]   rb   r€   r‰   r�   r’   r›   r�   r¬   r²   r¹   r½   rÏ   r   r   r   r   r   Ú<module>   s8   % %1+B=%8*DEL).+n
