
    ;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           dS dS )    )	Delegator)WidgetRedirectorc                   <    e Zd Zd Zd Zd	dZd	dZd Zd Zd Z	dS )

Percolatorc                 (   || _         t          |          | _        t          |          x| _        | _        | j                            d| j                  | j        _        | j                            d| j                  | j        _        g | _	        d S )Ninsertdelete)
textr   redirr   topbottomregisterr   r	   filters)selfr
   s     )/usr/lib/python3.11/idlelib/percolator.py__init__zPercolator.__init__   ss    	%d++
!*404;!Z004;GG!Z004;GG    c                    | j         | j        ur(|                     | j                    | j         | j        u(d | _         | j                            d            d | _        | j                                         d | _        d | _        d S N)r   r   removefiltersetdelegater   closer
   )r   s    r   r   zPercolator.close   s    hdk))dh''' hdk))%%%

			r   Nc                 >    | j                             |||           d S r   )r   r   )r   indexcharstagss       r   r   zPercolator.insert   s     ud+++++r   c                 <    | j                             ||           d S r   )r   r	   )r   index1index2s      r   r	   zPercolator.delete   s    '''''r   c                 H    |                     | j                   || _        d S r   )r   r   )r   filters     r   insertfilterzPercolator.insertfilter"   s%     	48$$$r   c                     | j         }|                                 ||ur|j        }|                                 ||u|                    |j                   |                    |           d S r   )r   
resetcachedelegater   )r   r!   afterfs       r   insertfilterafterzPercolator.insertfilterafter)   sp    
 H	unn
ALLNNN unn
 	1:&&&	fr   c                    | j         }||u r#|j        | _         |                    d            d S |j        |ur$|                                 |j        }|j        |u$|                    |j                   |                    d            d S r   )r   r%   r   r$   )r   r!   r'   s      r   r   zPercolator.removefilter8   s     H;;DHt$$$$$*F**J *F** MM&/***t$$$$$r   r   )
__name__
__module____qualname__r   r   r   r	   r"   r(   r    r   r   r   r      s            , , , ,( ( ( (    % % % % %r   r   c                 8   dd l } G d dt                    }|                    |           }|                    d           t	          t
          |                                                     d          dd                    \  }}|                    d||dz   fz             |                    |          }t          |          }|j
        |j         |d	           |d
          fd}fd}	|                                 |                    |           |                    |d|          }
|
                                 |                    |           |                    |d|	          }|                                 d S )Nr   c                        e Zd Zd Zd Zd ZdS )_percolator.<locals>.Tracerc                 >    || _         t          j        | d            d S r   )namer   r   )r   r2   s     r   r   z$_percolator.<locals>.Tracer.__init__M   s"    DItT*****r   c                 P    t          | j        d|            | j        j        |  d S )Nz: insert)printr2   r%   r   r   argss     r   r   z"_percolator.<locals>.Tracer.insertQ   .    $)Z... DM $''''r   c                 P    t          | j        d|            | j        j        |  d S )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   sA        	+ 	+ 	+	( 	( 	(	( 	( 	( 	( 	(r   r9   zTest Percolator+   z+%d+%d   t1t2c                  J                                      r n           d S r   get)pinpoutr=   var1s   r   toggle1z_percolator.<locals>.toggle1d   *    	$

	$b)))))r   c                  J                                      r n           d S 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0455DAqLLQCL()))773<<D4A
.C>D	B	B* * * * * * * ** * * * * * * * 	IIKKK99VD
..9g.
M
MCHHJJJ99VD
..9g.
M
MCHHJJJJJr   __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      s    ' ' ' ' ' ' / / / / / /A% A% A% A% A% A% A% A%H& & &P zD	,FFFF++++++C r   