mς
­fIc           @   sΐ   d  k  Z  d  k Z d  k Z d k l Z l Z l Z d k l Z l	 Z	 d  d  d  d  Z d e f d     YZ d e f d     YZ d e f d	     YZ d
   Z e d j o e   n d  S(   N(   s   TreeNodes   TreeItems   ScrolledCanvas(   s   ObjectTreeItems   make_objecttreeitemc         C   s   | d  j o d k l } | |   } n t | d d d d } | i i d d d d	  t	 | |  } t | i d  |  } | i   d  S(
   N(   s   Toplevelt   bgt   whitet   highlightthicknessi    t   expandi   t   fillt   both(   t   topt   Nonet   Tkintert   Toplevelt   roott   ScrolledCanvast   sct   framet   packt   StackTreeItemt   flistt   tbt   itemt   TreeNodet   canvast   nodeR   (   R
   R   R   R   R   R   R	   R   (    (    t0   /mit/python/lib/python2.4/idlelib/StackViewer.pyt   StackBrowser   s    R   c           B   s;   t  Z d  d  d  Z d   Z d   Z d   Z d   Z RS(   Nc         C   s.   | |  _  |  i |  |  _ |  i   |  _ d  S(   N(   R   t   selft	   get_stackR   t   stackt   get_exceptiont   text(   R   R   R   (    (    R   t   __init__   s    	c         C   s   | d  j o t i } n g  } | o | i d  j o | i } n x4 | d  j	 o& | i | i | i f  | i } qG W| S(   N(	   R   R   t   syst   last_tracebackR   t   tb_framet   tb_nextt   appendt	   tb_lineno(   R   R   R   (    (    R   R      s     c         C   sd   t  i } t  i } t | d  o | i } n t |  } | d  j	 o | d t |  } n | S(   Nt   __name__s   : (
   R   t	   last_typet   typet
   last_valuet   valuet   hasattrR$   t   strt   sR   (   R   R(   R+   R&   (    (    R   R   $   s    		c         C   s   |  i S(   N(   R   R   (   R   (    (    R   t   GetText.   s    c         C   s=   g  } x0 |  i D]% } t | |  i  } | i |  q W| S(   N(   t   sublistR   R   t   infot   FrameTreeItemR   R   R"   (   R   R.   R   R-   (    (    R   t
   GetSubList1   s    
 (   R$   t
   __module__R   R   R   R   R,   R0   (    (    (    R   R      s
   		
	R/   c           B   s,   t  Z d   Z d   Z d   Z d   Z RS(   Nc         C   s   | |  _  | |  _ d  S(   N(   R.   R   R   (   R   R.   R   (    (    R   R   :   s    	c   	      C   s§   |  i \ } } y | i d } Wn d } n X| i } | i } | i
 } t i | |  } | i   } | d j o d | | | f } n d | | | | f } | S(   NR$   t   ?t    s   %s, line %d: %ss   %s.%s(...), line %d: %s(   R2   R3   N(   R   R.   R   t   linenot	   f_globalst   modnamet   f_codet   codet   co_filenamet   filenamet   co_namet   funcnamet	   linecachet   getlinet
   sourcelinet   stripR   R   (	   R   R6   R8   R?   R:   R4   R   R<   R   (    (    R   R,   >   s    
			c         C   sz   |  i \ } } g  } | i | i j	 o) t d | i |  i  } | i
 |  n t d | i |  i  } | i
 |  | S(   Ns   <locals>s	   <globals>(   R   R.   R   R4   R-   R5   t   f_localst   VariablesTreeItemR   R   R"   (   R   R-   R   R4   R   (    (    R   R0   P   s    c         C   sW   |  i oI |  i \ } } | i i } t i	 i
 |  o |  i i | |  qS n d  S(   N(   R   R   R.   R   R4   R7   R9   R:   t   ost   patht   isfilet   gotofileline(   R   R:   R   R4   (    (    R   t   OnDoubleClickZ   s
    
(   R$   R1   R   R,   R0   RG   (    (    (    R   R/   8   s   			
RB   c           B   s5   t  Z d   Z d   Z d   Z d   Z d   Z RS(   Nc         C   s   |  i S(   N(   R   t	   labeltext(   R   (    (    R   R,   c   s    c         C   s   d  S(   N(   R   (   R   (    (    R   t   GetLabelTextf   s    c         C   s   t  |  i  d j S(   Ni    (   t   lenR   t   object(   R   (    (    R   t   IsExpandablei   s    c         C   s   |  i i   S(   N(   R   RK   t   keys(   R   (    (    R   RM   l   s    c         C   s   g  } xs |  i   D]e } y |  i | } Wn t j
 o
 q n X| |  i d  } t | d | |  } | i
 |  q W| S(   Nc         C   s   |  | | <d  S(   N(   R(   RK   t   key(   R(   RN   RK   (    (    R   t   setfunctionv   s    s    =(   R-   R   RM   RN   RK   R(   t   KeyErrorRO   t   make_objecttreeitemR   R"   (   R   RO   R-   R(   R   RN   (    (    R   R0   o   s     (   R$   R1   R,   RI   RL   RM   R0   (    (    (    R   RB   a   s
   				c          C   ss   y d  k  }  t |   Wn% t i   \ t _ t _ t _ n Xd k l } |   } t
 d  d | | i   d  S(   N(   s   TkR   (   t   testcodet   reloadR   t   exc_infoR%   R'   R   R   t   TkR
   R   R   t   mainloop(   RR   RU   R
   (    (    R   t   _test}   s    	"	t   __main__(   RC   R   R=   t
   TreeWidgetR   t   TreeItemR   t   ObjectBrowsert   ObjectTreeItemRQ   R   R   R   R/   RB   RW   R$   (   R   R   R/   R   R\   RQ   RB   R   R=   RZ   R   RC   RW   (    (    R   R2      s   			
&)	