AlkantarClanX12

Your IP : 18.116.12.7


Current Path : /opt/alt/python35/lib64/python3.5/idlelib/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/idlelib/__pycache__/AutoCompleteWindow.cpython-35.opt-1.pyc



��YfKE�
@s�dZddlTddlmZddlmZmZdZdZdZ	dZ
dZdZdZ
dZdZGdd�d�ZdS)zH
An auto-completion window for IDLE, used by the AutoComplete extension
�)�*)�MC_SHIFT)�COMPLETE_FILES�COMPLETE_ATTRIBUTESz<<autocompletewindow-hide>>�
<FocusOut>�
<ButtonPress>z<<autocompletewindow-keypress>>�<Key>�<Key-BackSpace>�<Key-Return>�	<Key-Tab>�<Key-Up>�
<Key-Down>�
<Key-Home>�	<Key-End>�<Key-Prior>�
<Key-Next>z!<<autocompletewindow-keyrelease>>z<KeyRelease>z<B1-ButtonRelease>z<Configure>z<B1-Double-ButtonRelease>c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�ZdS) �AutoCompleteWindowcCs�||_d|_|_|_d|_|_d|_d|_d|_d|_	d|_
d|_d|_d|_
|_|_|_|_|_d|_dS)NF)�widget�autocompletewindow�listbox�	scrollbar�origselforeground�origselbackground�completions�morecompletions�mode�start�
startindex�lasttypedstart�userwantswindow�hideid�
keypressid�listupdateid�winconfigid�keyreleaseid�
doubleclickid�lastkey_was_tab)�selfr�r(�?/opt/alt/python35/lib64/python3.5/idlelib/AutoCompleteWindow.py�__init__s								,zAutoCompleteWindow.__init__cCs�tt|j�t|��}d}x1||krW|j|||krW|d7}q'W|t|j�kr�|jjd|j|fd|jt|j�f�|t|�kr�|jjd|j|f||d��||_dS)Nr�z%s+%dc)�min�lenrr�deleter�insert)r'�newstart�min_len�ir(r(r)�
_change_start8s&z AutoCompleteWindow._change_startcCsvd}t|j�}xD||kr[||d}|j||krN|}q|d}qWt|t|j�d�S)z�Find the first index in self.completions where completions[i] is
        greater or equal to s, or the last index if there is no such
        one.r�r+)r-rr,)r'�sr2�j�mr(r(r)�_binary_searchEs	z!AutoCompleteWindow._binary_searchc
CsG|j|�}|j|dt|��|kr6|S|d}t|j�}xT||kr�||d}|j|dt|��|kr�|}qR|d}qRW|d}||kr�|j|S|j|}|j|}tt|�t|��}	t|�}x.||	kr8||||kr8|d7}qW|d|�S)z�Assuming that s is the prefix of a string in self.completions,
        return the longest string which is a prefix of all the strings which
        s is a prefix of them. If s is not a prefix of a string, return s.Nr+r4)r8rr-r,)
r'r5�firstr2r6r7ZlastZ
first_compZ	last_compr1r(r(r)�_complete_stringRs(#
#	


#z#AutoCompleteWindow._complete_stringcCs�t|jj�d�}|jj|�|j}|j|}|j|�|kr]|}nbtt|�t|��}d}x.||kr�||||kr�|d7}q�W|d|�}|j	|�|j|dt|j
��|j
kr|jjd|jd|j
�n�|jjd|jjd�d|jjd��|jr�|j|_d|_|jjdt�x$|jD]}|jjt|�q�W|jj|j|j
��|j�dS)z|Should be called when the selection of the Listbox has changed.
        Updates the Listbox display and calls _change_start.rr+N�selectbackground�selectforeground�bgZfg)�intr�curselection�seerrr8r,r-r3rZ	configurerr�cgetrr.�ENDr/�
select_set�_selection_changed)r'�curselZltsZselstartr0r1r2�itemr(r(r)rDqs2	
	#
)
		z%AutoCompleteWindow._selection_changedcCsX|\|_|_||_|jj|�|_|jj|jd�|_|r�|j|j�}|j}|j	|�|j
|�}|j||kr�|t|j�dks�|j|ddt|��|kr�||kS||_|j|_
t|j�|_}	|	jd�|	jd�y#|	jjdd|	jdd�Wntk
raYnXt|	d	t�|_}
t|	d
|
jddd
d�|_}x!|jD]}|jt|�q�W|jd�|_|jd�|_ |
j!d|j"�|
j#dt$dt%�|j#dt&dt'dd�|	j(�|jj)|j
|j��|j*�|jj+t,|j-�|_.x!t/D]}
|jj0t,|
�q�W|jj+t1|j2�|_3x!t4D]}
|jj0t1|
�q�W|jj+t5|j6�|_7|jj0t5t8�|j+t9|j:�|_;|	j+t<|j=�|_>|j+t?|j@�|_AdS)z�Show the autocomplete list, bind events.
        If complete is True, complete the text, and if there is exactly one
        matching completion, don't open a list.r/r+Nz+10000+10000z!::tk::unsupported::MacWindowStyleZstyle�helpZnoActivatesZorientZyscrollcommandZexportselectionFr=Zwhiter<r;ZcommandZsideZfill�expandT)Brrrr�indexr�getrr:r3r8r-rrZToplevelr�wm_geometryZwm_overrideredirectZtkZcallZ_wZTclErrorZ	ScrollbarZVERTICALrZListbox�setrr/rBrArr�configZyviewZpackZRIGHT�YZLEFTZBOTHZliftrCrDZbind�HIDE_VIRTUAL_EVENT_NAME�
hide_eventr �HIDE_SEQUENCESZ	event_add�KEYPRESS_VIRTUAL_EVENT_NAME�keypress_eventr!�KEYPRESS_SEQUENCES�KEYRELEASE_VIRTUAL_EVENT_NAME�keyrelease_eventr$�KEYRELEASE_SEQUENCE�LISTUPDATE_SEQUENCE�listselect_eventr"�WINCONFIG_SEQUENCE�winconfig_eventr#�DOUBLECLICK_SEQUENCE�doubleclick_eventr%)r'Z
comp_listsrI�completerZuserWantsWinZ	completedrr2�acwrrrF�seqr(r(r)�show_window�sh		
'
	






		zAutoCompleteWindow.show_windowcCs
|j�sdS|j}|j|j�|j|j�\}}}}|j}|j�|j�}}	|j�|j�}
}|j�t	|t
d|
|��}|j�|}
||||	ks�||	kr�|
|7}
n
|
|	8}
|jd||
f�dS)Nrz+%d+%d)
�	is_activerr@rZbboxrZwinfo_width�winfo_heightZwinfo_rootxr,�maxZwinfo_rootyrK)r'�event�text�x�yZcxZcyr_Z	acw_widthZ
acw_heightZ
text_widthZtext_heightZnew_xZnew_yr(r(r)r[�s		&

z"AutoCompleteWindow.winconfig_eventcCs|j�sdS|j�dS)N)rb�hide_window)r'rer(r(r)rP�szAutoCompleteWindow.hide_eventcCsJ|j�sdSd|_t|jj�d�}|j|j|�dS)NTr)rbrr>rr?r3r)r'rerEr(r(r)rY�s
	z#AutoCompleteWindow.listselect_eventcCs;t|jj�d�}|j|j|�|j�dS)Nr)r>rr?r3rri)r'rerEr(r(r)r]�sz$AutoCompleteWindow.doubleclick_eventcs3|j�sdS|j�t|d�r4|j}nd}�dkrOd|_t��dks��d(ks�|jtkr��d)kr�|t@r�t��dkr�|j	|j
��n��dkr�|j	|j
d
�n��dkr|j	|j
d�n`�d	kr&|j	|j
d�n=t|j
�dkrI|j�dS|j	|j
dd*��|j
|_|j
jdt|j
j�d��|j
j|j|j
��|j�d
S�dkr�|j�dS|jtkr��d+ks|jtkr��d,kr�|t@r�t|j
j�d�}|j|dt|j
��|j
kr�|jtksu|j
r�|j	|j|�|j�dS�d-kr|rd|_t|j
j�d�}�dkr�d}n��dkrt|j�d}n��d.kr|j
j|j
j��|j
jd�}�dkr\td||�}q�tt|j�d||�}nB�dkr�td|d�}n tt|j�d|d�}|j
j|�|j
j|�|j�|j	|j|�d
S�dkrs|rs|jrZt|j
j�d�}|j	|j|�|j�d
Sd|_d|_dSn�t�fdd �d/D��r�dS|jr!|jd'kr!|j	|j
|j�|j
|_|j
jdt|j
j�d��|j
j|j|j
��|j�d
S|j�dSdS)0N�mc_staterZTabFr+�
underscore�	BackSpace�period�minus�_�.�-�breakZReturn�space�	parenleft�
parenright�bracketleft�bracketright�slash�	backslash�quotedbl�
apostrophe�Home�End�Prior�Next�Up�DownTc3s|]}|�kVqdS)Nr()�.0r5)�keysymr(r)�	<genexpr>bsz4AutoCompleteWindow.keypress_event.<locals>.<genexpr>�Shift�Control�Alt�Meta�Command�Option� )rkrl)rmrn���)rmrsrtrurvrw)rxryrzr{)r|r}r~rr�r�)r~r)r�r�r�r�r�r�)rbr��hasattrrjr&r-rrrr3rrirrZselect_clearr>r?rCr8rDrrrZnearestrcrdr,�any�char)r're�staterEZnewselZjumpr()r�r)rSs�			
&

		)
		# 
	
		
&

z!AutoCompleteWindow.keypress_eventcCsX|j�sdS|jjd�|jjd|jt|j�f�krT|j�dS)Nr/z%s+%dc)rbrrIrr-rri)r'rer(r(r)rVus
+z#AutoCompleteWindow.keyrelease_eventcCs
|jdk	S)N)r)r'r(r(r)rb}szAutoCompleteWindow.is_activecCs|j|j|j��dS)N)r3r:r)r'r(r(r)r^�szAutoCompleteWindow.completecCsL|j�sdSx!tD]}|jjt|�qW|jjt|j�d|_x!tD]}|jjt|�qZW|jjt|j	�d|_	|jjt
t�|jjt
|j�d|_|j
jt|j�d|_|jjt|j�d|_|jj�d|_|j
j�d|_
|jj�d|_dS)N)rbrQrZevent_deleterOZunbindr rTrRr!rUrWr$rrXr"rrZr#rZdestroy)r'r`r(r(r)ri�s0
	
				
	
	
zAutoCompleteWindow.hide_windowN)�__name__�
__module__�__qualname__r*r3r8r:rDrar[rPrYr]rSrVrbr^rir(r(r(r)rs 

$FsrN)rr)
rr	r
rrr
rrrr)�__doc__ZtkinterZidlelib.MultiCallrZidlelib.AutoCompleterrrOrQrRrTrUrWrXrZr\rr(r(r(r)�<module>s