B YI~dq�@srddlTddlmZmZddlmZGdd�d�Zdd�Zedkrndd l m Z e d d d �dd l m Z e e�dS)�)�*)�Frame� Scrollbar)�macosxc@s�eZdZdZdd�Zdd�Zdd�Zdd �Zd d �Zd d �Z dd�Z dZ dd�Z dd�Z dd�Zdd�Zdd�Zdd�Zdd�Zdd �ZdS)!� ScrolledListz(None)cKs||_t|�|_}|jjddd�t|dd�|_}|jjddd�t|d d d �|_}|rh|�|�|jddd �|j |d <|j |d<|� d|j �|� d|j �t��r�|� d|j�|� d|j�n|� d|j�|� d|j�|� d|j�|��dS)NZboth�)�fill�expand�vbar)�name�right�y)ZsiderrZwhite)ZexportselectionZ background)r rZcommandZyscrollcommandzzzzzzz )�masterr�frame�packrr ZListbox�listboxZ configureZyview�setZbind� click_event�double_click_eventrZisAquaTk� popup_event�up_event� down_event�clear)�selfr�optionsrr r�r�9/opt/alt/python37/lib64/python3.7/idlelib/scrolledlist.py�__init__ s*   zScrolledList.__init__cCs|j��dS)N)rZdestroy)rrrr�close'szScrolledList.closecCs(|j�dd�d|_|j�d|j�dS)Nr�endr)r�delete�empty�insert�default)rrrrr*szScrolledList.clearcCs0|jr|j�dd�d|_|j�dt|��dS)Nrr)r!rr r"�str)r�itemrrr�append/szScrolledList.appendcCs |j�|�S)N)r�get)r�indexrrrr'5szScrolledList.getcCs<|j�d|j|jf�|j�d�}|�|�|�|�dS)Nz@%d,%d�active�break)r�activate�xr r(�select� on_select)r�eventr(rrrr8s    zScrolledList.click_eventcCs$|j�d�}|�|�|�|�dS)Nr)r*)rr(r-� on_double)rr/r(rrrr?s   zScrolledList.double_click_eventNcCsV|js|��|j}|j�d|j|jf�|j�d�}|�|�|�|j |j �dS)Nz@%d,%dr)r*) �menu� make_menurr+r,r r(r-Ztk_popupZx_rootZy_root)rr/r1r(rrrrGs  zScrolledList.popup_eventcCs t|jdd�}||_|��dS)Nr)Ztearoff)ZMenurr1� fill_menu)rr1rrrr2QszScrolledList.make_menucCs\|j�d�}|j�|�r"|d}n|j��d}|dkrD|j��n|�|�|�|�dS)Nr)rrr*)rr(�selection_includes�size�bellr-r.)rr/r(rrrrVs      zScrolledList.up_eventcCsX|j�d�}|j�|�r"|d}nd}||j��kr@|j��n|�|�|�|�dS)Nr)rrr*)rr(r4r5r6r-r.)rr/r(rrrrcs      zScrolledList.down_eventcCs@|j��|j�|�|j�dd�|j�|�|j�|�dS)Nrr)rZ focus_setr+Zselection_clearZ selection_setZsee)rr(rrrr-ps    zScrolledList.selectcCsdS)Nr)rrrrr3yszScrolledList.fill_menucCsdS)Nr)rr(rrrr.|szScrolledList.on_selectcCsdS)Nr)rr(rrrr0szScrolledList.on_double)�__name__� __module__� __qualname__r#rrrr&r'rrr1rr2rrr-r3r.r0rrrrrs"    rcCs~t|�}tt|���d�dd��\}}|�d|d|df�Gdd�dt�}||�}xtd�D]}|�d |�qdWdS) N�+rz+%d+%d���c@s$eZdZdd�Zdd�Zdd�ZdS)z&_scrolled_list..MyScrolledListcSs|jjdd�dS)Nz right click)Zlabel)r1Z add_command)rrrrr3��z0_scrolled_list..MyScrolledList.fill_menucSstd|�|��dS)Nr-)�printr')rr(rrrr.�r=z0_scrolled_list..MyScrolledList.on_selectcSstd|�|��dS)NZdouble)r>r')rr(rrrr0�r=z0_scrolled_list..MyScrolledList.on_doubleN)r7r8r9r3r.r0rrrr�MyScrolledList�sr?�z Item %02d)ZToplevel�map�intZgeometry�splitr�ranger&)�parent�topr,r r?Z scrolled_list�irrr�_scrolled_list�s rH�__main__)�mainz#idlelib.idle_test.test_scrolledlist�)� verbosity)�runN) ZtkinterZ tkinter.ttkrrZidlelibrrrHr7ZunittestrJZidlelib.idle_test.htestrMrrrr�s |