a
    åze­-  ã                   @   sl   d dl Z d dlmZ G dd„ dƒZG dd„ dƒZG dd„ dƒZG d	d
„ d
ƒZG dd„ dƒZG dd„ dƒZdS )é    N)ÚTclErrorc                   @   s   e Zd Zdd„ ZdS )ÚEventc                 K   s   | j  |¡ d S ©N)Ú__dict__Úupdate)ÚselfÚkwds© r	   ú//usr/lib/python3.9/idlelib/idle_test/mock_tk.pyÚ__init__   s    zEvent.__init__N)Ú__name__Ú
__module__Ú__qualname__r   r	   r	   r	   r
   r   
   s   r   c                   @   s&   e Zd Zddd„Zdd„ Zdd„ ZdS )	ÚVarNc                 C   s   || _ || _|| _d S r   )ÚmasterÚvalueÚname)r   r   r   r   r	   r	   r
   r      s    zVar.__init__c                 C   s
   || _ d S r   ©r   )r   r   r	   r	   r
   Úset#   s    zVar.setc                 C   s   | j S r   r   ©r   r	   r	   r
   Úget%   s    zVar.get)NNN)r   r   r   r   r   r   r	   r	   r	   r
   r      s   
r   c                   @   s   e Zd Zddd„Zdd„ ZdS )Ú	Mbox_funcNc                 C   s
   || _ d S r   )Úresult)r   r   r	   r	   r
   r   0   s    zMbox_func.__init__c                 O   s   || _ || _|| _|| _| jS r   )ÚtitleÚmessageÚargsr   r   )r   r   r   r   r   r	   r	   r
   Ú__call__2   s
    zMbox_func.__call__)N)r   r   r   r   r   r	   r	   r	   r
   r   )   s   
r   c                   @   s<   e Zd Zeƒ Zeƒ Zeƒ Zeƒ Zeƒ Zeƒ Z	eƒ Z
eƒ ZdS )ÚMboxN)r   r   r   r   ZaskokcancelZaskquestionZaskretrycancelZaskyesnoZaskyesnocancelZ	showerrorZshowinfoÚshowwarningr	   r	   r	   r
   r   ;   s   r   c                   @   s”   e Zd Zdi fdd„Zdd„ Zd!dd„Zd	d
„ Zdd„ Zd"dd„Zd#dd„Z	dd„ Z
dd„ Zdd„ Zd$dd„Zdd„ Zdd„ Zdd„ Zd%dd „ZdS )&ÚTextNc                 K   s   ddg| _ d S )NÚ Ú
)Údata)r   r   ZcnfÚkwr	   r	   r
   r   k   s    zText.__init__c                 C   s   d| j |dd S )Nz%s.%sé   )Úendflag)Ú_decode©r   Úindexr	   r	   r
   r(   s   s    z
Text.indexr   c                 C   s<  t |ttfƒrt|ƒ}z| ¡ }W n  tyB   td| ƒd ‚Y n0 t| jƒd }|dkrp|t| j| ƒd fS |dkr‚|  	|¡S | 
d¡\}}t|ƒ}|dk r¤dS ||kr¶|  	|¡S t| j| ƒd }| d¡sÚ|dkrâ||fS t d|tj¡ }r||t| d¡ƒ fS t|ƒ}|d	k r&d	}n||kr4|}||fS )
Nzbad text index "%s"r$   ÚinsertÚendÚ.)r$   r   z lineendz
end-(\d*)cr   )Ú
isinstanceÚfloatÚbytesÚstrÚlowerÚAttributeErrorr   Úlenr"   Ú_endexÚsplitÚintÚendswithÚreÚ	fullmatchÚAÚgroup)r   r(   r%   ZlastlineÚlineÚcharZ
linelengthÚmr	   r	   r
   r&   w   s8    



zText._decodec                 C   s<   t | jƒ}|dkr|dfS |d8 }|t | j| ƒ| fS d S )Nr$   r   )r2   r"   )r   r%   Únr	   r	   r
   r3   ¬   s
    
zText._endexc                 C   s²   |sd S |  d¡}|d d dkr,| d¡ |  |d¡\}}| j| d |… }| j| |d … }||d  | j|< |dd … | j|d |d …< | j|t|ƒ d   |7  < d S )NTéÿÿÿÿr!   r    r   r$   )Ú
splitlinesÚappendr&   r"   r2   )r   r(   Úcharsr;   r<   ÚbeforeZafterr	   r	   r
   r)   º   s    

zText.insertc           	      C   s¬   |   |¡\}}|d u r&||d  }}n|   |¡\}}||krN| j| ||… S | j| |d … g}t|d |ƒD ]}| | j| ¡ qp| | j| d |… ¡ d |¡S d S )Nr$   r    )r&   r"   ÚrangerA   Újoin)	r   Úindex1Úindex2Ú	startlineÚ	startcharÚendlineÚendcharÚlinesÚir	   r	   r
   r   É   s    zText.getc                 C   s  |   |d¡\}}|d u rf|t| j| ƒd k r>||d  }}qv|t| jƒd k r`|d d }}qvd S n|   |d¡\}}||kr²||k r²| j| d |… | j| |d …  | j|< nZ||k r| j| d |… | j| |d …  | j|< |d7 }t||d ƒD ]}| j|=  qüd S )Nr?   r$   r   )r&   r2   r"   rD   )r   rF   rG   rH   rI   rJ   rK   rM   r	   r	   r
   ÚdeleteÛ   s&    ÿ
ÿ
zText.deletec                 C   sÜ   |   |¡\}}|   |¡\}}|dkr<||k p:||ko:||k S |dkr\||k pZ||koZ||kS |dkr|||kpz||koz||kS |dkrœ||kpš||koš||kS |dkr´||ko²||kS |dkrÌ||kpÊ||kS td| ƒ‚d S )Nú<z<=ú>z>=z==z!=z=bad comparison operator "%s": must be <, <=, ==, >=, >, or !=)r&   r   )r   rF   ÚoprG   Zline1Zchar1Zline2Zchar2r	   r	   r
   Úcompareú   s"    ÿzText.comparec                 C   s   d S r   r	   )r   r   r(   r	   r	   r
   Úmark_set  s    zText.mark_setc                 G   s   d S r   r	   )r   Z	markNamesr	   r	   r
   Ú
mark_unset  s    zText.mark_unsetc                 C   s   d S r   r	   )r   ZtagNamerF   rG   r	   r	   r
   Ú
tag_remove  s    zText.tag_removec                 C   s   d S r   r	   ©r   ÚxÚyr	   r	   r
   Úscan_dragto  s    zText.scan_dragtoc                 C   s   d S r   r	   rV   r	   r	   r
   Ú	scan_mark!  s    zText.scan_markc                 C   s   d S r   r	   r'   r	   r	   r
   Úsee$  s    zText.seec                 C   s   d S r   r	   )ZsequenceÚfuncÚaddr	   r	   r
   Úbind+  s    z	Text.bind)r   )N)N)N)NNN)r   r   r   r   r(   r&   r3   r)   r   rN   rR   rS   rT   rU   rY   rZ   r[   r^   r	   r	   r	   r
   r   ^   s   
5


r   c                   @   s   e Zd Zdd„ ZdS )ÚEntryc                 C   s   d S r   r	   r   r	   r	   r
   Ú	focus_set2  s    zEntry.focus_setN)r   r   r   r`   r	   r	   r	   r
   r_   0  s   r_   )	r7   Z_tkinterr   r   r   r   r   r   r_   r	   r	   r	   r
   Ú<module>   s   # S