
   XY)~                       d dl  d dlmZmZ d dlmZ  G d d      Zd Zedk(  r d dl	m
Z
  e
d	d
d       d dlmZ  ee       yy)    )*)Frame	Scrollbar)macosxc                   n    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	Zd
 Zd Zd Zd Zd Zd Zd Zd Zy	)ScrolledListz(None)c                 V   || _         t        |      x| _        }| j                  j                  dd       t	        |d      x| _        }| j
                  j                  dd       t        |d	d
      x| _        }|r|j                  |       |j                  dd       |j                  |d<   |j                  |d<   |j                  d| j                         |j                  d| j                         t        j                         r9|j                  d| j                          |j                  d| j                          n|j                  d| j                          |j                  d| j"                         |j                  d| j$                         | j'                          y )Nboth   )fillexpandvbar)namerighty)sider   r   white)exportselection
background)r   r   commandyscrollcommandz<ButtonRelease-1>z<Double-ButtonRelease-1>z<ButtonPress-2>z<Control-Button-1>z<ButtonPress-3>z<Key-Up>z
<Key-Down>)masterr   framepackr   r   Listboxlistbox	configureyviewsetbindclick_eventdouble_click_eventr   isAquaTkpopup_eventup_event
down_eventclear)selfr   optionsr   r   r   s         2/tmp/python/lib/python3.12/idlelib/scrolledlist.py__init__zScrolledList.__init__   sK   "6]*
U

VA.$U88	D		G#.!("  	 wg&AF+!--Y$(HH !($*:*:;/1H1HI??LL*D,<,<=LL-t/?/?@LL*D,<,<=Z/\4??3

    c                 8    | j                   j                          y N)r   destroyr(   s    r*   closezScrolledList.close'   s    

r,   c                     | j                   j                  dd       d| _        | j                   j                  d| j                         y )Nr   endr   )r   deleteemptyinsertdefaultr0   s    r*   r'   zScrolledList.clear*   s5    Au%
E4<<0r,   c                     | j                   r#| j                  j                  dd       d| _         | j                  j                  dt	        |             y Nr   r3   )r5   r   r4   r6   str)r(   items     r*   appendzScrolledList.append/   s<    ::LL5)DJE3t9-r,   c                 8    | j                   j                  |      S r.   )r   getr(   indexs     r*   r>   zScrolledList.get5   s    ||&&r,   c                     | j                   j                  d|j                  |j                  fz         | j                   j	                  d      }| j                  |       | j                  |       yNz@%d,%dactivebreak)r   activatexr   r@   select	on_selectr(   eventr@   s      r*   r!   zScrolledList.click_event8   sU    h%''577);;<""8,Eur,   c                 ~    | j                   j                  d      }| j                  |       | j                  |       y)NrC   rD   )r   r@   rG   	on_doublerI   s      r*   r"   zScrolledList.double_click_event?   s1    ""8,Eur,   Nc                 `   | j                   s| j                          | j                   }| j                  j                  d|j                  |j
                  fz         | j                  j                  d      }| j                  |       |j                  |j                  |j                         yrB   )menu	make_menur   rE   rF   r   r@   rG   tk_popupx_rooty_root)r(   rJ   rN   r@   s       r*   r$   zScrolledList.popup_eventG   sy    yyNNyyh%''577);;<""8,EellELL1r,   c                 `    t        | j                  d      }|| _        | j                          y )Nr   )tearoff)Menur   rN   	fill_menu)r(   rN   s     r*   rO   zScrolledList.make_menuQ   s#    DLL!,	r,   c                 :   | j                   j                  d      }| j                   j                  |      r|dz
  }n| j                   j                         dz
  }|dk  r| j                   j	                          y| j                  |       | j                  |       yNrC   r   r   rD   r   r@   selection_includessizebellrG   rH   rI   s      r*   r%   zScrolledList.up_eventV   s    ""8,<<**51AIELL%%'!+E19LL  KKNN5!r,   c                 4   | j                   j                  d      }| j                   j                  |      r|dz   }nd}|| j                   j                         k\  r| j                   j	                          y| j                  |       | j                  |       yrX   rY   rI   s      r*   r&   zScrolledList.down_eventc   s}    ""8,<<**51AIEEDLL%%''LL  KKNN5!r,   c                    | j                   j                          | j                   j                  |       | j                   j                  dd       | j                   j	                  |       | j                   j                  |       y r9   )r   	focus_setrE   selection_clearselection_setseer?   s     r*   rG   zScrolledList.selectp   s\     e$$$Q.""5)r,   c                      y r.    r0   s    r*   rV   zScrolledList.fill_menuy       r,   c                      y r.   rd   r?   s     r*   rH   zScrolledList.on_select|   re   r,   c                      y r.   rd   r?   s     r*   rL   zScrolledList.on_double   re   r,   )__name__
__module____qualname__r7   r+   r1   r'   r<   r>   r!   r"   rN   r$   rO   r%   r&   rG   rV   rH   rL   rd   r,   r*   r   r      sY    G81
.' D
 r,   r   c                 .   t        |       }t        t        | j                         j	                  d      dd        \  }}|j                  d|dz   |dz   fz          G d dt
              } ||      }t        d      D ]  }|j                  d	|z          y )
N+r   z+%d+%d      c                       e Zd Zd Zd Zd Zy)&_scrolled_list.<locals>.MyScrolledListc                 <    | j                   j                  d       y )Nzright click)label)rN   add_commandr0   s    r*   rV   z0_scrolled_list.<locals>.MyScrolledList.fill_menu   s    TYY222Gr,   c                 :    t        d| j                  |             y )NrG   printr>   r?   s     r*   rH   z0_scrolled_list.<locals>.MyScrolledList.on_select       E(DHHUO$Dr,   c                 :    t        d| j                  |             y )Ndoubleru   r?   s     r*   rL   z0_scrolled_list.<locals>.MyScrolledList.on_double   rw   r,   N)rh   ri   rj   rV   rH   rL   rd   r,   r*   MyScrolledListrp      s    GDDr,   rz      z	Item %02d)Toplevelmapintgeometrysplitr   ranger<   )parenttoprF   r   rz   scrolled_listis          r*   _scrolled_listr      s    
6
CsFOO%++C045DAqLLQsUAG,,-E E
 #3'M2Y[1_- r,   __main__)mainz#idlelib.idle_test.test_scrolledlist   F)	verbosityexit)runN)tkintertkinter.ttkr   r   idlelibr   r   r   rh   unittestr   idlelib.idle_test.htestr   rd   r,   r*   <module>r      sJ     ( y yx. z	.!%H+ r,   