o
    JAf-                     @   sn   	 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                   @      e Zd Z	 dd ZdS )Eventc                 K   s   	 | j | d S N)__dict__update)selfkwds r
   0/usr/lib/python3.10/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   
   || _ d S r   r   )r   r   r
   r
   r   set#      
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   r   r   )result)r   r   r
   r
   r   r   0   r   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__r   )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y    td| d w t| jd }|dkr7|t| j| d fS |dkr@| 	|S |
d\}}t|}|dk rQdS ||krZ| 	|S t| j| d }|dsl|dkrp||fS td|tj }r||t|d fS t|}|d	k rd	}||fS ||kr|}||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   s>   

zText._decodec                 C   s:   	 t | j}|dkr|dfS |d8 }|t | j| | fS )Nr(   r   )r6   r&   )r   r)   nr
   r
   r   r7      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 )NTr%   r$   r   r(   )
splitlinesappendr*   r&   r6   )r   r,   charsr?   r@   beforeZafterr
   r
   r   r-      s   

"zText.insertc           	      C   s   	 |  |\}}|d u r||d }}n|  |\}}||kr(| j| || S | j| |d  g}t|d |D ]
}|| j|  q9|| j| d |  d|S )Nr(   r$   )r*   r&   rangerE   join)	r   index1index2	startline	startcharendlineendcharlinesir
   r
   r   r      s   
zText.getc                 C   s  	 |  |d\}}|d u r3|t| j| d k r ||d }}n|t| jd k r1|d d}}n
d S |  |d\}}||krZ||k rZ| j| d | | j| |d   | j|< d S ||k r| j| d | | j| |d   | j|< |d7 }t||d D ]}| j|= q~d S d S )NrC   r(   r   )r*   r6   r&   rH   )r   rJ   rK   rL   rM   rN   rO   rQ   r
   r
   r   delete   s,   

zText.deletec                 C   s   |  |\}}|  |\}}|dkr||k p||ko||k S |dkr.||k p-||ko-||kS |dkr>||kp=||ko=||kS |dkrN||kpM||koM||kS |dkrZ||koY||kS |dkrf||kpe||kS td| )N<z<=>z>=z==z!=z=bad comparison operator "%s": must be <, <=, ==, >=, >, or !=)r*   r   )r   rJ   oprK   Zline1Zchar1Zline2Zchar2r
   r
   r   compare   s"   zText.comparec                 C      	 d S r   r
   )r   r   r,   r
   r
   r   mark_set     zText.mark_setc                 G      d S r   r
   )r   Z	markNamesr
   r
   r   
mark_unset     zText.mark_unsetc                 C   rW   r   r
   )r   ZtagNamerJ   rK   r
   r
   r   
tag_remove  rY   zText.tag_removec                 C   rZ   r   r
   r   xyr
   r
   r   scan_dragto  r\   zText.scan_dragtoc                 C   rZ   r   r
   r^   r
   r
   r   	scan_mark!  r\   zText.scan_markc                 C   rW   r   r
   r+   r
   r
   r   see$  rY   zText.seec                 C   rW   r   r
   )Zsequencefuncaddr
   r
   r   bind+  rY   z	Text.bind)r   r   r   )r   r   r   r   r,   r*   r7   r-   r   rR   rV   rX   r[   r]   ra   rb   rc   rf   r
   r
   r
   r   r#   ^   s"    
5


r#   c                   @   r   )Entryc                 C   rZ   r   r
   r   r
   r
   r   	focus_set2  r\   zEntry.focus_setN)r   r   r   rh   r
   r
   r
   r   rg   0  s    rg   )	r;   Z_tkinterr   r   r   r   r!   r#   rg   r
   r
   r
   r   <module>   s    # S