
    3\h                         	 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           dS dS )    )Toplevel)FrameEntryLabelButtonCheckbuttonRadiobutton)_setup_dialogc                   f    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dS )SearchDialogBasezSearch DialogSearch   c                 J    	 || _         |j        | _        || _        d | _        d S N)rootbellenginetop)selfr   r   s      </opt/python-3.11.14/usr/lib/python3.11/idlelib/searchbase.py__init__zSearchDialogBase.__init__!   s+    	 	I	    Nc                 H   	 || _         | j        s|                                  n2| j                                         | j                                         | j                            |                                           |r6| j                            dd           | j        	                    d|           | j        
                                 | j                            dd           | j                            d           | j                                         d S )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   @	x 	!!!!H   H4..00111 	0HOOAe$$$HOOE,///  E***r   c                     	 | j         rN| j                                          | j                             d           | j                                          d S d S )N )r   grab_releaser   withdraw)r   events     r   closezSearchDialogBase.closeD   s]    (8 	 H!!###Hr"""H	  	 r   c                 H   	 t          | j                  }|                    d| j                   |                    d| j                   |                    d| j                   |                    | j                   |                    | j	                   t          |           || _        t          |d          | _        | j                            d           |                    dd	
           |                    dd	
           d| _        | j                            ddd           | j                            ddd	d	           |                                  |                                  |                                  |                                  d S )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   s   	
 ty!!T1222TZ((('444TZ   	"""c3...

v&&&  3 ///a,,,
''q';;;
''q#c'JJJ""$$$!!#####%%%%%r   c                     	 t          | j        |          }|                    | j        dd           t	          | j        |d          }|                    | 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   s~    	
 djz222

tx$
777djsAFFF

tx%
8888a<e|r   c                 ^    	 |                      d| j        j                  d         | _        d S )NzFind:r   )rW   r   patvarr!   )r   s    r   rG   zSearchDialogBase.create_entriest   s(    9??7DK,>??Br   c                     	 |r4t          | j        |          }|                    | j        dd           nd}t	          | 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   s    	
  	$*9555EJJ48AdJ;;;;Edj!!

txa
FFF8a<e|r   c                 ,   	 |                      d          d         }| j        }|j        df|j        df|j        dfg}| j        r|                    |j        df           |D ].\  }}t          |||          }|	                    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-L"67NL1NL13  	<NNFNM:;;;! 	/ 	/JCec>>>CHH&vH....g~r   c                     	 |                      d          d         }| j        j        }ddg}|D ]/\  }}t          ||||          }|                    dd           0||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   s    	
 ,,Q/k![)  	/ 	/JCec5IIICHH&vH....f}r   r   c                     	 t          | j        |||rdpd          }| j                                        \  }}|                    d|dd           | 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   s    94#w -X9; ; ; ",,..	T	A$at444d1f---r   c                     	 t          | j                  x}| _        |                    dddddd           |                     d| j                  }|                                 d S )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   sb    C$TZ000D	1A1!!!<<<Wdj1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      s        ( EDN  $   "       & & &8  C C C      &         r   r   c                       e Zd Z	 d Zd ZdS )_searchbasec           
         dd l }ddlm} || _        |                    |          | _        |                                  t          |                                           t          t          t          |                    d|                                                              \  }}}}| j                            d|dz   |dz   fz             d S )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;L*M*M!N!NOOfa(a"fa#g%6677777r   c                     d S 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 	8 	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      s   H       M M M M M M M M M M M M M M M M . . . . . .q q q q q q q qh+ + + + +" + + +" zD	,FFFF++++++C r   