B � f��@s�dZddlmZmZmZmZmZmZmZm Z m Z m Z m Z ddl mZmZmZddlmZddlmZGdd�de�ZGdd �d e�ZGd d �d e�ZGd d �d e�Zddd�Zddd�Zedkr�ddlmZedddd�ddlmZee�dS)zSimple text browser for IDLE �) �Toplevel�Text�TclError� HORIZONTAL�VERTICAL�NS�EW�NSEW�NONE�WORD�SUNKEN)�Frame� Scrollbar�Button)� showerror)� color_configcs0eZdZdZ�fdd�Zdd�Zdd�Z�ZS)�AutoHideScrollbarzpA scrollbar that is automatically hidden when not needed. Only the grid geometry manager is supported. cs<t|�dkst|�dkr"|��n|��t��||�dS)Ngg�?)�float�gridZ grid_remove�super�set)�self�lo�hi)� __class__��5/opt/alt/python37/lib64/python3.7/idlelib/textview.pyrs zAutoHideScrollbar.setcKst|jj�d���dS)Nz does not support "pack")rr�__name__)r�kwargsrrr�packszAutoHideScrollbar.packcKst|jj�d���dS)Nz does not support "place")rrr)rrrrr�placeszAutoHideScrollbar.place)r� __module__� __qualname__�__doc__rrr � __classcell__rr)rrr s rcs$eZdZdZef�fdd� Z�ZS)�ScrollableTextFramezDisplay text with scrollbar(s).c s�t�j|f|�t||d�}|_|jddtd�|jddd�|jddd�t|t d|j d�|_ |j jddt d�|j j |d<|tkr�t|td|jd�|_|jjddtd�|jj |d <nd |_d S) a�Create a frame for Textview. master - master widget for this frame wrap - type of text wrapping to use ('word', 'char' or 'none') All parameters except for 'wrap' are passed to Frame.__init__(). The Text widget is accessible via the 'text' attribute. Note: Changing the wrapping mode of the text widget after instantiation is not supported. )�wrapr)�row�columnZsticky�)ZweightF)Zorient� takefocus�commandZyscrollcommandZxscrollcommandN)r�__init__r�textrr Zgrid_rowconfigureZgrid_columnconfigurerrZyviewZyscrollrrr rZxviewZxscrollr)rZmasterr&rr-)rrrr,"s"    zScrollableTextFrame.__init__)rr!r"r#r r,r$rr)rrr%sr%cs,eZdZdZd�fdd� Zd dd�Z�ZS) � ViewFramez#Display TextFrame and Close button.�wordcs�t��|�||_|�d|j�|�d|j�t|tdd�|_|jj}|_|� d|�|j |ddd�t |�|� �t |d |jd d �|_}|jjd d dd�|jdd�dS)aCreate a frame for viewing text with a "Close" button. parent - parent widget for this frame contents - text to display wrap - type of text wrapping to use ('word', 'char' or 'none') The Text widget is accessible via the 'text' attribute. zzi�)ZreliefZheightz1.0rZdisabled)r&Zhighlightthickness�state�CloseF)r-r+r*�topT�both)�side�expand�fillZbottom)r4N)rr,�parentZbind�okr%r Z textframer-�insertZ configurerZ focus_setr� button_okr)rr7�contentsr&r-r:)rrrr,Js  zViewFrame.__init__NcCs|j��dS)zDismiss text viewer dialog.N)r7�destroy)r�eventrrrr8dsz ViewFrame.ok)r/)N)rr!r"r#r,r8r$rr)rrr.Hsr.cs8eZdZdZdefddd��fdd� Zd dd �Z�ZS) � ViewWindowz%A simple text viewer dialog for IDLE.TF)�_htest�_utestc s�t��|�d|d<|��d}|��|s.dnd} |�d|�d| ���|�|�t|||d�|_|�d|j �t |d |j d d �|_ } |jj d d dd�||_ |j r�|�|�|��|s�|��dS)aShow the given text in a scrollable window with a 'close' button. If modal is left True, users cannot interact with other windows until the textview window is closed. parent - parent of this dialog title - string which is title of popup dialog contents - text to display in dialog wrap - type of text wrapping to use ('word', 'char' or 'none') _htest - bool; change box location when running htest. _utest - bool; don't wait_window when running unittest. �Z borderwidth� �dz =750x500+�+)r&ZWM_DELETE_WINDOWr1F)r-r+r*r2Tr3)r4r5r6N)rr,Z winfo_rootxZ winfo_rootyZgeometry�titler.Z viewframeZprotocolr8rr:r�is_modalZ transientZgrab_setZ wait_window) rr7rEr;�modalr&r?r@�x�yr:)rrrr,ls"    zViewWindow.__init__NcCs|jr|��|��dS)zDismiss text viewer dialog.N)rFZ grab_releaser<)rr=rrrr8�sz ViewWindow.ok)N)rr!r"r#r r,r8r$rr)rrr>is"r>Tr/FcCst||||||d�S)a�Create text viewer for given text. parent - parent of this dialog title - string which is the title of popup dialog contents - text to display in this dialog wrap - type of text wrapping to use ('word', 'char' or 'none') modal - controls if users can interact with other windows while this dialog is displayed _utest - bool; controls wait_window on unittest )r&r@)r>)r7rEr;rGr&r@rrr� view_text�s rJc Cs�y&t|d|d��}|��}WdQRXWn\tk rPtdd|�d�|d�YnHtk r�} ztdt| �|d�Wdd} ~ XYnXt||||||d �SdS) z�Create text viewer for text in filename. Return error message if file cannot be read. Otherwise calls view_text with contents of the file. �r)�encodingNzFile Load ErrorzUnable to load file z .)rE�messager7zUnicode Decode Error)r&r@)�open�read�OSErrorr�UnicodeDecodeError�strrJ) r7rE�filenamerLrGr&r@�filer;�errrrr� view_file�s   rV�__main__)�mainzidlelib.idle_test.test_textview�)� verbosity�exit)�runN)Tr/F)Tr/F) r#Ztkinterrrrrrrrr r r r Z tkinter.ttkr rrZtkinter.messageboxrZidlelib.colorizerrrr%r.r>rJrVrZunittestrXZidlelib.idle_test.htestr\rrrr�s 4  )!-