
    .hh                         S SK Jr  S SKJrJrJrJrJrJr  S SK	J
r
   " S S5      r " S S\5      r\S:X  a  S S	KJr  \" S
SSS9  S SKJr  \" \5        gg)    )Toplevel)FrameEntryLabelButtonCheckbuttonRadiobutton)_setup_dialogc                   r    \ rS rSrSrSrSrS rSS jrSS jr	S	 r
S
 rS rSS jrS rS rSS jrS rSrg)SearchDialogBase   zSearch DialogSearch   c                 L    Xl         UR                  U l        X l        S U l        g N)rootbellenginetop)selfr   r   s      ;/opt/python-3.13.8/usr/lib/python3.13/idlelib/searchbase.py__init__SearchDialogBase.__init__!   s      	II	    Nc                 b   Xl         U R                  (       d  U R                  5         O4U R                  R                  5         U R                  R	                  5         U R                  R                  UR                  5       5        U(       a8  U R                  R                  SS5        U R                  R                  SU5        U R                  R                  5         U R                  R                  SS5        U R                  R                  S5        U R                  R                  5         g )Nr   end)textr   create_widgets	deiconifytkraise	transientwinfo_toplevelentdeleteinsert	focus_setselection_rangeicursorgrab_set)r   r   searchphrases      r   openSearchDialogBase.open3   s    	xx!HH HH4..01HHOOAe$HHOOE,/  E*r   c                     U R                   (       aP  U R                   R                  5         U R                   R                  S5        U R                   R                  5         g g )N )r   grab_releaser!   withdraw)r   events     r   closeSearchDialogBase.closeD   s@    88HH!!#HHr"HH r   c                    [        U R                  5      nUR                  SU R                  5        UR                  SU R                  5        UR                  SU R                  5        UR                  U R                  5        UR                  U R                  5        [        U5        Xl        [        USS9U l        U R                  R                  SS9  UR                  SS	S
9  UR!                  SS	S
9  SU l        U R                  R                  SSSS9  U R                  R                  SSS	S	S9  U R%                  5         U R'                  5         U R)                  5         U R+                  5         g )Nz<Return>z<Escape>WM_DELETE_WINDOW   )paddingnwes)stickyr   d   )weight   )padr;   r   )r=   minsizer;   )r   r   binddefault_commandr2   protocolwm_titletitlewm_iconnameiconr
   r   r   framegridgrid_columnconfiguregrid_rowconfigurerowcreate_entriescreate_option_buttonscreate_other_buttonscreate_command_buttons)r   r   s     r   r   SearchDialogBase.create_widgetsK   s)    tyy!T112TZZ('4TZZ 		"c3*


v&  3 /a,

''q';

''q#c'J""$!!###%r   c                     [        U R                  US9nUR                  U R                  SSS9  [	        U R                  USS9nUR                  U R                  SSS9  U R                  S-   U l        XC4$ )Nr   r   nwrJ   columnr9   )textvariableexportselectionr   nwe)r   rF   rG   rJ   r   )r   
label_textvarlabelentrys        r   
make_entrySearchDialogBase.make_entryg   si     djjz2

txx$
7djjsAF

txx%
888a<|r   c                 `    U R                  SU R                  R                  5      S   U l        g )NzFind:r   )r\   r   patvarr#   )r   s    r   rK   SearchDialogBase.create_entriest   s#    ??7DKK,>,>?Br   c                    U(       a0  [        U R                  US9nUR                  U R                  SSS9  OSn[	        U R                  5      nUR                  U R                  SSSS9  U R                  S-   U l        X24$ )	NrQ   r   rR   rS   r.   r   rW   )rJ   rT   
columnspanr9   )r   rF   rG   rJ   r   )r   	labeltextrZ   rF   s       r   
make_frameSearchDialogBase.make_framex   so     $**95EJJ488AdJ;Edjj!

txxa
F88a<|r   c                 @   U R                  S5      S   nU R                  nUR                  S4UR                  S4UR                  S4/nU R
                  (       a  UR                  UR                  S45        U H  u  pE[        XUS9nUR                  SS	S
9  M!     X4$ )NOptionsr   zRegular expressionz
Match casez
Whole wordzWrap around)variabler   leftbothsidefill)
rd   r   revarcasevarwordvarneedwrapbuttonappendwrapvarr   pack)r   rF   r   optionsrY   rZ   btns          r   rL   &SearchDialogBase.create_option_buttons   s     	*1-LL"67NNL1NNL13 NNFNNM:;!JCe>CHH&vH. " ~r   c                     U R                  S5      S   nU R                  R                  nSS/nU H  u  pE[        XXES9nUR	                  SSS9  M!     X4$ )	N	Directionr   )r   Up)r   Down)rh   valuer   ri   rj   rk   )rd   r   backvarr	   rt   )r   rF   rY   othersvalrZ   rv   s          r   rM   %SearchDialogBase.create_other_buttons   sb     ,Q/kk!![) JCeICHH&vH. ! }r   c                     [        U R                  XU=(       a    S=(       d    SS9nU R                  R                  5       u  pVUR                  SUSSS9  U R                  R                  US-   S9  U$ )	Nactivenormal)r   commanddefaultr   r   ew)padyrJ   rT   r9   )rowspan)r   buttonframe	grid_sizerG   )r   rZ   r   isdefbcolsrowss          r   make_buttonSearchDialogBase.make_button   sp    4## -X9; "",,.		A$at4d1f-r   c           	          [        U R                  5      =ol        UR                  SSSSSSS9  U R	                  SU R
                  5      nUR                  5         g )Nr   r<   )rJ   rT   padxr   ipadxipadyClose)r   rF   r   rG   r   r2   lower)r   fr   s      r   rN   'SearchDialogBase.create_command_buttons   sM    $TZZ00	1A1!!!<Wdjj1		r   )	r   r   r   r#   rF   r   rJ   r   r   r   )r   )__name__
__module____qualname____firstlineno__rC   rE   rq   r   r+   r2   r   r\   rK   rd   rL   rM   r   rN   __static_attributes__ r   r   r   r      sK    * EDN$" &8C &r   r   c                        \ rS rSrS rS rSrg)_searchbase   c           
      b   SS K nSSKJn  Xl        UR	                  U5      U l        U R                  5         [        UR                  5       5        [        [        [        UR                  SUR                  5       5      5      5      u  pEpgU R                  R                  SUS-   US-   4-  5        g )Nr   )searchenginez[x+]z+%d+%d(      )reidlelibr   r   getr   r   printgeometrylistmapintsplitr   )r   parentr   r   widthheightxys           r   r   _searchbase.__init__   s    (	"&&v.foo  S"((66??;L*M!NOa(a"fa#g%667r   c                     g r   r   )r   dummys     r   r@   _searchbase.default_command   s    dr   )r   r   N)r   r   r   r   r   r@   r   r   r   r   r   r      s    	8 +r   r   __main__)mainz!idlelib.idle_test.test_searchbaser<   F)	verbosityexit)runN)tkinterr   tkinter.ttkr   r   r   r   r   r	   tkinter.simpledialogr
   r   r   r   unittestr   idlelib.idle_test.htestr   r   r   r   <module>r      sW     M M .q qh+" +" z	,F+ r   