
    z%i                         	 d dl mZ d dlmZmZmZmZmZmZ d dl	m
Z
  G d d      Z G d de      Zedk(  r d d	lmZ  ed
dd       d dlmZ  ee       yy)    )Toplevel)FrameEntryLabelButtonCheckbuttonRadiobutton)_setup_dialogc                   d    e Zd Z	 dZdZdZd ZddZddZd Z	d	 Z
d
 ZddZd Zd ZddZd Zy)SearchDialogBasezSearch DialogSearch   c                 R    	 || _         |j                  | _        || _        d | _        y N)rootbellenginetop)selfr   r   s      F/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/idlelib/searchbase.py__init__zSearchDialogBase.__init__!   s)    	 	II	    Nc                 R   	 || _         | j                  s| j                          n4| j                  j                          | j                  j	                          | j                  j                  |j                                |r8| j                  j                  dd       | j                  j                  d|       | j                  j                          | j                  j                  dd       | j                  j                  d       | j                  j                          y )Nr   end)textr   create_widgets	deiconifytkraise	transientwinfo_toplevelentdeleteinsert	focus_setselection_rangeicursorgrab_set)r   r   searchphrases      r   openzSearchDialogBase.open3   s    @	xx!HH HH4..01HHOOAe$HHOOE,/  E*r   c                     	 | j                   rP| j                   j                          | j                   j                  d       | j                   j                          y y )N )r   grab_releaser   withdraw)r   events     r   closezSearchDialogBase.closeD   sC    (88HH!!#HHr"HH r   c                    	 t        | j                        }|j                  d| j                         |j                  d| j                         |j                  d| j                         |j                  | j                         |j                  | j                         t        |       || _        t        |d      | _        | j                  j                  d       |j                  dd	
       |j!                  dd	
       d| _        | j                  j                  ddd       | j                  j                  ddd	d	       | j%                          | j'                          | j)                          | j+                          y )Nz<Return>z<Escape>WM_DELETE_WINDOW5px)paddingnwes)stickyr   d   )weight   )padr7   r   )r9   minsizer7   )r   r   binddefault_commandr/   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   zSearchDialogBase.create_widgetsK   s0   	
 tyy!T112TZZ('4TZZ 		"c3.


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

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

''q#c'J""$!!###%r   c                 
   	 t        | j                  |      }|j                  | j                  dd       t	        | j                  |d      }|j                  | j                  dd       | j                  dz   | _        ||fS )Nr   r   nwrF   columnr5   )textvariableexportselectionr   nwe)r   rB   rC   rF   r   )r   
label_textvarlabelentrys        r   
make_entryzSearchDialogBase.make_entryg   sp    	
 djjz2

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

txx%
888a<e|r   c                 b    	 | j                  d| j                  j                        d   | _        y )NzFind:r   )rW   r   patvarr!   )r   s    r   rG   zSearchDialogBase.create_entriest   s&    9??7DKK,>,>?Br   c                    	 |r6t        | j                  |      }|j                  | j                  dd       nd}t	        | j                        }|j                  | j                  ddd       | j                  dz   | _        ||fS )	NrL   r   rM   rN   r+   r   rR   )rF   rO   
columnspanr5   )r   rB   rC   rF   r   )r   	labeltextrU   rB   s       r   
make_framezSearchDialogBase.make_framex   sv    	
 $**95EJJ488AdJ;Edjj!

txxa
F88a<e|r   c                 F   	 | j                  d      d   }| j                  }|j                  df|j                  df|j                  dfg}| j
                  r|j                  |j                  df       |D ]&  \  }}t        |||      }|j                  dd	
       ( ||fS )NOptionsr   zRegular expressionz
Match casez
Whole wordzWrap around)variabler   leftbothsidefill)
r]   r   revarcasevarwordvarneedwrapbuttonappendwrapvarr   pack)r   rB   r   optionsrT   rU   btns          r   rH   z&SearchDialogBase.create_option_buttons   s    	 	*1-LL"67NNL1NNL13 NNFNNM:;! 	/JCec>CHH&vH.	/ g~r   c                     	 | j                  d      d   }| j                  j                  }ddg}|D ]'  \  }}t        ||||      }|j	                  dd       ) ||fS )	N	Directionr   )r   Up)r   Down)r`   valuer   ra   rb   rc   )r]   r   backvarr	   rl   )r   rB   rT   othersvalrU   rn   s          r   rI   z%SearchDialogBase.create_other_buttons   st    	
 ,Q/kk!![)  	/JCec5ICHH&vH.	/ f}r   c                     	 t        | j                  |||xr dxs d      }| j                  j                         \  }}|j                  d|dd       | j                  j                  |dz          |S )	Nactivenormal)r   commanddefaultr   r   ew)padyrF   rO   r5   )rowspan)r   buttonframe	grid_sizerC   )r   rU   rz   isdefbcolsrowss          r   make_buttonzSearchDialogBase.make_button   sw    94##w -X9; "",,.	T	A$at4d1f-r   c                     	 t        | j                        x}| _        |j                  dddddd       | j	                  d| j
                        }|j                          y )Nr   r8   )rF   rO   padxr}   ipadxipadyClose)r   rB   r   rC   r   r/   lower)r   fr   s      r   rJ   z'SearchDialogBase.create_command_buttons   sR    C$TZZ00D	1A1!!!<Wdjj1		r   r   )r   )__name__
__module____qualname__r?   rA   ri   r   r)   r/   r   rW   rG   r]   rH   rI   r   rJ    r   r   r   r      sP    ( EDN$" &8C &r   r   c                       e Zd Z	 d Zd Zy)_searchbasec           
      h   dd l }ddlm} || _        |j	                  |      | _        | j                          t        |j                                t        t        t        |j                  d|j                                           \  }}}}| j                  j                  d|dz   |dz   fz         y )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   z_searchbase.__init__   s    (	"&&v.foo  S"((66??;L*M!NOfa(a"fa#g%667r   c                      y r   r   )r   dummys     r   r<   z_searchbase.default_command   s    r   N)r   r   r   r   r<   r   r   r   r   r      s    9	8 +r   r   __main__)mainz!idlelib.idle_test.test_searchbaser8   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      sX    H  M M .q qh+" +" z	,F+ r   