B YI~d��@sjddlmZGdd�d�ZGdd�d�Zdd�Zedkrfdd lmZed d d d �ddlm Z e e�dS)�)�TclErrorc@s<eZdZdd�Zdd�Zdd�Zdd�Zd d �Zd d �Zd S)�WidgetRedirectorcCsJi|_||_|j|_}|j}|d|_|�d||j�|�||j�dS)NZ_orig�rename)� _operations�widget�tk�_w�orig�callZ createcommand�dispatch)�selfrr�w�r�7/opt/alt/python37/lib64/python3.7/idlelib/redirector.py�__init__s   zWidgetRedirector.__init__cCsd|jj|jjj|jjfS)Nz %s(%s<%s>))� __class__�__name__rr)r rrr�__repr__1szWidgetRedirector.__repr__cCsVxt|j�D]}|�|�q W|j}|j}|j}|�|�|�d|j|�|`|`dS)Nr) �listr� unregisterrrrZ deletecommandr r )r � operationrrr rrr�close6s zWidgetRedirector.closecCs"||j|<t|j||�t||�S)N)r�setattrr�OriginalCommand)r r�functionrrr�registerCs zWidgetRedirector.registercCsN||jkrF|j|}|j|=yt|j|�Wntk r@YnX|SdSdS)N)r�delattrr�AttributeError)r rrrrrrRs  zWidgetRedirector.unregistercGsL|j�|�}y&|r||�S|j�|j|f|�SWntk rFdSXdS)N�)r�getrr r r)r r�args�mrrrr bs zWidgetRedirector.dispatchN) r� __module__� __qualname__rrrrrr rrrrrs  rc@s$eZdZdd�Zdd�Zdd�ZdS)rcCs6||_||_|j|_|j|_|jj|_|j|f|_dS)N)�redirrrr r �tk_call�orig_and_operation)r r$rrrrr�s  zOriginalCommand.__init__cCsd|jj|j|jfS)Nz %s(%r, %r))rrr$r)r rrrr�szOriginalCommand.__repr__cGs|�|j|�S)N)r%r&)r r rrr�__call__�szOriginalCommand.__call__N)rr"r#rrr'rrrrrxs rc s�ddlm}m}||�}|�d�tt|���d�dd��\}}|�d||df�||�}|��|� �t |�}�fdd �}|� d |��dS) Nr)�Toplevel�TextzTest WidgetRedirector�+�z+%d+%d�cstd|��|�dS)N�insert)�print)r )�original_insertrr� my_insert�s z%_widget_redirector..my_insertr-) �tkinterr(r)�title�map�intZgeometry�split�packZ focus_setrr) �parentr(r)�top�x�y�textr$r0r)r/r�_widget_redirector�s   r<�__main__)�mainz!idlelib.idle_test.test_redirector�F)� verbosity�exit)�runN) r1rrrr<rZunittestr>Zidlelib.idle_test.htestrBrrrr�s u!