
    .hh                         S SK JrJrJrJr  S SKJr  SrSrSr	Sr
SrSr " S	 S
\5      rS r\S:X  a  S SKJr  \" SSSS9  S SKJr  \" \5        gg)    )LabelLEFTSOLIDTclError)TooltipBasez<<calltipwindow-hide>>)z<Key-Escape>z
<FocusOut>z<<calltipwindow-checkhide>>)z<KeyRelease>z<ButtonRelease>d   calltipwindowregion_rightc                   t   ^  \ rS rSrU 4S jrS rU 4S jrU 4S jrS rSS jr	S r
U 4S	 jrS
 rS rSrU =r$ )CalltipWindow   c                    > [         TU ]  U5        S =U l        U l        S =U l        =U l        U l        S =U l        U l        S U l	        g N)
super__init__labeltext	parenlineparencollastlinehideidcheckhideidcheckhide_after_id)selftext_widget	__class__s     :/opt/python-3.13.8/usr/lib/python3.13/idlelib/calltip_w.pyr   CalltipWindow.__init__   sL     	%!%%
TY9===)--d&"&    c                    [        U R                  R                  S5      R                  S5      S   5      nXR                  :X  a  U R                  U R
                  4nOUS4nU R                  R                  SU-  5      nU(       d.  [        U R                  R                  S5      5      nSUS'   SUS'   US   S-   US   US   -   4$ )Ninsert.r   z%d.%d         )intanchor_widgetindexsplitr   r   bboxlist)r   curlineanchor_indexboxs       r   get_positionCalltipWindow.get_position#   s    d((..x8>>sCAFGnn$ NNDMM:L#Q<L  %%g&<=t))..x89CCFCF1vz3q6CF?**r   c                    > [        U R                  R                  S5      R                  S5      S   5      nXR                  :X  a  g Xl        U R                  R                  S5        [        TU ]  5         g )Nr    r!   r   )r%   r&   r'   r(   r   seer   position_window)r   r+   r   s     r   r2   CalltipWindow.position_window2   s_    d((..x8>>sCAFGmm#x(!r   c                 ^  > Xl         U R                  (       d  U R                   (       d  g U R                  R                  [        U5        [        [        U R                  R                  U5      R                  S5      5      u  U l	        U l
        [        TU ]1  5         U R                  5         g )Nr!   )r   	tipwindowr&   mark_set
MARK_RIGHTmapr%   r'   r(   r   r   r   showtip_bind_events)r   r   	parenleft
parenrightr   s       r   r9   CalltipWindow.showtip;   s}     	>>##J
;(+##)))4::3?)A% 	r   c                     [        U R                  U R                  [        SS[        SU R
                  S   S9U l        U R                  R                  5         g )Nz#ffffd0blackr#   font)r   justify
background
foregroundreliefborderwidthr@   )r   r5   r   r   r   r&   r   pack)r   s    r   showcontentsCalltipWindow.showcontentsP   sD    4>>		4&/G"'Q $ 2 26 :<
 	

r   c                 F   U R                   (       d  g [        [        U R                  R	                  S5      R                  S5      5      u  p#X R                  :  dD  X R                  :X  a  X0R                  ::  d&  U R                  R                  SS[        5      (       a  U R                  5         gU R                  5         U R                  b%  U R                  R                  U R                  5        U R                  R                  [        U R                   5      U l        g )Nr    r!   >break)r5   r8   r%   r&   r'   r(   r   r   comparer7   hidetipr2   r   after_cancelafterCHECKHIDE_TIMEcheckhide_event)r   eventr+   curcols       r   rQ   CalltipWindow.checkhide_eventX   s    ~~  c4#5#5#;#;H#E#K#KC#PQ^^#~~%&MM*A%%hZ@@LLN 	"".++D,C,CD$$^T5I5IJ 	r   c                 H    U R                   (       d  g U R                  5         g)NrK   )r5   rM   )r   rR   s     r   
hide_eventCalltipWindow.hide_events   s    ~~r   c                   > U R                   (       d  g  U R                  R                  5         S U l        S =U l        =U l        U l         U R                  R                  [        5         U R                  5         [        TU ]5  5         g ! [         a     Nhf = f! [         a     N<f = f! [        [        4 a     NAf = fr   )r5   r   destroyr   r   r   r   r&   
mark_unsetr7   _unbind_events
ValueErrorr   rM   )r   r   s    r   rM   CalltipWindow.hidetip{   s    ~~	JJ  
9===	))*5	!
 	!  		  		
 *% 		s5   B B ,B+ 
BB
B('B(+B>=B>c                    U R                   R                  [        U R                  5      U l        [
         H#  nU R                   R                  [        U5        M%     U R                   R                  [        U R                  5        U R                   R                  [        U R                  5      U l        [         H#  nU R                   R                  [        U5        M%     g r   )r&   bindCHECKHIDE_EVENTrQ   r   CHECKHIDE_SEQUENCES	event_addrO   rP   
HIDE_EVENTrV   r   HIDE_SEQUENCESr   seqs     r   r:   CalltipWindow._bind_events   s    --22?373G3GI&C((#> '  1E1EF((--j.2oo?!C((S9 "r   c                 |   [          H#  nU R                  R                  [        U5        M%     U R                  R	                  [        U R
                  5        S U l        [         H#  nU R                  R                  [        U5        M%     U R                  R	                  [        U R                  5        S U l        g r   )	ra   r&   event_deleter`   unbindr   rd   rc   r   re   s     r   r[   CalltipWindow._unbind_events   s    &C++OSA '!!/43C3CD!C++J< "!!*dkk:r   )r   r   r   r   r   r   r   r   r   )__name__
__module____qualname____firstlineno__r   r.   r2   r9   rG   rQ   rV   rM   r:   r[   __static_attributes____classcell__)r   s   @r   r   r      s:    '+"*62
:	 	r   r   c                 >  ^ SSK JnJnJnJn  U" U 5      nUR                  S5        [        [        U R                  5       R                  S5      SS  5      u  pgUR                  SUS-   US-   4-  5        U" U5      nUR                  X4SS	9  UR                  S
S5        UR                  5         [        U5      mU4S jn	U4S jn
UR                  SS5        UR                  SS5        UR                  SU	5        UR                  SU
5        UR!                  5         g )Nr   )ToplevelTextr   BOTHzTest call-tips+r#   z250x100+%d+%d      )sidefillexpandr    zstring.splitc                 ,   > TR                  SSS5        g )Nz(s='Hello world')r    end)r9   rR   calltips    r   calltip_show%_calltip_window.<locals>.calltip_show   s    +Xu=r   c                 &   > TR                  5         g r   )rM   r~   s    r   calltip_hide%_calltip_window.<locals>.calltip_hide   s    r   z<<calltip-show>>(z<<calltip-hide>>))tkinterrs   rt   r   ru   titler8   r%   geometryr(   rF   r    updater   rb   r_   	focus_set)parentrs   rt   r   ru   topxyr   r   r   r   s              @r   _calltip_windowr      s    22
6
CIIsFOO%++C045DALLAGQW#5569DII41I-KK.)JJLD!G>NN%s+NN%s+II ,/II ,/NNr   __main__)mainz idlelib.idle_test.test_calltip_wr"   F)	verbosityexit)runN)r   r   r   r   r   idlelib.tooltipr   rc   rd   r`   ra   rP   r7   r   r   rl   unittestr   idlelib.idle_test.htestr    r   r   <module>r      sm    1 0 '%
//9 (
VK Vr2 z	+quE+ r   