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

�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�,/usr/local/lib/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)Zwidget�manager�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_widgetscCr0rr1r3rrrr,Xr4zBaseSideBar.update_fontcCr0rr1r3rrrr-\r4zBaseSideBar.update_colorscCr0rr1r3rrrr`r4zBaseSideBar.gridcCs|js|��d|_dSdS)NT)r(rr3rrr�show_sidebards
�zBaseSideBar.show_sidebarcCs|jr
|j��d|_dSdSr$)r(r*Zgrid_forgetr3rrr�hide_sidebaris

�zBaseSideBar.hide_sidebarcOr0rr1�r.�args�kwargsrrr�
yscroll_eventnr4zBaseSideBar.yscroll_eventcOs 	|jjj|�|j|i|��Sr)r%�vbar�setr:r7rrr�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_generaterF)r.rB�
event_namerrr�redirect_mousebutton_events
z&BaseSideBar.redirect_mousebutton_eventcCs	|jjdd|j|jd�dS)N�<MouseWheel>r)rErF�deltar?)r
rGrFrKrArrr�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>rJcs"tj�j|d�}�j�||�dS)N)rH)�	functools�partialrIr*�bind)rH�target_event_name�handlerr3rr�bind_mouse_event�s�z1BaseSideBar.bind_events.<locals>.bind_mouse_event)����z<Button-�>z<ButtonRelease-z<Bz-Motion>)rPz<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)NrX)rr	r
rrF�rB)rc�last_yr.rbrr�b1_mousedown_handler�sz5BaseSideBar.bind_events.<locals>.b1_mousedown_handlerz
<Button-1>cs d�d��jjdd|jd�dS)N�<ButtonRelease-1>rrD)r
rGrFrd)rer.rbrr�b1_mouseup_handler�sz3BaseSideBar.bind_events.<locals>.b1_mouseup_handlerrgcs �durdS|j��|j�dSr�rFrd)rcrerr�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���Zpixelsr\�2)r*�after_cancelr
Zyview_scrollZwinfo_height�afterri)�auto_scrolling_after_idrcrer.�text_auto_scrollrrrp�s 
��z1BaseSideBar.bind_events.<locals>.text_auto_scrollcs$�dur|j��j�d���dSdS)Nr)rFr*rnrd)rorer.rprr�b1_leave_handler�s
��z1BaseSideBar.bind_events.<locals>.b1_leave_handlerz
<B1-Leave>cs �dur�j���d�dSdSr)r*rmrd)ror.rr�b1_enter_handlers�z1BaseSideBar.bind_events.<locals>.b1_enter_handlerz
<B1-Enter>)r=r
r*rOrCrL)	r.rRZbuttonrHrfrhrjrqrrr)rorcrer.rbrprr+�s@


�

�
��		zBaseSideBar.bind_eventsN)�__name__�
__module__�__qualname__r/r)r,r-rr5r6r:r=rCrIrLr+rrrrr#Dsr#c@s*eZdZ	dd�Zddd�Zddd�ZdS)	�EndLineDelegatorcCst�|�||_dSr)rr/�changed_callback)r.rwrrrr/s

zEndLineDelegator.__init__NcCs$|j�|||�|�t|j��dSr)�delegater]rwr)r.r�chars�tagsrrrr]szEndLineDelegator.insertcCs"|j�||�|�t|j��dSr)rx�deleterwr)r.�index1�index2rrrr{szEndLineDelegator.deleter�rsrtrur/r]r{rrrrrv
s

rvcsNeZdZ	�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	�Z
S)�LineNumberscs0t��|�t|j�}|jjj||jjd�dS)N�rn)�superr/rv�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)
Nr\rSr)�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_padxrr[rrrr)'s ��

zLineNumbers.init_widgetscCs|jjddtjd�dS)Nr\r��row�column�sticky)r�rr�NSEWr3rrr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)Zfg�bgZselectforegroundZselectbackgroundZinactiveselectbackground)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��
�r\zend -1cr�z.0 -1c)r��len�strrr	r�r�r"�join�	itertools�chainr�ranger]r{)r.r[Zwidth_differenceZ	cur_widthZ	new_widthZnew_textrrrr�Ls&

���

zLineNumbers.update_sidebar_textcOs|j�|d�dS)Nrr?)r�Zyview_movetor7rrrr:gszLineNumbers.yscroll_event)rsrtrur/r)rr,r-r�r:�
__classcell__rrr�rrs	rc@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�)rrxr]r�)r.rryrz�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
rrxr{r�)r.r|r}r�r�r�rrrr{�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_promptsr�r/r��change_callbackr%r��toprxr
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_sidebarrr3rrrr)�s
�zShellSidebar.init_widgetscs*t���|j�t��rdnd|j�dS)Nz
<Button-2>z
<Button-3>)r�r+r*rOrZisAquaTk�context_menu_eventr3r�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)ZtearoffrYrZcs��fdd�S)Ncs�j���Sr)r
rGr)�	eventnamer.rr�<lambda>�sz@ShellSidebar.context_menu_event.<locals>.mkcmd.<locals>.<lambda>r�r�r3r�r�mkcmd�sz.ShellSidebar.context_menu_event.<locals>.mkcmdZCopyz<<copy>>Znormal�disabled)ZlabelZcommandrzCopy with promptsz<<copy-with-prompts>>r?)
rZMenur*�boolr
Z
tag_nextrangeZadd_commandZtk_popupZx_rootZy_root)r.rBZrmenuZ
has_selectionr�rr3rr��s
�
�zShellSidebar.context_menu_eventcCs|jjddtjddd�dS)Nr\rrS)r�r�r�rr)r�rrr�r3rrrr�szShellSidebar.gridcCs|jr	|��dSdSr)r(r�r3rrr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�.r\�0z+1line linestartz linestart -1c�consolez>>>�stdinz...rSr)�anchorr
r��fillz+1line)r
Z	tag_namesr�r�r{rZALLr�splitZ	dlineinfoZcreate_textZNWr�r�r
)r.r
Z
text_tagnamesr�r�rZlineinforFZprev_newline_tagnames�promptr_rrrr��s.

��
�zShellSidebar.update_sidebarcOs	|��dSr>)r�r7rrrr:�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>)rWr�rTrU)r�)	rr�r
r�maxr�r r�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�r r�)r.Zlinenumbers_colorsZ
prompt_colorsr�r�rrrr-�s
zShellSidebar.update_colors)rsrtrur/r)r+r�rr�r�r:r,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��expandr\)Zweightr�r��P�)r�Zheightr�r�r�rZr�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;rr5r]r�r�)r'r�Ztoplevelr&r�r
r%Zlinenumbersrrr�_linenumbers_drag_scrollings

&r��__main__)r�zidlelib.idle_test.test_sidebarrSF)�	verbosity�exit)�run)�
contextlibrMr��tkinterrZtkinter.fontrZidlelib.configrZidlelib.delegatorrZidlelibrr
rrr�contextmanagerr"r#rvrr�r�r�rsZunittestr�Zidlelib.idle_test.htestr�rrrr�<module>s8
GP)p�