a
    "h                     @   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rd dlmZ edddd d dlmZ ee 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__ 8/opt/python-3.9.21/usr/lib/python3.9/idlelib/textview.pyr      s    
zAutoHideScrollbar.setc                 K   s   t | jj dd S )Nz does not support "pack"r   r   __name__r   kwargsr   r   r   pack   s    zAutoHideScrollbar.packc                 K   s   t | jj dd S )Nz does not support "place"r   r    r   r   r   place   s    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rt| td|jd| _| jjddtd | jj|d	< n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!   r0   r   r   r   r/   "   s&    zScrollableTextFrame.__init__)r   r$   r%   r
   r/   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r0   r.   r-   topTbothsideexpandfillZbottom)r:   )r   r/   parentbindokr'   r   Z	textframer0   insertZ	configurer   Z	focus_setr   	button_okr"   )r   r=   contentsr)   r0   rA   r   r   r   r/   J   s    	
zViewFrame.__init__Nc                 C   s   | j   d S N)r=   destroyr   eventr   r   r   r?   d   s    zViewFrame.ok)r2   )N)r   r$   r%   r/   r?   r&   r   r   r   r   r1   H   s   r1   c                       s4   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r| | |   |s|   d S )N   Zborderwidth
   d   z	=750x500++r(   ZWM_DELETE_WINDOWr5   Fr6   r7   Tr8   r9   )r   r/   Zwinfo_rootxZwinfo_rootyZgeometrytitler1   Z	viewframeprotocolr?   r   rA   r"   is_modalZ	transientZgrab_setZwait_window)r   r=   rN   rB   modalr)   rH   rI   xyrA   r   r   r   r/   l   s$    

zViewWindow.__init__Nc                 C   s   | j r|   |   d S rC   )rP   Zgrab_releaserD   rE   r   r   r   r?      s    zViewWindow.ok)N)r   r$   r%   r   r/   r?   r&   r   r   r   r   rG   i   s   #rG   Tr2   Fc                 C   s   t | |||||dS )Nr)   rI   )rG   )r=   rN   rB   rQ   r)   rI   r   r   r   	view_text   s    rU   c           
   
   C   s   z:t |d|d}| }W d    n1 s.0    Y  W n\ tyb   tdd|d| d Y nJ ty }	 ztdt|	| d W Y d }	~	nd }	~	0 0 t| |||||dS d S )	Nr)encodingzFile Load ErrorzUnable to load file z .)rN   messager=   zUnicode Decode ErrorrT   )openreadOSErrorr   UnicodeDecodeErrorstrrU   )
r=   rN   filenamerW   rQ   r)   rI   filerB   errr   r   r   	view_file   s"    *

ra   __main__)mainzidlelib.idle_test.test_textview   )	verbosityexit)runN)Tr2   F)Tr2   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'   r1   rG   rU   ra   r   Zunittestrc   Zidlelib.idle_test.htestrg   r   r   r   r   <module>   s    4)!-
  
