ó
|Nc           @   s`   d  d l  m Z d  d l m Z d d	 d     YZ d   Z e d k r\ d  d l Te   n  d S(
   i˙˙˙˙(   t   WidgetRedirector(   t	   Delegatort
   Percolatorc           B   sD   e  Z d    Z d   Z d d  Z d d  Z d   Z d   Z RS(   c         C   sw   | |  _  t |  |  _ t |  |  _ |  _ |  j j d |  j  |  j _ |  j j d |  j  |  j _ g  |  _	 d  S(   Nt   insertt   delete(
   t   textR    t   redirR   t   topt   bottomt   registerR   R   t   filters(   t   selfR   (    (    s'   C:\RCS\Python\lib\idlelib\Percolator.pyt   __init__   s    	c         C   sn   x& |  j  |  j k	 r( |  j |  j   q Wd  |  _  |  j j d   d  |  _ |  j j   d  |  _ d  |  _ d  S(   N(   R   R   t   removefiltert   Nonet   setdelegateR   t   closeR   (   R   (    (    s'   C:\RCS\Python\lib\idlelib\Percolator.pyR      s    	 	 	c         C   s   |  j  j | | |  d  S(   N(   R   R   (   R   t   indext   charst   tags(    (    s'   C:\RCS\Python\lib\idlelib\Percolator.pyR      s    c         C   s   |  j  j | |  d  S(   N(   R   R   (   R   t   index1t   index2(    (    s'   C:\RCS\Python\lib\idlelib\Percolator.pyR      s    c         C   sG   t  | t  s t  | j d  k s* t  | j |  j  | |  _ d  S(   N(   t
   isinstanceR   t   AssertionErrort   delegateR   R   R   (   R   t   filter(    (    s'   C:\RCS\Python\lib\idlelib\Percolator.pyt   insertfilter   s    c         C   sş   t  | t  s t  | j d  k	 s* t  |  j } | | k r[ | j |  _ | j d   n[ x; | j | k	 r | |  j k	 s t  | j   | j } q^ W| j | j  | j d   d  S(   N(	   R   R   R   R   R   R   R   R   t
   resetcache(   R   R   t   f(    (    s'   C:\RCS\Python\lib\idlelib\Percolator.pyR   &   s    	
N(	   t   __name__t
   __module__R   R   R   R   R   R   R   (    (    (    s'   C:\RCS\Python\lib\idlelib\Percolator.pyR      s   				c          C   sÖ   d t  f d     Y}  t   } | j d | j  t   } | j   | j   t |  } |  d  } |  d  } | j |  | j |  | j	   | j
 |  | j	   | j |  | j
 |  | j	   d  S(   Nt   Tracerc           B   s#   e  Z d    Z d   Z d   Z RS(   c         S   s   | |  _  t j |  d   d  S(   N(   t   nameR   R   R   (   R   R    (    (    s'   C:\RCS\Python\lib\idlelib\Percolator.pyR   9   s    	c         W   s$   |  j  Gd G| GH|  j j |   d  S(   Ns   : insert(   R    R   R   (   R   t   args(    (    s'   C:\RCS\Python\lib\idlelib\Percolator.pyR   <   s    c         W   s$   |  j  Gd G| GH|  j j |   d  S(   Ns   : delete(   R    R   R   (   R   R!   (    (    s'   C:\RCS\Python\lib\idlelib\Percolator.pyR   ?   s    (   R   R   R   R   R   (    (    (    s'   C:\RCS\Python\lib\idlelib\Percolator.pyR   8   s   		t   WM_DELETE_WINDOWt   t1t   t2(   R   t   Tkt   wm_protocolt   quitt   Textt   packt	   focus_setR   R   t   mainloopR   (   R   t   rootR   t   pR#   R$   (    (    s'   C:\RCS\Python\lib\idlelib\Percolator.pyt   main7   s"    
		



t   __main__(   t   *N(    (   t   idlelib.WidgetRedirectorR    t   idlelib.DelegatorR   R   R.   R   t   Tkinter(    (    (    s'   C:\RCS\Python\lib\idlelib\Percolator.pyt   <module>   s   3	
