%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python3/dist-packages/reportlab/graphics/widgets/__pycache__/
Upload File :
Create Path :
Current File : //lib/python3/dist-packages/reportlab/graphics/widgets/__pycache__/signsandsymbols.cpython-312.pyc

�

��d�{���dZdZddlmZddl�ddl�ddlmZmZddl	m
Z
ddlmZddl	m
Z
Gd	�d
e�ZGd�de�ZGd
�de�ZGd�de�ZGd�de�ZGd�de�ZGd�de�ZGd�de�ZGd�de�ZGd�de�ZGd�de�ZGd�d e�ZGd!�d"e�ZGd#�d$e�ZGd%�d&e�ZGd'�d(e�ZGd)�d*e�Zd+�Ze d,k(re�y-y-).z3.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��eZdZdZdZeeed��eed��eed��eed��ee�ee�ee�ee���Z	d�Z
d	�Zy
)�_SymbolzcAbstract base widget
    possible attributes:
    'x', 'y', 'size', 'fillColor', 'strokeColor'
    �zsymbol x coordinate��desczsymbol y coordinatezsymbol x coordinate adjustment)�x�y�dx�dy�size�	fillColor�strokeColor�strokeWidthc���|jjdk7sJd��dx|_x|_x|_|_d|_tj|_	d|_
d|_y)Nrz#Abstract class _Symbol instantiatedr�d皙�����?)�	__class__�__name__rrrrrr�redrrr��selfs �L/usr/lib/python3/dist-packages/reportlab/graphics/widgets/signsandsymbols.py�__init__z_Symbol.__init__8s^���~�~�&�&�	�1�X�3X�X�1�./�/���/���/�$�'�D�G���	������������c
��tjdd�}t|j�}|j	�}d|_d|_|j�|j|�|jtj|j
|dzz|jdz
|jjtjdd�	��|S)
N��r�2r���middle�
�r�
textAnchor�fontSize)
r�Drawing�floatrrrr�draw�add�Stringrr�black)r�D�s�obs    r�demoz_Symbol.demo@s����N�N�3��$���$�)�)���
�^�^�
��
���
���
���	�	���b�	�	���f�m�m�B�D�D�!�A�#�J����R���L�L�1�1�V�\�\�V^�%'�)�	*��r!N)r�
__module__�__qualname__�__doc__�_nodoc�AttrMap�AttrMapValue�isNumber�
isColorOrNone�_attrMapr r5�r!rrr(sn����F����'<�=���'<�=�
�(�(H�
I�
�(�(H�
I��H�%� ��/�"�=�1�"�8�,�	
�H��r!rc��eZdZdZd�Zd�Zy)�	ETriangle�#This draws an equilateral triangle.c�.�tj|�y�N)rr rs rr zETriangle.__init__Ps������r!c	��t|j�}tj�}|dz}tj|j
|j|j
|z|j|j
|dzz|j|zg|j|j|dz��}|j|�|S)N��?r%�I@��pointsrrr�
r-rr�Group�Polygonrrrrr/�rr3�g�ae�triangles     rr.zETriangle.drawSs����$�)�)����L�L�N���u�W���>�>��F�F�D�F�F��F�F�1�H�d�f�f��F�F�A�a�C�L������,#� �>�>�!�-�-��S�5�
"��	
���h���r!N�rr6r7r8r r.r?r!rrArAMs��-��r!rAc��eZdZdZd�Zd�Zy)�	RTrianglez�This draws a right-angled triangle.

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

        c�f�d|_d|_d|_tj|_d|_y�Nrr)rrrr�greenrrrs rr zRTriangle.__init__ls*����������	��������r!c	�t�t|j�}tj�}|dz}tj|j
|j|j
|z|j|j
|j|zg|j|j|dz��}|j|�|S)NrFrGrHrJrMs     rr.zRTriangle.drawss����$�)�)����L�L�N���u�W���>�>��F�F�D�F�F��F�F�1�H�d�f�f��F�F�4�6�6�!�8�,� �>�>�!�-�-��S�5�
"��	
���h���r!NrQr?r!rrSrSds��� �r!rSc��eZdZdZd�Zd�Zy)�OctagonzvThis widget draws an Octagon.

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

    c�f�d|_d|_d|_tj|_d|_yrU)rrrr�yellowrrrs rr zOctagon.__init__�s*����������	��������r!c��t|j�}tj�}|dz}tj|j
|z|j|j
|j|z|j
|j|dzz|j
|z|j|z|j
|dzz|j|z|j
|z|j|dzz|j
|z|j|z|j
|dzz|jg|j|jd��}|j|�|S)N�r%r(�rIrrr)
r-rrrKrLrrrrr/)rr3rN�athird�octagons     rr.zOctagon.draw�s���$�)�)����L�L�N����s���.�.���������.2�f�f�d�f�f�V�m�.2�f�f�d�f�f�f�Q�h�6G�.2�f�f�V�m�T�V�V�A�X�.2�f�f�f�Q�h�.?������.2�f�f�Q�h�����q��8I�.2�f�f�Q�h����v�
�.2�f�f�f�Q�h�.?����)I�59�4D�4D�26�.�.�24�
6��	
���g���r!NrQr?r!rrYrY�s��� �r!rYc�J�eZdZdZeeee�ee���Z	d�Z
d�Zy)�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��d|_d|_d|_tj|_tj|_tj|_	d|_
y�Nrrr()rrrr�whiterrrdr1rrers rr zCrossbox.__init__�s@����������	������ �*�*���!�<�<�����r!c	�F�t|j�}tj�}tj|j
dz|jdz|dz
|dz
|j|jd��}|j|�tj|j
|dzz|j|dzz|j
|dzz|j|dzz|j|j|j��}|j|�tj|j
|dzz|j|dzz|j
|dzz|j|dzz|j|j|j��}|j|�|S)Nrr%�rrr�333333�?�333333�?)
r-rrrK�Rectrrrrr/�Linerdre)rr3rN�box�
crossLine1�
crossLine2s      rr.z
Crossbox.draw�sP���$�)�)����L�L�N���k�k�$�&�&��(�D�F�F�1�H�a��c�1�Q�3��>�>�!�-�-����	
���c�
��[�[�����4���$�&�&�!�D�&�/�4�6�6�1�T�6�?�TX�TZ�TZ�\]�^b�\b�Tc��?�?�!�_�_�!�_�_�.�
�	
���j���[�[�����4���$�&�&�!�D�&�/�4�6�6�1�T�6�?�TX�TZ�TZ�\]�^b�\b�Tc��?�?�!�_�_�!�_�_�.�
�	
���j���r!N�rr6r7r8r:rr;r=r<r>r r.r?r!rrbrb�s/����G�!�-�0�!�(�+�
�H�
�r!rbc�J�eZdZdZeeee�ee���Z	d�Z
d�Zy)�Tickboxz�This draws a black box with a red tick in it - another 'checkbox'.

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

)rc�	tickColor�	tickwidthc��d|_d|_d|_tj|_tj|_tj|_	d|_
yrg)rrrrrrur1rrhrrvrs rr zTickbox.__init__�s@����������	������!�<�<����������r!c��t|j�}tj�}tj|j
dz|jdz|dz
|dz
|j|jd��}|j|�tj|j
|dzz|j|dzz|j
|dzz|j|dzz|j
|dzz|j|dzz|j
|dzz|j|dzzg|j|j|j��}|j|�|S)Nrr%rjrk�ffffff�?rlrH)
r-rrrKrmrrrrr/�PolyLinerurv)rr3rNro�tickLines     rr.zTickbox.draw�s+���$�)�)����L�L�N���k�k�$�&�&��(�D�F�F�1�H�a��c�1�Q�3��>�>�!�-�-����	
���c�
��?�?�T�V�V�Q�t�V�_�d�f�f�a��f�o�t�v�v�WX�Y]�W]��`d�`f�`f�hi�jn�hn�`o�-1�V�V�Q�t�V�_�d�f�f�a��f�o�t�v�v�WX�Y]�W]��`d�`f�`f�hi�jn�hn�`o�-q��>�>�!�^�^�!�^�^�	-��
	
���h���r!Nrrr?r!rrtrt�s/����G� ��/� ��*�
�H�
�r!rtc��eZdZdZd�Zd�Zy)�
SmileyFacezkThis draws a classic smiley face.

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

    c��tj|�d|_d|_d|_t
j|_t
j|_	yrU)
rr rrrrr[rr1rrs rr zSmileyFace.__init__
s<���������������	������!�<�<��r!c�d�t|j�}tj�}|j	tj
|j|dzz|j|dzz|dz|j|jt|dz|j����dD]�}|j	tj|j|dz|zz|j|dzdzz|dz|dz|j|jt|dz|j������|j|dzz}|j|dzz}|dz}|}|}d	}	d
}
d}g}|j}
dd
lm}m}m}|dz}||z}|	|z}|
|z}||kr|d|zz}||kr�|}||kr7|||�|zz}|||�|zz}|
|�|
|�||z}||kr�7tj$||j|jt|dz|j���}|j	|�|S)Nr%gC@��cx�cy�rrrr)rr%r]�r(rjr#iTrr��sin�cos�pi��f@)r-rrrKr/�Circlerrrr�maxr�Ellipse�append�mathr�r�r�rz)rr3rN�i�centerx�centery�radius�yradius�xradius�startangledegrees�endangledegrees�degreedelta�
pointslist�ar�r�r��degreestoradians�radiansdelta�
startangle�endangle�anglerr�smiles                         rr.zSmileyFace.draws9���$�)�)����L�L�N��	
���f�m�m�t�v�v�q��s�|�����!����!���.�.�d�6F�6F���#��d�&6�&6�7�9�	:��	>�A�
�E�E�&�.�.�����1��a�������!��Q�w���"��a��d�"�.�.�d�>N�>N� #�A�c�E�$�*:�*:� ;�=�
>�	>�����!��������!������s�������������
�����%�%��e�8��"�#3�3��&�'7�7�
�"�#3�3���z�!�!�!�B�$��h��z�!����H�n��#�e�*�V�+�+�A��#�e�*�W�,�,�A�
�a�D�!�A�$��,�&�E�	�H�n����
��+�+�!�-�-� ��3��t�'7�'7�8�:��	
���e���r!NrQr?r!rr}r}s���(�0r!r}c�@�eZdZdZeeeed����Zd�Z	d�Z
y)�StopSignzbThis draws a (British) stop sign.

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

        zcolor of the word stopr
)rc�	stopColorc��d|_d|_d|_tj|_tj|_tj|_	yrU)
rrrrr1r�	orangeredr�
ghostwhiter�rs rr zStopSign.__init__Rs=����������	�!�<�<����)�)����*�*��r!c�:�t|j�}tj�}|dz}tj|j
|z|j|j
|j|z|j
|j|dzz|j
|z|j|z|j
|dzz|j|z|j
|z|j|dzz|j
|z|j|z|j
|dzz|jg|jdd��}|j|�tj|j
|z|dzz|j|dzz|j
|dzz|j|z|dzz|j
|dzz|j|dzz|dzz
|j
|z|dzz|j|z|dzz
|j
|dzz|dzz
|j|z|dzz
|j
|z|dzz
|j|dzz|dzz
|j
|z|dzz
|j|z|dzz|j
|dzz|dzz
|j|dzzgd|jd��}|j|�|jrX|jtj|j
|dzz|j|dzzd	|jd
|dzd���|S)
Nr]r%rr^�Kr��?皙�����?�STOPr'zHelvetica-Bold)rr*r+�fontName)r-rrrKrLrrrr/rr�r0)rr3rNr_�outerOctagon�innerOctagons      rr.z
StopSign.drawZs����$�)�)����L�L�N����s���~�~�d�f�f�V�m�T�V�V�.2�f�f�d�f�f�V�m�.2�f�f�d�f�f�f�Q�h�6G�.2�f�f�V�m�T�V�V�A�X�.2�f�f�f�Q�h�.?������.2�f�f�Q�h�����q��8I�.2�f�f�Q�h����v�
�.2�f�f�f�Q�h�.?����.I�59�4D�4D�26�23�
5��	
���l���~�~�d�f�f�V�m�Q�r�T�.B�D�F�F�A�b�D�M�.2�f�f�a��d�m�T�V�V�F�]�A�b�D�=Q�.2�f�f�a��d�m�T�V�V�V�A�X�=N�PQ�RT�PT�=U�.2�f�f�V�m�Q�r�T�.B�D�F�F�1�H�a�PR�d�O�.2�f�f�f�Q�h�.?��2��.F����PQ��TU�VX�TX�HY�/3�v�v�a�x�!�B�$�.?�����PQ��AR�TU�VX�TX�AY�/3�v�v�a�x�!�B�$�.?������PQ�RT�PT�AU�.2�f�f�f�Q�h�.?��2��.F����PQ�RT�PT�
�.W�59�26�.�.�23�
5��	
���l���>�>�
�E�E�&�-�-�����#���t�v�v�q��u�~�"�d�n�n��%&�q�S�3C�E�
F��r!N�rr6r7r8r:rr;r=r>r r.r?r!rr�r�Gs*����G� ��4L�M�
�H�+�'r!r�c�@�eZdZdZeeeed����Zd�Z	d�Z
y)�NoEntryz�This draws a (British) No Entry sign - a red circle with a white line on it.

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

        zcolor of the inner barr
)rc�
innerBarColorc��d|_d|_d|_tj|_tj|_tj|_	yrU)
rrrrr1rr�rr�r�rs rr zNoEntry.__init__�s>����������	�!�<�<����)�)���#�.�.��r!c��t|j�}tj�}|jrW|jtj|j|dzz|j|dzz|dzd|jd���|jr]|jtj|j|dzz|j|dzz|dz|dzz
|jdd���|j}|rR|jtj|j|dzz|j|dzz|dz|d	z||dd�
��|S)Nr%rr�r$rrr�皙�����?皙�����?)�width�heightrr�
strokeLineCapr)r-rrrKrr/r�rrrr�rm)rr3rNr�s    rr.zNoEntry.draw�sQ���$�)�)����L�L�N�����
�E�E�&�-�-�d�f�f�a��c�l�4�6�6�1�Q�3�<�a�PQ�c�_c�sw�tD�tD�RS�T�
U��>�>�
�E�E�&�-�-�d�f�f�a��c�l�$�&�&�!�A�#�,�q�QR�s�UV�WY�UY�l�im�iw�iw�HL�Z[�\�
]��*�*�
��
�E�E�&�+�+�d�f�f�a��e�n�d�f�f�a��e�n�A�c�E�RS�TW�RW�er�CP�bc�st�u�
v��r!Nr�r?r!rr�r��s*����G�$�]�8P�Q�
�H�/�r!r�c�.�eZdZdZee��Zd�Zd�Zy)�
NotAllowedz�This draws a 'forbidden' roundel (as used in the no-smoking sign).

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

        )rcc��d|_d|_d|_tj|_tj|_yrU)rrrrrrrhrrs rr zNotAllowed.__init__�s.����������	�!�:�:�������r!c	��t|j�}tj�}|j}tj
|j|dzz|j|dzz|dz|dzz
|j||dz��}|j|�|j|z}|j|dzz|dzz
}||dzz
}|dz}|dz}	d}
d}d}g}
|
j}d	d
lm}m
}m}|dz}||z}|
|z}||z}||kr|d|zz}||kr�|}||kr7|||�|zz}|||�|zz}||�||�||z}||kr�7tj|
|||dz��}|j|�|S)
Nr%r(g$@r��ri�����Zrr�r�rj)r-rrrKrr�rrrr/r�r�r�r�r�rz)rr3rNr�outerCircler�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr�crossbars                          rr.zNotAllowed.draw�s����$�)�)����L�L�N���&�&���m�m�$�&�&�!�A�#�,�t�v�v�q��s�|�ST�UV�SV�YZ�[]�Y]�R^�lp�lz�lz�KV�de�fi�di�j��	���k�����q�������!���a��c�"���!�A�#�w����(����(���������
�����%�%��e�8��"�#3�3��&�'7�7�
�"�#3�3���z�!���"��}�H��z�!����H�n��#�e�*�V�+�+�A��#�e�*�W�,�,�A�
�a�D�!�A�$��,�&�E�	�H�n�
�?�?�:�;�Va�qr�sv�qv�w��	���h���r!N)	rr6r7r8r:rr>r r.r?r!rr�r��s����G�
�H�&�#r!r�c��eZdZdZd�Zd�Zy)�	NoSmokingz^This draws a no-smoking sign.

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

        c�.�tj|�yrD)r�r rs rr zNoSmoking.__init__�s�����D�!r!c	�2�t|j�}tj|�}|j|dzz|dzz
}|j
|dzz|dzz
}t
j|||dz|dztjtjd��}||dzz|dzz}|jd|�t
j|||d	z|dztjdd��}||d
zz}|jd|�t
j|||d	z|dztjdd��}||d
zz}|jd|�t
j|||d	z|dztjdd��}||d
zz}|jd|�|S)Nr%g@� �r�rrr�r�rrr�@����P�#)
r-rr�r.rrrrmrr��gray�insertr�)	rr3rN�newx�newy�cigarrette1�cigarrette2�cigarrette3�cigarrette4s	         rr.zNoSmoking.draw�s����$�)�)����O�O�D�!���v�v�q��s�|�Q�s�U�#���v�v�q��s�|�Q�r�T�"���k�k�d��q��s�a�PR�d�"�-�-�V�[�[�VW�Y��
�1�Q�3�Z��2��
��	����K� ��k�k�d��q��t�q�QS�t�"�,�,�D�a�Q���A�b�D�k��	����K� ��k�k�d��q��t�q�QS�t�"�,�,�D�a�Q���A�b�D�k��	����K� ��k�k�d��q��t�q�QS�t�"�,�,�D�a�Q���A�b�D�k��	����K� ��r!NrQr?r!rr�r��s���"�r!r�c��eZdZdZd�Zd�Zy)�
DangerSignz�This draws a 'danger' sign: a yellow box with a black exclamation point.

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

        c��d|_d|_d|_tj|_tj|_|jdz|_y)NrrrF)	rrrrr1r�goldrrrs rr zDangerSign.__init__s>����������	�!�<�<���������9�9�U�?��r!c�8�t|j�}tj�}|j}|dz}|j}|dz}tj
|j|j|j|z|j|j|dzz|j|zgd|jd��}|j|�tj
|j|dzz|j|dzz|j|z|dzz
|j|dzz|j|dzz|j|z|dzz
g|jdd��}|j|�tj
|j|dzz|dzz
|j|dzz|j|dzz|dzz|j|dzz|j|dzz|dzz|dzz|j|d	zz|j|dzz|dzz
|dzz
|j|d	zzg|jd�
�}|j|�tj
|j|dzz|dzz
|j|z|j|dzz|dzz|j|z|j|dzz|dzz|j|dzz|j|dzz|dzz
|j|dzzg|jd�
�}|j|�|S)NrFr%rrHr$r�g@r�g@)rIrr)r-rrrKrrLrrrr/r)	rr3rN�ewrO�
outerTriangle�
innerTriangle�exmark�exdots	         rr.zDangerSign.draws����$�)�)����L�L�N��
�
�
��
�u�W��
�
�
��
�u�W������F�F�D�F�F��F�F�1�H�d�f�f��F�F�A�a�C�L������1#� �!�-�-��
�
�	
���m������F�F�A�b�D�M�4�6�6�1�R�4�=�
�V�V�A�X��"���t�v�v�q��t�}��F�F�A�a�C�L�$�&�&��(�Q�r�T�*�1,� �>�>�!��
�
�	
���m������f�f�Q�q�S�j�"�Q�$�
�����3����f�f�Q�q�S�j�"�Q�$�
�����3����f�f�Q�q�S�j�B�q�D�
"�B�q�D�
)�D�F�F�2�c�6�M��f�f�Q�q�S�j�B�q�D�
"�B�q�D�
)�D�F�F�2�c�6�M�	(;�
 �+�+�!�
#��	
���f�
�����f�f�Q�q�S�j�"�Q�$�
�������f�f�Q�q�S�j�"�Q�$�
�������f�f�Q�q�S�j�"�Q�$�
�����1����f�f�Q�q�S�j�"�Q�$�
�����1���	'.�
 �+�+�!�
#��	
���e���r!NrQr?r!rr�r�s���+�1r!r�c�^�eZdZdZeeee�ee�ee���Z	d�Z
d�Zd�Zy)�YesNoaIThis 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'

)rc�	tickcolor�
crosscolor�	testValuec��d|_d|_d|_tj|_tj|_d|_y)Nrrr)	rrrrrVr�rr�r�rs rr zYesNo.__init__as4����������	������ �*�*�����r!c��|jrt�}|j|_nt	�}|j
|_|j|_|j|_|j|_	|j�|SrD)r�rtr�rurbr�rdrrrr.)r�yns  rr.z
YesNo.drawis\���>�>��y�B����B�L��z�B��/�/�B�M�
�V�V���
�V�V����	�	���
���	��	r!c
��tjdd�}t�}d|_d|_d|_d|_|j�|j|�t�}d|_d|_d|_d|_|j�|j|�d	}|jtj|j|j
d
zz|jd|zz
dtjd
|���|jtj|j|j
d
zz|jd|zz
dtjd
|���d}|jtj|jdz|jdz
|jjtjd
|���|S)Nr#r���Fr�xr�r%�333333�?ztestValue=0r'r)ztestValue=1r(�U�)rr,r�rrrr�r.r/r0rr1rr)rr2r��yn2�
labelFontSizes     rr5z
YesNo.demowsi���N�N�3��$��
�W��������������
���	�	���b�	��g�������������
����
�	���c�
��
�	���f�m�m�B�D�D�"�'�'�!�)�,�b�d�d�C�
�4E�.F�)�V�\�\�h�%2�4�	5�	
���f�m�m�C�E�E�3�8�8�A�:�.����s�=�7H�0I�)�V�\�\�h�%2�4�	5��
�	���f�m�m�B�D�D��G�R�T�T�"�W� �N�N�3�3�v�|�|�X`�%2�4�	5��r!N)
rr6r7r8r:rr;�isColor�	isBooleanr>r r.r5r?r!rr�r�Os<��	��G� ��)�!�'�*� ��+�
�H���r!r�c�<�eZdZdZeeee���Zd�Z	d�Z
y)�
FloppyDiskzyThis widget draws an icon of a floppy disk.

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

        )rc�	diskColorc�X�d|_d|_d|_tj|_yrU)rrrrr1r�rs rr zFloppyDisk.__init__�s"����������	�����r!c	�<�t|j�}tj�}tj|j
|j|dzz|||dzz
|jdd��}|j|�tj|j
|dzz|j|z|dzz
|dz|dztjdd��}|j|�tj|j
|dzz|j|z|dzz
|dz|dztjdd��}|j|�tj|j
|d	zz|jd
|zz|j
|dzz|jd
|zztjtjd��}|j|�tj|j
|d	zz|jd
|zz|j
|dzz|jd
|zztjtjd��}|j|�tj|j
|d	zz|jd|zz|j
|dzz|jd|zztjtjd��}|j|�tj|j
|dzz|j|dz|dztjdd��}	|j|	�tj|j
|dzz|j|dzz|dz|dz|jdd��}
|j|
�|S)Nrrr�rr�r�g���Q��?g{�G�z�?rkg333333�?rl)�x1�y1�x2�y2rrrgffffff�?r�ryg�Q����?g�Q���?g���Q��?)r-rrrKrmrrr�r/r�
whitesmoke�	royalbluernr1�silver)rr3rN�diskBody�label�labelsplash�line1�line2�line3�
metalcover�	coverslots           rr.zFloppyDisk.draw�s���$�)�)����L�L�N���;�;����4�6�6�1�S�5�>��1�a�PS�e�9��>�>�!����	
���h�����d�f�f�a��e�n������A�c�E�0B�!�C�%�XY�Z^�X^�!�,�,�!����	
���e���k�k�D�F�F�A�c�E�N�t�v�v�a�x�!�C�%�6H�PQ�RU�PU�^_�`d�^d�!�+�+�!����	
���k�����t�v�v�q��v��4�6�6�3�q�5�>�d�f�f�a�PT�f�o�Z^�Z`�Z`�be�fg�bg�Zh�!�<�<�#�\�\����	
���e�����t�v�v�q��v��4�6�6�3�q�5�>�d�f�f�a�PT�f�o�Z^�Z`�Z`�be�fg�bg�Zh�!�<�<�#�\�\����	
���e�����t�v�v�q��v��4�6�6�3�q�5�>�d�f�f�a�PT�f�o�Z^�Z`�Z`�be�fg�bg�Zh�!�<�<�#�\�\����	
���e���[�[�4�6�6�1�S�5�>�d�f�f�Q�s�U�ST�UY�SY�!�=�=�!���
�	
���j���K�K�$�&�&�!�D�&�/�d�f�f�q��w�5G�q�QU�v�^_�`d�^d��>�>�!���	�	
���i���r!N)rr6r7r8r:rr;r�r>r r.r?r!rr�r��s'����G� ��)�
�H�&�8r!r�c��eZdZdZd�Zd�Zy)�ArrowOnezuThis widget draws an arrow (style one).

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

        c�t�d|_d|_d|_tj|_d|_d|_yrU)rrrrrrrrrs rr zArrowOne.__init__�s2����������	�����������r!c��t|j�}tj�}|j}|j
}|dz}|dz}|dz}|j
tj|||z||d|zz||z|d|zz||z|d|zz||z||z||z||z||z||zg|j|j|j���|S)Nr%r]��rH�r-rrrKrrr/rLrrr)rr3rNrr�s2�s3�s5s        rr.z
ArrowOne.draw�s����$�)�)����L�L�N���F�F���F�F��
�q�S��
�q�S��
�q�S��	���f�n�n�()�!�B�$�()�!�A�b�D�&�()�"��Q�q��t�V�()�"��Q�q��t�V�()�!��A�b�D�()�"��Q�r�T�()�"��Q�r�T�')�!�N�N�"�.�.�"�.�.��
	��r!NrQr?r!rrr�s��� �r!rc��eZdZdZd�Zd�Zy)�ArrowTwozuThis widget draws an arrow (style two).

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

        c�t�d|_d|_d|_tj|_d|_d|_yrU)rrrr�bluerrrrs rr zArrowTwo.__init__s2����������	�����������r!c���t|j�}tj�}|j}|j
}|dz}|dz}|dz}|dz}|j
tj||d|zz||d|zz|d|zz|d|zz|d|zz|d|zz||z||z|d|zz||z|d|zz|d|zzg|j|j|j���|S)	Nr%r]r���
g�2@rHr
)	rr3rNrrrrr�s24s	         rr.z
ArrowTwo.draws���$�)�)����L�L�N��
�F�F���F�F��
�q�S��
�q�S��
�q�S����d��	���f�n�n��a��3��h��a��3��h��e�C�i�K��2�c�6���a��d�F�A�a��d�F��a�C��2���a��d�F�A�b�D��e�C�i�K��2�c�6�������*�*��*�*�,�
	��r!NrQr?r!rrr	s��� �r!rc	�P�eZdZdZeeeeee	f�d����Z
d�Zd�Zy)�	CrossHairrBz( gap at centre as "x%" or points or Noner
)rc�innerGapc��dx|_x|_x|_|_d|_d|_tj|_d|_	d|_
y)Nrr(r�z20%)rrrrrrrr1rrrrs rr zCrossHair.__init__=sG��./�/���/���/�$�'�D�G���	����!�<�<��������
r!c��t|j�}tj�}|j}|j
|jz}|j|jz}d|jz}|s||z
|||z|f|||z
|||zfg}n~t|�r@t|�}|jd�r|t|dd�zdz}nt|�dz}n|dz}||z
|||z
|f||z|||z|f|||z
|||z
f|||z|||zfg}tj|j|j��}	|D]+\}
}}}
|	j|
|�|	j!||
��-|j#|	�|S)Nr��%r�gY@)rr)r-rrrKrrrrrrr�endswith�Pathrr�moveTo�lineTor/)rr3rN�igrr�hsize�L�gs�P�x0�y0r�r�s              rr.zCrossHair.drawEs����$�)�)����L�L�N��
�]�]���F�F�4�7�7�N���F�F�4�7�7�N���D�I�I�
����E�'�!�A�e�G�A�&��1�U�7�1�Q�u�W�(=�>�A��R�y��r�]���;�;�t�$��u�R���W�~�-�e�3�B��r��3��B���V���E�'�!�A�b�D��#�a��d�1�Q�u�W�Q�%7�!�A�e�G�A�a��d�9K�a�PQ�RT�PT�UV�WX�Y^�W^�M_�`�A��K�K�D�$4�$4��AQ�AQ�R���	�K�B�r�"�R�
�H�H�R��O�
�H�H�R��O�	�	
���a���r!N)
rr6r7r8r:rr;�EitherOr�isString�isNumberOrNoner>r r.r?r!rrr7s0��-��G�#�H�h�~�-F�$G�Mw�x�
�H��r!rc���d}tjdd�}t�}d|_d|_|j|�|jtj|j|jdzz|jd|zz
|jjtjd|�	��t�}d
|_d|_|j|�|jtj|j|jdzz|jd|zz
|jjtjd|�	��t�}d|_d|_|j|�|jjdz}|jtj|j|jdzz|jd|zz
|tjd|�	��|jtjd
ddtjd|dz�	��t�}d|_d|_|j|�|jtj|j|jdzz|jd|zz
|jjtjd|�	��t�}d
|_d|_|j|�|jtj|j|jdzz|jd|zz
|jjtjd|�	��t!�}d|_d|_|j|�|jtj|j|jdzz|jd|zz
|jjtjd|�	��t#�}	d|	_d|	_|j|	�|jtj|	j|	jdzz|	jd|zz
|	jjtjd|�	��t%�}
d
|
_d|
_|j|
�|jtj|
j|
jdzz|
jd|zz
|
jjtjd|�	��t'�}d|_d|_|j|�|jtj|j|jdzz|jd|zz
|jjtjd|�	��t)�}d|_d|_|j|�|jtj|j|jdzz|jd|zz
|jjtjd|�	��t+�}
d
|
_d|
_|j|
�|jtj|
j|
jdzz|
jd|zz
|
jjtjd|�	��t-�}d|_d|_|j|�|jtj|j|jdzz|jd|zz
|jjtjd|�	��t/j0|dd�t3d�y)z\This function produces a pdf with examples of all the signs and symbols from this file.
    r(i�i�r�ir%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�zsignsandsymbols.pdfzsignsandsymbols.pyzwrote file: signsandsymbols.pdfN)rr,rbrrr/r0rrrrr1rtr�r�r�r}r�r�r�rrr�r	�
drawToFile�print)r�r2�cb�tbr��
tempstring�ss�ne�sf�ds�na�ns�a1�a2�fds               r�testr@bs����M����s�3��A�	��B�
�B�D��B�D��E�E�"�I��E�E�&�-�-����b�g�g�a�i�(�"�$�$��M�0A�*B��<�<�0�0�F�L�L�U]�$1�3�4�
��B��B�D��B�D��E�E�"�I��E�E�&�-�-����b�g�g�a�i�(�"�$�$��M�0A�*B��L�L�1�1�V�\�\�V^�%2�4�5�

��B��B�D��B�D��E�E�"�I����&�&��,�J��E�E�&�-�-����b�g�g�a�i�(�"�$�$��M�0A�*B�&�&�,�,�8�%2�4�5��E�E�&�-�-��A�r�E�K�K�X`�%2�4�%7�9�:�

��B�
�B�D��B�D��E�E�"�I��E�E�&�-�-����b�g�g�a�i�(�"�$�$��M�0A�*B��L�L�1�1�V�\�\�V^�%2�4�5�
��B��B�D��B�D��E�E�"�I��E�E�&�-�-����b�g�g�a�i�(�"�$�$��M�0A�*B��L�L�1�1�V�\�\�V^�%2�4�5�
��B��B�D��B�D��E�E�"�I��E�E�&�-�-����b�g�g�a�i�(�"�$�$��M�0A�*B��L�L�1�1�V�\�\�V^�%2�4�5�
��B�
�B�D��B�D��E�E�"�I��E�E�&�-�-����b�g�g�a�i�(�"�$�$��M�0A�*B��L�L�1�1�V�\�\�V^�%2�4�5�
��B��B�D��B�D��E�E�"�I��E�E�&�-�-����b�g�g�a�i�(�"�$�$��M�0A�*B��L�L�1�1�V�\�\�V^�%2�4�5�
��B��B�D��B�D��E�E�"�I��E�E�&�-�-����b�g�g�a�i�(�"�$�$��M�0A�*B��L�L�1�1�V�\�\�V^�%2�4�5�
��B�
�B�D��B�D��E�E�"�I��E�E�&�-�-����b�g�g�a�i�(�"�$�$��M�0A�*B��L�L�1�1�V�\�\�V^�%2�4�5�
��B��B�D��B�D��E�E�"�I��E�E�&�-�-����b�g�g�a�i�(�"�$�$��M�0A�*B��L�L�1�1�V�\�\�V^�%2�4�5�
��B��B�D��B�D��E�E�"�I��E�E�&�-�-����b�g�g�a�i�(�"�$�$��M�0A�*B��L�L�1�1�V�\�\�V^�%2�4�5�����1�3G�H�	�
+�,r!�__main__N)!�__version__r8�
reportlab.libr�reportlab.lib.validators�reportlab.lib.attrmap�reportlab.lib.utilsrr�reportlab.graphicsr�reportlab.graphics.widgetbaserr	rrArSrYrbrtr}r�r�r�r�r�r�r�rrrr@rr?r!r�<module>rIs)��
��	��,!�&�#�0�%�0�(�#�f�#�J���.���@#�g�#�J.�w�.�b)�g�)�V@��@�D:�w�:�z#�g�#�J5��5�p'�
�'�TA��A�HC�G�C�JJ��J�X'�w�'�R,�x�,�\(��(�Vl-�\�Z���F�r!

Zerion Mini Shell 1.0