ó
 m[c           @` s  d  d l  m Z m Z m Z m Z d  d l Z d  d l Z d  d l Z d d l	 m
 Z
 m Z d d l m Z m Z d d l m Z d  d l m Z e j r² e r² e j d ƒ n  d	 e j e
 j f d
 „  ƒ  YZ d e j f d „  ƒ  YZ e j d e f d „  ƒ  Yƒ Z d S(   i    (   t   absolute_importt   divisiont   print_functiont   unicode_literalsNi   (   t   backend_aggt   backend_gtk3(   t   cairot   HAS_CAIRO_CFFI(   t   _BackendGTK3(   t
   transformsu^   The Gtk3Agg backend is known to not work on Python 3.x with pycairo. Try installing cairocffi.t   FigureCanvasGTK3Aggc           B` sA   e  Z d  „  Z d „  Z d „  Z d „  Z d d „ Z d „  Z RS(   c         C` s    t  j j |  | ƒ g  |  _ d  S(   N(   R   t   FigureCanvasGTK3t   __init__t   _bbox_queue(   t   selft   figure(    (    sB   lib/python2.7/site-packages/matplotlib/backends/backend_gtk3agg.pyR      s    c         C` s   d  S(   N(    (   R   (    (    sB   lib/python2.7/site-packages/matplotlib/backends/backend_gtk3agg.pyt   _renderer_init   s    c         C` s   t  j j |  ƒ d  S(   N(   R   t   FigureCanvasAggt   draw(   R   t   widtht   height(    (    sB   lib/python2.7/site-packages/matplotlib/backends/backend_gtk3agg.pyt   _render_figure   s    c         C` sÛ  |  j  ƒ  } | j | j } } t |  j ƒ se |  j | | ƒ t j d d g | | g g ƒ g } n	 |  j } t rÂ t	 | t
 j ƒ rÂ t
 j j t
 j j d t | ƒ t j ƒ d d t ƒ} n  x÷ | D]ï } |  j | ƒ } t j | j ƒ  d d ƒ}	 t | j ƒ }
 | t | j ƒ } t | j ƒ t | j ƒ } t | j ƒ t | j ƒ } t r}t
 j j |	 j t
 j | | ƒ } n t
 j j |	 t
 j | | ƒ } | j  | |
 | ƒ | j! ƒ  qÉ Wt |  j ƒ r×g  |  _ n  t" S(   u>    GtkDrawable draw event, like expose_event in GTK 2.X
        i    u
   cairo_t **t   increft   dtypeu   uint8(#   t   get_allocationR   R   t   lenR   R   R	   t   BboxR   t
   isinstanceR   t   Contextt   _from_pointert   ffit   castt   idt   objectt   __basicsize__t   Truet   copy_from_bboxt   npt
   fromstringt   to_string_argbt   intt   x0t   y1t   x1t   y0t   ImageSurfacet   create_for_datat   datat   FORMAT_ARGB32t   set_source_surfacet   paintt   False(   R   t   widgett   ctxt
   allocationt   wt   ht
   bbox_queuet   bboxt   areat   buft   xt   yR   R   t   image(    (    sB   lib/python2.7/site-packages/matplotlib/backends/backend_gtk3agg.pyt   on_draw_event    s8    '				c   	      C` s¾   | d  k r |  j j } n  |  j ƒ  } | j | j } } t | j ƒ } | t | j ƒ } t | j	 ƒ t | j ƒ } t | j ƒ t | j
 ƒ } |  j j | ƒ |  j | | | | ƒ d  S(   N(   t   NoneR   R:   R   R   R   R(   R)   R*   R+   R,   R   t   appendt   queue_draw_area(	   R   R:   R6   R7   R8   R=   R>   R   R   (    (    sB   lib/python2.7/site-packages/matplotlib/backends/backend_gtk3agg.pyt   blitI   s    c         O` s%   |  j  t j ƒ } | j | | | Ž S(   N(   t   switch_backendsR   R   t	   print_png(   R   t   filenamet   argst   kwargst   agg(    (    sB   lib/python2.7/site-packages/matplotlib/backends/backend_gtk3agg.pyRF   Y   s    N(	   t   __name__t
   __module__R   R   R   R@   RA   RD   RF   (    (    (    sB   lib/python2.7/site-packages/matplotlib/backends/backend_gtk3agg.pyR
      s   				)t   FigureManagerGTK3Aggc           B` s   e  Z RS(    (   RK   RL   (    (    (    sB   lib/python2.7/site-packages/matplotlib/backends/backend_gtk3agg.pyRM   _   s   t   _BackendGTK3Cairoc           B` s   e  Z e Z e Z RS(    (   RK   RL   R
   t   FigureCanvasRM   t   FigureManager(    (    (    sB   lib/python2.7/site-packages/matplotlib/backends/backend_gtk3agg.pyRN   c   s   (   t
   __future__R    R   R   R   t   sixt   numpyR%   t   warningst    R   R   t   backend_cairoR   R   R   t
   matplotlibR	   t   PY3t   warnR   R   R
   t   FigureManagerGTK3RM   t   exportRN   (    (    (    sB   lib/python2.7/site-packages/matplotlib/backends/backend_gtk3agg.pyt   <module>   s   "
	J	