
   /                   b    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
       yy)zidlelib.filelist    N)
messageboxc                   N    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y)FileListr   EditorWindowc                 <    || _         i | _        i | _        i | _        y N)rootdictinversedictvars)selfr
   s     ./tmp/python/lib/python3.12/idlelib/filelist.py__init__zFileList.__init__   s    			    Nc                    |sJ | j                  |      }t        j                  j                  |      r&t	        j
                  d|d| j                         y t        j                  j                  |      }|| j                  v r+| j                  |   }|j                  j                          |S |r ||      S | j                  | ||      }|j                  r|S |j                          y )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    x==*77=="  ,./yy" ggx($))99S>DHHOOK(##$$T8S9D~~r   c                 T    | j                  |      }|||j                  |       y y y r	   )r#   gotoline)r   r   linenor"   s       r   gotofilelinezFileList.gotofileline,   s/    yy" 2MM&! !3r   c                 &    | j                  | |      S r	   r   )r   r   s     r   newzFileList.new1   s      x00r   c                 f    t        | j                        D ]  }|j                         }|dk(  s y y)Ncancelbreak)listr   close)r   argskwdsr"   replys        r   close_all_callbackzFileList.close_all_callback4   s5    ))*DJJLE 	 + r   c                     	 | j                   |   }|r| j                  |= | j                   |= | j                   s| j                  j                          y y # t        $ r t        d       Y y w xY w)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;   sn    	""4(C 		#T"IINN    	AB	s   A A,+A,c                 p   |j                          	 | j                  |   }|j                  j
                  }|s|r| j                  |= d | j                  |<   y | j                  |      }t        j                  j                  |      }||k(  ry || j                  v rC| j                  |   }d | j                  |<   t        j                  dd|| j                         || j                  |<   || j                  |<   |r	 | j                  |= y y # t        $ r t        d       Y y w xY w# t        $ r Y y w xY w)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   s8    	""4(C 77##IIcN%)DT"==*!!(+S=TYYyy(H)-DX&  >xlKyy" !		&!'IIcN -  	BC	2  s#   D  D) D&%D&)	D54D5c                    t         j                  j                  |      s5	 t        j                         }t         j                  j	                  ||      }t         j                  j                  |      S # t
        $ r Y *w xY wr	   )r   r   isabsgetcwdjoinOSErrornormpath)r   r   pwds      r   r   zFileList.canonizeg   sa    ww}}X&7iik 77<<X6ww))	  s   A4 4	B ?B r	   )__name__
__module____qualname__idlelib.editorr   r   r#   r'   r)   r2   r7   r=   r    r   r   r   r      s0     ,4"
1
@*r   r   c                      ddl m}  ddlm} ddlm}  |        } ||        ||       |j                          t        |      }|j                          |j                  r|j                          y y )Nr   )Tk)fixwordbreaks)fix_scaling)tkinterrK   rH   rL   idlelib.runrM   withdrawr   r)   r   mainloop)rK   rL   rM   r
   flists        r   _testrS   r   sT    ,'4D$MMOTNE	IIK 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*V z	*a8 r   