³ò
Ÿ›\Kc           @   sÂ   d  d k  Z  d  d k Z d  d k Td  d k l Z d e f d „  ƒ  YZ d d d „  ƒ  YZ 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(   iÿÿÿÿN(   t   *(   t	   Delegatort   UndoDelegatorc           B   sª   e  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 d „ Z d „  Z d „  Z e d „ Z d „  Z d „  Z RS(   iè  c         C   s   t  i |  ƒ |  i ƒ  d  S(   N(   R   t   __init__t
   reset_undo(   t   self(    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR      s    c         C   s™   |  i  d  j	 o+ |  i d ƒ |  i d ƒ |  i d ƒ n t i |  | ƒ | d  j	 o= |  i d |  i ƒ |  i d |  i ƒ |  i d |  i ƒ n d  S(   Ns   <<undo>>s   <<redo>>s   <<dump-undo-state>>(	   t   delegatet   Nonet   unbindR   t   setdelegatet   bindt
   undo_eventt
   redo_eventt
   dump_event(   R   R   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR	      s    c         C   sl   d d k  l  } | |  i |  i  ƒ d G|  i Gd G|  i Gd G|  i Gd G|  i ƒ  GH| |  i |  i ƒ d S(   Niÿÿÿÿ(   t   pprints   pointer:s   saved:s
   can_merge:s   get_saved():t   break(   R   t   undolistt   pointert   savedt	   can_merget	   get_saved(   R   t   eventR   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR   &   s    c         C   s5   d |  _  d |  _ g  |  _ d |  _ |  i d ƒ d  S(   Niÿÿÿÿi    i   (   t	   was_savedR   R   t	   undoblockt	   set_saved(   R   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR   0   s
    				c         C   s7   | o |  i  |  _ n
 d |  _ t |  _ |  i ƒ  d  S(   Niÿÿÿÿ(   R   R   t   FalseR   t   check_saved(   R   t   flag(    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR   7   s
    		c         C   s   |  i  |  i j S(   N(   R   R   (   R   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR   ?   s    c         C   s   | |  _  d  S(   N(   t   saved_change_hook(   R   t   hook(    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyt   set_saved_change_hookD   s    iÿÿÿÿc         C   sE   |  i  ƒ  } | |  i j o% | |  _ |  i o |  i ƒ  qA n d  S(   N(   R   R   R   (   R   t   is_saved(    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR   I   s
    	
c         C   s   |  i  t | | | ƒ ƒ d  S(   N(   t   addcmdt   InsertCommand(   R   t   indext   charst   tags(    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyt   insertP   s    c         C   s   |  i  t | | ƒ ƒ d  S(   N(   R    t   DeleteCommand(   R   t   index1t   index2(    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyt   deleteS   s    c         C   s1   |  i  d j o t ƒ  |  _  n |  i  i ƒ  d  S(   Ni    (   R   t   CommandSequencet
   bump_depth(   R   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyt   undo_block_starta   s    c         C   s€   |  i  i d ƒ d j oc |  i  } d |  _  t | ƒ d j o: t | ƒ d j o | i d ƒ } n |  i | d ƒ q| n d  S(   Niÿÿÿÿi    i   (   R   R+   t   lent   getcmdR    (   R   t   cmd(    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyt   undo_block_stopf   s    		c         C   sB  | o | i  |  i ƒ n |  i d j o |  i i | ƒ d  Sn |  i o@ |  i d j o0 |  i |  i d } | i | ƒ o d  Sq n | g |  i |  i )|  i |  i j o d |  _ n |  i d |  _ t	 |  i ƒ |  i
 j oB |  i d =|  i d |  _ |  i d j o |  i d |  _ q+n t |  _ |  i ƒ  d  S(   Ni    i   iÿÿÿÿ(   t   doR   R   t   appendR   R   R   t   mergeR   R-   t   max_undot   TrueR   (   R   R/   t   executet   lastcmd(    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR    r   s(    
	c         C   sm   |  i  d j o |  i ƒ  d Sn |  i |  i  d } | i |  i ƒ |  i  d |  _  t |  _ |  i ƒ  d S(   Ni    R   i   (   R   t   bellR   t   undoR   R   R   R   (   R   R   R/   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR   ‰   s    
	
c         C   sr   |  i  t |  i ƒ j o |  i ƒ  d Sn |  i |  i  } | i |  i ƒ |  i  d |  _  t |  _ |  i ƒ  d S(   NR   i   (	   R   R-   R   R8   t   redoR   R   R   R   (   R   R   R/   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR   ”   s    
	
N(   t   __name__t
   __module__R4   R   R	   R   R   R   R   R   R   R   R   R   R%   R)   R,   R0   R5   R    R   R   (    (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR      s$   			
								t   Commandc           B   sY   e  Z d Z d d  „ Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z RS(	   c         C   sE   h  |  _  h  |  _ | |  _ | |  _ | |  _ | o | |  _ n d  S(   N(   t   marks_beforet   marks_afterR'   R(   R#   R$   (   R   R'   R(   R#   R$   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR   ¦   s    					c         C   sV   |  i  i } |  i |  i |  i |  i f } |  i d  j o | d  } n | t | ƒ S(   Niÿÿÿÿ(   t	   __class__R;   R'   R(   R#   R$   R   t   repr(   R   t   st   t(    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyt   __repr__¯   s
    c         C   s   d  S(   N(    (   R   t   text(    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR1   ¶   s    c         C   s   d  S(   N(    (   R   RE   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR:   ¹   s    c         C   s   d  S(   N(    (   R   RE   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR9   ¼   s    c         C   s   d S(   Ni    (    (   R   R/   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR3   ¿   s    c         C   sR   h  } xE | i  ƒ  D]7 } | d j o$ | d j o | i | ƒ | | <q q W| S(   NR%   t   current(   t
   mark_namesR"   (   R   RE   t   markst   name(    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyt
   save_marksÂ   s     c         C   s1   x* | i  ƒ  D] \ } } | i | | ƒ q Wd  S(   N(   t   itemst   mark_set(   R   RE   RH   RI   R"   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyt	   set_marksÉ   s     N(   R;   R<   R   R$   R   RD   R1   R:   R9   R3   RJ   RM   (    (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR=       s   							R!   c           B   sU   e  Z d d  „ Z d „  Z d „  Z d „  Z d „  Z e i	 e i
 d Z d „  Z RS(   c         C   s   t  i |  | d  | | ƒ d  S(   N(   R=   R   R   (   R   R'   R#   R$   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR   Ò   s    c         C   s°   |  i  | ƒ |  _ | i |  i ƒ |  _ | i |  i d d ƒ o | i d ƒ |  _ n | i |  i |  i |  i ƒ | i d |  i t |  i ƒ f ƒ |  _	 |  i  | ƒ |  _
 d  S(   Nt   >s   end-1cs   %s+%dc(   RJ   R>   R"   R'   t   compareR%   R#   R$   R-   R(   R?   (   R   RE   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR1   Õ   s    (c         C   sS   | i  d |  i ƒ | i |  i |  i |  i ƒ |  i | |  i ƒ | i d ƒ d  S(   NR%   (   RL   R'   R%   R#   R$   RM   R?   t   see(   R   RE   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR:   à   s    c         C   sM   | i  d |  i ƒ | i |  i |  i ƒ |  i | |  i ƒ | i d ƒ d  S(   NR%   (   RL   R'   R)   R(   RM   R>   RP   (   R   RE   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR9   ç   s    c         C   sÍ   |  i  | i  j	 o t Sn |  i | i j o t Sn |  i | i j o t Sn t | i ƒ d j o t Sn |  i o1 |  i |  i d ƒ |  i | i ƒ j o t Sn | i |  _ |  i | i |  _ t S(   Ni   iÿÿÿÿ(	   R@   R   R(   R'   R$   R-   R#   t   classifyR5   (   R   R/   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR3   î   s    
)t   _c         C   s1   | |  i  j o d Sn | d j o d Sn d S(   Nt   alphanumerics   
t   newlinet   punctuation(   RS   (   R   t   c(    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyRQ      s
    N(   R;   R<   R   R   R1   R:   R9   R3   t   stringt   ascii_letterst   digitsRS   RQ   (    (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR!   Î   s   				R&   c           B   s/   e  Z d d  „ Z d „  Z d „  Z d „  Z RS(   c         C   s   t  i |  | | d  d  ƒ d  S(   N(   R=   R   R   (   R   R'   R(   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR     s    c         C   sÙ   |  i  | ƒ |  _ | i |  i ƒ |  _ |  i o | i |  i ƒ |  _ n | i |  i d ƒ |  _ | i |  i d d ƒ o | i d ƒ |  _ n | i |  i |  i ƒ |  _ | i |  i |  i ƒ |  i  | ƒ |  _	 d  S(   Ns    +1cRN   s   end-1c(
   RJ   R>   R"   R'   R(   RO   t   getR#   R)   R?   (   R   RE   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR1     s    
c         C   sM   | i  d |  i ƒ | i |  i |  i ƒ |  i | |  i ƒ | i d ƒ d  S(   NR%   (   RL   R'   R)   R(   RM   R?   RP   (   R   RE   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR:     s    c         C   sM   | i  d |  i ƒ | i |  i |  i ƒ |  i | |  i ƒ | i d ƒ d  S(   NR%   (   RL   R'   R%   R#   RM   R>   RP   (   R   RE   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR9   %  s    N(   R;   R<   R   R   R1   R:   R9   (    (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR&     s   		R*   c           B   sS   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d d „ Z	 RS(	   c         C   s   g  |  _  d |  _ d  S(   Ni    (   t   cmdst   depth(   R   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR   1  s    	c         C   sS   |  i  i } g  } x% |  i D] } | i d | f ƒ q W| d d i | ƒ d S(   Ns       %rs   (
s   ,
s   
)(   R@   R;   R[   R2   t   join(   R   RB   t   strsR/   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyRD   5  s    
 c         C   s   t  |  i ƒ S(   N(   R-   R[   (   R   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyt   __len__<  s    c         C   s   |  i  i | ƒ d  S(   N(   R[   R2   (   R   R/   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR2   ?  s    c         C   s   |  i  | S(   N(   R[   (   R   t   i(    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR.   B  s    c         C   s%   x |  i  D] } | i | ƒ q
 Wd  S(   N(   R[   R:   (   R   RE   R/   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR:   E  s    
 c         C   s6   |  i  } | i ƒ  x | D] } | i | ƒ q Wd  S(   N(   R[   t   reverseR9   (   R   RE   R[   R/   (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR9   I  s
    

 i   c         C   s   |  i  | |  _  |  i  S(   N(   R\   (   R   t   incr(    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR+   O  s    (
   R;   R<   R   RD   R_   R2   R.   R:   R9   R+   (    (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyR*   ,  s   							c          C   sy   d d k  l  }  t ƒ  } | i d | i ƒ t ƒ  } | i ƒ  | i ƒ  |  | ƒ } t ƒ  } | i | ƒ | i	 ƒ  d  S(   Niÿÿÿÿ(   t
   Percolatort   WM_DELETE_WINDOW(
   Rc   t   Tkt   wm_protocolt   quitt   Textt   packt	   focus_setR   t   insertfiltert   mainloop(   Rc   t   rootRE   t   pt   d(    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pyt   mainS  s    		

	t   __main__(    (   t   sysRW   t   TkinterR   R   R=   R!   R&   R*   Rp   R;   (    (    (    s+   /usr/lib/python2.5/idlelib/UndoDelegator.pys   <module>   s   
.:$'	