a
    ¦¾deä  ã                   @   sª   d dl mZ d dlmZ d dlmZmZmZmZm	Z	m
Z
 d dlmZ d dlT d dlT d dlmZ d dlmZ d dlmZ G d	d
„ d
eƒZedkr¦eƒ Ze ¡ jdd� dS )é    )Ú_PCMYK_black)ÚLabel)ÚCircleÚDrawingÚGroupÚLineÚRectÚString)ÚWidget)Ú*)Úcm)ÚgetFont)Ú	_maxWidthc                   @   sÆ   e Zd ZdZeeedd�eedd�eedd�eedd�eedd�eedd�eed	d�ee	d
d�eedd�ee	dd�eedd�eedd�eedd�eedd�d�Z
dd„ Zdd„ Zddd„Zdd„ ZdS )ÚDotBoxzReturns a dotbox widget.z/List of text labels for boxes on left hand side)Údescz+Text label for second box on left hand sidez Name of font used for the labelsz Size of font used for the labelsz&Space between label text and grid edgez!Width of the grid and dot outlinezWidth of each 'box'zColour for the box and griddingz)Diameter of the circle used for the 'dot'zColour of the circle on the boxzX Position of the circlezX Position of dotboxzY Position of dotbox)ÚxlabelsÚylabelsÚlabelFontNameÚlabelFontSizeÚlabelOffsetÚstrokeWidthÚgridDivWidthÚ	gridColorÚdotDiameterÚdotColorÚdotXPositionÚdotYPositionÚxÚyc                 C   s|   g d¢| _ g d¢| _d| _d| _d| _d| _dt | _t 	ddd	¡| _
d
t | _t 	ddd¡| _d| _d| _d| _d| _d S )N)ÚValueZBlendZGrowth)ZSmallZMediumZLargeZ	Helveticaé   é   g      à?g¹?gSSSSSSÓ?gñðððððà?gš™™™™™Ù?gí?gì?gÞÝÝÝÝÝÝ?é   é   )r   r   r   r   r   r   r   r   ÚcolorsZColorr   r   r   r   r   r   r   )Úself© r&   úY/var/www/sistema_ama/venv/lib/python3.9/site-packages/reportlab/graphics/charts/dotbox.pyÚ__init__.   s    



zDotBox.__init__c                 C   sˆ   d } } }}t | jƒ| j }|| | | j }|t| j| j| jƒ }t | jƒ| j }|| | | j }|t| j| j| jƒ }||fS )Nr!   )Úlenr   r   r   r   r   r   r   )r%   ZleftPaddingZrightPaddingZ
topPaddingZbottomPaddingÚtxÚtyr&   r&   r'   Ú_getDrawingDimensions?   s    zDotBox._getDrawingDimensionsNc                 C   s,   |s|   ¡ \}}t||ƒ}| |  ¡ ¡ |S )N)r,   r   ÚaddÚdraw)r%   Zdrawingr*   r+   r&   r&   r'   ÚdemoP   s
    
zDotBox.democ                 C   s¶  t ƒ }| t| j| jt| jƒ| j t| jƒ| j | j	| j
d d�¡ tdt| jƒƒD ]N}| t| j	| j
| j| j|| j  | jt| jƒ| j  | j|| j  d�¡ qRtdt| jƒƒD ]N}| t| j	| j
| j|| j  | j| j|| j  | jt| jƒ| j  d�¡ q²| t| j	| j
| j| j| j| j  | j| j| j  | jd d�¡ t| jƒjj}|dk�r`d}|| j }| jd k�rðtt| jƒd ddƒD ]b}| j| d k�rŒ| t| j	| j| | j| jt| j| j | j|| j | j| d   d	d
�¡ �qŒ| jd k�r²tdt| jƒƒD ]¤}| j| d k�rtƒ }| j|| j  | j| d  |_| jt| jƒ| j  | j |_d|_d|_| j|_| j|_t|_|  | j| ¡ d|_!| "¡  | |¡ �q|S )N)ÚstrokeColorr   Ú	fillColorr"   )r0   r   Úx1Úy1Zx2Úy2g       @)r0   r   r1   ZcxÚcyÚrr   g`åÐ"Ûùæ?éÿÿÿÿÚend)r0   ÚtextÚfontNameÚfontSizer1   r   r   Ú
textAnchoréZ   ÚstartÚsw)#r   r-   r   r   r   r)   r   r   r   r   r   Úranger   r   r   r   r   r   r   r   ÚfaceÚascentr   r	   r   r   r   Zangler<   r:   r;   r1   ZsetTextZ	boxAnchorr.   )r%   ÚgÚfrB   Úlr&   r&   r'   r.   W   sz    *ý
û

û

û



ù
 zDotBox.draw)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ZAttrMapZAttrMapValueZisNoneOrListOfNoneOrStringsZisStringZisNumberZisColorZ_attrMapr(   r,   r/   r.   r&   r&   r&   r'   r      sb   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿå
r   Ú__main__Zdotbox)ZfnRootN)Zreportlab.lib.colorsr   Z$reportlab.graphics.charts.textlabelsr   Zreportlab.graphics.shapesr   r   r   r   r   r	   Zreportlab.graphics.widgetbaser
   Zreportlab.lib.attrmapZreportlab.lib.validatorsZreportlab.lib.unitsr   Zreportlab.pdfbase.pdfmetricsr   Z#reportlab.graphics.charts.lineplotsr   r   rF   Údr/   Úsaver&   r&   r&   r'   Ú<module>   s     