
    ;e                     F   	 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           dS dS )    )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k    st          |          dk     r|                                  n|                                  t                                          ||           d S )Ng        g      ?)floatgridgrid_removesuperset)selflohi	__class__s      '/usr/lib/python3.11/idlelib/textview.pyr   zAutoHideScrollbar.set   s_    99s??eBii#ooIIKKKKB    c                 :    t          | j        j         d          )Nz does not support "pack"r   r   __name__r   kwargss     r   packzAutoHideScrollbar.pack   s    $.1KKKLLLr    c                 :    t          | j        j         d          )Nz does not support "place"r"   r$   s     r   placezAutoHideScrollbar.place   s    $.1LLLMMMr    )r#   
__module____qualname__r   r&   r(   __classcell__r   s   @r   r   r      se            M M MN N N N N N Nr    r   c                   $     e Zd Z	 ef fd	Z xZS )ScrollableTextFramec                 x   	  t                      j        |fi | t          | |          x}| _        |                    ddt
                     |                     dd           |                     dd           t          | t          d|j
                  | _        | j                            ddt                     | j        j        |d<   |t          k    rUt          | t          d|j                  | _        | j                            ddt$                     | j        j        |d	<   d S d | _        d S )
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__"   sO   	 	**6***40000ty		a$	///q+++!!!A!... )h3815= = = 	a"555!%!1 4<<,T*7<59ZA A ADL L!Ab999%)\%5D!"""DLLLr    )r#   r)   r*   r   r<   r+   r,   s   @r   r.   r.      sC        )$( #  #  #  #  #  #  #  #  #  # r    r.   c                   *     e Zd Z	 d fd	ZddZ xZS )	ViewFramewordc                 j   	 t                                          |           || _        |                     d| j                   |                     d| j                   t          | t          d          | _        | j        j        x}| _        |	                    d|           |
                    |dd           t          |           |                                 t          | d	| j        d
          x| _        }| j                            ddd           |                    d           d S )Nz<Return>z<Escape>i  )reliefheightz1.0r   disabled)r1   highlightthicknessstateCloseFr=   r9   r8   topTbothsideexpandfillbottom)rS   )r   r<   parentbindokr.   r   	textframer=   insert	configurer   	focus_setr   	button_okr&   )r   rW   contentsr1   r=   r^   r   s         r   r<   zViewFrame.__init__J   s)   	 	   		*dg&&&		*dg&&&,T&MMM>..tyE8$$$DQjIIIT%+7DGu&F &F &F 	Ft&AAAH%%%%%r    Nc                 :    	 | j                                          d S N)rW   destroyr   events     r   rY   zViewFrame.okd   s    )r    )rG   ra   )r#   r)   r*   r<   rY   r+   r,   s   @r   rF   rF   H   sT        )& & & & & &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<   |                                dz   }|                                |sdndz   }	|                     d| d|	            |                     |           t          | ||          | _        |                     d| j	                   t          | d	| j	        d
          x| _        }
| j                            ddd           || _        | j        rA|                     |           |                                  |s|                                  d S d S d S )N   borderwidth
   d   z	=750x500++r0   WM_DELETE_WINDOWrN   FrO   rP   TrQ   rR   )r   r<   winfo_rootxwinfo_rootygeometrytitlerF   	viewframeprotocolrY   r   r^   r&   is_modal	transientgrab_setwait_window)r   rW   rs   r_   modalr1   rg   rh   xyr^   r   s              r   r<   zViewWindow.__init__l   sp   	 	   ]  2%  f$=BB#>)!))a))***

5"4===($'222%+Dw48Gu&N &N &N 	Nt&AAA= 	#NN6"""MMOOO #  """""		# 	## #r    Nc                 f    	 | j         r|                                  |                                  d S ra   )rv   grab_releaserb   rc   s     r   rY   zViewWindow.ok   s2    )= 	 r    ra   )r#   r)   r*   r   r<   rY   r+   r,   s   @r   rf   rf   i   si        +6: !# !# !# !# !# !# !# !#F       r    rf   TrG   Fc                 .    	 t          | |||||          S )Nr1   rh   )rf   )rW   rs   r_   rz   r1   rh   s         r   	view_textr      s$    	 feXu4OOOOr    c                 \   	 	 t          ||          5 }|                                }d d d            n# 1 swxY w Y   t          | |||||          S # t          $ r t	          dd|d|            Y n5t
          $ r)}	t	          dt          |	          |            Y d }	~	nd }	~	ww xY wd S )N)encodingr   zFile Load ErrorzUnable to load file z .)rs   messagerW   zUnicode Decode Error)openreadr   OSErrorr   UnicodeDecodeErrorstr)
rW   rs   filenamer   rz   r1   rh   filer_   errs
             r   	view_filer      sT   
((X... 	#$yy{{H	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# %d &( ( ( 	(  ! ! !)????	! 	! 	! 	! 	! 	!  ! ! !.c((	! 	! 	! 	! 	! 	! 	! 	! 	!! 4s8   A 5A 9A 9A  B)7	B) B$$B)__main__)mainzidlelib.idle_test.test_textview   )	verbosityexit)runN)TrG   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 0 0 0 0 0 0 0 0 ( ( ( ( ( ( * * * * * *N N N N N	 N N N&&  &  &  &  & % &  &  & R       B* * * * * * * *ZP P P P CI   0 zD	*aeDDDD++++++C
OOOOO r    