m
fIc           @   s   d  k  Z  d  k Z d  k Z d k Td k l Z d k l Z d e i f d     YZ d f  d     YZ	 d e f d	     YZ
 d
 f  d     YZ d  S(   N(   t   *(   s   ListedToplevel(   s   ScrolledListt   Idbc           B   s5   t  Z d   Z d   Z d   Z d   Z d   Z RS(   Nc         C   s   | |  _  t i i |   d  S(   N(   t   guit   selft   bdbt   Bdbt   __init__(   R   R   (    (    t-   /mit/python/lib/python2.4/idlelib/Debugger.pyR      s    	c         C   sH   |  i |  o |  i   d  Sn |  i |  } |  i i | |  d  S(   N(   R   t   in_rpc_codet   framet   set_stept   _Idb__frame2messaget   messageR   t   interaction(   R   R	   R   (    (    R   t	   user_line   s
    
c         C   sK   |  i |  o |  i   d  Sn |  i |  } |  i i | | |  d  S(   N(	   R   R   R	   R
   R   R   R   R   t   info(   R   R	   R   R   (    (    R   t   user_exception   s
    
c         C   sV   | i i i d  o t Sn5 | i } | i i i d  o t Sn |  i	 |  Sd  S(   Ns   rpc.pys   Debugger.py(
   R	   t   f_codet   co_filenamet   countt   Truet   f_backt
   prev_framet   FalseR   R   (   R   R	   R   (    (    R   R      s    	c         C   sh   | i } | i } | i } t i i	 |  } d | | f } | i d j o d | | i f } n | S(   Ns   %s:%st   ?s   %s: %s()(   R	   R   t   codeR   t   filenamet   f_linenot   linenot   ost   patht   basenameR   t   co_name(   R   R	   R   R   R   R   R   (    (    R   t   __frame2message'   s    			(   t   __name__t
   __module__R   R   R   R   R   (    (    (    R   R   	   s
   				
t   Debuggerc           B   s   t  Z d  Z Z Z Z d  d  Z d   Z d  d  Z	 d   Z
 d  d  Z d   Z d   Z d   Z d	   Z d
   Z d   Z d   Z d  Z d   Z d   Z d   Z d  Z d  Z d   Z d   Z d d  Z d   Z d   Z d   Z d   Z RS(   Nc         C   sO   | d  j o t |   } n | |  _ | |  _  d  |  _ |  i   d |  _ d  S(   Ni    (   t   idbt   NoneR   R   t   pyshellR	   t   make_guit   interacting(   R   R'   R%   (    (    R   R   6   s    			
c         G   s.   z d |  _ |  i i |   SWd  d |  _ Xd  S(   Ni   i    (   R   R)   R%   t   runt   args(   R   R+   (    (    R   R*   ?   s
    	 c         C   sa   |  i o |  i i   d  Sn |  i o |  i i   d  |  _ n |  i i   |  i i	   d  S(   N(
   R   R)   t   topt   bellt   stackviewert   closeR&   R'   t   close_debuggert   destroy(   R   t   event(    (    R   R/   F   s    

c         C   s  |  i } | i |  _ | i |  _ } t |  |  _ } |  i i d  |  i i d  | i d |  i	  |  i i
 d |  i	  t |  |  _ } |  i i d d  g  |  _ } t | d d d	 |  i |  _ } | i |  t | d d
 d	 |  i |  _ } | i |  t | d d d	 |  i |  _ } | i |  t | d d d	 |  i |  _ } | i |  t | d d d	 |  i |  _ } | i |  x. | D]& } | i d d  | i d d  qWt |  |  _ } |  i i d d  |  i p& t |  |  i  _ |  i i! d  n t" | d d d	 |  i# d |  i |  _$ |  i$ i% d d d d  |  i& p t |  |  i  _& n t" | d d d	 |  i' d |  i& |  _( |  i( i% d d d d  |  i) p& t |  |  i  _) |  i) i! d  n t" | d d d	 |  i* d |  i) |  _+ |  i+ i% d d d d  |  i, p t |  |  i  _, n t" | d d d	 |  i- d |  i, |  _. |  i. i% d d d d  t/ | d d |  _0 |  i0 i d d  t/ | d d |  _1 |  i1 i d d d d  |  i1 i2 d  |  _3 t | d d |  _4 |  i4 i d d d d   t |  |  _5 |  i5 i d d d d   t | d d |  _6 |  i6 i d d d d   |  i i7   o |  i#   n |  i) i7   o |  i*   n |  i, i7   o |  i-   n d  S(!   Ns   Debug Controlt   Debugt   WM_DELETE_WINDOWs   <Escape>t   anchort   wt   textt   Got   commandt   Stept   Overt   Outt   Quitt   statet   disabledt   sidet   lefti   t   Stackt   variablet   rowi    t   columnt   Sourcet   Localst   Globalst   fillt   xt
   backgroundt   heightt   expandt   both(8   R   R'   t   flistt   roott   ListedToplevelR,   t   wm_titlet   wm_iconnamet   wm_protocolR/   t   bindt   Framet   bframet   packt   buttonst   blt   Buttont   contt   bcontt   bt   appendt   stept   bstept   nextt   bnextt   rett   brett   quitt	   configuret   cframet   vstackt
   BooleanVart	   __class__t   sett   Checkbuttont
   show_stackt   bstackt   gridt   vsourcet   show_sourcet   bsourcet   vlocalst   show_localst   blocalst   vglobalst   show_globalst   bglobalst   Labelt   statust   errort   cgett   errorbgt   fstackt   flocalst   fglobalst   get(   R   R^   RZ   R'   Rh   RW   RP   R,   (    (    R   R(   S   s    	""""" 
!
!
!
!c         C   s  | |  _  |  i i d |  | o | \ } } } y | i	 } Wn# t j
 o d t |  } n X| d  j	 o( y d | t |  f } Wq q Xn d } n d } d  } |  i } |  i i d | d |  |  i } | o2 |  i i |  i  |  \ } }	 | i | |	  n |  i d  |  i i   o |  i   n x! |  i D] }
 |
 i d d	  qIW|  i i   |  i  i!   x! |  i D] }
 |
 i d d
  qW|  i i d d  |  i i d d d |  i  d  |  _  d  S(   NR7   s   %ss   %s: %st   yellowt    RK   i   R>   t   normalR?   ("   R	   R   R{   Rg   R   R   t   typet   valuet   tbR"   t   m1t   AttributeErrort   strR&   t   bgR~   R|   R.   t   svR%   t	   get_stackt   stackt   it
   load_stackt   show_variablesRq   R   t   sync_source_lineRY   R^   R,   t   wakeupRP   t   mainloop(   R   R   R	   R   R   R   R   R   R   R   R^   R   R   (    (    R   R      sH    	
		
 
 c         C   st   |  i } | p d  Sn |  i |  \ } } | d  | d d j o* t i i |  o |  i i	 | |  n d  S(   Ni   is   <>(
   R   R	   t   _Debugger__frame2filelineR   R   R   R   t   existsRO   t   gotofileline(   R   R   R	   R   (    (    R   R      s    	,c         C   s%   | i } | i } | i } | | f S(   N(   R	   R   R   R   R   R   R   (   R   R	   R   R   R   (    (    R   t   __frame2fileline   s    			c         C   s   |  i i   |  i i   d  S(   N(   R   R%   t   set_continueRP   Rf   (   R   (    (    R   R\      s    c         C   s   |  i i   |  i i   d  S(   N(   R   R%   R
   RP   Rf   (   R   (    (    R   R`      s    c         C   s$   |  i i |  i  |  i i   d  S(   N(   R   R%   t   set_nextR	   RP   Rf   (   R   (    (    R   Rb      s    c         C   s$   |  i i |  i  |  i i   d  S(   N(   R   R%   t
   set_returnR	   RP   Rf   (   R   (    (    R   Rd      s    c         C   s   |  i i   |  i i   d  S(   N(   R   R%   t   set_quitRP   Rf   (   R   (    (    R   Rf      s    c         C   s   |  i oo |  i i   o_ t |  i |  i |   |  _ } |  i o2 |  i	 i
 |  i d   \ } } | i | |  q nF |  i } | o( |  i i   o d  |  _ | i   n d |  i d <d  S(   Ni   RL   (   R   R.   Ri   R   t   StackViewerR   RO   R   R	   R%   R   R&   R   R   R   R/   (   R   R   R   R   (    (    R   Rn      s    
		c         C   s"   |  i i   o |  i   n d  S(   N(   R   Rq   R   R   (   R   (    (    R   Rr      s    c         C   s#   | \ } } | |  _  |  i   d  S(   N(   R	   R   R   R   (   R   t   .2R	   R   (    (    R   t
   show_frame   s   	c         C   sv   |  i } |  i i   o$ | p t |  i d  |  _ qh n, | o$ d  |  _ | i   d |  i d <n |  i	   d  S(   NRG   i   RL   (
   R   t   localsviewert   lvRt   R   t   NamespaceViewerR   R&   R/   R   (   R   R   (    (    R   Ru     s    		
c         C   sv   |  i } |  i i   o$ | p t |  i d  |  _ qh n, | o$ d  |  _ | i   d |  i d <n |  i	   d  S(   NRH   i   RL   (
   R   t   globalsviewert   gvRw   R   R   R   R&   R/   R   (   R   R   (    (    R   Rx     s    		
i    c         C   s   |  i } |  i } |  i } | p d  } } n8 | i	 } | i
 } | o | o | | j o
 d  } n | o  | i | | |  i i i  n | o  | i | | |  i i i  n d  S(   N(   R   R   R   R   R   R	   R&   t   ldictt   gdictt   f_localst	   f_globalst	   load_dictt   forceR'   t   interpt   rpcclt(   R   R   R   R   R   R   R	   (    (    R   R     s    					
 c         C   s   |  i i | |  d  S(   N(   R   R%   t	   set_breakR   R   (   R   R   R   (    (    R   t   set_breakpoint_here.  s    c         C   s   |  i i | |  d  S(   N(   R   R%   t   clear_breakR   R   (   R   R   R   (    (    R   t   clear_breakpoint_here1  s    c         C   s   |  i i |  d  S(   N(   R   R%   t   clear_all_file_breaksR   (   R   R   (    (    R   t   clear_file_breaks4  s    c         C   sw   |  i i i i   } x[ | D]S } | i i } y( x! | i	 D] } |  i | |  q; WWq t j
 o
 q q Xq Wd S(   s=   Load PyShellEditorWindow breakpoints into subprocess debuggerN(   R   R'   RO   t   inversedictt   keyst   pyshell_edit_windowst   editwint   ioR   t   breakpointsR   R   R   (   R   R   R   R   R   (    (    R   t   load_breakpoints7  s      
 (    R"   R#   R&   Ri   Rq   Rt   Rw   R   R*   R/   R(   R   R   R   R\   R`   Rb   Rd   Rf   R.   Rn   Rr   R   R   R   Ru   Rx   R   R   R   R   R   (    (    (    R   R$   2   s4   			K,															R   c           B   s\   t  Z d   Z d  d  Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z RS(
   Nc         C   s5   t  i |  | d d | |  _ | |  _ g  |  _ d  S(   Nt   widthiP   (   t   ScrolledListR   R   t   masterRO   R   R   (   R   R   RO   R   (    (    R   R   D  s    		c         C   s3  | |  _  |  i   x t t |   D] } | | \ } } y | i d } Wn d } n X| i
 } | i }	 | i } d  k }
 |
 i |	 |  } d  k } | i |  } | d j o d | | | f } n d | | | | f } | | j o d | } n |  i |  q& W| d  j	 o |  i |  n d  S(   NR"   R   R   s   %s, line %d: %ss   %s.%s(), line %d: %ss   > (   R   R   N(   R   R   t   cleart   ranget   lenR   R	   R   R   t   modnameR   R   R   R   R    t   funcnamet	   linecachet   getlinet
   sourcelinet   stringt   stripR&   t   itemt   indexR_   t   select(   R   R   R   R   R   R   R   R   R   R   R   R   R	   R   (    (    R   R   J  s0    	
 
					c         C   s"   |  i o t i |  |  Sn d S(   s   override base methodN(   R   R   R   t   popup_eventR2   (   R   R2   (    (    R   R   e  s     
c         C   s?   |  i } | i d d d |  i  | i d d d |  i  d S(   s   override base methodt   labels   Go to source lineR9   s   Show stack frameN(   R   t   menut   add_commandt   goto_source_linet   show_stack_frame(   R   R   (    (    R   t	   fill_menuj  s     	c         C   sF   d | j o t |  i  j  n o |  i i |  i |  n d S(   s   override base methodi    N(   R   R   R   R   R   R   (   R   R   (    (    R   t	   on_selectr  s     'c         C   s   |  i |  d S(   s   override base methodN(   R   Rr   R   (   R   R   (    (    R   t	   on_doublew  s     c         C   s#   |  i i d  } |  i |  d  S(   Nt   active(   R   t   listboxR   Rr   (   R   R   (    (    R   R   {  s    c         C   sX   |  i i d  } d | j o t |  i  j  n o |  i i |  i |  n d  S(   NR   i    (   R   R   R   R   R   R   R   (   R   R   (    (    R   R     s    'c         C   s   d | j o t |  i  j  n p d  Sn |  i | \ } } | i } | i } t
 i i |  o. |  i i |  } | o | i |  q n d  S(   Ni    (   R   R   R   R   R	   R   R   R   R   R   R   R   t   isfileRO   t   opent   editt   gotoline(   R   R   R   R   R   R   R	   (    (    R   Rr     s    '		(   R"   R#   R   R&   R   R   R   R   R   R   R   Rr   (    (    (    R   R   B  s   							R   c           B   s2   t  Z d  d  Z d Z d d  d  Z d   Z RS(   Nc      	   C   s  d } d } | o d t |  } n | |  _ | |  _ d  k } | i   |  _ d |  i _	 d |  i _
 t |  |  _ }
 |  i i d d d d  t |
 d	 | d
 d d d |  _ |  i i d d  t |
 d d |  _ } | i d d d d  t |
 d t d t d |   d d d | | f |  _ } | i d d d d d d  | i | d <| i | d <t |  |  _ }	 | i d d d |	 d d |  _ |  i |  d  S(   Ni    i(   i   i<   RM   i   RI   RN   R7   t   borderwidthi   t   relieft   grooveRJ   t   namet   vbarR@   t   rightt   yRL   i,  t   scrollregionRA   R9   t   yscrollcommandt   windowR5   t   nw(   R   RL   t   dictR   R   R   t   titlet   reprt   Reprt	   maxstringt   maxotherRV   R	   RX   Rz   R   t	   ScrollbarR   t   Canvast   mint   maxt   canvast   yviewRl   t   subframet   create_windowt   sfidR   (   R   R   R   R   R   R   RL   R   R   R   R	   (    (    R   R     s2    			!!ii    c         C   s  | |  i  j o | o d  Sn |  i } |  i } x! | i i   D] } | i   qB Wd  |  _  | p, t
 | d d } | i d d d d  n | i   } | i   d } x | D] } | | } |  i i |  } | o | d d !} n t
 | d | } | i d | d d d d	  t | d
 d d d } | i d |  | i d | d d d d	  | d } q W| |  _  | i   | i   }
 | i   }	 |  i } d d |
 |	 f |  i d <|	 d j o d | d <| i d d  n |	 | d <| i d d  d  S(   NR7   R&   RD   i    RE   i   it   stickyR   R   R   R   i,  RL   RM   (   R   R   R   R   R	   t   childrent   valuest   cR1   R&   Rz   t   lRp   R   t   namest   sortRD   R   R   R   t   svaluet
   rpc_clientt   Entryt   insertt   update_idletaskst   winfo_reqwidthR   t   winfo_reqheightRL   R   RX   (   R   R   R   R   R   R   R   R   R   RL   R   R   R   R   R	   RD   (    (    R   R     sJ    		 	
 
	
	

c         C   s   |  i i   d  S(   N(   R   R	   R1   (   R   (    (    R   R/     s    (   R"   R#   R&   R   R   R   R/   (    (    (    R   R     s   *(   R   R   t   typest   Tkintert
   WindowListRQ   R   R   R   R$   R   R   (	   R   R$   R   R   R   RQ   R   R   R  (    (    R   R      s   			) N