a
    ضa&                  
   @   s   d dl ZddlmZ zddlmZ W n. eyR Z zedeW Y dZ[n
dZ[0 0 ddlmZmZ ddlm	Z	 dd	lm
Z
mZ d d
lmZ G dd dejejZG dd dejZejG dd deZdS )    N   )cbook   )backend_cairozbackend Gtk3Agg requires cairo)backend_aggbackend_gtk3)cairo)Gtk_BackendGTK3)
transformsc                   @   s.   e Zd Zdd Zdd Zd
ddZdd	 ZdS )FigureCanvasGTK3Aggc                 C   s   t j| | g | _d S N)r   FigureCanvasGTK3__init___bbox_queue)selffigure r   s/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/matplotlib/backends/backend_gtk3agg.pyr      s    zFigureCanvasGTK3Agg.__init__c                 C   s0  | j }|  }|j| }|j| }t| jsft|  ||j	|j
|j|j tddg||ggg}n| j}t|}|D ]}t|j}	|t|j }
t|jt|j }t|jt|j }tt| |}tj| jtj||}||| | ||	| |
|  |!  qzt| jr,g | _dS )Nr   F)"device_pixel_ratioget_allocationwidthheightlenr   r	   Zrender_backgroundZget_style_contextxyr   ZBboxr   Z_to_contextintx0y1x1y0r   Z._unmultiplied_rgba8888_to_premultiplied_argb32npZasarrayZcopy_from_bboxr   ZImageSurfaceZcreate_for_dataZraveldataZFORMAT_ARGB32Zset_device_scaleZset_source_surfaceZpaint)r   Zwidgetctxscale
allocationwhZ
bbox_queuebboxr   r   r   r   bufimager   r   r   on_draw_event   s<    





z!FigureCanvasGTK3Agg.on_draw_eventNc                 C   s   |d u r| j j}| j}|  }t|j| }|jt|j|  }t|jt|j | }t|jt|j	 | }| j
| | |||| d S r   )r   r(   r   r   r   r   r   r   r   r    r   appendZqueue_draw_area)r   r(   r$   r%   r   r   r   r   r   r   r   blit8   s    zFigureCanvasGTK3Agg.blitc                 C   s   t j|  tj|  d S r   )r   FigureCanvasAggdrawr   r   )r   r   r   r   r/   H   s    zFigureCanvasGTK3Agg.draw)N)__name__
__module____qualname__r   r+   r-   r/   r   r   r   r   r      s   $
r   c                   @   s   e Zd ZdS )FigureManagerGTK3AggN)r0   r1   r2   r   r   r   r   r3   O   s   r3   c                   @   s   e Zd ZeZeZdS )_BackendGTK3CairoN)r0   r1   r2   r   ZFigureCanvasr3   ZFigureManagerr   r   r   r   r4   S   s   r4   )Znumpyr!    r   r   ImportErrorer   r   r   r	   r
   Z
matplotlibr   r   r.   r   ZFigureManagerGTK3r3   Zexportr4   r   r   r   r   <module>   s    A