B
    v9a                 @   s   d dl 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NSEW)Frame	ScrollbarButton)	showerror)color_configc                   s,   e Zd Z fddZdd Zdd Z  ZS )AutoHiddenScrollbarc                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.7/textview.pyr      s    
zAutoHiddenScrollbar.setc             K   s   t | jj dd S )Nz does not support "pack")r   r   __name__)r   kwargsr   r   r   pack   s    zAutoHiddenScrollbar.packc             K   s   t | jj dd S )Nz does not support "place")r   r   r   )r   r   r   r   r   place   s    zAutoHiddenScrollbar.place)r   
__module____qualname__r   r   r   __classcell__r   r   )r   r   r      s   r   c                   s   e Zd Zd fdd	Z  ZS )	TextFramewordc                s  t  | d| d< d| d< t| |dd | _}t| |jddtt t t	 d | j
ddd	 | jddd	 |d
| d|d< |  t| td|jd | _}|j|d< |jddtt d |dkrt| td|jd | _}|j|d< |jddtt	 d d S )NZsunkenZreliefi  Zheightr   )wrapZhighlightthickness)rowcolumnZsticky   )Zweightg        ZdisabledstateF)Zorient	takefocuscommandZyscrollcommandZnoneZxscrollcommand)r   __init__r   textr   r   r   r   r	   r
   Zgrid_rowconfigureZgrid_columnconfigureinsertZ	focus_setr   r   Zyviewyscrollr   r   Zxviewxscroll)r   parentZrawtextr$   r,   r.   r/   )r   r   r   r+   "   s,    


zTextFrame.__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 )		ViewFramer#   c                sx   t  | || _| d| j | d| j t| ||d| _t| d| jdd | _}| jj	ddd	d
 |j	dd d S )Nz<Return>z<Escape>)r$   CloseF)r,   r*   r)   topTboth)sideexpandfillZbottom)r5   )
r   r+   r0   Zbindokr"   Z	textframer   	button_okr   )r   r0   r,   r$   r9   )r   r   r   r+   G   s    zViewFrame.__init__Nc             C   s   | j   d S )N)r0   destroy)r   eventr   r   r   r8   R   s    zViewFrame.ok)r#   )N)r   r   r    r+   r8   r!   r   r   )r   r   r1   E   s   r1   c                   s0   e Zd Zd
ddd fddZddd	Z  ZS )
ViewWindowTr#   F)_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_WINDOWr2   F)r,   r*   r)   r3   Tr4   )r5   r6   r7   )r   r+   Zwinfo_rootxZwinfo_rootyZgeometrytitler1   Z	viewframeZprotocolr8   r   r9   r   is_modalZ	transientZgrab_setZwait_window)r   r0   rC   r,   modalr$   r=   r>   xyr9   )r   r   r   r+   Z   s"    

zViewWindow.__init__Nc             C   s   | j r|   |   d S )N)rD   Zgrab_releaser:   )r   r;   r   r   r   r8   }   s    zViewWindow.ok)Tr#   )N)r   r   r    r+   r8   r!   r   r   )r   r   r<   W   s   "r<   Tr#   Fc             C   s   t | |||||dS )N)r$   r>   )r<   )r0   rC   r,   rE   r$   r>   r   r   r   	view_text   s    rH   c       
   
   C   s   y&t |d|d}| }W d Q R X W n\ tk
rP   tdd|d| d Y nH tk
r }	 ztdt|	| d W d d }	~	X Y nX t| |||||dS d S )	Nr)encodingzFile Load ErrorzUnable to load file z .)rC   messager0   zUnicode Decode Error)r$   r>   )openreadOSErrorr   UnicodeDecodeErrorstrrH   )
r0   rC   filenamerJ   rE   r$   r>   filecontentserrr   r   r   	view_file   s    
rU   __main__)mainzidlelib.idle_test.test_textview   )	verbosityexit)runN)Tr#   F)Tr#   F)Ztkinterr   r   r   r   r   r   r   r	   r
   Ztkinter.ttkr   r   r   Ztkinter.messageboxr   Zidlelib.colorizerr   r   r"   r1   r<   rH   rU   r   ZunittestrW   Zidlelib.idle_test.htestr[   r   r   r   r   <module>   s   ,&-
 
