B ۟x7*@sdZddlmZmZmZmZmZmZmZm Z m Z m Z m Z ddl mZmZmZddlmZddlmZGdddeZGdd d eZGd d d eZGd d d eZdddZdddZedkrddlmZeddddddlmZeedS)zSimple text browser for IDLE ) ToplevelTextTclError HORIZONTALVERTICALNSEWNSEWNONEWORDSUNKEN)Frame ScrollbarButton) showerror) color_configcs0eZdZdZfddZddZddZZS)AutoHideScrollbarzpA scrollbar that is automatically hidden when not needed. Only the grid geometry manager is supported. cs<t|dkst|dkr"|n|t||dS)Ngg?)floatgridZ grid_removesuperset)selflohi) __class__5/opt/alt/python37/lib64/python3.7/idlelib/textview.pyrs zAutoHideScrollbar.setcKst|jjddS)Nz does not support "pack")rr__name__)rkwargsrrrpackszAutoHideScrollbar.packcKst|jjddS)Nz does not support "place")rrr)rrrrrplaceszAutoHideScrollbar.place)r __module__ __qualname____doc__rrr __classcell__rr)rrr s rcs$eZdZdZeffdd ZZS)ScrollableTextFramezDisplay text with scrollbar(s).c stj|f|t||d}|_|jddtd|jddd|jdddt|t d|j d|_ |j jddt d|j j |d<|tkrt|td|jd|_|jjddtd|jj |d <nd |_d S) aCreate 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)rowcolumnZsticky)ZweightF)Zorient takefocuscommandZyscrollcommandZxscrollcommandN)r__init__rtextrr Zgrid_rowconfigureZgrid_columnconfigurerrZyviewZyscrollrrr rZxviewZxscrollr)rZmasterr&rr-)rrrr,"s"    zScrollableTextFrame.__init__)rr!r"r#r r,r$rr)rrr%sr%cs,eZdZdZdfdd Zd ddZZS) ViewFramez#Display TextFrame and Close button.wordcst|||_|d|j|d|jt|tdd|_|jj}|_| d||j |dddt || t |d |jd d |_}|jjd d dd|jdddS)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&ZhighlightthicknessstateCloseF)r-r+r*topTboth)sideexpandfillZbottom)r4N)rr,parentZbindokr%r Z textframer-insertZ configurerZ focus_setr button_okr)rr7contentsr&r-r:)rrrr,Js  zViewFrame.__init__NcCs|jdS)zDismiss text viewer dialog.N)r7destroy)reventrrrr8dsz ViewFrame.ok)r/)N)rr!r"r#r,r8r$rr)rrr.Hsr.cs8eZdZdZdefdddfdd Zd dd ZZS) ViewWindowz%A simple text viewer dialog for IDLE.TF)_htest_utestc st|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_rootyZgeometrytitler.Z viewframeZprotocolr8rr:ris_modalZ transientZgrab_setZ wait_window) rr7rEr;modalr&r?r@xyr:)rrrr,ls"    zViewWindow.__init__NcCs|jr||dS)zDismiss text viewer dialog.N)rFZ grab_releaser<)rr=rrrr8sz ViewWindow.ok)N)rr!r"r#r r,r8r$rr)rrr>is"r>Tr/FcCst||||||dS)aCreate 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_texts rJc Csy&t|d|d}|}WdQRXWn\tk rPtdd|d|dYnHtk r} ztdt| |dWdd} ~ XYnXt||||||d SdS) zCreate 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 .)rEmessager7zUnicode Decode Error)r&r@)openreadOSErrorrUnicodeDecodeErrorstrrJ) r7rEfilenamerLrGr&r@filer;errrrr view_files   rV__main__)mainzidlelib.idle_test.test_textview) verbosityexit)runN)Tr/F)Tr/F) r#Ztkinterrrrrrrrr r r r Z tkinter.ttkr rrZtkinter.messageboxrZidlelib.colorizerrrr%r.r>rJrVrZunittestrXZidlelib.idle_test.htestr\rrrrs 4  )!-