o
     JAf                     @   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__ '/usr/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expandfillZbottom)r<   )r   r1   parentbindokr)   r   Z	textframer2   insertZ	configurer   Z	focus_setr   	button_okr#   )r   r?   contentsr+   r2   rC   r   r   r   r1   J   s    
zViewFrame.__init__Nc                 C   s   	 | j   d S N)r?   destroyr   eventr   r   r   rA   d   s   zViewFrame.ok)r4   rE   )r    r&   r'   r1   rA   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protocolrA   r   rC   r#   is_modalZ	transientZgrab_setZwait_window)r   r?   rP   rD   modalr+   rJ   rK   xyrC   r   r   r   r1   l   s*   

zViewWindow.__init__Nc                 C   s   	 | j r|   |   d S rE   )rR   Zgrab_releaserF   rG   r   r   r   rA      s   zViewWindow.okrE   )r    r&   r'   r   r1   rA   r(   r   r   r   r   rI   i   s    #rI   Tr4   Fc                 C   s   	 t | |||||dS )Nr+   rK   )rI   )r?   rP   rD   rS   r+   rK   r   r   r   	view_text   s   
rW   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 .)rP   messager?   zUnicode Decode ErrorrV   )openreadOSErrorr   UnicodeDecodeErrorstrrW   )
r?   rP   filenamerY   rS   r+   rK   filerD   errr   r   r   	view_file   s.   


rc   __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   rI   rW   rc   r    Zunittestre   Zidlelib.idle_test.htestri   r   r   r   r   <module>   s&    4)!
-
