
    z%i                         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     F/home/uftp/.pyenv/versions/3.12.0/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                 H    |j                  | j                         || _        y r   )r   r   )r   filters     r   insertfilterzPercolator.insertfilter"   s     	488$r   c                     | j                   }|j                          ||ur!|j                  }|j                          ||ur!|j                  |j                         |j                  |       y r   )r   
resetcachedelegater   )r   r!   afterfs       r   insertfilterafterzPercolator.insertfilterafter)   sX    
 HH	un

ALLN un
 	1::&	fr   c                 4   | j                   }||u r#|j                  | _         |j                  d        y |j                  |ur+|j                          |j                  }|j                  |ur+|j                  |j                         |j                  d        y r   )r   r%   r   r$   )r   r!   r'   s      r   r   zPercolator.removefilter8   sy     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   r2   s     r   r   z$_percolator.<locals>.Tracer.__init__M   s    DItT*r   c                 d    t        | j                  d|        | j                  j                  |  y )Nz: insert)printr2   r%   r   r   argss     r   r   z"_percolator.<locals>.Tracer.insertQ   &    $))Z. DMM  $'r   c                 d    t        | j                  d|        | j                  j                  |  y )Nz: delete)r4   r2   r%   r	   r5   s     r   r	   z"_percolator.<locals>.Tracer.deleteU   r7   r   N)r*   r+   r,   r   r   r	   r-   r   r   Tracerr0   L   s    	+	(	(r   r9   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   r@   )rB   rC   r>   var2s   r   toggle2z_percolator.<locals>.toggle2f   rF   r   Tracer1)r
   commandvariableTracer2)tkinterr   TopleveltitlemapintgeometrysplitTextr   r"   r   packIntVarCheckbutton)parenttkr9   boxxyr
   prE   rI   cb1cb2rB   rC   r=   r>   rD   rH   s               @@@@@@r   _percolatorra   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   ra   r*   unittestrc   idlelib.idle_test.htestrg   r-   r   r   <module>rl      sH    ' /A% A%H&P z	,F+ r   