B YI~d��@s�ddlmZmZmZmZddlmZdZdZdZ dZ dZ dZ Gd d �d e�Z d d �Zed kr�ddlmZedddd�ddlmZee�dS)�)�Label�LEFT�SOLID�TclError)� TooltipBasez<>)z z z<>)z z�dZcalltipwindowregion_rightcsreZdZ�fdd�Zdd�Z�fdd�Z�fdd�Zd d �Zdd d �Zdd�Z �fdd�Z dd�Z dd�Z �Z S)� CalltipWindowcsDtt|��|�d|_|_d|_|_|_d|_|_ d|_ dS)N) �superr�__init__�label�text� parenline�parencol�lastline�hideid� checkhideid�checkhide_after_id)�selfZ text_widget)� __class__��6/opt/alt/python37/lib64/python3.7/idlelib/calltip_w.pyr s   zCalltipWindow.__init__cCs�t|j�d��d�d�}||jkr2|j|jf}n|df}|j�d|�}|snt|j�d��}d|d<d|d<|dd|d|dfS)N�insert�.rz%d.%d���)�int� anchor_widget�index�splitr rZbbox�list)r�curlineZ anchor_indexZboxrrr� get_position#s zCalltipWindow.get_positioncsLt|j�d��d�d�}||jkr(dS||_|j�d�tt|���dS)Nrrr) rrrrrZseer r�position_window)rr!)rrrr#2s   zCalltipWindow.position_windowcs^||_|js|jsdS|j�t|�tt|j�|��d��\|_ |_ t t |�� �|��dS)Nr)r � tipwindowrZmark_set� MARK_RIGHT�maprrrr rr r�showtip� _bind_events)rr Z parenleftZ parenright)rrrr';s  zCalltipWindow.showtipc Cs2t|j|jtddtd|jdd�|_|j��dS)Nz#ffffd0Zblackr�font)r ZjustifyZ backgroundZ foregroundZreliefZ borderwidthr))rr$r rrrr �pack)rrrr� showcontentsPs  zCalltipWindow.showcontentsNcCs�|js dStt|j�d��d��\}}||jksT||jkrD||jksT|j�ddt �r`|� �dS|� �|j dk r�|j� |j �|j�t|j�|_ dS)Nrr�>�break)r$r&rrrrr rZcomparer%�hidetipr#rZ after_cancel�after�CHECKHIDE_TIME�checkhide_event)r�eventr!Zcurcolrrrr1Xs  zCalltipWindow.checkhide_eventcCs|js dS|��dS)Nr-)r$r.)rr2rrr� hide_eventsszCalltipWindow.hide_eventc s�|js dSy|j��Wntk r,YnXd|_d|_|_|_y|j�t �Wntk rjYnXy |� �Wntt fk r�YnXt t |���dS)N)r$r Zdestroyrr rrrZ mark_unsetr%�_unbind_events� ValueErrorr rr.)r)rrrr.{s" zCalltipWindow.hidetipcCsp|j�t|j�|_xtD]}|j�t|�qW|j�t|j�|j�t |j �|_ xt D]}|j�t |�qVWdS)N) r�bind�CHECKHIDE_EVENTr1r�CHECKHIDE_SEQUENCES� event_addr/r0� HIDE_EVENTr3r�HIDE_SEQUENCES)r�seqrrrr(�s    zCalltipWindow._bind_eventscCshxtD]}|j�t|�qW|j�t|j�d|_xtD]}|j�t|�q8W|j�t|j�d|_dS)N) r8rZ event_deleter7Zunbindrr;r:r)rr<rrrr4�s  zCalltipWindow._unbind_events)N)�__name__� __module__� __qualname__r r"r#r'r+r1r3r.r(r4� __classcell__rr)rrrs     rc s�ddlm}m}m}m}||�}|�d�tt|��� d�dd��\}}|�d|d|df�||�}|j ||dd �|� d d �|� �t |���fd d �} �fdd�} |�dd�|�dd�|�d| �|�d| �|��dS)Nr)�Toplevel�Textr�BOTHzTest call-tips�+rz 250x100+%d+%d��)Zside�fill�expandrz string.splitcs��ddd�dS)Nz(s='Hello world')r�end)r')r2)�calltiprr� calltip_show�sz%_calltip_window..calltip_showcs ���dS)N)r.)r2)rJrr� calltip_hide�sz%_calltip_window..calltip_hidez<>�(z<>�))�tkinterrArBrrC�titler&rZgeometryrr*r�updaterr9r6Z focus_set) �parentrArBrrC�top�x�yr rKrLr)rJr�_calltip_window�s"         rV�__main__)�mainz idlelib.idle_test.test_calltip_wrF)� verbosity�exit)�runN)rOrrrrZidlelib.tooltiprr:r;r7r8r0r%rrVr=ZunittestrXZidlelib.idle_test.htestr[rrrr�s