B
� f� � @ s\ d Z ddlZddlmZmZmZmZ G dd� de�Zdd� Ze dkrXdd l
mZ ee� dS )
zd
OptionMenu widget modified to allow dynamic menu reconfiguration
and setting of highlightthickness
� N)�
OptionMenu�_setit� StringVar�Buttonc @ s" e Zd ZdZdd� Zddd�ZdS )�
DynOptionMenuzF
unlike OptionMenu, our kwargs can include highlightthickness
c O s` t � |�}dt|�� �kr |d= tj| |||f|�|� | j|�d�d� || _|�d�| _d S )N�highlightthickness)r �command) �copy�list�keysr �__init__Zconfig�get�variabler )�selfZmasterr �value�values�kwargsZ
kwargsCopy� r �6/opt/alt/python37/lib64/python3.7/idlelib/dynoption.pyr
s
zDynOptionMenu.__init__Nc C sP | d � dd� x*|D ]"}| d j|t| j|| j�d� qW |rL| j�|� dS )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
Zmenur �end)Zlabelr N)�deleteZadd_commandr r r �set)r Z valueListr �itemr r r �SetMenu s
zDynOptionMenu.SetMenu)N)�__name__�
__module__�__qualname__�__doc__r r r r r r r s r c s� ddl m} || �}|�d� tt| �� �d�dd � �\}}|�d|d |d f � |�� t|�}|� d � t
||d
ddd
�� � �� � fdd�}t|d|d�}|�� d S )Nr )�ToplevelzTets dynamic option menu�+� z
200x100+%d+%d�� � zOld option setZold1Zold2Zold3Zold4c s � j ddddgdd� d S )NZnew1Znew2Znew3Znew4znew option set)r )r r )�dynr r �update3 s z _dyn_option_menu.