£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>

Yf                 @   s   d  Z  d d l m Z m Z m Z m Z m Z d Z d Z d Z	 d Z
 d	 Z d
 Z Gd d   d  Z d d   Z e d k r d d l m Z e e  d S)zA CallTip window class for Tkinter/IDLE.

After ToolTip.py, which uses ideas gleaned from PySol
Used by the CallTips IDLE extension.
    )ToplevelLabelLEFTSOLIDTclErrorz<<calltipwindow-hide>><Key-Escape>
<FocusOut>z<<calltipwindow-checkhide>><KeyRelease><ButtonRelease>d   Zcalltipwindowregion_rightc               @   sg   e  Z d  Z d d   Z d d   Z d d   Z d d d	  Z d
 d   Z d d   Z d d   Z	 d S)CallTipc             C   sO   | |  _  d  |  _ |  _ d  |  _ |  _ d  |  _ d  |  _ |  _ d  |  _ d  S)N)	widget	tipwindowlabel	parenlineparencollastlinehideidcheckhideidcheckhide_after_id)selfr    r   :/opt/alt/python35/lib64/python3.5/idlelib/CallTipWindow.py__init__   s    		zCallTip.__init__c             C   s%  t  |  j j d  j d  d  } | |  j k r8 d S| |  _ |  j j d  | |  j k r |  j j d |  j |  j f  } n |  j j d |  } | s t	 |  j j d   } d | d <d | d <| d |  j j
   d } | d | d	 |  j j   } |  j j d
 | | f  d S)z;Check if needs to reposition the window, and if so - do it.insert.r   Nz%d.%dz%d.0         z+%d+%d)intr   indexsplitr   Zseer   Zbboxr   listwinfo_rootxwinfo_rootyr   Zwm_geometry)r   curlineZboxxyr   r   r   position_window   s     %	

zCallTip.position_windowc             C   s  | |  _  |  j s |  j  r  d S|  j j t |  t t |  j j |  j d   \ |  _	 |  _
 t |  j  |  _ } |  j   | j d  y# | j j d d | j d d  Wn t k
 r Yn Xt | d |  j  d	 t d
 d d t d d d |  j d |  _ |  j j   | j   |  j j t |  j  |  _ x! t D] } |  j j t |  q>W|  j j t |  j  |  j j t  |  j!  |  _" x! t# D] } |  j j t  |  qWd S)zMShow the calltip, bind events which will close it and reposition it.
        Nr   r   z!::tk::unsupported::MacWindowStyleZstylehelpZnoActivatestextZjustifyZ
backgroundz#ffffe0ZreliefZborderwidthZfont)$r*   r   r   Zmark_set
MARK_RIGHTmapr   r    r!   r   r   r   r(   Zwm_overrideredirectZtkZcallZ_wr   r   r   r   r   packZliftbindCHECKHIDE_VIRTUAL_EVENT_NAMEcheckhide_eventr   CHECKHIDE_SEQUENCES	event_addafterCHECKHIDE_TIMEHIDE_VIRTUAL_EVENT_NAME
hide_eventr   HIDE_SEQUENCES)r   r*   Z	parenleftZ
parenrightZtwseqr   r   r   showtip/   s8    	-

zCallTip.showtipNc             C   s   |  j  s d  St t |  j j d  j d   \ } } | |  j k  s| | |  j k rd | |  j k s| |  j j d d t	  r |  j
   nG |  j   |  j d  k	 r |  j j |  j  |  j j t |  j  |  _ d  S)Nr   r   >)r   r,   r   r   r    r!   r   r   Zcomparer+   hidetipr(   r   Zafter_cancelr3   r4   r0   )r   eventr%   Zcurcolr   r   r   r0   W   s    	*
zCallTip.checkhide_eventc             C   s   |  j  s d  S|  j   d  S)N)r   r;   )r   r<   r   r   r   r6   i   s    	zCallTip.hide_eventc             C   s   |  j  s d  Sx! t D] } |  j j t |  q W|  j j t |  j  d  |  _ x! t D] } |  j j t |  qW W|  j j t |  j	  d  |  _	 |  j
 j   d  |  _
 |  j  j   d  |  _  |  j j t  d  |  _ |  _ |  _ d  S)N)r   r1   r   Zevent_deleter/   Zunbindr   r7   r5   r   r   ZdestroyZ
mark_unsetr+   r   r   r   )r   r8   r   r   r   r;   o   s     					zCallTip.hidetipc             C   s   t  |  j  S)N)boolr   )r   r   r   r   	is_active   s    zCallTip.is_active)
__name__
__module____qualname__r   r(   r9   r0   r6   r;   r>   r   r   r   r   r      s   (r   c       	         s&  d d l  m } m } m } m } | |   } | j d  | j d |  j   d |  j   d f  | |  } | j	 d | d | d	 d
  | j
 d d  | j   t |      f d d   }   f d d   } | j d d  | j d d  | j d |  | j d |  | j   d  S)Nr   )r   Textr   BOTHzTest calltipsz200x100+%d+%d      ZsideZfillexpandr   r   zstring.splitc                s     j  d d d  d  S)Nz(s=Hello world)r   end)r9   )r<   )calltipr   r   calltip_show   s    z%_calltip_window.<locals>.calltip_showc                s     j    d  S)N)r;   )r<   )rH   r   r   calltip_hide   s    z%_calltip_window.<locals>.calltip_hidez<<calltip-show>>(z<<calltip-hide>>))tkinterr   rB   r   rC   titleZgeometryr#   r$   r-   r   updater   r2   r.   Z	focus_set)	parentr   rB   r   rC   topr*   rI   rJ   r   )rH   r   _calltip_window   s"    "
rR   __main__)runN)r   r   )r	   r
   )__doc__rM   r   r   r   r   r   r5   r7   r/   r1   r4   r+   r   rR   r?   Zidlelib.idle_test.htestrT   r   r   r   r   <module>   s   (x