B
ÓÃic¥gÕeã @ s¤ d dl Z d dlZd dlmZ d dlmZ d dlm Z d dl
mZ d dlm
Z
ddd„ZG d d
„ d
ejƒZG dd„ dƒZe ¡ ed
kr d dlmZ edddd dS )é N)ÚidleConf)Ú view_text)ÚHovertip)ÚmacosxéP c C sÖ d}d}d}d}xŽt d| ¡D ]~}| ¡ | }||7 }||7 }| | dkrp||krb||d | 7 }|d7 }d}n$|||| 7 }||kr”|d7 }|}|d7 }qW |t| ƒ| 7 }|dkrÊ||d | 7 }n|d8 }|S )Né r é z[\t\n]Ú
)ÚreÚfinditerÚstartÚlen)ÚsZ linewidthZtabwidthÚposZ linecountZcurrent_columnÚmÚnumchars© r ú5/opt/alt/python37/lib64/python3.7/idlelib/squeezer.pyÚcount_lines_with_wrapping s. r c @ sF e Zd Zdd„ Zdd„ Zddd„Zddd „Zdd
d„ZdZd
d„ Z dS )ÚExpandingButtonc
sà ˆ | _ || _|| _|| _|j | _}|j | _}|jj| _|dkrFdnd}d|› d|› d}t j
j| ||ddd d
} t| | dd |
d
| j¡ t ¡ rª|
d| j¡ n|
d| j¡ | ‡ fdd„¡ d | _| | j¡ d S )Nr ÚlinesÚlinezSqueezed text (ú z).z#FFFFC0z#FFFFE0)ÚtextZ
backgroundZactivebackgroundz5Double-click to expand, right-click for more options.r )Zhover_delayzz
z
c s ˆ t | ƒt | ƒt |ƒ … S )N)Úint)ÚoffsetÚlength)r r r Úz ó z*ExpandingButton.__init__..)r ÚtagsÚ
numoflinesÚsqueezerÚeditwinr ÚperÚbottomÚ base_textÚtkÚButtonÚ__init__r ZbindÚexpandr ZisAquaTkÚcontext_menu_eventZselection_handleÚis_dangerousZ
after_idleÚset_is_dangerous)
Úselfr r r r! r" r Zline_pluralityZbutton_textZbutton_tooltip_textr )r r r( _ s*
zExpandingButton.__init__c sL d| j ¡ ‰ | jdkpDt| jƒdkpDt‡ fdd„t d| j¡D ƒƒ| _d S )Né2 iè iPà c 3 s | ]}t | d ¡ƒˆ kV qdS )r N)r
Úgroup)Ú.0Z
line_match)Údangerous_line_lenr r ú … s z3ExpandingButton.set_is_dangerous..z[^\n]+) r Zwinfo_widthr r
r Úanyr
r r+ )r- r )r1 r r, s
z ExpandingButton.set_is_dangerousNc C sŽ | j d kr| ¡ | j rTtjdd ddddg¡| jt| jƒf tj| j d}|sTdS | j
| j | ¡| j| j
¡ | j
| ¡ | jj | ¡ d S ) NzExpand huge output?z
z5The squeezed output is very long: %d lines, %d chars.z2Expanding it could make IDLE slow or unresponsive.z5It is recommended to view or copy the output instead.zReally expand?)ÚtitleÚmessageÚdefaultÚparentÚbreak)r+ r, ÚtkMessageBoxZaskokcancelÚjoinr r
r ZCANCELr r% ÚinsertÚindexr Údeleter! ÚexpandingbuttonsÚremove)r- ÚeventZconfirmr r r r) Š s$
zExpandingButton.expandc C s | ¡ | | j¡ d S )N)Zclipboard_clearZclipboard_appendr )r- r@ r r r Úcopy§ s zExpandingButton.copyc C s t | jd| jddd d S )NzSqueezed Output ViewerFZnone)ZmodalÚwrap)r r r )r- r@ r r r Úview¯ s zExpandingButton.view))rA rA )rC rC c C sf | j dd|j|jf ¡ tj| j dd}x&| jD ]\}}|j|t| |ƒd q2W | |j
|j¡ dS )Nr; z@%d,%dr )Ztearoff)ÚlabelZcommandr8 )r Zmark_setÚxÚyr&