U :e-@slddlZddlmZGdddZGdddZGdddZGd d d ZGd d d ZGd ddZdS)N)TclErrorc@seZdZddZdS)EventcKs|j|dSN)__dict__update)selfkwdsr >/usr/local/python38/lib/python3.8/idlelib/idle_test/mock_tk.py__init__szEvent.__init__N)__name__ __module__ __qualname__r r r r r r src@s&eZdZdddZddZddZdS) VarNcCs||_||_||_dSr)mastervaluename)rrrrr r r r sz Var.__init__cCs ||_dSrr)rrr r r set#szVar.setcCs|jSrrrr r r get%szVar.get)NNN)r r rr rrr r r r rs rc@seZdZdddZddZdS) Mbox_funcNcCs ||_dSr)result)rrr r r r 0szMbox_func.__init__cOs||_||_||_||_|jSr)titlemessageargsrr)rrrrrr r r __call__2s zMbox_func.__call__)N)r r rr rr r r r r)s rc@s<eZdZeZeZeZeZeZeZ eZ eZ dS)MboxN) r r rrZ askokcancelZ askquestionZaskretrycancelZaskyesnoZaskyesnocancelZ showerrorZshowinfo showwarningr r r r r;src@seZdZdifddZddZd!ddZd d Zd d Zd"d dZd#ddZ ddZ ddZ ddZ d$ddZ ddZddZddZd%dd ZdS)&TextNcKsddg|_dS)N )data)rrZcnfkwr r r r ksz Text.__init__cCsd|j|ddS)Nz%s.%s)endflag)_decoderindexr r r r(ssz Text.indexrcCs>t|ttfrt|}z |}Wn"tk rDtd|dYnXt|jd}|dkrr|t|j|dfS|dkr| |S| d\}}t |}|dkrdS||kr| |St|j|d}| ds|dkr||fSt d|t j}r||t |dfSt |}|d kr(d }n||kr6|}||fS) Nzbad text index "%s"r$insertend.)r$rz lineendz end-(\d*)cr) isinstancefloatbytesstrlowerAttributeErrorrlenr"_endexsplitintendswithre fullmatchAgroup)rr(r%ZlastlinelinecharZ linelengthmr r r r&ws8     z Text._decodecCs<t|j}|dkr|dfS|d8}|t|j||fSdS)Nr$r)r2r")rr%nr r r r3s  z Text._endexcCs|sdS|d}|dddkr,|d||d\}}|j|d|}|j||d}||d|j|<|dd|j|d|d<|j|t|d|7<dS)NTr!r rr$) splitlinesappendr&r"r2)rr(charsr;r<beforeZafterr r r r)s  z Text.insertc Cs||\}}|dkr&||d}}n||\}}||krN|j|||S|j||dg}t|d|D]}||j|qp||j|d|d|SdS)Nr$r )r&r"rangerAjoin) rindex1index2 startline startcharendlineendcharlinesir r r rszText.getcCs||d\}}|dkrf|t|j|dkr>||d}}qv|t|jdkr`|dd}}qvdSn||d\}}||kr||kr|j|d||j||d|j|<nZ||kr |j|d||j||d|j|<|d7}t||dD]}|j|=qdS)Nr?r$r)r&r2r"rD)rrFrGrHrIrJrKrMr r r deletes&   z Text.deletecCs||\}}||\}}|dkr<||kp:||ko:||kS|dkr\||kpZ||koZ||kS|dkr|||kpz||koz||kS|dkr||kp||ko||kS|dkr||ko||kS|dkr||kp||kStd|dS)Nz>=z==z!=z=bad comparison operator "%s": must be <, <=, ==, >=, >, or !=)r&r)rrFoprGZline1Zchar1Zline2Zchar2r r r compares"z Text.comparecCsdSrr )rrr(r r r mark_setsz Text.mark_setcGsdSrr )rZ markNamesr r r mark_unsetszText.mark_unsetcCsdSrr )rZtagNamerFrGr r r tag_removeszText.tag_removecCsdSrr rxyr r r scan_dragtoszText.scan_dragtocCsdSrr rVr r r scan_mark!szText.scan_markcCsdSrr r'r r r see$szText.seecCsdSrr )Zsequencefuncaddr r r bind+sz Text.bind)r)N)N)N)NNN)r r rr r(r&r3r)rrNrRrSrTrUrYrZr[r^r r r r r^s  5   rc@seZdZddZdS)EntrycCsdSrr rr r r focus_set2szEntry.focus_setN)r r rr`r r r r r_0sr_) r7Z_tkinterrrrrrrr_r r r r s  #S