Current File : //opt/alt/python34/lib64/python3.4/idlelib/__pycache__/ReplaceDialog.cpython-34.pyo
�
e f��@s�ddlTddlmZddlmZddlZdd�ZGdd�de�Zd d
�Ze dkr�ddl
mZee�ndS)
�)�*)�SearchEngine)�SearchDialogBaseNcCsY|j�}tj|�}t|d�s?t||�|_n|j}|j|�dS)N�_replacedialog)Z_rootr�get�hasattr�
ReplaceDialogr�open)�text�root�engineZdialog�r
�:/opt/alt/python34/lib64/python3.4/idlelib/ReplaceDialog.py�replaces rc@s�eZdZdZdZdd�Zdd�Zdd�Zd d
�Zddd
�Z ddd�Z
ddd�Zdd�Zddd�Z
ddd�Zdd�Zdd�Zddd�ZdS)rzReplace Dialog�ReplacecCs&tj|||�t|�|_dS)N)r�__init__Z StringVar�replvar)�selfrrr
r
rrszReplaceDialog.__init__cCs�tj||�y|jd�}Wntk
r=d}YnXy|jd�}Wntk
rkd}YnX|p~|jd�}|p�|}|j||�d|_dS)Nz sel.firstzsel.last�insert�)rr �index�TclError�show_hit�ok)rr
�first�lastr
r
rr s
zReplaceDialog.opencCs-tj|�|jd|j�d|_dS)Nz
Replace with:r)r�create_entriesZ
make_entryrZreplent)rr
r
rr)s
zReplaceDialog.create_entriescCs`tj|�|jd|j�|jd|j�|jd|jd�|jd|j�dS)NZFindrzReplace+FindrzReplace All)r�create_command_buttonsZmake_button�find_it�
replace_it�default_command�replace_all)rr
r
rr-s
z$ReplaceDialog.create_command_buttonsNcCs|jd�dS)Nr)�do_find)r�eventr
r
rr4szReplaceDialog.find_itcCs#|j|j�r|j�ndS)N)r"r�
do_replace)rr#r
r
rr7szReplaceDialog.replace_itcCs5|j|j�r1|j�r1|jd�q1ndS)Nr)r"rr$)rr#r
r
rr ;szReplaceDialog.default_commandcCs`|jj�rVy|j|�}Wq\tjk
rR|jj|d�d}Yq\Xn|}|S)za Helper function for expanding a regular expression
in the replace field, if needed. zInvalid Replace ExpressionN)rZisre�expand�re�errorZreport_error)r�m�repl�newr
r
r�_replace_expandAszReplaceDialog._replace_expandcCsB|jj�}|sdS|jj�}|j}|jj||�}|sZ|j�dS|jddd�|jddd�|d}|dj�}|jj �r�d}d}nd}d} }
|j
�x6|jj||||d|�}|sPn|\}}|jd|d|d�}|j�}
|j
||�}|dkrXPn|j�\}}d||f} d||f}
||
kr�|jd |
�nH|jd | �| |
kr�|j| |
�n|r�|j| |�n|t|�}d}q�W|j�| r4|
r4|j| |
�n|j�dS)
N�selz1.0�end�hitrrz%d.0z%d.%dr)r�getprogrrr
�search_text�bell�
tag_remove�startZiswrap�undo_block_startZsearch_forward�groupr+�span�mark_set�deleter�len�undo_block_stopr�close)rr#�progr)r
�res�line�colrrrr(�charsZorigr*�i�jr
r
rr!OsZ
!
zReplaceDialog.replace_allrc
Cs�|jj�sdS|j}|jj|d|�}|sH|j�dS|\}}|j�\}}d||f}d||f} |j|| �d|_dS)NFz%d.%drT)rr/r
r0r1r6rr)
rrr
r=r>r(rArBrrr
r
rr"�s
zReplaceDialog.do_findc
Cs|jj�}|sdS|j}y&|jd�}}|jd�}Wntk
rbd}YnX|s�|jd�}}}ntj|�\}}|jd|d|d�}|j||�} |s�dS|j | |j
j��}
|
dkr�dS|jd|�|j�| j
�r6|j||�n|
rO|j||
�n|j�|j||jd��d|_dS) NFz sel.firstzsel.lastrz%d.0rrT)rr/r
rrrZget_line_colr�matchr+rr7r4r5r8rr:rr)rr<r
r�posrr>r?r@r(r*r
r
rr$�s:
zReplaceDialog.do_replacecCs�|j}|jd|�|jddd�|jd||�|jddd�||krq|jd|�n|jd||�|jd�|j�dS)Nrr,z1.0r-r.)r
r7r2�tag_addZseeZupdate_idletasks)rrrr
r
r
rr�s
zReplaceDialog.show_hitcCs*tj||�|jjddd�dS)Nr.z1.0r-)rr;r
r2)rr#r
r
rr;�szReplaceDialog.close)�__name__�
__module__�__qualname__�titleZiconrr rrrrr r+r!r"r$rr;r
r
r
rrs1
rc
s�t�}|jd�ttttjd|j����\}}}}|jd||df�dd�}dd�}t|��|�_ |�_
�j��jd d
d��fdd
�}t
|ddd|�} | j�dS)NzTest ReplaceDialogz[x+]z+%d+%d�cSsdS)Nr
r
r
r
rr4�sz)_replace_dialog.<locals>.undo_block_startcSsdS)Nr
r
r
r
rr:�sz(_replace_dialog.<locals>.undo_block_stoprzThis is a sample string.
�
cs4�jtdt�t���jtdt�dS)Nz1.0)rEZSELZENDrr2r
)r
r
r�show_replace�s
z%_replace_dialog.<locals>.show_replacer
rZcommand)ZTkrI�list�map�intr&�splitZgeometryZTextr4r:ZpackrZButton)
�parentr�widthZheight�x�yr4r:rLZbuttonr
)r
r�_replace_dialog�s
3
rU�__main__)�run)ZtkinterZidlelibrZidlelib.SearchDialogBaserr&rrrUrFZidlelib.idle_test.htestrWr
r
r
r�<module>s
�