HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/idlelib/__pycache__/tooltip.cpython-310.opt-1.pyc
o

�i��@s�dZddlTGdd�d�ZGdd�de�ZGdd�de�Zd	d
�Zedkr>ddlmZed
ddd�ddl	m
Z
e
e�dSdS)z�Tools for displaying tool-tips.

This includes:
 * an abstract base-class for different kinds of tooltips
 * a simple text-only Tooltip class
�)�*c@sHeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dS)�TooltipBasez abstract base class for tooltipscCs||_d|_dS)z�Create a tooltip.

        anchor_widget: the widget next to which the tooltip will be shown

        Note that a widget will only be shown when showtip() is called.
        N)�
anchor_widget�	tipwindow)�selfr�r�,/usr/local/lib/python3.10/idlelib/tooltip.py�__init__
s
zTooltipBase.__init__cCs|��dS�N��hidetip�rrrr�__del__szTooltipBase.__del__cCsz|jrdSt|j�|_}|�d�z
|j�dd|jdd�Wn	ty(Ynw|��|�	�|j�
�|j��dS)zdisplay the tooltipN�z!::tk::unsupported::MacWindowStyle�style�helpZnoActivates)r�ToplevelrZwm_overrideredirectZtk�callZ_w�TclError�position_window�showcontentsZupdate_idletasksZlift�rZtwrrr�showtips
��
zTooltipBase.showtipcCs@|��\}}|j��|}|j��|}|j�d||f�dS)z&(re)-set the tooltip's screen position�+%d+%dN)�get_positionrZwinfo_rootxZwinfo_rootyrZwm_geometry)r�x�yZroot_xZroot_yrrrr/szTooltipBase.position_windowcCsd|j��dfS)z(choose a screen position for the tooltip�r)rZwinfo_heightr
rrrr6s	zTooltipBase.get_positioncCst�)z$content display hook for sub-classes)�NotImplementedErrorr
rrrrAszTooltipBase.showcontentscCs8|j}d|_|rz|��WdStyYdSwdS�zhide the tooltipN)rZdestroyrrrrrrFs��zTooltipBase.hidetipN)�__name__�
__module__�__qualname__�__doc__r	rrrrrrrrrrr
s
rcs^eZdZdZd�fdd�	Z�fdd�Zddd	�Zdd
d�Zdd
�Zdd�Z	�fdd�Z
�ZS)�OnHoverTooltipBasez?abstract base class for tooltips, with delayed on-hover display��csVtt|��|�||_d|_|j�d|j�|_|j�d|j	�|_
|j�d|j	�|_dS)aqCreate a tooltip with a mouse hover delay.

        anchor_widget: the widget next to which the tooltip will be shown
        hover_delay: time to delay before showing the tooltip, in milliseconds

        Note that a widget will only be shown when showtip() is called,
        e.g. after hovering over the anchor widget with the mouse for enough
        time.
        N�<Enter>�<Leave>�<Button>)�superr$r	�hover_delay�	_after_idr�bind�_show_event�_id1�_hide_event�_id2�_id3)rrr*��	__class__rrr	Us
zOnHoverTooltipBase.__init__csZz|j�d|j�|j�d|j�|j�d|j�Wn	ty#Ynwtt|���dS)Nr&r'r()	rZunbindr.r0r1rr)r$rr
r2rrrgs�zOnHoverTooltipBase.__del__NcCs|jr	|��dS|��dS)z$event handler to display the tooltipN)r*�scheduler�r�eventrrrr-pszOnHoverTooltipBase._show_eventcCs|��dS)z!event handler to hide the tooltipNrr5rrrr/wszOnHoverTooltipBase._hide_eventcCs |��|j�|j|j�|_dS)z*schedule the future display of the tooltipN)�
unschedulerZafterr*rr+r
rrrr4{s

�zOnHoverTooltipBase.schedulecCs$|j}d|_|r|j�|�dSdS)z(cancel the future display of the tooltipN)r+rZafter_cancel)rZafter_idrrrr7�s
�zOnHoverTooltipBase.unschedulecs2z|��Wn	tyYnwtt|���dSr)r7rr)r$rr
r2rrr�s�zOnHoverTooltipBase.hidetip�r%r
)r r!r"r#r	rr-r/r4r7r�
__classcell__rrr2rr$Rs
	
r$cs*eZdZdZd�fdd�	Zdd�Z�ZS)�HovertipzAA tooltip that pops up when a mouse hovers over an anchor widget.r%cstt|�j||d�||_dS)avCreate a text tooltip with a mouse hover delay.

        anchor_widget: the widget next to which the tooltip will be shown
        hover_delay: time to delay before showing the tooltip, in milliseconds

        Note that a widget will only be shown when showtip() is called,
        e.g. after hovering over the anchor widget with the mouse for enough
        time.
        �r*N)r)r:r	�text)rrr<r*r2rrr	�s

zHovertip.__init__cCs$t|j|jtdtdd�}|��dS)Nz#ffffe0r)r<ZjustifyZ
backgroundZreliefZborderwidth)�Labelrr<ZLEFTZSOLID�pack)r�labelrrrr�s�zHovertip.showcontentsr8)r r!r"r#r	rr9rrr2rr:�s
r:cCs�t|�}|�d�tt|���d�dd��\}}|�d||df�t|dd�}|��t|dd�}|��t	|d	d
d�t|dd�}|��t	|d
dd�dS)NzTest tooltip�+rr�zPlace your mouse over buttons)r<z"Button 1 -- 1/2 second hover delayz!This is tooltip text for button1.i�r;zButton 2 -- no hover delayz!This is tooltip
text for button2.)
r�title�map�intZgeometry�splitr=r>ZButtonr:)�parent�toprrr?Zbutton1Zbutton2rrr�_tooltip�s
 rH�__main__)�mainzidlelib.idle_test.test_tooltip�F)�	verbosity�exit)�runN)r#�tkinterrr$r:rHr ZunittestrJZidlelib.idle_test.htestrNrrrr�<module>sH?�