o
    g                     @   s   	 d dl mZmZmZmZmZmZmZmZm	Z	m
Z
mZ d dlmZmZmZ d dlmZ d dlmZ G dd deZG dd deZG d	d
 d
eZG dd deZdddZ		dddZedkrzd dlmZ edddd d dlmZ ee dS dS )    )ToplevelTextTclError
HORIZONTALVERTICALNSEWNSEWNONEWORDSUNKEN)Frame	ScrollbarButton)	showerror)color_configc                       s.   e Zd Z	  fddZdd Zdd Z  ZS )AutoHideScrollbarc                    s<   t |dkst |dk r|   n|   t || d S )Ng        g      ?)floatgridZgrid_removesuperset)selflohi	__class__ F/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/idlelib/textview.pyr      s   
zAutoHideScrollbar.setc                 K      t | jj d)Nz does not support "pack"r   r   __name__r   kwargsr   r   r   pack      zAutoHideScrollbar.packc                 K   r   )Nz does not support "place"r   r!   r   r   r   place   r$   zAutoHideScrollbar.place)r    
__module____qualname__r   r#   r%   __classcell__r   r   r   r   r      s
    r   c                       s"   e Zd Z	 ef fdd	Z  ZS )ScrollableTextFramec                    s   	 t  j|fi | t| |d }| _|jddtd | jddd | jddd t| t	d|j
d| _| jjddtd | jj|d< |tkrbt| td|jd| _| jjddtd | jj|d	< d S d | _d S )
Nwrapr   )rowcolumnZsticky   )ZweightF)Zorient	takefocuscommandZyscrollcommandZxscrollcommand)r   __init__r   textr   r	   Zgrid_rowconfigureZgrid_columnconfigurer   r   ZyviewZyscrollr   r   r
   r   ZxviewZxscrollr   )r   Zmasterr+   r"   r2   r   r   r   r1   "   s(   
zScrollableTextFrame.__init__)r    r&   r'   r
   r1   r(   r   r   r   r   r)      s    r)   c                       s*   e Zd Z	 d fdd	ZdddZ  ZS )		ViewFramewordc                    s   	 t  | || _| d| j | d| j t| tdd| _| jj }| _|	d| |j
|ddd t| |  t| d	| jd
d | _}| jjdddd |jdd d S )Nz<Return>z<Escape>i  )ZreliefZheightz1.0r   disabled)r+   ZhighlightthicknessstateCloseFr2   r0   r/   topTbothsideexpandZfillZbottom)r<   )r   r1   parentbindokr)   r   Z	textframer2   insertZ	configurer   Z	focus_setr   	button_okr#   )r   r>   contentsr+   r2   rB   r   r   r   r1   J   s    
zViewFrame.__init__Nc                 C   s   	 | j   d S N)r>   destroyr   eventr   r   r   r@   d   s   zViewFrame.ok)r4   rD   )r    r&   r'   r1   r@   r(   r   r   r   r   r3   H   s    r3   c                       s6   e Zd Z	 defddd fddZd	ddZ  ZS )

ViewWindowTF)_htest_utestc                   s   	 t  | d| d< | d }| |sdnd }	| d| d|	  | | t| ||d| _| d| j	 t
| d	| j	d
d | _}
| jjdddd || _| jrf| | |   |sh|   d S d S d S )N   Zborderwidth
   d   z	=750x500++r*   ZWM_DELETE_WINDOWr7   Fr8   r9   Tr:   r;   )r   r1   Zwinfo_rootxZwinfo_rootyZgeometrytitler3   Z	viewframeprotocolr@   r   rB   r#   is_modalZ	transientZgrab_setZwait_window)r   r>   rO   rC   modalr+   rI   rJ   xyrB   r   r   r   r1   l   s*   

zViewWindow.__init__Nc                 C   s   	 | j r|   |   d S rD   )rQ   Zgrab_releaserE   rF   r   r   r   r@      s   zViewWindow.okrD   )r    r&   r'   r   r1   r@   r(   r   r   r   r   rH   i   s    #rH   Tr4   Fc                 C   s   	 t | |||||dS )Nr+   rJ   )rH   )r>   rO   rC   rR   r+   rJ   r   r   r   	view_text   s   
rV   c           
   
   C   s   	 zt |d|d}| }W d    n1 sw   Y  W n0 ty3   tdd|d| d Y d S  tyN }	 ztdt|	| d W Y d }	~	d S d }	~	ww t| |||||dS )	Nr)encodingzFile Load ErrorzUnable to load file z .)rO   messager>   zUnicode Decode ErrorrU   )openreadOSErrorr   UnicodeDecodeErrorstrrV   )
r>   rO   filenamerX   rR   r+   rJ   filerC   errr   r   r   	view_file   s.   


rb   __main__)mainzidlelib.idle_test.test_textview   )	verbosityexit)runN)Tr4   F)tkinterr   r   r   r   r   r   r   r	   r
   r   r   Ztkinter.ttkr   r   r   Ztkinter.messageboxr   Zidlelib.colorizerr   r   r)   r3   rH   rV   rb   r    Zunittestrd   Zidlelib.idle_test.htestrh   r   r   r   r   <module>   s&    4)!
-
