a  ze@sddlmZddlmZmZmZmZmZmZddl m Z GdddZ Gddde Z e dkrdd lmZed d d d ddlmZee dS))Toplevel)FrameEntryLabelButton Checkbutton Radiobutton) _setup_dialogc@sxeZdZdZdZdZddZdddZdd d Zd d Z d dZ ddZ dddZ ddZ ddZdddZddZdS) SearchDialogBasez Search DialogZSearchcCs||_|j|_||_d|_dSN)rootZbellenginetop)selfr rrF/opt/bitninja-python-dojo/embedded/lib/python3.9/idlelib/searchbase.py__init__!s zSearchDialogBase.__init__NcCs||_|js|n|j|j|j||rZ|jdd|j d||j |j dd|j d|j dS)Nrend)textrcreate_widgetsZ deiconifyZtkraise transientZwinfo_toplevelentdeleteinsertZ focus_setZselection_rangeZicursorZgrab_set)rrZ searchphraserrropen3s     zSearchDialogBase.opencCs*|jr&|j|jd|jdS)N)rZ grab_releaserZwithdraw)reventrrrcloseDs  zSearchDialogBase.closecCst|j}|d|j|d|j|d|j||j||j t |||_ t |dd|_ |j jdd|jdd d |jdd d d|_|j jdd dd |j jd d d d d||||dS)NzzZWM_DELETE_WINDOWZ5px)ZpaddingZnwes)stickyrd)weight)padr!r )r#Zminsizer!)rr binddefault_commandrprotocolZwm_titletitleZ wm_iconnameiconr rrframegridZgrid_columnconfigureZgrid_rowconfigurerowcreate_entriescreate_option_buttonscreate_other_buttonscreate_command_buttons)rrrrrrKs&   zSearchDialogBase.create_widgetscCsVt|j|d}|j|jdddt|j|dd}|j|jddd|jd|_||fS)Nrrnwr+columnr)Z textvariableZexportselectionr nwe)rr)r*r+r)rZ label_textvarlabelentryrrr make_entrygs  zSearchDialogBase.make_entrycCs|d|jjd|_dS)NzFind:r)r8rZpatvarr)rrrrr,tszSearchDialogBase.create_entriescCs\|r&t|j|d}|j|jdddnd}t|j}|j|jdddd|jd|_||fS) Nr0rr1r2rr r4)r+r3Z columnspanr)rr)r*r+r)rZ labeltextr6r)rrr make_framexs  zSearchDialogBase.make_framecCsx|dd}|j}|jdf|jdf|jdfg}|jrF||jdf|D]$\}}t|||d}|j dd d qJ||fS) NZOptionsrzRegular expressionz Match casez Whole wordz Wrap around)variablerleftbothZsidefill) r9rZrevarZcasevarZwordvarneedwrapbuttonappendZwrapvarrpack)rr)roptionsr5r6btnrrrr-s z&SearchDialogBase.create_option_buttonscCsR|dd}|jj}ddg}|D]&\}}t||||d}|jdddq"||fS) NZ Directionr)r ZUp)rZDown)r:valuerr;r<r=)r9rZbackvarrrA)rr)r5Zothersvalr6rCrrrr.s z%SearchDialogBase.create_other_buttonsrcCsPt|j|||rdpdd}|j\}}|jd|ddd|jj|dd|S) NZactiveZnormal)rcommanddefaultr rZew)padyr+r3r)Zrowspan)r buttonframeZ grid_sizer*)rr6rFZisdefbZcolsZrowsrrr make_buttons zSearchDialogBase.make_buttoncCs@t|j}|_|jddddddd|d|j}|dS)Nrr")r+r3ZpadxrHZipadxZipadyClose)rr)rIr*rKrlower)rfrJrrrr/sz'SearchDialogBase.create_command_buttons)N)N)N)r)__name__ __module__ __qualname__r'r(r?rrrrr8r,r9r-r.rKr/rrrrr s     r c@seZdZddZddZdS) _searchbasecCs|ddl}ddlm}||_|||_|t|t t t | d|\}}}}|j d|d|dfdS)Nr) searchenginez[x+]z+%d+%d()reZidlelibrSr getrrprintZgeometrylistmapintsplitr)rparentrVrSwidthZheightxyrrrrs   "z_searchbase.__init__cCsdSr r)rdummyrrrr%z_searchbase.default_commandN)rOrPrQrr%rrrrrRs rR__main__)mainz!idlelib.idle_test.test_searchbaser"F) verbosityexit)runN)tkinterrZ tkinter.ttkrrrrrrZtkinter.simpledialogr r rRrOZunittestrdZidlelib.idle_test.htestrgrrrrs   5