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__/sidebar.cpython-310.opt-2.pyc

o

0�i�O�@s	ddlZddlZddlZddlZddlmZddlmZddl	m
Z
ddlmZdd�Z
dd	�Zd
d�Zdd
�Zejdd��ZGdd�d�ZGdd�de
�ZGdd�de�ZGdd�de
�ZGdd�de�Zdd�Zedkr�ddlmZeddd d!�dd"lmZee�dSdS)#�N)�Font)�idleConf)�	Delegator)�macosxcCs 	|�|�}|rtt|��SdS�N)�index�int�float)�textrZ
text_index�r�6/opt/alt/python310/lib64/python3.10/idlelib/sidebar.py�
get_linenos
r
cCs	t|d�S)Nzend-1c)r
�r
rrr�get_end_linenumbers
rcCs,	|�|�d�|�d�d�}|r|dSdS)Nz
 linestartz lineendZdisplaylinesr)�count)r
r�resrrr�get_displayliness�rcCs�	|��}|dkr|��}n|dkr|��}ntd|����tt|jj|d|�d�|�d�g��}tt|jj|d|�d�|�d�g��}||fS)N�pack�gridzUnsupported geometry manager: �padxZborder�pady)	Z
winfo_managerZ	pack_infoZ	grid_info�
ValueError�sum�map�tkZgetintZcget)ZwidgetZmanager�inforrrrr�get_widget_padding!s$


�
�rc	cs<�|jtjd�z
dVW|jtjd�dS|jtjd�w)N��state)�	configurerZNORMAL�DISABLEDrrrr�temp_enable_text_widget;s
�"r!c@sveZdZ	dd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�BaseSideBarcCsB||_|j|_|j|_d|_|��|_|��|��|�	�dS�NF)
�editwin�
text_frame�parentr
�is_shown�init_widgets�main_widget�bind_events�update_font�
update_colors)�selfr$rrr�__init__Fs
zBaseSideBar.__init__cC�	t�r��NotImplementedError�r-rrrr(T�zBaseSideBar.init_widgetscCr/rr0r2rrrr+Xr3zBaseSideBar.update_fontcCr/rr0r2rrrr,\r3zBaseSideBar.update_colorscCr/rr0r2rrrr`r3zBaseSideBar.gridcCs|js|��d|_dSdS)NT)r'rr2rrr�show_sidebards
�zBaseSideBar.show_sidebarcCs|jr
|j��d|_dSdSr#)r'r)Zgrid_forgetr2rrr�hide_sidebaris

�zBaseSideBar.hide_sidebarcOr/rr0�r-�args�kwargsrrr�
yscroll_eventnr3zBaseSideBar.yscroll_eventcOs 	|jjj|�|j|i|��Sr)r$�vbar�setr9r6rrr�redirect_yscroll_eventrsz"BaseSideBar.redirect_yscroll_eventcCs	|j��dS�N�break)r
�	focus_set�r-�eventrrr�redirect_focusin_eventzs
z"BaseSideBar.redirect_focusin_eventcCs$	|j��|jj|d|jd�dS)Nr��x�yr>)r
r?�event_generaterE)r-rA�
event_namerrr�redirect_mousebutton_events
z&BaseSideBar.redirect_mousebutton_eventcCs	|jjdd|j|jd�dS)N�<MouseWheel>r)rDrE�deltar>)r
rFrErJr@rrr�redirect_mousewheel_event�s

�z%BaseSideBar.redirect_mousewheel_eventc	sp�j�jd<�j�d�j��j�d�j��fdd�}dD]5}d|�d�d	|�d�d
|�d�fD]}|||d�q1d
|�d�d|�d�fD]}||d|�d�d�qFqd�d�d���fdd������fdd�}�j�d|����fdd�}�j�d|���fdd�}�j�d|������fdd������fdd�}�j�d|���fdd �}�j�d!|�dS)"NZyscrollcommandz	<FocusIn>rIcs"tj�j|d�}�j�||�dS)N)rG)�	functools�partialrHr)�bind)rG�target_event_nameZhandlerr2rr�bind_mouse_event�s�z1BaseSideBar.bind_events.<locals>.bind_mouse_event)����z<Button-�>z<ButtonRelease-z<Bz-Motion>)rOz<Double-Button-z<Triple-Button-cs|	t�jd|���}t�|g�\}}�j�ddd��j�d|�d�|d�d���j�d||kr4|n|d�d��dS)N�@0,�sel�1.0�endz.0��insert)r
r
�sortedZ
tag_removeZtag_addZmark_set)Zy_coord�lineno�a�b)r-�
start_linerr�%drag_update_selection_and_insert_mark�s �zFBaseSideBar.bind_events.<locals>.drag_update_selection_and_insert_markcs0tt�j�d|j������|j��|j�dS)NrV)rr	r
rrE�rA)ra�last_yr-r`rr�b1_mousedown_handler�sz5BaseSideBar.bind_events.<locals>.b1_mousedown_handlerz
<Button-1>cs d�d��jjdd|jd�dS)N�<ButtonRelease-1>rrC)r
rFrErb)rcr-r`rr�b1_mouseup_handler�sz3BaseSideBar.bind_events.<locals>.b1_mouseup_handlerrecs �durdS|j��|j�dSr�rErb)rarcrr�b1_drag_handler�sz0BaseSideBar.bind_events.<locals>.b1_drag_handlerz<B1-Motion>cs�	�}|dur�j���d�dS|dkr#�j�d|d��|�n|�j��kr<�j�d|�j��d��|��j�d���dS)Nr���ZpixelsrZ�2)r)�after_cancelr
Zyview_scrollZwinfo_height�afterrg)�auto_scrolling_after_idrarcr-�text_auto_scrollrrrn�s 
��z1BaseSideBar.bind_events.<locals>.text_auto_scrollcs$�dur|j��j�d���dSdS)Nr)rEr)rlrb)rmrcr-rnrr�b1_leave_handler�s
��z1BaseSideBar.bind_events.<locals>.b1_leave_handlerz
<B1-Leave>cs �dur�j���d�dSdSr)r)rkrb)rmr-rr�b1_enter_handlers�z1BaseSideBar.bind_events.<locals>.b1_enter_handlerz
<B1-Enter>)r<r
r)rNrBrK)	r-rPZbuttonrGrdrfrhrorpr)rmrarcr-r`rnrr*�s@


�

�
��		zBaseSideBar.bind_eventsN)�__name__�
__module__�__qualname__r.r(r+r,rr4r5r9r<rBrHrKr*rrrrr"Dsr"c@s*eZdZ	dd�Zddd�Zddd�ZdS)	�EndLineDelegatorcCst�|�||_dSr)rr.�changed_callback)r-rurrrr.s

zEndLineDelegator.__init__NcCs$|j�|||�|�t|j��dSr)�delegater[rur)r-r�chars�tagsrrrr[szEndLineDelegator.insertcCs"|j�||�|�t|j��dSr)rv�deleterur)r-�index1�index2rrrryszEndLineDelegator.deleter�rqrrrsr.r[ryrrrrrt
s

rtcsNeZdZ	�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	�Z
S)�LineNumberscs0t��|�t|j�}|jjj||jjd�dS)N�rl)�superr.rt�update_sidebar_textr$�per�insertfilterafterZundo)r-r$Zend_line_delegator��	__class__rrr.s



�zLineNumbers.__init__c	Cs�t|j�\}}tj|jdtjd|ddd�|_|jjtjd�d|_	t
|jd�|_t|j��|j�
ddd	�Wd�n1sAwY|jjd
d
d�|jjd	tjd�t|j�}|�|�|jS)
NrZrQr)�width�wraprr�borderwidth�highlightthicknessrr�r[�1�
linenumberF)�	takefocusZexportselection)Zjustify)rr
r�Textr&�NONE�sidebar_text�configr �prev_end�type�_sidebar_width_typer!r[Z
tag_configZRIGHTrr�)r-Z_padxrrYrrrr('s ��

zLineNumbers.init_widgetscCs|jjddtjd�dS)NrZr��row�column�sticky)r�rr�NSEWr2rrrr:szLineNumbers.gridcCst�|jdd�}||jd<dS)N�main�EditorWindow�font)r�GetFontr
r�)r-r�rrrr+=szLineNumbers.update_fontcCs<	t�t��d�}|d}|d}|jj|||||d�dS)Nr��
foreground�
background)ZfgZbgZselectforegroundZselectbackgroundZinactiveselectbackground)r�GetHighlight�CurrentThemer�r�)r-�colorsr�r�rrrr,As
�zLineNumbers.update_colorscCs�	||jkrdStt|��tt|j��}|r,tt|jd��}||}|�|�|jd<t|j��7||jkrUd�t	�
dgttt|jd|d����}|j�
d|d�n|j�|d�d�d�Wd�n1skwY||_dS)Nr��
�rZzend -1cr�z.0 -1c)r��len�strrr	r�r�r!�join�	itertools�chainr�ranger[ry)r-rYZwidth_differenceZ	cur_widthZ	new_widthZnew_textrrrr�Ls&

���

zLineNumbers.update_sidebar_textcOs|j�|d�dS)Nrr>)r�Zyview_movetor6rrrr9gszLineNumbers.yscroll_event)rqrrrsr.r(rr+r,r�r9�
__classcell__rrr�rr}s	r}c@s(eZdZdd�Zddd�Zddd�ZdS)	� WrappedLineHeightChangeDelegatorcCs	t�|�||_dSr)rr.�callback)r-r�rrrr.ms

z)WrappedLineHeightChangeDelegator.__init__NcCsLd|v}|rt||�}|j�|||�|r t||�}||kr dS|��dS)Nr�)rrvr[r�)r-rrwrx�is_single_line�before_displaylines�after_displaylinesrrrr[vs

z'WrappedLineHeightChangeDelegator.insertcCsf|dur|d}t||�t||�k}|rt||�}|j�||�|r-t||�}||kr-dS|��dS)Nz+1c)r
rrvryr�)r-rzr{r�r�r�rrrry�s

z'WrappedLineHeightChangeDelegator.deleterr|rrrrr�ls
	r�csjeZdZ	�fdd�Zdd�Z�fdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Z�Z
S)�ShellSidebarcszd|_i|_t��|�t|j�}|jjj}|j	|j
ur/|j	|jjjur/|j	}|j	|jjjus$|jjj||d�d|_
dS)Nr~T)�canvas�line_promptsrr.r��change_callbackr$r��toprvr
Zbottomr�r')r-r$Zchange_delegator�dr�rrr.�s�
�
zShellSidebar.__init__cCs.tj|jddddd�|_|��|��|jS)N�rF)r�r�r�r�)rZCanvasr&r��update_sidebarrr2rrrr(�s
�zShellSidebar.init_widgetscs*t���|j�t��rdnd|j�dS)Nz
<Button-2>z
<Button-3>)rr*r)rNrZisAquaTk�context_menu_eventr2r�rrr*�s

�zShellSidebar.bind_eventscsztj�jdd�}t�j�dd��}�fdd�}|jd|d�|r!d	nd
d�|jd|d
�|r/d	nd
d�|�|j|j	�dS)Nr)ZtearoffrWrXcs��fdd�S)Ncs�j���Sr)r
rFr)�	eventnamer-rr�<lambda>�sz@ShellSidebar.context_menu_event.<locals>.mkcmd.<locals>.<lambda>r�r�r2r�r�mkcmd�sz.ShellSidebar.context_menu_event.<locals>.mkcmdZCopyz<<copy>>ZnormalZdisabled)ZlabelZcommandrzCopy with promptsz<<copy-with-prompts>>r>)
rZMenur)�boolr
Z
tag_nextrangeZadd_commandZtk_popupZx_rootZy_root)r-rAZrmenuZ
has_selectionr�rr2rr��s
�
�zShellSidebar.context_menu_eventcCs|jjddtjddd�dS)NrZrrQ)r�r�r�rr)r�rrr�r2rrrr�szShellSidebar.gridcCs|jr	|��dSdSr)r'r�r2rrrr��s�zShellSidebar.change_callbackcCs�|j}|j}|j}i}|_|�tj�|�d�}|�dd�ddkr+|�|�d��}|�	|�}dur{|d}||�d��}d|vrEdnd	|vrKd
nd}	|	rh|j
d|tj|	|j|j
dd
�t||�}
|	||
<|�|�d��}|�	|�}dus4dSdS)Nz@0,0�.rZ�0z+1line linestartz linestart -1c�consolez>>>�stdinz...rQr)Zanchorr
r��fillz+1line)r
Z	tag_namesr�r�ryrZALLr�splitZ	dlineinfoZcreate_textZNWr�r�r
)r-r
Z
text_tagnamesr�r�rZlineinforEZprev_newline_tagnames�promptr]rrrr��s.

��
�zShellSidebar.update_sidebarcOs	|��dSr=)r�r6rrrr9�szShellSidebar.yscroll_eventcs^	t�|jdd�}t|j|d��t�fdd�dD��}|jj|ddd	�||_|��dS)
Nr�r�)r�c3s�|]}��|�VqdSr)Zmeasure)�.0�char�Ztk_fontrr�	<genexpr>�s�z+ShellSidebar.update_font.<locals>.<genexpr>)rUr�rRrS)r�)	rr�r
r�maxr�rr�r�)r-r�Z
char_widthrr�rr+�szShellSidebar.update_fontcCsV	t�t��d�}t�t��d�}|d}|d}||f|_|jj|d�|��dS)Nr�r�r�r�)r�)rr�r�r�r�rr�)r-Zlinenumbers_colorsZ
prompt_colorsr�r�rrrr,�s
zShellSidebar.update_colors)rqrrrsr.r(r*r�rr�r�r9r+r,r�rrr�rr��s		r�c	Cs�ddlm}t�|�}t�|�}|jtjtjdd�|jddd�|j	ddd�t
�|dd�}tj|d	d
tj
|d�}|jddtjd�||�}t�|�|_t|�}|��|�d
d�dd�tdd�D���dS)Nr)�
Dummy_editwinT)Zsider��expandrZ)Zweightr�r��P�)r�Zheightr�r�r�rXr�css�|]}d|VqdS)r^Nr)r��irrrr�s�z._linenumbers_drag_scrolling.<locals>.<genexpr>�e)Zidlelib.idle_test.test_sidebarr�rZToplevelZFramerZLEFTZBOTHZrowconfigureZcolumnconfigurerr�r�r�rr�Z	Scrollbarr:r}r4r[r�r�)r&r�Ztoplevelr%r�r
r$Zlinenumbersrrr�_linenumbers_drag_scrollings

&r��__main__)r�zidlelib.idle_test.test_sidebarrQF)�	verbosity�exit)�run)�
contextlibrLr�ZtkinterrZtkinter.fontrZidlelib.configrZidlelib.delegatorrZidlelibrr
rrr�contextmanagerr!r"rtr}r�r�r�rqZunittestr�Zidlelib.idle_test.htestr�rrrr�<module>s8
GP)p�