
    z%i                         	 d dl mZ d dlmZ d dlmZ d Zd Zd Zd Z	 G d d	e      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)    )TclError)searchengine)SearchDialogBasec                     	 | j                         }t        j                  |      }t        |d      st	        ||      |_        |j
                  S )N_searchdialog)_rootr   gethasattrSearchDialogr   )textrootengines      B/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/idlelib/search.py_setupr      sI     ::<Dd#F6?++D&9    c                 ^    	 | j                  dd      }t        |       j                  | |      S N	sel.firstsel.last)r	   r   open)r   pats     r   findr      s0     ((;

+C$<T3''r   c                 8    	 t        |       j                  |       S N)r   
find_againr   s    r   r   r   &   s     $<""4((r   c                 8    	 t        |       j                  |       S r   )r   find_selectionr   s    r   r   r   1   s     $<&&t,,r   c                   (    e Zd Z	 d ZddZd Zd Zy)r   c                 l    	 t        j                  |        | j                  d| j                  d       y )Nz	Find NextT)isdef)r   create_widgetsmake_buttondefault_command)selfs    r   r"   zSearchDialog.create_widgetsA   s.    G''-d&:&:$Gr   Nc                 r    	 | j                   j                         sy | j                  | j                         y r   )r   getprogr   r   )r%   events     r   r$   zSearchDialog.default_commandG   s(    ={{""$		"r   c                    	 | j                   j                         s| j                  |       y| j                   j                         sy| j                   j	                  |      }|r|\  }}|j                         \  }}d||fz  }d||fz  }	 |j                  d      }	|j                  d      }
|	|k(  r|
|k(  r| j                          y|j                  ddd       |j                  d||       |j                  d| j                   j                         xr |xs |       |j                  d       y	| j                          y# t        $ r Y w xY w)
NFz%d.%dr   r   sel1.0endinsertT)r   getpatr   r'   search_textspanindexbellr   
tag_removetag_addmark_setisbacksee)r%   r   reslinemijfirstlastselfirstsellasts              r   r   zSearchDialog.find_againM   s6   	 {{!!#IIdO{{""$kk%%d+GD!668DAqtQi'EdAY&D::k2**Z0u$DIIK  OOE5%0LLt,MM(DKK$6$6$8$BU$JdKHHXIIK  s   <E 	EEc                     	 |j                  dd      }|r| j                  j                  |       | j                  |      S r   )r	   r   setcookedpatr   )r%   r   r   s      r   r   zSearchDialog.find_selectiony   s=    	 hh{J/KK$$S)t$$r   r   )__name__
__module____qualname__r"   r$   r   r    r   r   r   r   >   s    +H#*X%r   r   c                    	 ddl m}m} ddlm}m}  ||       }|j                  d       t        t        | j                         j                  d      dd        \  }}|j                  d||dz   fz          ||      }|j                           ||d	
      j                          j                  dd       fd}	 ||d|	      }
|
j                          y )Nr   )ToplevelText)FrameButtonzTest SearchDialog+   z+%d+%d   gray)inactiveselectbackgroundr-   z}This is a sample string.
This is a sample string.
This is a sample string.
This is a sample string.
This is a sample string.
c                       j                  ddd       t               j                           j                  ddd       y )Nr*   r+   r,   )r4   r   r   r3   r   s   r   	show_findz!_search_dialog.<locals>.show_find   s5    UE5)t$ue,r   zSearch (selection ignored))r   command)tkinterrH   rI   tkinter.ttkrJ   rK   titlemapintgeometrysplitpackr-   )parentrH   rI   rJ   rK   topxyframerR   buttonr   s              @r   _search_dialogrb      s    &)
6
CII!"sFOO%++C045DAqLLQCL()#JE	JJL7DIIKKK78-
 E <iPF
KKMr   __main__)mainzidlelib.idle_test.test_search   F)	verbosityexit)runN)rT   r   idlelibr   idlelib.searchbaser   r   r   r   r   r   rb   rC   unittestrd   idlelib.idle_test.htestrh   rF   r   r   <module>rm      sh       / 	(	)
-F%# F%R0 z	(AEB+ r   