
\[\                 @   s^   d  d l  Z  d  d l Td  d l j Z Gd d   d  Z d d   Z e d k rZ e   n  d S)    N)*c               @   s   e  Z d  Z d d l m Z d d   Z d d d  Z d d d	  Z d d
 d  Z d d   Z	 d d   Z
 d d   Z d d   Z d S)FileListr   )EditorWindowc             C   s(   | |  _  i  |  _ i  |  _ i  |  _ d  S)N)rootdictinversedictvars)selfr    r
   &/usr/lib/python3.4/idlelib/FileList.py__init__   s    			zFileList.__init__Nc             C   s   | s t   |  j |  } t j j |  rQ t j d d | f d |  j d  St j j |  } | |  j	 k r |  j	 | } | j
 j   | S| r | |  S|  j |  | |  } | j r | S| j   d  Sd  S)Nz
File Errorz%r is a directory.master)AssertionErrorcanonizeospathisdirtkMessageBox	showerrorr   normcaser   topwakeupr   Z	good_loadZ_close)r	   filenameactionkeyeditr
   r
   r   open   s(    

	
zFileList.openc             C   s;   |  j  |  } | d  k	 r7 | d  k	 r7 | j |  n  d  S)N)r   Zgotoline)r	   r   linenor   r
   r
   r   gotofileline+   s    zFileList.gotofilelinec             C   s   |  j  |  |  S)N)r   )r	   r   r
   r
   r   new0   s    zFileList.newc             O   s:   x3 t  |  j  D]" } | j   } | d k r Pq q Wd S)NZcancelbreak)listr   close)r	   argskwdsr   Zreplyr
   r
   r   close_all_callback3   s
    zFileList.close_all_callbackc             C   sn   y |  j  | } Wn  t k
 r3 t d  d  SYn X| rG |  j | =n  |  j  | =|  j  sj |  j j   n  d  S)Nz-Don't know this EditorWindow object.  (close))r   KeyErrorprintr   r   Zquit)r	   r   r   r
   r
   r   unregister_maybe_terminate:   s    
	
	z#FileList.unregister_maybe_terminatec             C   s;  | j    y |  j | } Wn  t k
 r= t d  d  SYn X| j j } | st | rc |  j | =n  d  |  j | <d  S|  j |  } t j	 j
 |  } | | k r d  S| |  j k r |  j | } d  |  j | <t j d d | f d |  j n  | |  j | <| |  j | <| r7y |  j | =Wq7t k
 r3Yq7Xn  d  S)Nz.Don't know this EditorWindow object.  (rename)zName Conflictz.You now have multiple edit windows open for %rr   )Zsaved_change_hookr   r&   r'   ior   r   r   r   r   r   r   r   r   )r	   r   r   r   ZnewkeyZconflictr
   r
   r   filename_changed_editF   s<    

	zFileList.filename_changed_editc             C   s_   t  j j |  sO y t  j   } Wn t k
 r6 YqO Xt  j j | |  } n  t  j j |  S)N)r   r   isabsgetcwdOSErrorjoinnormpath)r	   r   pwdr
   r
   r   r   f   s    zFileList.canonize)__name__
__module____qualname__idlelib.EditorWindowr   r   r   r   r   r%   r(   r*   r   r
   r
   r
   r   r      s    r   c              C   s   d d l  m }  d d  l } t   } |  |  | j   t |  } | j d d   r x5 | j d d   D] } | j |  ql Wn
 | j   | j	 r | j
   n  d  S)Nr   )fixwordbreaks   )r4   r5   sysZTkZwithdrawr   argvr   r   r   Zmainloop)r5   r7   r   Zflistr   r
   r
   r   _testq   s    	


	r9   __main__)r   ZtkinterZtkinter.messageboxZ
messageboxr   r   r9   r1   r
   r
   r
   r   <module>   s   
k