o
    QFj                     @  s   d dl mZ d dlZd dlZd dlZd dlmZmZ dZdZ	dZ
eZd+ddZd,ddZd-ddZd.dd Zd/d!d"Zd0d%d&Zd1d)d*ZdS )2    )annotationsN)ALLOWED_ACTIONSDEFAULT_FRAMES_PER_ACTION      s   PNG

actionstrreturnbytesc           	   
   C  s   | t vrtd|  tt }dg|t  }d}d}d}ttD ]H}|t }|t d }t|||d|td |d t|||d	 d
|d	 td |d t|||td  d
td | t|||d	 |d	 td | q t	|t|S )Nz%unsupported action for layout guide: )   r   r      )   r   r   r   )/         r   )   r   r   r      r      r         )
r   
ValueErrorWIDTHSTRIP_FRAMESHEIGHTrange
_draw_rect_draw_dashed_vertical_draw_dashed_horizontal_write_rgba_png)	r   widthcanvasbordersafecenterframe_indexleftright r'   B/opt/sixxie/releases/current/services/pet_builder/layout_guides.py#build_action_strip_layout_guide_png   s   " r)   r    list[tuple[int, int, int, int]]r   intx0y0x1y1colortuple[int, int, int, int]	thicknessNonec                 C  s   t |D ]F}t || || d D ]}	t| ||	|| | t| ||	|| | qt || || d D ]}
t| ||| |
| t| ||| |
| q3qd S )Nr   )r   
_set_pixel)r    r   r,   r-   r.   r/   r0   r2   offsetxyr'   r'   r(   r   %   s   
r   r6   c                 C  sH   t ||d dD ]}t |t|d |d D ]
}t| |||| qqd S Nr         r   minr4   )r    r   r6   r-   r/   r0   r7   draw_yr'   r'   r(   r   8   
   r   r7   c                 C  sH   t ||d dD ]}t |t|d |d D ]
}t| |||| qqd S r8   r;   )r    r   r,   r.   r7   r0   r6   draw_xr'   r'   r(   r   E   r>   r   c                 C  sP   d|  kr
|k r$n d S d|  krt k r&n d S || || | < d S d S d S )Nr   )r   )r    r   r6   r7   r0   r'   r'   r(   r4   R   s   4r4   heightpixelsc           
      C  s   t  }t|D ]#}|d |||  |d |   D ]\}}}}|||||f qqtdtd| |dddddtdtt	|tdd	g}	t
d	|	 S )
Nr   r   s   IHDRz>IIBBBBBr:      s   IDATs   IEND    )	bytearrayr   appendextend
_png_chunkstructpackzlibcompressr
   PNG_SIGNATUREjoin)
r   r@   rA   rowsr7   redgreenbluealphachunksr'   r'   r(   r   ]   s   
$r   kinddatac                 C  s2   t dt||  | t dt| | d@  S )Nz>Il    )rH   rI   lenbinasciicrc32)rT   rU   r'   r'   r(   rG   k   s   2rG   )r   r   r	   r
   )r    r*   r   r+   r,   r+   r-   r+   r.   r+   r/   r+   r0   r1   r2   r+   r	   r3   )r    r*   r   r+   r6   r+   r-   r+   r/   r+   r0   r1   r	   r3   )r    r*   r   r+   r,   r+   r.   r+   r7   r+   r0   r1   r	   r3   )r    r*   r   r+   r6   r+   r7   r+   r0   r1   r	   r3   )r   r+   r@   r+   rA   r*   r	   r
   )rT   r
   rU   r
   r	   r
   )
__future__r   rW   rH   rJ   packages.pet_package_schemar   r   r   r   rL   r   r)   r   r   r   r4   r   rG   r'   r'   r'   r(   <module>   s     





