
    z%i                        	 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e      Z G d de      Z G d	 d
e      Z G d de      ZddZ	 	 ddZedk(  r d dlmZ  eddd       d dlmZ  ee       yy)    )ToplevelTextTclError
HORIZONTALVERTICALNSEWNSEWNONEWORDSUNKEN)Frame	ScrollbarButton)	showerror)color_configc                   ,     e Zd Z	  fdZd Zd Z xZS )AutoHideScrollbarc                     t        |      dkD  st        |      dk  r| j                          n| j                          t        |   ||       y )Ng        g      ?)floatgridgrid_removesuperset)selflohi	__class__s      D/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/idlelib/textview.pyr   zAutoHideScrollbar.set   s;    9s?eBi#oIIKB    c                 F    t        | j                  j                   d      )Nz does not support "pack"r   r   __name__r   kwargss     r   packzAutoHideScrollbar.pack   s     $..1122JKLLr    c                 F    t        | j                  j                   d      )Nz does not support "place"r"   r$   s     r   placezAutoHideScrollbar.place   s     $..1122KLMMr    )r#   
__module____qualname__r   r&   r(   __classcell__r   s   @r   r   r      s    MNr    r   c                   $     e Zd Z	 ef fd	Z xZS )ScrollableTextFramec                 b   	 t        |   |fi | t        | |      x}| _        |j	                  ddt
               | j                  dd       | j                  dd       t        | t        d|j                        | _        | j                  j	                  ddt               | j                  j                  |d<   |t        k(  r^t        | t        d|j                         | _        | j"                  j	                  ddt$               | j"                  j                  |d	<   y d | _        y )
Nwrapr   )rowcolumnsticky   )weightF)orient	takefocuscommandyscrollcommandxscrollcommand)r   __init__r   textr   r
   grid_rowconfiguregrid_columnconfigurer   r   yviewyscrollr   r   r   r   xviewxscrollr	   )r   masterr1   r%   r=   r   s        r   r<   zScrollableTextFrame.__init__"   s   	 	*6*400ty		a$	/q+!!!A!. )h3815= 	a"5!%!1!1 4<,T*7<59ZZADL LL!Ab9%)\\%5%5D!"DLr    )r#   r)   r*   r   r<   r+   r,   s   @r   r.   r.      s    )$( #  # r    r.   c                   *     e Zd Z	 d fd	ZddZ xZS )	ViewFramec                 .   	 t         |   |       || _        | j                  d| j                         | j                  d| j                         t        | t        d      | _        | j                  j                  x}| _        |j                  d|       |j                  |dd       t        |       |j                          t        | d	| j                  d
      x| _        }| j                  j                  ddd       |j                  d       y )Nz<Return>z<Escape>i  )reliefheightz1.0r   disabled)r1   highlightthicknessstateCloseFr=   r9   r8   topTbothsideexpandfillbottom)rR   )r   r<   parentbindokr.   r   	textframer=   insert	configurer   	focus_setr   	button_okr&   )r   rV   contentsr1   r=   r]   r   s         r   r<   zViewFrame.__init__J   s    	 	 		*dgg&		*dgg&,T&M>>...tyE8$DQjIT%+7DGGu&F 	Ft&AH%r    c                 :    	 | j                   j                          y N)rV   destroyr   events     r   rX   zViewFrame.okd   s    )r    )wordr`   )r#   r)   r*   r<   rX   r+   r,   s   @r   rF   rF   H   s    )&4r    rF   c                   6     e Zd Z	 defddd fdZddZ xZS )
ViewWindowTF)_htest_utestc                >   	 t         |   |       d| d<   |j                         dz   }|j                         |sdndz   }	| j	                  d| d|	        | j                  |       t        | ||      | _        | j                  d| j                         t        | d	| j                  d
      x| _        }
| j                  j                  ddd       || _        | j                  r5| j                  |       | j                          |s| j!                          y y y )N   borderwidth
   d   z	=750x500++r0   WM_DELETE_WINDOWrM   FrN   rO   TrP   rQ   )r   r<   winfo_rootxwinfo_rootygeometrytitlerF   	viewframeprotocolrX   r   r]   r&   is_modal	transientgrab_setwait_window)r   rV   rs   r^   modalr1   rg   rh   xyr]   r   s              r   r<   zViewWindow.__init__l   s
   	 	 ] 2% fB#>	!AaS)*

5"4=($''2%+Dw48GGu&N 	Nt&A==NN6"MMO  "  r    c                 ^    	 | j                   r| j                          | j                          y r`   )rv   grab_releasera   rb   s     r   rX   zViewWindow.ok   s!    )==r    r`   )r#   r)   r*   r   r<   rX   r+   r,   s   @r   rf   rf   i   s     +6: !# !#Fr    rf   Fc                 &    	 t        | |||||      S )Nr1   rh   )rf   )rV   rs   r^   rz   r1   rh   s         r   	view_textr      s    	 feXu4OOr    c                    	 	 t        ||      5 }|j                         }d d d        t        | ||||      S # 1 sw Y   xY w# t        $ r t	        dd|d|        Y y t
        $ r!}	t	        dt        |	      |        Y d }	~	y d }	~	ww xY w)N)encodingr   zFile Load ErrorzUnable to load file z .)rs   messagerV   zUnicode Decode Error)openreadr   OSErrorr   UnicodeDecodeErrorstr)
rV   rs   filenamer   rz   r1   rh   filer^   errs
             r   	view_filer      s    
((X. 	#$yy{H	# %d &( 	(	# 	# !)0B?	!   !.c(	! 	! !s0   A :A AA B#B+BB__main__)mainzidlelib.idle_test.test_textview   )	verbosityexit)runN)Trd   F)tkinterr   r   r   r   r   r   r	   r
   r   r   r   tkinter.ttkr   r   r   tkinter.messageboxr   idlelib.colorizerr   r   r.   rF   rf   r   r   r#   unittestr   idlelib.idle_test.htestr    r    r   <module>r      s   ; ; ; ; 0 0 ( *N	 N&& % & R B* *ZP CI0 z	*aeD+
O r    