a 9êdg¬-ã@slddlZddlmZGdd„dƒZGdd„dƒZGdd„dƒZGd d „d ƒZGd d „d ƒZGd d„dƒZdS)éN)ÚTclErrorc@seZdZdd„ZdS)ÚEventcKs|j |¡dS©N)Ú__dict__Úupdate)ÚselfÚkwds©r ú5/usr/local/lib/python3.9/idlelib/idle_test/mock_tk.pyÚ__init__szEvent.__init__N)Ú__name__Ú __module__Ú __qualname__r r r r r r src@s&eZdZddd„Zdd„Zdd„ZdS) ÚVarNcCs||_||_||_dSr)ÚmasterÚvalueÚname)rrrrr r r r sz Var.__init__cCs ||_dSr©r)rrr r r Úset#szVar.setcCs|jSrr©rr r r Úget%szVar.get)NNN)r r rr rrr r r r rs rc@seZdZddd„Zdd„ZdS)Ú Mbox_funcNcCs ||_dSr)Úresult)rrr r r r 0szMbox_func.__init__cOs||_||_||_||_|jSr)ÚtitleÚmessageÚargsrr)rrrrrr r r Ú__call__2s zMbox_func.__call__)N)r r rr rr r r r r)s rc@s<eZdZeƒZeƒZeƒZeƒZeƒZeƒZ eƒZ eƒZ dS)ÚMboxN) r r rrZ askokcancelZ askquestionZaskretrycancelZaskyesnoZaskyesnocancelZ showerrorZshowinfoÚ showwarningr r r r r;src@s”eZdZdifdd„Zdd„Zd!dd„Zd d „Zd d „Zd"d d„Zd#dd„Z dd„Z dd„Z dd„Z d$dd„Z dd„Zdd„Zdd„Zd%dd „ZdS)&ÚTextNcKsddg|_dS)NÚÚ )Údata)rrZcnfÚkwr r r r ksz Text.__init__cCsd|j|ddS)Nz%s.%sé)Úendflag)Ú_decode©rÚindexr r r r(ssz Text.indexrcCs<t|ttfƒrt|ƒ}z | ¡}Wn tyBtd|ƒd‚Yn0t|jƒd}|dkrp|t|j|ƒdfS|dkr‚|  |¡S|  d¡\}}t |ƒ}|dkr¤dS||kr¶|  |¡St|j|ƒd}|  d¡sÚ|dkrâ||fSt  d|t j¡}r||t | d¡ƒfSt |ƒ}|d kr&d }n||kr4|}||fS) Nzbad text index "%s"r$ÚinsertÚendÚ.)r$rz lineendz end-(\d*)cr)Ú isinstanceÚfloatÚbytesÚstrÚlowerÚAttributeErrorrÚlenr"Ú_endexÚsplitÚintÚendswithÚreÚ fullmatchÚAÚgroup)rr(r%ZlastlineÚlineÚcharZ linelengthÚmr r r r&ws8      z Text._decodecCs<t|jƒ}|dkr|dfS|d8}|t|j|ƒ|fSdS)Nr$r)r2r")rr%Únr r r r3¬s  z Text._endexcCs²|sdS| d¡}|dddkr,| d¡| |d¡\}}|j|d|…}|j||d…}||d|j|<|dd…|j|d|d…<|j|t|ƒd|7<dS)NTéÿÿÿÿr!r rr$)Ú splitlinesÚappendr&r"r2)rr(Úcharsr;r<ÚbeforeZafterr r r r)ºs  z Text.insertc Cs¬| |¡\}}|dur&||d}}n| |¡\}}||krN|j|||…S|j||d…g}t|d|ƒD]}| |j|¡qp| |j|d|…¡d |¡SdS)Nr$r )r&r"ÚrangerAÚjoin) rÚindex1Úindex2Ú startlineÚ startcharÚendlineÚendcharÚlinesÚir r r rÉszText.getcCs| |d¡\}}|durf|t|j|ƒdkr>||d}}qv|t|jƒdkr`|dd}}qvdSn| |d¡\}}||kr²||kr²|j|d|…|j||d…|j|<nZ||kr |j|d|…|j||d…|j|<|d7}t||dƒD]}|j|=qüdS)Nr?r$r)r&r2r"rD)rrFrGrHrIrJrKrMr r r ÚdeleteÛs&ÿ  ÿ 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)Núz>=z==z!=z=bad comparison operator "%s": must be <, <=, ==, >=, >, or !=)r&r)rrFÚoprGZline1Zchar1Zline2Zchar2r r r Úcompareús"ÿ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 ©rÚxÚyr r r Ú scan_dragtoszText.scan_dragtocCsdSrr rVr r r Ú scan_mark!szText.scan_markcCsdSrr r'r r r Úsee$szText.seecCsdSrr )ZsequenceÚfuncÚaddr 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@seZdZdd„ZdS)Ú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