a 9êdg¾ã@s–ddlmZddlmZddlmZdd„Zdd„Zdd „Zd d „Z Gd d „d eƒZ dd„Z e dkr’ddl mZeddddddlmZee ƒdS)é)ÚTclError)Ú searchengine)ÚSearchDialogBasecCs.| ¡}t |¡}t|dƒs(t||ƒ|_|jS)NÚ _searchdialog)Ú_rootrÚgetÚhasattrÚ SearchDialogr)ÚtextÚrootÚengine©r ú*/usr/local/lib/python3.9/idlelib/search.pyÚ_setup s    rcCs| dd¡}t|ƒ ||¡S©Nú sel.firstúsel.last)rrÚopen)r Úpatr r rÚfinds rcCst|ƒ |¡S©N)rÚ find_again©r r r rr&s rcCst|ƒ |¡Sr)rÚfind_selectionrr r rr1s rc@s.eZdZdd„Zd dd„Zdd„Zdd „ZdS) r cCs t |¡|jd|jdddS)Nz Find NextT)Zisdef)rÚcreate_widgetsZ make_buttonÚdefault_command)Úselfr r rrAs zSearchDialog.create_widgetsNcCs|j ¡sdS| |j¡dSr)r Úgetprogrr )rÚeventr r rrGs zSearchDialog.default_commandc Cs|j ¡s| |¡dS|j ¡s&dS|j |¡}|rð|\}}| ¡\}}d||f}d||f}z6| d¡} | d¡} | |kr–| |kr–| ¡WdSWntyªYn0|  ddd¡|  d||¡|  d|j  ¡rÜ|pÞ|¡|  d¡d S| ¡dSdS) NFz%d.%drrÚselú1.0ÚendÚinsertT)r ZgetpatrrZ search_textÚspanÚindexZbellrÚ tag_removeÚtag_addZmark_setZisbackZsee) rr ÚresÚlineÚmÚiÚjÚfirstZlastZselfirstZsellastr r rrMs4            zSearchDialog.find_againcCs&| dd¡}|r|j |¡| |¡Sr)rr Z setcookedpatr)rr rr r rrys  zSearchDialog.find_selection)N)Ú__name__Ú __module__Ú __qualname__rrrrr r r rr >s ,r c s¾ddlm}m}ddlm}m}||ƒ}| d¡tt|  ¡  d¡dd…ƒ\}}|  d||df¡||ƒ}|  ¡||d d ‰ˆ  ¡ˆ  d d ¡‡fd d„} ||d| d} |   ¡dS)Nr)ÚToplevelÚText)ÚFrameÚButtonzTest SearchDialogú+éz+%d+%dé¯Zgray)Zinactiveselectbackgroundr"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. cs.ˆ ddd¡tˆƒ ˆ¡ˆ ddd¡dS)Nrr r!)r&rrr%r rr rÚ show_find—sz!_search_dialog..show_findzSearch (selection ignored))r Zcommand) Útkinterr0r1Z tkinter.ttkr2r3ÚtitleÚmapÚintZgeometryÚsplitÚpackr") Úparentr0r1r2r3ÚtopÚxÚyÚframer7Zbuttonr rrÚ_search_dialog‡s     rCÚ__main__)Úmainzidlelib.idle_test.test_searchéF)Ú verbosityÚexit)ÚrunN)r8rZidlelibrZidlelib.searchbaserrrrrr rCr-ZunittestrEZidlelib.idle_test.htestrIr r r rÚs      I