
    ;e                     t    d Z ddlZddlmZ  G d d          Zd Zedk    rddlmZ  ed	d
           dS dS )zidlelib.filelist    N)
messageboxc                   P    e Zd ZddlmZ d ZddZddZddZd Z	d	 Z
d
 Zd ZdS )FileListr   EditorWindowc                 >    || _         i | _        i | _        i | _        d S N)rootdictinversedictvars)selfr
   s     '/usr/lib/python3.11/idlelib/filelist.py__init__zFileList.__init__   s#    					    Nc                    |sJ |                      |          }t          j                            |          r!t	          j        d|d| j                   d S t          j                            |          }|| j        v r(| j        |         }|j	        
                                 |S |r ||          S |                     | ||          }|j        r|S |                                 d S )Nz
File Errorz is a directory.master)canonizeospathisdirr   	showerrorr
   normcaser   topwakeupr   	good_load_close)r   filenameactionkeyedits        r   openzFileList.open   s    ==**7=="" 	 ///y" " " " 4gx(($)9S>DHOOK 		6(###$$T8S99D~ tr   c                 j    |                      |          }|||                    |           d S d S d S r	   )r#   gotoline)r   r   linenor"   s       r   gotofilelinezFileList.gotofileline,   sD    yy"" 2MM&!!!!!  2 2r   c                 .    |                      | |          S r	   r   )r   r   s     r   newzFileList.new1   s      x000r   c                 l    t          | j                  D ]}|                                }|dk    r ndS )Ncancelbreak)listr   close)r   argskwdsr"   replys        r   close_all_callbackzFileList.close_all_callback4   sC    )** 	 	DJJLLE   !wr   c                     	 | j         |         }n # t          $ r t          d           Y d S w xY w|r| j        |= | j         |= | j         s| j                                         d S d S )Nz-Don't know this EditorWindow object.  (close))r   KeyErrorprintr   r
   quit)r   r"   r!   s      r   unregister_maybe_terminatez#FileList.unregister_maybe_terminate;   s    	"4(CC 	 	 	ABBBFF	  		#T" 	INN	 	s    --c                 .   |                                  	 | j        |         }n # t          $ r t          d           Y d S w xY w|j        j        }|s|r| j        |= d | j        |<   d S |                     |          }t          j	        
                    |          }||k    rd S || j        v r6| j        |         }d | j        |<   t          j        dd|| j                   || j        |<   || j        |<   |r	 | j        |= d S # t          $ r Y d S w xY wd S )Nz.Don't know this EditorWindow object.  (rename)zName Conflictz,You now have multiple edit windows open for r   )saved_change_hookr   r4   r5   ior   r   r   r   r   r   r   r   r
   )r   r"   r!   r   newkeyconflicts         r   filename_changed_editzFileList.filename_changed_editG   sx      	"4(CC 	 	 	BCCCFF	 7# 	 #IcN%)DT"F==**!!(++S==FTYy(H)-DX& KxKKy" " " " !	&!' 	IcNNN   	 	s!   $ A A:D 
DDc                    t           j                            |          sE	 t          j                    }t           j                            ||          }n# t
          $ r Y nw xY wt           j                            |          S r	   )r   r   isabsgetcwdjoinOSErrornormpath)r   r   pwds      r   r   zFileList.canonizeg   s{    w}}X&& 	77ikk 7<<X66     w)))s   A 
A"!A"r	   )__name__
__module____qualname__idlelib.editorr   r   r#   r'   r)   r2   r7   r=   r    r   r   r   r      s         ,+++++     4" " " "
1 1 1 1  
 
 
  @* * * * *r   r   c                     ddl m}  ddlm} ddlm}  |             } ||            ||           |                                 t          |          }|                                 |j	        r|
                                 d S d S )Nr   )Tk)fixwordbreaks)fix_scaling)tkinterrK   rH   rL   idlelib.runrM   withdrawr   r)   r   mainloop)rK   rL   rM   r
   flists        r   _testrS   r   s    ,,,,,,''''''244DKM$MMOOOTNNE	IIKKK  r   __main__)mainzidlelib.idle_test.test_filelist   )	verbosity)	__doc__r   rN   r   r   rS   rE   unittestrU   rI   r   r   <module>rZ      s      				      h* h* h* h* h* h* h* h*V   zD	*a888888 r   