mς
­fIc           @   s\   d  k  Td k l Z d k Z d k Z d k Z d e f d     YZ d f  d     YZ d S(   (   t   *(   s   EditorWindowNt   OutputWindowc           B   s   t  Z d  Z d   Z d   Z d   Z d   Z f  d d  Z d   Z d   Z	 d g Z
 d d d g Z e Z e d  Z d   Z RS(   s   An editor window that can serve as an output file.

    Also the future base class for the Python shell window.
    This class has no input facilities.
    c         G   s*   t  i |  |  |  i i d |  i  d  S(   Ns   <<goto-file-line>>(   t   EditorWindowt   __init__t   selft   argst   textt   bindt   goto_file_line(   R   R   (    (    t1   /mit/python/lib/python2.4/idlelib/OutputWindow.pyR      s    c         C   s   d S(   Ni    (    (   R   t   filename(    (    R	   t   ispythonsource   s    c         C   s   d S(   Nt   Output(    (   R   (    (    R	   t   short_title   s    c         C   s   |  i   o d Sn d Sd  S(   Nt   yest   no(   R   t	   get_saved(   R   (    (    R	   t	   maybesave   s    t   insertc         C   sw   t  | t  o0 y t | t i  } Wq@ t j
 o q@ Xn |  i i	 | | |  |  i i |  |  i i   d  S(   N(   t
   isinstancet   st   strt   unicodet	   IOBindingt   encodingt   UnicodeErrorR   R   R   t   markt   tagst   seet   update(   R   R   R   R   (    (    R	   t   write%   s    	c         C   s   t  |  i |  d  S(   N(   t   mapR   R   t   l(   R   R    (    (    R	   t
   writelines2   s    c         C   s   d  S(   N(    (   R   (    (    R	   t   flush5   s    s   Go to file/lines   <<goto-file-line>>s   file "([^"]*)", line (\d+)s   ([^\s]+)\((\d+)\)s   ([^\s]+):\s*(\d+):c   	      C   sύ   |  i d  j oC g  } x- |  i D]" } | i t i | t i	   q  W| |  _ n |  i
 i d d  } |  i |  } | pP |  i
 i d d  } |  i |  } | p! t i d d d |  i
 d  SqΞ n | \ } } |  i i |  } | i |  d  S(   Ns   insert linestarts   insert lineends   insert -1line linestarts   insert -1line lineends   No special linesT   The line you point at doesn't look like a valid file name followed by a line number.t   master(   R   t   file_line_progst   NoneR    t   file_line_patst   patt   appendt   ret   compilet
   IGNORECASER   t   gett   linet   _file_line_helpert   resultt   tkMessageBoxt	   showerrorR
   t   linenot   flistt   opent   editt   gotoline(	   R   t   eventR'   R5   R    R
   R/   R-   R2   (    (    R	   R   F   s(    
  		c         C   s΄   x0 |  i D]! } | i |  } | o Pq
 q
 Wd  S| i d d  \ } } y t
 | d  } | i   Wn t j
 o d  Sn Xy | t |  f SWn t j
 o d  Sn Xd  S(   Ni   i   t   r(   R   R$   t   progt   searchR-   t   mR%   t   groupR
   R2   R4   t   ft   closet   IOErrort   intt	   TypeError(   R   R-   R=   R;   R
   R2   R9   (    (    R	   R.   a   s     
 		(   s   Go to file/lines   <<goto-file-line>>(   t   __name__t
   __module__t   __doc__R   R   R   R   R   R!   R"   t   rmenu_specsR&   R%   R$   R   R.   (    (    (    R	   R      s    								t   OnDemandOutputWindowc           B   sM   t  Z h  d h  d d <<d h  d d <<Z d   Z d   Z d   Z RS(	   Nt   stdoutt
   foregroundt   bluet   stderrs   #007700c         C   s   | |  _  d  |  _ d  S(   N(   R3   R   R%   t   owin(   R   R3   (    (    R	   R   }   s    	c         C   s2   |  i p |  i   n |  i i | | |  d  S(   N(   R   RK   t   setupR   R   R   R   (   R   R   R   R   (    (    R	   R      s    
c         C   sz   t  |  i  |  _ } | i } x8 |  i i   D]' \ } } | o | i	 | |  q/ q/ W| i
 d  |  i i |  _ d  S(   Nt   sel(   R   R   R3   RK   R   t   tagdefst   itemst   tagt   cnft   tag_configuret	   tag_raiseR   (   R   R   RQ   RP   RK   (    (    R	   RL      s    	 (   RB   RC   RN   R   R   RL   (    (    (    R	   RF   u   s   *		(   t   TkinterR   R)   R0   R   R   RF   (   RF   R   R)   R0   R   R   (    (    R	   t   ?   s   			n