ó
 ‰\c           @   s0   d  e  f d „  ƒ  YZ d e  f d „  ƒ  YZ d S(   t   BlitManagerc           B   sG   e  Z d  Z d „  Z d „  Z d „  Z d d „ Z d „  Z d „  Z	 RS(   s$   Object that manages blits on an axesc         C   sM   | |  _  | j j |  _ |  j j d |  j ƒ | |  _  d  |  _ g  |  _ d  S(   Nt
   draw_event(   t   axt   figuret   canvast   mpl_connectt   on_draw_eventt   Nonet
   backgroundt   artists(   t   selfR   (    (    s:   lib/python2.7/site-packages/skimage/viewer/utils/canvas.pyt   __init__   s    			c         C   s   |  j  j | ƒ |  j ƒ  d  S(   N(   R	   t   extendt   redraw(   R
   R	   (    (    s:   lib/python2.7/site-packages/skimage/viewer/utils/canvas.pyt   add_artists   s    c         C   s%   x | D] } |  j  j | ƒ q Wd  S(   N(   R	   t   remove(   R
   R	   t   artist(    (    s:   lib/python2.7/site-packages/skimage/viewer/utils/canvas.pyt   remove_artists   s    c         C   s)   |  j  j |  j j ƒ |  _ |  j ƒ  d  S(   N(   R   t   copy_from_bboxR   t   bboxR   t   draw_artists(   R
   t   event(    (    s:   lib/python2.7/site-packages/skimage/viewer/utils/canvas.pyR      s    c         C   sV   |  j  d  k	 rE |  j j |  j  ƒ |  j ƒ  |  j j |  j j ƒ n |  j j ƒ  d  S(   N(	   R   R   R   t   restore_regionR   t   blitR   R   t	   draw_idle(   R
   (    (    s:   lib/python2.7/site-packages/skimage/viewer/utils/canvas.pyR      s
    
c         C   s(   x! |  j  D] } |  j j | ƒ q
 Wd  S(   N(   R	   R   t   draw_artist(   R
   R   (    (    s:   lib/python2.7/site-packages/skimage/viewer/utils/canvas.pyR   #   s    N(
   t   __name__t
   __module__t   __doc__R   R   R   R   R   R   R   (    (    (    s:   lib/python2.7/site-packages/skimage/viewer/utils/canvas.pyR       s   				t   EventManagerc           B   sh   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z RS(   s&   Object that manages events on a canvasc         C   s„   | j  j |  _ |  j d |  j ƒ |  j d |  j ƒ |  j d |  j ƒ |  j d |  j ƒ |  j d |  j ƒ g  |  _ d  |  _
 d  S(   Nt   button_press_eventt   key_press_eventt   button_release_eventt   motion_notify_eventt   scroll_event(   R   R   t   connect_eventt   on_mouse_presst   on_key_presst   on_mouse_releaset   on_movet	   on_scrollt   toolsR   t   active_tool(   R
   R   (    (    s:   lib/python2.7/site-packages/skimage/viewer/utils/canvas.pyR   ,   s    	c         C   s   |  j  j | | ƒ d  S(   N(   R   R   (   R
   t   namet   handler(    (    s:   lib/python2.7/site-packages/skimage/viewer/utils/canvas.pyR#   7   s    c         C   s   |  j  j | ƒ | |  _ d  S(   N(   R)   t   appendR*   (   R
   t   tool(    (    s:   lib/python2.7/site-packages/skimage/viewer/utils/canvas.pyt   attach:   s    c         C   s9   |  j  j | ƒ |  j  r, |  j  d |  _ n	 d  |  _ d  S(   Niÿÿÿÿ(   R)   R   R*   R   (   R
   R.   (    (    s:   lib/python2.7/site-packages/skimage/viewer/utils/canvas.pyt   detach>   s    	c         C   s·   x= |  j  D]2 } | j | ƒ r
 | j | ƒ r
 | |  _ Pq
 q
 W|  j rp |  j j | ƒ rp |  j j | ƒ d  Sx@ t |  j  ƒ D]/ } | j | ƒ s€ | |  _ | j | ƒ d  Sq€ Wd  S(   N(   R)   t   ignoret   hit_testR*   R$   t   reversed(   R
   R   R.   (    (    s:   lib/python2.7/site-packages/skimage/viewer/utils/canvas.pyR$   E   s    		c         C   s/   |  j  | ƒ } | d  k	 r+ | j | ƒ n  d  S(   N(   t	   _get_toolR   R%   (   R
   R   R.   (    (    s:   lib/python2.7/site-packages/skimage/viewer/utils/canvas.pyR%   S   s    c         C   s'   |  j  s |  j j | ƒ r  d  S|  j S(   N(   R)   R*   R1   R   (   R
   R   (    (    s:   lib/python2.7/site-packages/skimage/viewer/utils/canvas.pyR4   X   s    c         C   s/   |  j  | ƒ } | d  k	 r+ | j | ƒ n  d  S(   N(   R4   R   R&   (   R
   R   R.   (    (    s:   lib/python2.7/site-packages/skimage/viewer/utils/canvas.pyR&   ]   s    c         C   s/   |  j  | ƒ } | d  k	 r+ | j | ƒ n  d  S(   N(   R4   R   R'   (   R
   R   R.   (    (    s:   lib/python2.7/site-packages/skimage/viewer/utils/canvas.pyR'   b   s    c         C   s/   |  j  | ƒ } | d  k	 r+ | j | ƒ n  d  S(   N(   R4   R   R(   (   R
   R   R.   (    (    s:   lib/python2.7/site-packages/skimage/viewer/utils/canvas.pyR(   g   s    (   R   R   R   R   R#   R/   R0   R$   R%   R4   R&   R'   R(   (    (    (    s:   lib/python2.7/site-packages/skimage/viewer/utils/canvas.pyR   (   s   									N(   t   objectR    R   (    (    (    s:   lib/python2.7/site-packages/skimage/viewer/utils/canvas.pyt   <module>   s   %