B � f��@s\dZddlZddlmZmZmZmZGdd�de�Zdd�Ze dkrXdd l m Z e e�dS) zd OptionMenu widget modified to allow dynamic menu reconfiguration and setting of highlightthickness �N)� OptionMenu�_setit� StringVar�Buttonc@s"eZdZdZdd�Zddd�ZdS)� DynOptionMenuzF unlike OptionMenu, our kwargs can include highlightthickness cOs`t�|�}dt|���kr |d=tj||||f|�|�|j|�d�d�||_|�d�|_dS)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__NcCsP|d�dd�x*|D]"}|dj|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)ZlabelrN)�deleteZ add_commandrrr�set)rZ valueListr�itemrrr�SetMenus   zDynOptionMenu.SetMenu)N)�__name__� __module__� __qualname__�__doc__r rrrrrr s rcs�ddlm}||�}|�d�tt|���d�dd��\}}|�d|d|df�|��t|�}|� d �t ||d d d d ���� ��fdd�}t |d|d�}|� �dS)Nr)�ToplevelzTets dynamic option menu�+�z 200x100+%d+%d���zOld option setZold1Zold2Zold3Zold4cs�jddddgdd�dS)NZnew1Znew2Znew3Znew4znew option set)r)rr)�dynrr�update3sz _dyn_option_menu..updatezChange option set)�textr) �tkinterr�title�map�intZgeometry�splitZ focus_setrrrZpackr)�parentr�top�x�y�varr$Zbuttonr)r#r�_dyn_option_menu%s     r0�__main__)�run) rr r&rrrrrr0rZidlelib.idle_test.htestr2rrrr�s