B � fq�@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�frameZpackrr ZListbox�listboxZ configureZyview�setZbind� click_event�double_click_eventrZisAquaTk� popup_event�up_event� down_event�clear)�selfrZoptionsrr 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)rrrr �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-r/r&rrrrGs  zScrolledList.popup_eventcCs t|jdd�}||_|��dS)Nr)Ztearoff)ZMenurr/� fill_menu)rr/rrrr0QszScrolledList.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&r2r3r4r+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)rrrrr1yszScrolledList.fill_menucCsdS)Nr)rr&rrrr,|szScrolledList.on_selectcCsdS)Nr)rr&rrrr.szScrolledList.on_double)�__name__� __module__� __qualname__r!rrrr$r%rrr/rr0rrr+r1r,r.rrrrrs"    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)r/Z add_command)rrrrr1��z0_scrolled_list..MyScrolledList.fill_menucSstd|�|��dS)Nr+)�printr%)rr&rrrr,�r;z0_scrolled_list..MyScrolledList.on_selectcSstd|�|��dS)NZdouble)r<r%)rr&rrrr.�r;z0_scrolled_list..MyScrolledList.on_doubleN)r5r6r7r1r,r.rrrr�MyScrolledList�sr=�z Item %02d)ZToplevel�map�intZgeometry�splitr�ranger$)�parent�topr*r r=Z scrolled_list�irrr�_scrolled_list�s rF�__main__)�mainz#idlelib.idle_test.test_scrolledlist�)� verbosity)�runN) ZtkinterZ tkinter.ttkrrZidlelibrrrFr5ZunittestrHZidlelib.idle_test.htestrKrrrr�s |