U
    \	¸aî  ã                   @   s”   d Z ddlZddlmZ 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mZmZ dd	lmZmZ G d
d„ deeƒZejG dd„ deƒƒZdS )z
Render to qt from agg.
é    N)ÚBboxé   )Úcbooké   )ÚFigureCanvasAgg)ÚQtCoreÚQtGuiÚ	QtWidgetsÚ_BackendQT5ÚFigureCanvasQTÚFigureManagerQTÚNavigationToolbar2QTÚbackend_version)ÚQT_APIÚ_setDevicePixelRatioc                       s2   e Zd Zd‡ fdd„	Zdd„ Z‡ fdd„Z‡  ZS )	ÚFigureCanvasQTAggNc                    s   t ƒ j|d d S )N)Úfigure)ÚsuperÚ__init__)Úselfr   ©Ú	__class__© úF/tmp/pip-unpacked-wheel-wjyw_3jo/matplotlib/backends/backend_qt5agg.pyr      s    zFigureCanvasQTAgg.__init__c                 C   s"  |   ¡  t| dƒsdS t | ¡}zò| ¡ }| ¡ | j }| ¡ | j }|  	| 
¡ ¡\}}|| }|| }	t||g|	|ggƒ}
|  |
¡}t t|ƒ¡}| |¡ t ||jd |jd tjj¡}t|| jƒ t | ¡ | ¡ ¡}| ||¡ tdkrdtj t|ƒ¡_|   |¡ W 5 | ¡  X dS )z«
        Copy the image from the Agg canvas to the qt.drawable.

        In Qt, all drawing should be done inside of here when a widget is
        shown onscreen.
        ZrendererNr   r   )ZPySideZPySide2)!Z
_draw_idleÚhasattrr   ZQPainterÚendÚrectÚwidthZ
_dpi_ratioÚheightZmouseEventCoordsZtopLeftr   Zcopy_from_bboxr   Z._unmultiplied_rgba8888_to_premultiplied_argb32Ú
memoryviewZ	eraseRectZQImageÚshapeZFormat_ARGB32_Premultipliedr   r   ZQPointÚleftÚtopZ	drawImager   ÚctypesÚc_longÚfrom_addressÚidÚvalueZ_draw_rect_callback)r   ÚeventZpainterr   r   r   r!   r"   ZbottomÚrightZbboxÚregÚbufZqimageÚoriginr   r   r   Ú
paintEvent   s6    


ÿ
ÿ
zFigureCanvasQTAgg.paintEventc                    s   t ƒ j||Ž |  ¡  d S )N)r   Úprint_figureZdraw)r   ÚargsÚkwargsr   r   r   r.   M   s    zFigureCanvasQTAgg.print_figure)N)Ú__name__Ú
__module__Ú__qualname__r   r-   r.   Ú__classcell__r   r   r   r   r      s   6r   c                   @   s   e Zd ZeZdS )Ú_BackendQT5AggN)r1   r2   r3   r   ZFigureCanvasr   r   r   r   r5   R   s   r5   )Ú__doc__r#   Zmatplotlib.transformsr   Ú r   Zbackend_aggr   Zbackend_qt5r   r   r	   r
   r   r   r   r   Z	qt_compatr   r   r   Úexportr5   r   r   r   r   Ú<module>   s   (A