a 9êdgqã@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|ƒ|_}|jjdddt|dd|_}|jjdddt|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ÚsetÚbindÚ click_eventÚdouble_click_eventrZisAquaTkÚ popup_eventÚup_eventÚ down_eventÚclear)ÚselfrÚoptionsrr r©rú0/usr/local/lib/python3.9/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Údefaultr rrrr*szScrolledList.clearcCs0|jr|j dd¡d|_|j dt|ƒ¡dS©Nrr")r$rr#r%Ústr)rÚitemrrrÚappend/szScrolledList.appendcCs |j |¡Sr)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/r0)rr-r3Ú on_doubler5rrrr?s   zScrolledList.double_click_eventNcCsV|js| ¡|j}|j d|j|jf¡|j d¡}| |¡| |j |j ¡dSr.) ÚmenuÚ make_menurr1r2r r-r3Ztk_popupZx_rootZy_root)rr6r8r-rrrrGs  zScrolledList.popup_eventcCs t|jdd}||_| ¡dS)Nr)Ztearoff)ZMenurr8Ú fill_menu)rr8rrrr9QszScrolledList.make_menucCs\|j d¡}|j |¡r"|d}n|j ¡d}|dkrD|j ¡n| |¡| |¡dS©Nr/rrr0©rr-Zselection_includesÚsizeZbellr3r4r5rrrrVs      zScrolledList.up_eventcCsX|j d¡}|j |¡r"|d}nd}||j ¡kr@|j ¡n| |¡| |¡dSr;r<r5rrrrcs      zScrolledList.down_eventcCs@|j ¡|j |¡|j dd¡|j |¡|j |¡dSr')rZ focus_setr1Zselection_clearZ selection_setZseer,rrrr3ps    zScrolledList.selectcCsdSrrr rrrr:yszScrolledList.fill_menucCsdSrrr,rrrr4|szScrolledList.on_selectcCsdSrrr,rrrr7szScrolledList.on_double)Ú__name__Ú __module__Ú __qualname__r&rr!rr*r+rrr8rr9rrr3r:r4r7rrrrrs"    rcCszt|ƒ}tt| ¡ d¡dd…ƒ\}}| d|d|df¡Gdd„dtƒ}||ƒ}tdƒD]}| d |¡qbdS) Nú+rz+%d+%déÈé¯c@s$eZdZdd„Zdd„Zdd„ZdS)z&_scrolled_list..MyScrolledListcSs|jjdddS)Nz right click)Zlabel)r8Z add_commandr rrrr:ˆóz0_scrolled_list..MyScrolledList.fill_menucSstd| |¡ƒdS)Nr3©Úprintr+r,rrrr4‰rDz0_scrolled_list..MyScrolledList.on_selectcSstd| |¡ƒdS)NZdoublerEr,rrrr7ŠrDz0_scrolled_list..MyScrolledList.on_doubleN)r>r?r@r:r4r7rrrrÚMyScrolledList‡srGéz Item %02d)ZToplevelÚmapÚintZgeometryÚsplitrÚranger*)ÚparentÚtopr2r rGZ scrolled_listÚirrrÚ_scrolled_listƒs  rPÚ__main__)Úmainz#idlelib.idle_test.test_scrolledlisté)Ú verbosity)ÚrunN) ÚtkinterZ tkinter.ttkrrZidlelibrrrPr>ZunittestrRZidlelib.idle_test.htestrUrrrrÚs |