
    e                         d dl mZ d dlmZ  G d d      Zd Zedk(  r d dlmZ  edd	d
       d dl	m
Z
  e
e       yy)    )	Delegator)WidgetRedirectorc                   :    e Zd Zd Zd Zd	dZd	dZd Zd Zd Z	y)

Percolatorc                 B   || _         t        |      | _        t        |      x| _        | _        | j                  j                  d| j                        | j
                  _        | j                  j                  d| j                        | j
                  _        g | _	        y )Ninsertdelete)
textr   redirr   topbottomregisterr   r	   filters)selfr
   s     $lib/python3.12/idlelib/percolator.py__init__zPercolator.__init__   sp    	%d+
!*404;!ZZ004;;G!ZZ004;;G    c                 >   | j                   | j                  ur4| j                  | j                          | j                   | j                  ur4d | _         | j                  j                  d        d | _        | j                  j                          d | _        d | _        y N)r   r   removefiltersetdelegater   closer
   )r   s    r   r   zPercolator.close   st    hhdkk)dhh' hhdkk)%


	r   Nc                 >    | j                   j                  |||       y r   )r   r   )r   indexcharstagss       r   r   zPercolator.insert   s    ud+r   c                 <    | j                   j                  ||       y r   )r   r	   )r   index1index2s      r   r	   zPercolator.delete   s    'r   c                     t        |t              sJ |j                  J |j                  | j                         || _        y r   )
isinstancer   delegater   r   )r   filters     r   insertfilterzPercolator.insertfilter"   s5    &),,&&488$r   c                 b   t        |t              sJ t        |t              sJ |j                  J | j                  }|j	                          ||ur1|| j
                  usJ |j                  }|j	                          ||ur1|j                  |j                         |j                  |       y r   )r!   r   r"   r   
resetcacher   r   )r   r#   afterfs       r   insertfilterafterzPercolator.insertfilterafter)   s    &),,%++&&HH	unDKK''

ALLN un
 	1::&	fr   c                    t        |t              sJ |j                  J | j                  }||u r#|j                  | _        |j	                  d        y |j                  |ur;|| j
                  usJ |j                          |j                  }|j                  |ur;|j	                  |j                         |j	                  d        y r   )r!   r   r"   r   r   r   r&   )r   r#   r(   s      r   r   zPercolator.removefilter8   s    &),,**HH;DHt$**F*++JJ **F* MM&//*t$r   r   )
__name__
__module____qualname__r   r   r   r	   r$   r)   r    r   r   r   r      s%    ,(%r   r   c                    dd l } G d dt              }|j                  |       }|j                  d       t	        t
        | j                         j                  d      dd        \  }}|j                  d||dz   fz         |j                  |      }t        |      }|j                  |j                   |d	       |d
      fd}fd}	|j                          |j                  |       |j                  |d|      }
|
j                          |j                  |       |j                  |d|	      }|j                          y )Nr   c                       e Zd Zd Zd Zd Zy)_percolator.<locals>.Tracerc                 >    || _         t        j                  | d        y r   )namer   r   )r   r3   s     r   r   z$_percolator.<locals>.Tracer.__init__M   s    DItT*r   c                 d    t        | j                  d|        | j                  j                  |  y )Nz: insert)printr3   r"   r   r   argss     r   r   z"_percolator.<locals>.Tracer.insertQ   &    $))Z. DMM  $'r   c                 d    t        | j                  d|        | j                  j                  |  y )Nz: delete)r5   r3   r"   r	   r6   s     r   r	   z"_percolator.<locals>.Tracer.deleteU   r8   r   N)r+   r,   r-   r   r   r	   r.   r   r   Tracerr1   L   s    	+	(	(r   r:   zTest Percolator+   z+%d+%d   t1t2c                  F     j                         r        y        y r   get)pinpoutr>   var1s   r   toggle1z_percolator.<locals>.toggle1d       	$
b)b)r   c                  F     j                         r        y        y r   rA   )rC   rD   r?   var2s   r   toggle2z_percolator.<locals>.toggle2f   rG   r   Tracer1)r
   commandvariableTracer2)tkinterr   TopleveltitlemapintgeometrysplitTextr   r$   r   packIntVarCheckbutton)parenttkr:   boxxyr
   prF   rJ   cb1cb2rC   rD   r>   r?   rE   rI   s               @@@@@@r   _percolatorrb   I   s   ( ( ++f
CII sFOO%++C045DAqLLQCL()773<D4A
..C>>D	B	B** 	IIK99VD
..9g.
MCHHJ99VD
..9g.
MCHHJr   __main__)mainz!idlelib.idle_test.test_percolator   F)	verbosityexit)runN)idlelib.delegatorr   idlelib.redirectorr   r   rb   r+   unittestrd   idlelib.idle_test.htestrh   r.   r   r   <module>rm      sH    ' /A% A%H&P z	,F+ r   