<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
2aN                 @   s   d dl Z d dlmZmZ d dlmZ d dlmZ dd ZG dd deZ	d	d
 Z
edkrd dlmZ edddd d dlmZ ee
 dS )    N)	StringVarTclError)SearchDialogBase)searchenginec             C   s<   | j  }tj|}t|ds(t|||_|j}|j|  d S )N_replacedialog)Z_rootr   gethasattrReplaceDialogr   open)textrootengineZdialog r   ,/opt/alt/python36/lib64/python3.6/replace.pyreplace   s    

r   c               @   s   e Zd ZdZdZdd Zdd Zdd Zd	d
 ZdddZ	d ddZ
d!ddZdd Zd"ddZd#ddZdd Zdd Zd$ddZdS )%r	   zReplace DialogReplacec             C   s   t j| || t|| _d S )N)r   __init__r   replvar)selfr   r   r   r   r   r      s    zReplaceDialog.__init__c             C   s   t j| | y|jd}W n tk
r2   d }Y nX y|jd}W n tk
rZ   d }Y nX |ph|jd}|pp|}| j|| d| _d S )Nz	sel.firstzsel.lastinsert   )r   r
   indexr   show_hitok)r   r   firstlastr   r   r   r
   !   s    

zReplaceDialog.openc             C   s"   t j|  | jd| jd | _d S )NzReplace with:r   )r   create_entriesZ
make_entryr   Zreplent)r   r   r   r   r   1   s    
zReplaceDialog.create_entriesc             C   sH   t j|  | jd| j | jd| j | jd| jd | jd| j d S )NZFindr   zReplace+Findr   zReplace All)r   create_command_buttonsZmake_buttonfind_it
replace_itdefault_commandreplace_all)r   r   r   r   r   6   s
    
z$ReplaceDialog.create_command_buttonsNc             C   s   | j d d S )Nr   )do_find)r   eventr   r   r   r   =   s    zReplaceDialog.find_itc             C   s   | j | jr| j  d S )N)r"   r   
do_replace)r   r#   r   r   r   r   @   s    zReplaceDialog.replace_itc             C   s"   | j | jr| j r| j d d S )Nr   )r"   r   r$   )r   r#   r   r   r   r    D   s    zReplaceDialog.default_commandc             C   sL   | j j rDy|j|}W qH tjk
r@   | j j|d d }Y qHX n|}|S )NzInvalid Replace Expression)r   ZisreexpandreerrorZreport_error)r   mreplnewr   r   r   _replace_expandK   s    
zReplaceDialog._replace_expandc             C   s  | j j }|sd S | jj }| j}| j j||}|s@| j  d S |jddd |jddd |d }|d j }| j j	 rd}d}d}d  }	}
|j
  x| j j||||d|}|sP |\}}|jd| d|d  }|j }| j||}|d krP |j \}}d||f }	d||f }
||kr.|jd	|
 n4|jd	|	 |	|
krP|j|	|
 |rb|j|	| |t| }d}qW |j  |	r|
r| j|	|
 | j  d S )
Nselz1.0endhitr   r   z%d.0z%d.%dr   )r   getprogr   r   r   search_textbell
tag_removestartZiswrapundo_block_startZsearch_forwardgroupr+   spanmark_setdeleter   lenundo_block_stopr   close)r   r#   progr)   r   reslinecolr   r   r   r(   charsZorigr*   ijr   r   r   r!   Y   sZ    




zReplaceDialog.replace_allr   c       
      C   sv   | j j sdS | j}| j j|d |}|s4| j  dS |\}}|j \}}d||f }d||f }	| j||	 d| _dS )NFz%d.%dr   T)r   r/   r   r0   r1   r6   r   r   )
r   r   r   r=   r>   r(   rA   rB   r   r   r   r   r   r"      s    
zReplaceDialog.do_findc             C   s  | j j }|sdS | j}y|jd }}|jd}W n tk
rL   d }Y nX |sd|jd } }}tj|\}}|jd| d|d  }|j||}	|sdS | j	|	| j
j }
|
d krdS |jd| |j  |	j r|j|| |
r|j||
 |j  | j||jd d| _dS )	NFz	sel.firstzsel.lastr   z%d.0r   r   T)r   r/   r   r   r   r   Zget_line_colr   matchr+   r   r7   r4   r5   r8   r   r:   r   r   )r   r<   r   r   posr   r>   r?   r@   r(   r*   r   r   r   r$      s:    

zReplaceDialog.do_replacec             C   sv   | j }|jd| |jddd |jd|| |jddd ||krR|jd| n|jd|| |jd |j  d S )Nr   r,   z1.0r-   r.   )r   r7   r2   tag_addZseeZupdate_idletasks)r   r   r   r   r   r   r   r      s    
zReplaceDialog.show_hitc             C   s    t j| | | jjddd d S )Nr.   z1.0r-   )r   r;   r   r2   )r   r#   r   r   r   r;      s    zReplaceDialog.close)N)N)N)N)r   )N)__name__
__module____qualname__titleZiconr   r
   r   r   r   r   r    r+   r!   r"   r$   r   r;   r   r   r   r   r	      s   



2
r	   c                s   ddl m}m}m m ddlm} || }|jd tt	| j
 jddd  \}}|j
d||d f  d	d
 }dd }||dd|_|_j  jdd j   fdd}	||d|	d}
|
j  d S )Nr   )ToplevelTextENDSEL)ButtonzTest ReplaceDialog+r   z+%d+%d   c               S   s   d S )Nr   r   r   r   r   r4      s    z)_replace_dialog.<locals>.undo_block_startc               S   s   d S )Nr   r   r   r   r   r:      s    z(_replace_dialog.<locals>.undo_block_stopZgray)Zinactiveselectbackgroundr   z"This is a sample sTring
Plus MORE.c                  s(   j d  t jd  d S )Nz1.0)rE   r   r2   r   )rL   rM   r   r   r   show_replace   s    z%_replace_dialog.<locals>.show_replacer   )r   Zcommand)tkinterrJ   rK   rL   rM   Ztkinter.ttkrN   rI   mapintZgeometrysplitr4   r:   packr   Z	focus_set)parentrJ   rK   rN   Zboxxyr4   r:   rQ   Zbuttonr   )rL   rM   r   r   _replace_dialog   s"    
 rZ   __main__)mainzidlelib.idle_test.test_replace   F)	verbosityexit)run)r&   rR   r   r   Zidlelib.searchbaser   Zidlelibr   r   r	   rZ   rF   Zunittestr\   Zidlelib.idle_test.htestr`   r   r   r   r   <module>   s    7