Current File : //usr/local/apps/python3/lib/python3.11/idlelib/__pycache__/sidebar.cpython-311.opt-2.pyc
�

�Ke�O��z�	ddlZddlZddlZddlZddlmZddlmZddl	m
Z
ddlmZd�Z
d�Zd�Zd	�Zejd
���ZGd�d��ZGd
�de
��ZGd�de��ZGd�de
��ZGd�de��Zd�Zedkr'ddlmZeddd���ddlmZee��dSdS)�N)�Font)�idleConf)�	Delegator)�macosxc�n�	|�|��}|rtt|����ndS�N)�index�int�float)�textr	�
text_indexs   �9/usr/local/apps/python3/lib/python3.11/idlelib/sidebar.py�
get_linenors6��A����E�"�"�J�%/�9�3�u�Z� � �!�!�!�T�9�c�$�	t|d��S)Nzend-1c)r�rs r�get_end_linenumberrs��A��d�H�%�%�%rc�V�	|�|�d�|�d�d��}|r|dndS)Nz
 linestartz lineend�displaylinesr)�count)rr	�ress   r�get_displaylinesrsG��J�
�*�*��)�)�)��'�'�'�#�%�%�C���3�q�6�6�a�rc
��	|���}|dkr|���}n-|dkr|���}ntd|�����t	t|jj|d|�d��|�d��g����}t	t|jj|d|�d��|�d��g����}||fS)N�pack�gridzUnsupported geometry manager: �padx�border�pady)	�
winfo_manager�	pack_info�	grid_info�
ValueError�sum�map�tk�getint�cget)�widget�manager�inforrs     r�get_widget_paddingr+!s��E��"�"�$�$�G��&������!�!���	�F�	�	����!�!����C�'�C�C�D�D�D��s�6�9�#��V�����F������H���&�����D�
�s�6�9�#��V�����F������H���&�����D�
��:�rc#��K�|�tj���	dV�|�tj���dS#|�tj���wxYw)N��state)�	configurer%�NORMAL�DISABLEDrs r�temp_enable_text_widgetr2;sb�����N�N���N�#�#�#�*�
�������R�[��)�)�)�)�)�����R�[��)�)�)�)���s�A
�
"A,c�^�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�ZdS)�BaseSideBarc��||_|j|_|j|_d|_|���|_|���|���|�	��dS�NF)
�editwin�
text_frame�parentr�is_shown�init_widgets�main_widget�bind_events�update_font�
update_colors)�selfr7s  r�__init__zBaseSideBar.__init__Fss������(����L��	���
��,�,�.�.����������������������rc��	t�r��NotImplementedError�r@s rr;zBaseSideBar.init_widgetsTs��J�!�!rc��	t�rrCrEs rr>zBaseSideBar.update_fontXs��I�!�!rc��	t�rrCrEs rr?zBaseSideBar.update_colors\s��K�!�!rc��	t�rrCrEs rrzBaseSideBar.grid`s��:�!�!rc�N�|js|���d|_dSdS)NT)r:rrEs r�show_sidebarzBaseSideBar.show_sidebards.���}�	!��I�I�K�K�K� �D�M�M�M�	!�	!rc�X�|jr"|j���d|_dSdSr6)r:r<�grid_forgetrEs r�hide_sidebarzBaseSideBar.hide_sidebaris6���=�	"���(�(�*�*�*�!�D�M�M�M�	"�	"rc��	t�rrC�r@�args�kwargss   r�
yscroll_eventzBaseSideBar.yscroll_eventns��F�!�!rc�F�	|jjj|�|j|i|��Sr)r7�vbar�setrRrOs   r�redirect_yscroll_eventz"BaseSideBar.redirect_yscroll_eventrs6��	�	�����t�$�$�!�t�!�4�2�6�2�2�2rc�:�	|j���dS�N�break)r�	focus_set�r@�events  r�redirect_focusin_eventz"BaseSideBar.redirect_focusin_eventzs��F��	�������wrc�~�	|j���|j�|d|j���dS)Nr��x�yrY)rrZ�event_generatera)r@r\�
event_names   r�redirect_mousebutton_eventz&BaseSideBar.redirect_mousebutton_events=��J��	�������	� � ��q�E�G� �<�<�<��wrc�X�	|j�dd|j|j���dS)N�<MouseWheel>r)r`ra�deltarY)rrbrargr[s  r�redirect_mousewheel_eventz%BaseSideBar.redirect_mousewheel_event�s9��E��	� � ��#$���u�{�	!�	D�	D�	D��wrc����	�
���
��j�jd<�j�d�j���j�d�j���fd�}dD]C}d|�d�d|�d�d	|�d
�fD]}|||����d|�d�d
|�d�fD]}||d|�d������Dd�d�d�	��fd��
�
���fd�}�j�d|�����fd�}�j�d|���
�fd�}�j�d|���	�
���
fd��
�	���
fd�}�j�d|���	�fd�}�j�d|��dS)N�yscrollcommandz	<FocusIn>rfc�t��tj�j|���}�j�||��dS)N)rc)�	functools�partialrdr<�bind)rc�target_event_name�handlerr@s   �r�bind_mouse_eventz1BaseSideBar.bind_events.<locals>.bind_mouse_event�sD����'��(G�3D�F�F�F�G���!�!�*�g�6�6�6�6�6r)����z<Button-�>z<ButtonRelease-z<Bz-Motion>)roz<Double-Button-z<Triple-Button-c�6��	t�jd|����}t�|g��\}}�j�ddd���j�d|�d�|dz�d����j�d||kr|n|dz�d���dS)N�@0,�sel�1.0�endz.0��insert)rr�sorted�
tag_remove�tag_add�mark_set)�y_coord�lineno�a�br@�
start_lines    ��r�%drag_update_selection_and_insert_markzFBaseSideBar.bind_events.<locals>.drag_update_selection_and_insert_mark�s����H���	�?��?�?�;�;�F��:�v�.�/�/�D�A�q��I� � ���u�5�5�5��I���e��X�X�X�!�A�#�z�z�z�:�:�:��I���x�,2�a�K�K�&�&�V�a�Z�K�K�K�
M�
M�
M�
M�
Mrc���tt�j�d|j���������|j��|j��dS)Nrx)r
rrr	ra)r\r��last_yr@r�s ����r�b1_mousedown_handlerz5BaseSideBar.bind_events.<locals>.b1_mousedown_handler�sP����U�4�9�?�?�?���?�?�#C�#C�D�D�E�E�J��W�F�1�1�%�'�:�:�:�:�:rz
<Button-1>c�T��d�d��j�dd|j���dS)N�<ButtonRelease-1>rr_)rrbra)r\r�r@r�s ���r�b1_mouseup_handlerz3BaseSideBar.bind_events.<locals>.b1_mouseup_handler�s5���
�J��F��I�$�$�%8�A���$�I�I�I�I�Irr�c�>����dS|j��|j��dSr)ra)r\r�r�s ��r�b1_drag_handlerz0BaseSideBar.bind_events.<locals>.b1_drag_handler�s-����~����W�F�1�1�%�'�:�:�:�:�:rz<B1-Motion>c���	�}|��j����d�dS|dkr*�j�d|zd���|��n`|�j���krC�j�d|z�j���z
d���|���j�d����dS)Nr����pixelsr|�2)r<�after_cancelr�yview_scroll�winfo_height�after)ra�auto_scrolling_after_idr�r�r@�text_auto_scrolls �����rr�z1BaseSideBar.bind_events.<locals>.text_auto_scroll�s����H��A��y�� �-�-�.E�F�F�F�*.�'����Q����	�&�&�r�A�v�x�8�8�8�5�5�a�8�8�8�8��T�%�2�2�4�4�4�4��	�&�&�q�1�u�t�/?�/L�/L�/N�/N�'N�'/�1�1�1�5�5�a�8�8�8�� �&�&�r�+;�<�<�
$�#�#rc�T����$|j��j�d����dSdS)Nr)rar<r�)r\r�r�r@r�s ����r�b1_leave_handlerz1BaseSideBar.bind_events.<locals>.b1_leave_handler�s<���'�.�����$�*�*�1�.>�?�?�(�'�'�/�.rz
<B1-Leave>c�H�����j����d�dSdSr)r<r�)r\r�r@s ��r�b1_enter_handlerz1BaseSideBar.bind_events.<locals>.b1_enter_handlers7���'�2�� �-�-�.E�F�F�F�*.�'�'�'�3�2rz
<B1-Enter>)rVrr<rnr]rh)r@rq�buttonrcr�r�r�r�r�r�r�r�r�r�s`        @@@@@rr=zBaseSideBar.bind_events�s���������&*�&A��	�"�#�	
����k�4�+F�G�G�G�	
����n�d�.L�M�M�M�	7�	7�	7�	7�	7�
#�
	I�
	I�F�3�&�3�3�3�:��:�:�:�4�F�4�4�4�!�
K�
K�
�!� ��z�J�J�J�J�J� ;��:�:�:�:��:�:�:�!�
I�
I�
�!� ��3G�f�3G�3G�3G�I�I�I�I�I�
I��
���#'��	M�	M�	M�	M�	M�	M�	;�	;�	;�	;�	;�	;�	;�	;�	
����l�,@�A�A�A�	J�	J�	J�	J�	J�	J�	J�	
����1�3E�F�F�F�	;�	;�	;�	;�	;�	;�	
����m�_�=�=�=�	=�	=�	=�	=�	=�	=�	=�	=�	=�&	@�	@�	@�	@�	@�	@�	@�	@�	
����l�,<�=�=�=�	/�	/�	/�	/�	/�	/�	
����l�,<�=�=�=�=�=rN)�__name__�
__module__�__qualname__rAr;r>r?rrJrMrRrVr]rdrhr=�rrr4r4Ds�������/����"�"�"�"�"�"�"�"�"�"�"�"�!�!�!�
"�"�"�
"�"�"�3�3�3����
������|>�|>�|>�|>�|>rr4c�&�eZdZ	d�Zdd�Zdd�ZdS)�EndLineDelegatorc�<�tj|��||_dSr)rrA�changed_callback)r@r�s  rrAzEndLineDelegator.__init__s!����4� � � � 0����rNc��|j�|||��|�t|j����dSr)�delegater}r�r)r@r	�chars�tagss    rr}zEndLineDelegator.insertsA���
���U�E�4�0�0�0����0���?�?�@�@�@�@�@rc��|j�||��|�t|j����dSr)r��deleter�r)r@�index1�index2s   rr�zEndLineDelegator.deletes?���
���V�V�,�,�,����0���?�?�@�@�@�@�@rr�r�r�r�rAr}r�r�rrr�r�
sZ�������1�1�1�A�A�A�A�A�A�A�A�A�Arr�c�D��eZdZ	�fd�Zd�Zd�Zd�Zd�Zd�Zd�Z	�xZ
S)�LineNumbersc����t���|��t|j��}|jj�||jj���dS)N�r�)�superrAr��update_sidebar_textr7�per�insertfilterafter�undo)r@r7�end_line_delegator�	__class__s   �rrAzLineNumbers.__init__sj���
������!�!�!�-�d�.F�G�G��	
���*�*�+=�15��1B�	+�	D�	D�	D�	D�	Drc	��t|j��\}}tj|jdtjd|dd���|_|j�tj���d|_	t|jd��|_t|j��5|j�
ddd	��ddd��n#1swxYwY|j�d
d
���|j�d	tj���t!|j��}|�|��|jS)
Nr|rrr)�width�wraprr�borderwidth�highlightthicknessr-r�r}�1�
linenumberF)�	takefocus�exportselection)�justify)r+rr%�Textr9�NONE�sidebar_text�configr1�prev_end�type�_sidebar_width_typer2r}�
tag_config�RIGHTrr�)r@�_padxrr{s    rr;zLineNumbers.init_widgets'sz��(���3�3���t��G�D�K�q�r�w�)*��01�a�I�I�I���	
�� � �r�{� �3�3�3���
�#'��(9�'�(B�#C�#C�� �
$�T�%6�
7�
7�	B�	B���$�$�X�s�L�A�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B��� � �5�%� �H�H�H���$�$�\�2�8�$�D�D�D� ���+�+��� � ��%�%�%�� � s�&C�C�Cc�T�|j�ddtj���dS)Nr|r��row�column�sticky)r�rr%�NSEWrEs rrzLineNumbers.grid:s(������1�Q�r�w��?�?�?�?�?rc�P�tj|jdd��}||jd<dS)N�main�EditorWindow�font)r�GetFontrr�)r@r�s  rr>zLineNumbers.update_font=s+�����	�6�>�B�B��$(���&�!�!�!rc��	tjtj��d��}|d}|d}|j�|||||���dS)Nr��
foreground�
background)�fg�bg�selectforeground�selectbackground�inactiveselectbackground)r�GetHighlight�CurrentThemer�r�)r@�colorsr�r�s    rr?zLineNumbers.update_colorsAsk��K��&�x�'<�'>�'>��M�M���L�)�
��L�)�
��� � ��j�'�*�%/�	!�	
�	
�	
�	
�	
rc���	||jkrdStt|����tt|j����z
}|rItt	|jd����}||z}|�|��|jd<t|j��5||jkrrd�tj
dgttt|jdz|dz��������}|j�
d|d��n!|j�|dz�d�d��ddd��n#1swxYwY||_dS)Nr��
�r|zend -1cr�z.0 -1c)r��len�strr
rr�r�r2�join�	itertools�chainr$�ranger}r�)r@r{�width_difference�	cur_width�	new_width�new_texts      rr�zLineNumbers.update_sidebar_textLs���	9�
�$�-����F��s�3�x�x�=�=�3�s�4�=�/A�/A�+B�+B�B���	M��E�$�"3�G�"<�=�=�>�>�I�!�$4�4�I�)-�)A�)A�)�)L�)L�D��g�&�
$�T�%6�
7�
7�	F�	F��T�]�"�"��9�9�Y�_��D���U�4�=�1�#4�c�A�g�>�>�?�?�&�&�����!�(�(��X�|�L�L�L�L��!�(�(�C��E�)9�)9�)9�9�E�E�E�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F����	F�	F�	F�	F���
�
�
s�,BE�E�Ec�F�|j�|d��dS)NrrY)r��yview_movetorOs   rrRzLineNumbers.yscroll_eventgs"����&�&�t�A�w�/�/�/��wr)r�r�r�rAr;rr>r?r�rR�
__classcell__�r�s@rr�r�s��������2�D�D�D�D�D�!�!�!�&@�@�@�)�)�)�	
�	
�	
����6������rr�c�$�eZdZd�Zdd�Zdd�ZdS)� WrappedLineHeightChangeDelegatorc�>�	tj|��||_dSr)rrA�callback)r@r�s  rrAz)WrappedLineHeightChangeDelegator.__init__ms%��	�
	��4� � � � ��
�
�
rNc���d|v}|rt||��}|j�|||��|rt||��}||krdS|���dS)Nr�)rr�r}r�)r@r	r�r��is_single_line�before_displaylines�after_displayliness       rr}z'WrappedLineHeightChangeDelegator.insertvsy���U�*���	@�"2�4��"?�"?���
���U�E�4�0�0�0��	�!1�$��!>�!>��!�%8�8�8����
�
�����rc��|�|dz}t||��t||��k}|rt||��}|j�||��|rt||��}||krdS|���dS)Nz+1c)rrr�r�r�)r@r�r�r�r�r�s      rr�z'WrappedLineHeightChangeDelegator.delete�s����>��e�^�F�#�D�&�1�1�Z��f�5M�5M�M���	A�"2�4��"@�"@���
���V�V�,�,�,��	�!1�$��!?�!?��!�%8�8�8����
�
�����rrr�r�rrr�r�lsK������!�!�!����������rr�c�Z��eZdZ	�fd�Zd�Z�fd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Z�xZ
S)�ShellSidebarc���d|_i|_t���|��t	|j��}|jjj}|j	|j
ur7|j	|jjjur|j	}|j	|jjju�|jj�||���d|_
dS)Nr�T)�canvas�line_promptsr�rAr��change_callbackr7r��topr�r�bottomr�r:)r@r7�change_delegator�dr�s    �rrAzShellSidebar.__init__�s����������
������!�!�!�
-�T�-A�B�B�	�
�L�� ���:�T�Y�&�&��*�D�L�$4�$;�;�;��J���*�D�L�$4�$;�;�;����*�*�+;�1�*�E�E�E���
�
�
rc��tj|jdddd���|_|���|���|jS)N�rF)r�r�r�r�)r%�Canvasr9r�update_sidebarrrEs rr;zShellSidebar.init_widgets�sQ���i���2�,-�!�*/�1�1�1���	
�������	�	�����{�rc���t�����|j�t	j��rdnd|j��dS)Nz
<Button-2>z
<Button-3>)r�r=r<rnr�isAquaTk�context_menu_event)r@r�s �rr=zShellSidebar.bind_events�sX���
������������"�O�-�-�?�L�L�<��#�	
�	
�	
�	
�	
rc�l��tj�jd���}t�j�dd����}�fd�}|�d|d��|rdnd	�
��|�d|d��|rdnd	�
��|�|j|j	��d
S)Nr)�tearoffryrzc������fd�S)Nc�8���j����Sr)rrb��	eventnamer@s��r�<lambda>z@ShellSidebar.context_menu_event.<locals>.mkcmd.<locals>.<lambda>�s���4�9�3�3�I�>�>�rr�rs`�r�mkcmdz.ShellSidebar.context_menu_event.<locals>.mkcmd�s����>�>�>�>�>�>r�Copyz<<copy>>�normal�disabled)�label�commandr.zCopy with promptsz<<copy-with-prompts>>rY)
r%�Menur<�boolr�
tag_nextrange�add_command�tk_popup�x_root�y_root)r@r\�rmenu�
has_selectionrs`    rrzShellSidebar.context_menu_event�s�������(�!�4�4�4���T�Y�4�4�U�E�B�B�C�C�
�	?�	?�	?�	?�	?�
����"'�%�
�"3�"3�,9� I���z�	�	K�	K�	K�	��� 3�"'�%�(?�"@�"@�,9� I���z�	�	K�	K�	K�	���u�|�U�\�2�2�2��wrc�X�|j�ddtjdd���dS)Nr|rrr)r�r�r�rr)rrr%r�rEs rrzShellSidebar.grid�s+������Q�q���q�q��I�I�I�I�Irc�@�|jr|���dSdSr)r:rrEs rrzShellSidebar.change_callback�s.���=�	"����!�!�!�!�!�	"�	"rc	��|j}|j}|j}ix}|_|�t
j��|�d��}|�dd��ddkr|�|�d���}|�	|��x}��|d}||�d���}d|vrdnd	|vrd
nd}	|	rJ|�
d|t
j|	|j|j
d�
��t||��}
|	||
<|�|�d���}|�	|��x}��dSdS)Nz@0,0�.r|�0z+1line linestartz linestart -1c�consolez>>>�stdinz...rrr)�anchorrr��fillz+1line)r�	tag_namesrrr�r%�ALLr	�split�	dlineinfo�create_text�NWr�r�r)r@r�
text_tagnamesrrr	�lineinfora�prev_newline_tagnames�promptr�s           rrzShellSidebar.update_sidebar�s{���y����
����+-�-��t�(��
�
�b�f�����
�
�6�"�"���;�;�s�A���q�!�S�(�(��J�J�%�9�9�9�:�:�E��>�>�%�0�0�0�x�=����A�$1�M�U�2J�2J�2J�$K�$K�!�"�&;�;�;��� �$9�9�9����
�
�
.��"�"�1�a���F�(,�	���A��#�H�H�H�#�D�%�0�0��'-��V�$��J�J�%�/�/�/�0�0�E� �>�>�%�0�0�0�x�=�=�=�=�=rc�0�	|���dSrX)rrOs   rrRzShellSidebar.yscroll_event�s ��	�	
�������wrc���	tj|jdd��}t|j|����t	�fd�dD����}|j�|dzdz���||_|���dS)	Nr�r�)r�c3�B�K�|]}��|��V��dSr)�measure)�.0�char�tk_fonts  �r�	<genexpr>z+ShellSidebar.update_font.<locals>.<genexpr>�s/�����F�F�4�����.�.�F�F�F�F�F�Fr)rvr)rsrt)r�)	rr�rr�maxrr/r�r)r@r��
char_widthr?s   @rr>zShellSidebar.update_font�s����I����	�6�>�B�B���t�y�t�,�,�,���F�F�F�F�:�F�F�F�F�F�
�����J��N�Q�$6��7�7�7���	��������rc�0�	tjtj��d��}tjtj��d��}|d}|d}||f|_|j�|���|���dS)Nr�r+r�r�)r�)rr�r�r�rr/r)r@�linenumbers_colors�
prompt_colorsr�r�s     rr?zShellSidebar.update_colors�s���K�%�2�8�3H�3J�3J�L�Y�Y�� �-�h�.C�.E�.E�y�Q�Q�
�"�<�0�
�'��5�
�!�:�.���������4�4�4��������r)r�r�r�rAr;r=rrrrrRr>r?r�r�s@rrr�s��������:������$���
�
�
�
�
����J�J�J�"�"�"�1�1�1�4������������rrc
���ddlm}tj|��}tj|��}|�tjtjd���|�dd���|�	dd���tj|dd��}tj|d	d
tj
|���}|�ddtj���||��}tj|��|_t%|��}|���|�d
d�d�t-dd��D������dS)Nr)�
Dummy_editwinT)�sider.�expandr|)�weightr�r��P�)r��heightr�r�r�rzr�c3� K�|]	}d|zV��
dS)r�Nr�)r=�is  rr@z._linenumbers_drag_scrolling.<locals>.<genexpr>s&���� >� >�1��Q�� >� >� >� >� >� >r�e)�idlelib.idle_test.test_sidebarrGr%�Toplevel�Framer�LEFT�BOTH�rowconfigure�columnconfigurerr�r�r�rr��	ScrollbarrTr�rJr}r�r�)r9rG�toplevelr8r�rr7�linenumberss        r�_linenumbers_drag_scrollingr[sF��<�<�<�<�<�<��{�6�"�"�H���(�#�#�J��O�O���r�w�t�O�<�<�<����A�a��(�(�(����q���+�+�+���H�f�n�=�=�D�
�7�:�R����t�L�L�L�D��I�I�!�A�b�g�I�.�.�.��m�D�!�!�G��<�
�+�+�G�L��g�&�&�K��������K�K��t�y�y� >� >��a��
�
� >� >� >�>�>�?�?�?�?�?r�__main__)r�zidlelib.idle_test.test_sidebarrrF)�	verbosity�exit)�run)�
contextlibrlr��tkinterr%�tkinter.fontr�idlelib.configr�idlelib.delegatorr�idlelibrrrrr+�contextmanagerr2r4r�r�r�rr[r��unittestr��idlelib.idle_test.htestr_r�rr�<module>risM�������������������������#�#�#�#�#�#�'�'�'�'�'�'�������:�:�:�&�&�&�
 � � ����4��*�*���*�C>�C>�C>�C>�C>�C>�C>�C>�LA�A�A�A�A�y�A�A�A�$M�M�M�M�M�+�M�M�M�`&�&�&�&�&�y�&�&�&�Rm�m�m�m�m�;�m�m�m�`@�@�@�,�z����������D�	)�Q�U�C�C�C�C�+�+�+�+�+�+��C�#�$�$�$�$�$��r