
    ;e                         	 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           dS dS )    )TclError)searchengine)SearchDialogBasec                     	 |                                  }t          j        |          }t          |d          st	          ||          |_        |j        S )N_searchdialog)_rootr   gethasattrSearchDialogr   )textrootengines      %/usr/lib/python3.11/idlelib/search.py_setupr      sS     ::<<Dd##F6?++ :+D&99    c                 v    	 |                      dd          }t          |                               | |          S N	sel.firstsel.last)r	   r   open)r   pats     r   findr      s8     ((;

+
+C$<<T3'''r   c                 H    	 t          |                               |           S N)r   
find_againr   s    r   r   r   &   s#     $<<""4(((r   c                 H    	 t          |                               |           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dS )r   c                 j    	 t          j        |            |                     d| j        d           d S )Nz	Find NextT)isdef)r   create_widgetsmake_buttondefault_command)selfs    r   r"   zSearchDialog.create_widgetsA   s:    G'---d&:$GGGGGr   Nc                 r    	 | j                                         sd S |                     | j                   d S r   )r   getprogr   r   )r%   events     r   r$   zSearchDialog.default_commandG   s:    ={""$$ 	F	"""""r   c                    	 | j                                         s|                     |           dS | j                                         sdS | j                             |          }|r|\  }}|                                \  }}d||fz  }d||fz  }	 |                    d          }	|                    d          }
|	|k    r|
|k    r|                                  dS n# t          $ r Y nw xY w|	                    ddd           |
                    d||           |                    d| j                                         r|p|           |                    d           d	S |                                  dS )
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   s   	 {!!## 	IIdOOO5{""$$ 	5k%%d++ 	GD!6688DAqtQi'EdAY&D::k22**Z00u$$DIIKKK 5   OOE5%000LLt,,,MM(DK$6$6$8$8$BU$JdKKKHHX4IIKKK5s   A
C! !
C.-C.c                     	 |                     dd          }|r| j                            |           |                     |          S r   )r	   r   setcookedpatr   )r%   r   r   s      r   r   zSearchDialog.find_selectiony   sL    	 hh{J// 	*K$$S)))t$$$r   r   )__name__
__module____qualname__r"   r$   r   r    r   r   r   r   >   s\        +H H H# # # #* * *X% % % % %r   r   c                 (   	 ddl m}m} ddlm}m}  ||           }|                    d           t          t          | 	                                
                    d          dd                    \  }}|	                    d||dz   fz              ||          }|                                  ||d	
                                                               dd           fd}	 ||d|	          }
|
                                 d S )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                                            ddd           t                                                                          ddd           d S )Nr*   r+   r,   )r4   r   r   r3   r   s   r   	show_findz!_search_dialog.<locals>.show_find   sO    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0455DAqLLQCL()))E#JJE	JJLLL4777DIIKKKKK7888- - - - -
 VE <iPPPF
KKMMMMMr   __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      s(                     / / / / / /     	( 	( 	(	) 	) 	)
- 
- 
-F% F% F% F% F%# F% F% F%R  0 zD	(AEBBBB++++++C r   