a  ze@sddlmZmZmZmZddlmZdZdZdZ dZ dZ dZ Gd d d eZ d d Zed krddlmZeddddddlmZeedS))LabelLEFTSOLIDTclError) TooltipBasez<>)z z z<>)z zdZcalltipwindowregion_rightcsreZdZfddZddZfddZfddZd d Zdd d ZddZ fddZ ddZ ddZ Z S) CalltipWindowcsDtt||d|_|_d|_|_|_d|_|_ d|_ dSN) superr__init__labeltext parenlineparencollastlinehideid checkhideidcheckhide_after_id)selfZ text_widget __class__E/opt/bitninja-python-dojo/embedded/lib/python3.9/idlelib/calltip_w.pyr s   zCalltipWindow.__init__cCst|jddd}||jkr2|j|jf}n|df}|jd|}|snt|jd}d|d<d|d<|dd|d|dfS)Ninsert.rz%d.%d)int anchor_widgetindexsplitrrZbboxlist)rcurlineZ anchor_indexZboxrrr get_position#s zCalltipWindow.get_positioncsLt|jddd}||jkr(dS||_|jdtt|dS)Nrrr) rrr r!rZseer rposition_window)rr#rrrr%2s   zCalltipWindow.position_windowcs^||_|js|jsdS|jt|tt|j|d\|_ |_ t t | |dS)Nr)r tipwindowrZmark_set MARK_RIGHTmaprr r!rrr rshowtip _bind_events)rr Z parenleftZ parenrightrrrr);s   zCalltipWindow.showtipc Cs2t|j|jtddtd|jdd|_|jdS)Nz#ffffd0Zblackrfont)r ZjustifyZ backgroundZ foregroundZreliefZ borderwidthr+)rr&r rrrr packrrrr showcontentsPs  zCalltipWindow.showcontentsNcCs|js dStt|jdd\}}||jksT||jkrD||jksT|jddt r`| dS| |j dur|j |j |jt|j|_ dS)Nrr>break)r&r(rrr r!rrZcomparer'hidetipr%rZ after_cancelafterCHECKHIDE_TIMEcheckhide_event)reventr#Zcurcolrrrr4Xs$  zCalltipWindow.checkhide_eventcCs|js dS|dS)Nr0)r&r1)rr5rrr hide_eventsszCalltipWindow.hide_eventc s|js dSz|jWnty*Yn0d|_d|_|_|_z|jt WntyfYn0z | Wntt fyYn0t t |dSr )r&r ZdestroyrrrrrZ mark_unsetr'_unbind_events ValueErrorr rr1r-rrrr1{s"   zCalltipWindow.hidetipcCsh|jt|j|_tD]}|jt|q|jt|j|jt |j |_ t D]}|jt |qPdSr ) rbindCHECKHIDE_EVENTr4rCHECKHIDE_SEQUENCES event_addr2r3 HIDE_EVENTr6rHIDE_SEQUENCESrseqrrrr*szCalltipWindow._bind_eventscCs`tD]}|jt|q|jt|jd|_tD]}|jt|q2|jt|jd|_dSr ) r;rZ event_deleter:Zunbindrr>r=rr?rrrr7szCalltipWindow._unbind_events)N)__name__ __module__ __qualname__r r$r%r)r.r4r6r1r*r7 __classcell__rrrrrs     rc sddlm}m}m}m}||}|dtt| ddd\}}|d|d|df||}|j ||dd | d d | t |fd d } fdd} |dd|dd|d| |d| |dS)Nr)ToplevelTextrBOTHzTest call-tips+rz 250x100+%d+%d)Zsidefillexpandrz string.splitcsddddS)Nz(s='Hello world')rend)r)r5Zcalltiprr calltip_showsz%_calltip_window..calltip_showcs dSr )r1rNrOrr calltip_hidesz%_calltip_window..calltip_hidez<>(z<>))tkinterrErFrrGtitler(rZgeometryr!r,rupdaterr<r9Z focus_set) parentrErFrrGtopxyr rPrQrrOr_calltip_windows"         r[__main__)mainz idlelib.idle_test.test_calltip_wrF) verbosityexit)runN)rTrrrrZidlelib.tooltiprr=r>r:r;r3r'rr[rAZunittestr]Zidlelib.idle_test.htestr`rrrrs