Your IP : 216.73.216.196


Current Path : /opt/alt/python310/lib64/python3.10/idlelib/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/idlelib/__pycache__/tooltip.cpython-310.pyc

o

0�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�6/opt/alt/python310/lib64/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::MacWindowStyleZstyle�helpZnoActivates)r�ToplevelrZwm_overrideredirectZtkZcallZ_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_idrZbind�_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+r-r.rr'r"rr
r/rrrgs�zOnHoverTooltipBase.__del__NcCs|jr	|��dS|��dS)z$event handler to display the tooltipN)r(�scheduler�rZeventrrrr*pszOnHoverTooltipBase._show_eventcCs|��dS)z!event handler to hide the tooltipNrr2rrrr,wszOnHoverTooltipBase._hide_eventcCs |��|j�|j|j�|_dS)z*schedule the future display of the tooltipN)�
unschedulerZafterr(rr)r
rrrr1{s

�zOnHoverTooltipBase.schedulecCs$|j}d|_|r|j�|�dSdS)z(cancel the future display of the tooltipN)r)rZafter_cancel)rZafter_idrrrr3�s
�zOnHoverTooltipBase.unschedulecs2z|��Wn	tyYnwtt|���dSr)r3rr'r"rr
r/rrr�s�zOnHoverTooltipBase.hidetip�r#r
)rrr r!r	rr*r,r1r3r�
__classcell__rrr/rr"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'r6r	�text)rrr8r(r/rrr	�s

zHovertip.__init__cCs$t|j|jtdtdd�}|��dS)Nz#ffffe0r)r8ZjustifyZ
backgroundZreliefZborderwidth)�Labelrr8ZLEFTZSOLID�pack)r�labelrrrr�s�zHovertip.showcontentsr4)rrr r!r	rr5rrr/rr6�s
r6cCs�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)r8z"Button 1 -- 1/2 second hover delayz!This is tooltip text for button1.i�r7zButton 2 -- no hover delayz!This is tooltip
text for button2.)
r�title�map�intZgeometry�splitr9r:ZButtonr6)�parent�toprrr;Zbutton1Zbutton2rrr�_tooltip�s
 rD�__main__)�mainzidlelib.idle_test.test_tooltip�F)�	verbosity�exit)�runN)r!Ztkinterrr"r6rDrZunittestrFZidlelib.idle_test.htestrJrrrr�<module>sH?�