³ò
œ›\Kc           @   s   d  Z  d d k Td Z d Z d Z d Z d	 Z d
 Z d d d „  ƒ  YZ d d d „  ƒ  YZ	 d „  Z
 e d j o e
 ƒ  n d S(   s†   A CallTip window class for Tkinter/IDLE.

After ToolTip.py, which uses ideas gleaned from PySol
Used by the CallTips IDLE extension.

iÿÿÿÿ(   t   *s   <<calltipwindow-hide>>s   <Key-Escape>s
   <FocusOut>s   <<calltipwindow-checkhide>>s   <KeyRelease>s   <ButtonRelease>id   t   calltipwindowregion_rightt   CallTipc           B   sJ   e  Z d  „  Z d „  Z d „  Z d d „ Z d „  Z d „  Z d „  Z	 RS(   c         C   sF   | |  _  d  |  _ |  _ d  |  _ |  _ d  |  _ d  |  _ |  _ d  S(   N(	   t   widgett   Nonet	   tipwindowt   labelt	   parenlinet   parencolt   lastlinet   hideidt   checkhideid(   t   selfR   (    (    s+   /usr/lib/python2.5/idlelib/CallTipWindow.pyt   __init__   s
    		c         C   s1  t  |  i i d ƒ i d ƒ d ƒ } | |  i j o d Sn | |  _ |  i i d ƒ | |  i j o& |  i i d |  i |  i f ƒ } n |  i i d | ƒ } | p0 t	 |  i i d ƒ ƒ } d | d <d | d <n | d |  i i
 ƒ  d } | d | d	 |  i i ƒ  } |  i i d
 | | f ƒ d S(   s;   Check if needs to reposition the window, and if so - do it.t   insertt   .i    Ns   %d.%ds   %d.0i   i   i   s   +%d+%d(   t   intR   t   indext   splitR	   t   seeR   t   bboxR   t   listt   winfo_rootxt   winfo_rootyR   t   wm_geometry(   R   t   curlinet   boxt   xt   y(    (    s+   /usr/lib/python2.5/idlelib/CallTipWindow.pyt   position_window   s     %	
c   	      C   s)  t  | ƒ d j oe | i ƒ  } xC t | ƒ D]5 \ } } t  | ƒ d j o | d  d | | <q, q, Wd i | ƒ } n | |  _ |  i p |  i o d Sn |  i i t | ƒ t	 t
 |  i i | ƒ i d ƒ ƒ \ |  _ |  _ t |  i ƒ |  _ } |  i ƒ  | i d ƒ y# | i i d d	 | i d
 d ƒ Wn t j
 o n Xt | d |  i d t d d d t d d d |  i d ƒ|  _ |  i i ƒ  |  i i t |  i ƒ |  _ x! t D] } |  i i  t | ƒ q³W|  i i! t" |  i ƒ |  i i t# |  i$ ƒ |  _% x! t& D] } |  i i  t# | ƒ qWd S(   sM   Show the calltip, bind events which will close it and reposition it.
        iO   iK   s    ...s   
NR   i   s!   ::tk::unsupported::MacWindowStylet   stylet   helpt   noActivatest   textt   justifyt
   backgrounds   #ffffe0t   relieft   borderwidtht   font('   t   lent
   splitlinest	   enumeratet   joinR!   R   R   t   mark_sett
   MARK_RIGHTt   mapR   R   R   R   R   t   ToplevelR   t   wm_overrideredirectt   tkt   callt   _wt   TclErrort   Labelt   LEFTt   SOLIDR   t   packt   bindt   CHECKHIDE_VIRTUAL_EVENT_NAMEt   checkhide_eventR   t   CHECKHIDE_SEQUENCESt	   event_addt   aftert   CHECKHIDE_TIMEt   HIDE_VIRTUAL_EVENT_NAMEt
   hide_eventR
   t   HIDE_SEQUENCES(	   R   R!   t	   parenleftt
   parenrightt	   textlinest   it   linet   twt   seq(    (    s+   /usr/lib/python2.5/idlelib/CallTipWindow.pyt   showtip/   sH     	-
  c         C   s·   |  i  p d  Sn t t |  i i d ƒ i d ƒ ƒ \ } } | |  i j  p9 | |  i j o | |  i j p |  i i d d t	 ƒ o |  i
 ƒ  n! |  i ƒ  |  i i t |  i ƒ d  S(   NR   R   t   >(   R   R-   R   R   R   R   R   R   t   compareR,   t   hidetipR   R=   R>   R:   (   R   t   eventR   t   curcol(    (    s+   /usr/lib/python2.5/idlelib/CallTipWindow.pyR:   \   s    
* 
c         C   s    |  i  p d  Sn |  i ƒ  d  S(   N(   R   RL   (   R   RM   (    (    s+   /usr/lib/python2.5/idlelib/CallTipWindow.pyR@   k   s    
c         C   sï   |  i  p d  Sn x! t D] } |  i i t | ƒ q W|  i i t |  i ƒ d  |  _ x! t D] } |  i i t	 | ƒ q\ W|  i i t	 |  i
 ƒ d  |  _
 |  i i ƒ  d  |  _ |  i  i ƒ  d  |  _  |  i i t ƒ d  |  _ |  _ |  _ d  S(   N(   R   R;   R   t   event_deleteR9   t   unbindR   R   RA   R?   R
   R   t   destroyt
   mark_unsetR,   R   R   R	   (   R   RH   (    (    s+   /usr/lib/python2.5/idlelib/CallTipWindow.pyRL   q   s$    
 	 			c         C   s   t  |  i ƒ S(   N(   t   boolR   (   R   (    (    s+   /usr/lib/python2.5/idlelib/CallTipWindow.pyt	   is_active†   s    N(
   t   __name__t
   __module__R   R   RI   R   R:   R@   RL   RT   (    (    (    s+   /usr/lib/python2.5/idlelib/CallTipWindow.pyR      s   			-		t	   containerc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s¿   t  ƒ  } t | ƒ } |  _ | i d t d t d d ƒ | i d d ƒ | i ƒ  t | ƒ |  _	 | i
 d d ƒ | i
 d	 d
 ƒ | i d |  i ƒ | i d	 |  i ƒ | i ƒ  | i ƒ  d  S(   Nt   sidet   fillt   expandi   R   s   string.splits   <<calltip-show>>t   (s   <<calltip-hide>>t   )(   t   Tkt   TextR!   R7   R5   t   BOTHR   t   updateR   t   calltipR<   R8   t   calltip_showt   calltip_hidet	   focus_sett   mainloop(   R   t   rootR!   (    (    s+   /usr/lib/python2.5/idlelib/CallTipWindow.pyR      s    	

c         C   s   |  i  i d ƒ d  S(   Ns   Hello world(   Ra   RI   (   R   RM   (    (    s+   /usr/lib/python2.5/idlelib/CallTipWindow.pyRb       s    c         C   s   |  i  i ƒ  d  S(   N(   Ra   RL   (   R   RM   (    (    s+   /usr/lib/python2.5/idlelib/CallTipWindow.pyRc   £   s    (   RU   RV   R   Rb   Rc   (    (    (    s+   /usr/lib/python2.5/idlelib/CallTipWindow.pyRW      s   		c          C   s   t  ƒ  }  d  S(   N(   RW   (   t   c(    (    s+   /usr/lib/python2.5/idlelib/CallTipWindow.pyt   main¦   s    t   __main__N(   s   <Key-Escape>s
   <FocusOut>(   s   <KeyRelease>s   <ButtonRelease>(    (    (   t   __doc__t   TkinterR?   RA   R9   R;   R>   R,   R   RW   Rh   RU   (    (    (    s+   /usr/lib/python2.5/idlelib/CallTipWindow.pys   <module>   s   
~	