й¼]9ã@s³ddlTddlmZddlmZddlZdd„ZGdd„deƒZd d „Ze d kr¯ddl Z e j d d dddƒddl m Z e eƒdS)é)Ú*)Ú SearchEngine)ÚSearchDialogBaseNcCsV|jƒ}tj|ƒ}t|dƒs<t||ƒ|_|j}|j|ƒdS)NÚ_replacedialog)Z_rootrÚgetÚhasattrÚ ReplaceDialogrÚopen)ÚtextÚrootÚengineZdialog©r ú2/opt/alt/python35/lib64/python3.5/ReplaceDialog.pyÚreplace s   rc@sÊeZdZdZdZdd„Zdd„Zdd„Zd d „Zd d d „Z d dd„Z d dd„Z dd„Z d dd„Z ddd„Zdd„Zdd„Zd dd„Zd S)rzReplace DialogÚReplacecCs&tj|||ƒt|ƒ|_dS)N)rÚ__init__Z StringVarÚreplvar)Úselfr r r r rrszReplaceDialog.__init__cCsªtj||ƒy|jdƒ}Wntk r=d}YnXy|jdƒ}Wntk rkd}YnX|p~|jdƒ}|pŠ|}|j||ƒd|_dS)Nz sel.firstzsel.lastÚinserté)rr ÚindexÚTclErrorÚshow_hitÚok)rr ÚfirstÚlastr r rr !s     zReplaceDialog.opencCs-tj|ƒ|jd|jƒd|_dS)Nz Replace with:r)rÚcreate_entriesZ make_entryrZreplent)rr r rr1s zReplaceDialog.create_entriescCs`tj|ƒ|jd|jƒ|jd|jƒ|jd|jdƒ|jd|jƒdS)NZFindrz Replace+Findrz Replace All)rÚcreate_command_buttonsZ make_buttonÚfind_itÚ replace_itÚdefault_commandÚ replace_all)rr r rr6s  z$ReplaceDialog.create_command_buttonsNcCs|jdƒdS)Nr)Údo_find)rÚeventr r rr=szReplaceDialog.find_itcCs |j|jƒr|jƒdS)N)r"rÚ do_replace)rr#r r rr@szReplaceDialog.replace_itcCs/|j|jƒr+|jƒr+|jdƒdS)Nr)r"rr$)rr#r r rr Ds zReplaceDialog.default_commandc Cs`|jjƒrVy|j|ƒ}Wq\tjk rR|jj|dƒd}Yq\Xn|}|S)NzInvalid Replace Expression)r ZisreÚexpandÚreÚerrorZ report_error)rÚmÚreplÚnewr r rÚ_replace_expandKszReplaceDialog._replace_expandcCs0|jjƒ}|sdS|jjƒ}|j}|jj||ƒ}|sZ|jƒdS|jdddƒ|jdddƒ|d}|djƒ}|jj ƒrµd}d}d}d} } |j ƒx*|jj ||||d|ƒ}|súP|\}} |jd|d|dƒ} | j ƒ} |j | |ƒ}|dkrOP| jƒ\}}d||f} d||f} || kr |jd | ƒnB|jd | ƒ| | krÌ|j| | ƒ|râ|j| |ƒ|t|ƒ}d}qÒW|jƒ| r"| r"|j| | ƒ|jƒdS) NÚselz1.0ÚendÚhitrrz%d.0z%d.%dr)r Úgetprogrrr Ú search_textÚbellÚ tag_removeÚstartZiswrapÚundo_block_startZsearch_forwardÚgroupr+ÚspanÚmark_setÚdeleterÚlenÚundo_block_stoprÚclose)rr#Úprogr)r ÚresÚlineÚcolrrrr(ÚcharsZorigr*ÚiÚjr r rr!YsZ     !        zReplaceDialog.replace_allrc Cs£|jjƒsdS|j}|jj|d|ƒ}|sH|jƒdS|\}}|jƒ\}}d||f}d||f} |j|| ƒd|_dS)NFz%d.%drT)r r/r r0r1r6rr) rrr r=r>r(rArBrrr r rr"‹s    zReplaceDialog.do_findc Csv|jjƒ}|sdS|j}y&|jdƒ}}|jdƒ}Wntk rbd}YnX|s€|jdƒ}}}tj|ƒ\}}|jd|d|dƒ}|j||ƒ} |sÏdS|j | |j jƒƒ} | dkrúdS|j d|ƒ|j ƒ| j ƒr0|j||ƒ| rF|j|| ƒ|jƒ|j||jdƒƒd|_dS) NFz sel.firstzsel.lastrz%d.0rrT)r r/r rrrZ get_line_colrÚmatchr+rr7r4r5r8rr:rr) rr<r rÚposrr>r?r@r(r*r r rr$›s:        zReplaceDialog.do_replacecCsŸ|j}|jd|ƒ|jdddƒ|jd||ƒ|jdddƒ||krq|jd|ƒn|jd||ƒ|jdƒ|jƒdS)Nrr,z1.0r-r.)r r7r2Útag_addZseeZupdate_idletasks)rrrr r r rrºs   zReplaceDialog.show_hitcCs*tj||ƒ|jjdddƒdS)Nr.z1.0r-)rr;r r2)rr#r r rr;ÉszReplaceDialog.close)Ú__name__Ú __module__Ú __qualname__ÚtitleZiconrr rrrrr r+r!r"r$rr;r r r rrs      2  rc sÿt|ƒ}|jdƒttttjd|jƒƒƒƒ\}}}}|jd||dfƒdd„}dd„}t|d d ƒ‰|ˆ_ |ˆ_ ˆj ƒˆj d d ƒˆj ƒ‡fd d†}t|ddd|ƒ} | j ƒdS)NzTest ReplaceDialogz[x+]z+%d+%dé–cSsdS)Nr r r r rr4Ösz)_replace_dialog..undo_block_startcSsdS)Nr r r r rr:Ùsz(_replace_dialog..undo_block_stopZinactiveselectbackgroundZgrayrz"This is a sample sTring Plus MORE.cs4ˆjtdtƒtˆƒˆjtdtƒdS)Nz1.0)rEZSELZENDrr2r )r r rÚ show_replaceãs z%_replace_dialog..show_replacer rZcommand)ZToplevelrIÚlistÚmapÚintr&ÚsplitZgeometryZTextr4r:ÚpackrZ focus_setZButton) ÚparentZboxÚwidthZheightÚxÚyr4r:rKZbuttonr )r rÚ_replace_dialogÎs  3      rUÚ__main__z$idlelib.idle_test.test_replacedialogÚ verbosityéÚexitF)Úrun)ÚtkinterZidlelibrZidlelib.SearchDialogBaserr&rrrUrFZunittestÚmainZidlelib.idle_test.htestrZr r r rÚs   ¶