3  f@s\dZddlZddlmZmZmZmZGdddeZddZe dkrXdd l m Z e edS) zd OptionMenu widget modified to allow dynamic menu reconfiguration and setting of highlightthickness N) OptionMenu_setit StringVarButtonc@s"eZdZdZddZdddZdS) DynOptionMenuzF unlike OptionMenu, our kwargs can include highlightthickness cOs`tj|}dt|jkr |d=tj||||f|||j|jdd||_|jd|_dS)Nhighlightthickness)rcommand) copylistkeysr__init__configgetvariabler)selfZmasterrvaluevalueskwargsZ kwargsCopyr6/opt/alt/python36/lib64/python3.6/idlelib/dynoption.pyr s zDynOptionMenu.__init__NcCsP|djddx*|D]"}|dj|t|j||jdqW|rL|jj|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 Zmenurend)ZlabelrN)deleteZ add_commandrrrset)rZ valueListritemrrrSetMenus   zDynOptionMenu.SetMenu)N)__name__ __module__ __qualname____doc__r rrrrrr s rcsddlm}||}|jdtt|jjddd\}}|jd|d|df|jt|}|j d t ||d d d d j fdd}t |d|d}|j dS)Nr)ToplevelzTets dynamic option menu+z 200x100+%d+%dzOld option setZold1Zold2Zold3Zold4csjddddgdddS)NZnew1Znew2Znew3Znew4znew option set)r)rr)dynrrupdate3sz _dyn_option_menu..updatezChange option set)textr) tkinterrtitlemapintZgeometrysplitZ focus_setrrrZpackr)parentrtopxyvarr%Zbuttonr)r$r_dyn_option_menu%s     r1__main__)run) rr r'rrrrrr1rZidlelib.idle_test.htestr3rrrrs