3
tY]                 @   s\   d Z ddlZddlmZmZmZmZ G dd deZdd Ze	dkrXdd	l
mZ ee dS )
zd
OptionMenu widget modified to allow dynamic menu reconfiguration
and setting of highlightthickness
    N)
OptionMenu_setit	StringVarButtonc               @   s"   e Zd ZdZdd ZdddZdS )DynOptionMenuzF
    unlike OptionMenu, our kwargs can include highlightthickness
    c             O   s`   t j |}dt|j kr |d= tj| |||f|| | j|jdd || _|jd| _d S )Nhighlightthickness)r   command)	copylistkeysr   __init__configgetvariabler   )selfZmasterr   valuevalueskwargsZ
kwargsCopy r   "lib/python3.6/idlelib/dynoption.pyr      s    
zDynOptionMenu.__init__Nc             C   sP   | d j dd x*|D ]"}| d j|t| j|| jd qW |rL| jj| dS )z
        clear and reload the menu with a new set of options.
        valueList - list of new options
        value - initial value to set the optionmenu's menubutton to
        Zmenur   end)Zlabelr   N)deleteZadd_commandr   r   r   set)r   Z	valueListr   itemr   r   r   SetMenu   s    

zDynOptionMenu.SetMenu)N)__name__
__module____qualname____doc__r   r   r   r   r   r   r   	   s   r   c                s   ddl m} || }|jd tt| j jddd  \}}|jd|d |d f  |j  t|}|j	d	 t
||d
ddd  j   fdd}t|d|d}|j  d S )Nr   )ToplevelzTets dynamic option menu+   z200x100+%d+%d      zOld option setZold1Zold2Zold3Zold4c                  s    j ddddgdd d S )NZnew1Znew2Znew3Znew4znew option set)r   )r   r   )dynr   r   update3   s    z _dyn_option_menu.<locals>.updatezChange option set)textr   )tkinterr   titlemapintZgeometrysplitZ	focus_setr   r   r   Zpackr   )parentr   topxyvarr%   Zbuttonr   )r$   r   _dyn_option_menu%   s    
 
r1   __main__)run)r   r	   r'   r   r   r   r   r   r1   r   Zidlelib.idle_test.htestr3   r   r   r   r   <module>   s   