a  ze@sddlmZddlmZddlmZddZddZdd Zd d Z Gd d d eZ ddZ e dkrddl mZeddddddlmZee dS))TclError) searchengine)SearchDialogBasecCs.|}t|}t|ds(t|||_|jS)N _searchdialog)_rootrgethasattr SearchDialogr)textrootenginer B/opt/bitninja-python-dojo/embedded/lib/python3.9/idlelib/search.py_setup s    rcCs|dd}t|||SN sel.firstsel.last)rropen)r patr r rfinds rcCst||SN)r find_againr r r rr&s rcCst||Sr)rfind_selectionrr r rr1s rc@s.eZdZddZd ddZddZdd ZdS) r cCs t||jd|jdddS)Nz Find NextT)Zisdef)rcreate_widgetsZ make_buttondefault_command)selfr r rrAs zSearchDialog.create_widgetsNcCs|jsdS||jdSr)r getprogrr )reventr r rrGs zSearchDialog.default_commandc Cs|js||dS|js&dS|j|}|r|\}}|\}}d||f}d||f}z6|d} |d} | |kr| |kr|WdSWntyYn0| ddd| d||| d|j r|p|| dd S|dSdS) NFz%d.%drrsel1.0endinsertT)r ZgetpatrrZ search_textspanindexZbellr tag_removetag_addZmark_setZisbackZsee) rr reslinemijfirstZlastZselfirstZsellastr 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 sddlm}m}ddlm}m}||}|dtt| ddd\}}| d||df||}| ||d d   d d fd d} ||d| d} | dS)Nr)ToplevelText)FrameButtonzTest SearchDialog+z+%d+%dZgray)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.dddtddddS)Nrr r!)r&rrr%r rr r show_findsz!_search_dialog..show_findzSearch (selection ignored))r Zcommand) tkinterr0r1Z tkinter.ttkr2r3titlemapintZgeometrysplitpackr") parentr0r1r2r3topxyframer7Zbuttonr rr_search_dialogs     rC__main__)mainzidlelib.idle_test.test_searchF) verbosityexit)runN)r8rZidlelibrZidlelib.searchbaserrrrrr rCr-ZunittestrEZidlelib.idle_test.htestrIr r r rs      I