o
    :ag                     @   sn   d dl mZ ddlmZmZ ddlmZmZ G dd dejZG dd dej	ej
ZejG d	d
 d
eZdS )    )nullcontext   )backend_cairobackend_gtk3)Gtk_BackendGTK3c                   @   s   e Zd Zdd ZdS )RendererGTK3Cairoc                 C   s   t || j_d S N)r   Z_to_contextZgcctx)selfr
    r   G/usr/lib/python3/dist-packages/matplotlib/backends/backend_gtk3cairo.pyset_context   s   zRendererGTK3Cairo.set_contextN)__name__
__module____qualname__r   r   r   r   r   r      s    r   c                       s$   e Zd Z fddZdd Z  ZS )FigureCanvasGTK3Cairoc                    s   t  | t| jj| _d S r	   )super__init__r   figuredpi	_renderer)r   r   	__class__r   r   r      s   zFigureCanvasGTK3Cairo.__init__c              	   C   s   | j r| j  nt J | j| | j}|d| d|  |  }t	| 
 ||j|j|j|j | j|j| |j|  | jj| j_| j| j W d    d S 1 sXw   Y  d S )Nr   )ZtoolbarZ_wait_cursor_for_draw_cmr   r   r   Zdevice_pixel_ratioscaleZget_allocationr   Zrender_backgroundZget_style_contextxywidthZheightZset_width_heightr   r   Zdraw)r   Zwidgetr
   r   Z
allocationr   r   r   on_draw_event   s$   "z#FigureCanvasGTK3Cairo.on_draw_event)r   r   r   r   r   __classcell__r   r   r   r   r      s    r   c                   @   s   e Zd ZeZdS )_BackendGTK3CairoN)r   r   r   r   ZFigureCanvasr   r   r   r   r    %   s    r    N)
contextlibr    r   r   r   r   ZRendererCairor   ZFigureCanvasGTK3ZFigureCanvasCairor   Zexportr    r   r   r   r   <module>   s    