3 § f\ ã@s–ddlmZddlmZddlmZdd„Zdd„Zdd „Zd d „Z Gd d „d eƒZ dd„Z e dkr’ddl mZedddd�ddlmZee ƒdS)é)ÚTclError)Ú searchengine)ÚSearchDialogBasecCs.|jƒ}tj|ƒ}t|dƒs(t||ƒ|_|jS)z3Create or find the singleton SearchDialog instance.Ú _searchdialog)Z_rootrÚgetÚhasattrÚ SearchDialogr)ÚtextÚrootÚengine©r ú3/opt/alt/python36/lib64/python3.6/idlelib/search.pyÚ_setups    rcCs|jddƒ}t|ƒj||ƒS)z9Handle the editor edit menu item and corresponding event.z sel.firstzsel.last)rrÚopen)r Úpatr r r Úfinds rcCst|ƒj|ƒS)z9Handle the editor edit menu item and corresponding event.)rÚ find_again)r r r r rsrcCst|ƒj|ƒS)z9Handle the editor edit menu item and corresponding event.)rÚfind_selection)r r r r rsrc@s.eZdZdd„Zd dd„Zdd„Zdd „ZdS) rcCstj|ƒ|jd|jdƒdS)Nz Find Nexté)rÚcreate_widgetsZ make_buttonÚdefault_command)Úselfr r r rs zSearchDialog.create_widgetsNcCs|jjƒsdS|j|jƒdS)N)r Úgetprogrr )rZeventr r r r"s zSearchDialog.default_commandc Cs|jjƒs|j|ƒdS|jjƒs&dS|jj|ƒ}|rð|\}}|jƒ\}}d||f}d||f}y4|jdƒ} |jdƒ} | |kr”| |kr”|jƒdSWntk rªYnX|j dddƒ|j d||ƒ|j d|jj ƒrÜ|pÞ|ƒ|j dƒd S|jƒdSdS) NFz%d.%dz sel.firstzsel.lastÚselz1.0ÚendÚinsertT)r ZgetpatrrZ search_textÚspanÚindexZbellrÚ tag_removeÚtag_addZmark_setZisbackZsee) rr ÚresÚlineÚmÚiÚjÚfirstZlastZselfirstZsellastr r r r's4          zSearchDialog.find_againcCs&|jddƒ}|r|jj|ƒ|j|ƒS)Nz sel.firstzsel.last)rr Z setcookedpatr)rr rr r r rDs  zSearchDialog.find_selection)N)Ú__name__Ú __module__Ú __qualname__rrrrr r r r rs rc s®ddlm}m}ddlm}||ƒ}|jdƒtt|jƒj dƒdd…ƒ\}}|jd||d fƒ||d d �‰ˆj ƒˆj d d dƒ‡fdd„}||d|d�}|j ƒdS)zDisplay search test box.r)ÚToplevelÚText)ÚButtonzTest SearchDialogú+rNz+%d+%dé¯Zgray)ZinactiveselectbackgroundrzThis is a sample string. écs.ˆjdddƒtˆƒjˆƒˆjdddƒdS)Nrz1.0r)rrrrr )r r r Ú show_findXsz!_search_dialog..show_findzSearch (selection ignored))r Zcommand) Útkinterr)r*Z tkinter.ttkr+ÚtitleÚmapÚintZgeometryÚsplitZpackr) Úparentr)r*r+ZboxÚxÚyr/Zbuttonr )r r Ú_search_dialogKs     r8Ú__main__)Úmainzidlelib.idle_test.test_searchéF)Ú verbosityÚexit)ÚrunN)r0rZidlelibrZidlelib.searchbaserrrrrrr8r&Zunittestr:Zidlelib.idle_test.htestr>r r r r Ús   /