B ;w2NZ@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`t|}dt|kr |d=tj||||f|||j|dd||_|d|_dS)Nhighlightthickness)rcommand) copylistkeysr__init__Zconfiggetvariabler)selfZmasterrvaluevalueskwargsZ kwargsCopyr6/opt/alt/python37/lib64/python3.7/idlelib/dynoption.pyr s zDynOptionMenu.__init__NcCsP|dddx*|D]"}|dj|t|j||jdqW|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 Zmenurend)ZlabelrN)deleteZ add_commandrrrset)rZ valueListritemrrrSetMenus   zDynOptionMenu.SetMenu)N)__name__ __module__ __qualname____doc__r rrrrrr s rcsddlm}||}|dtt|ddd\}}|d|d|df|t|}| d t ||d d d d  fdd}t |d|d}| 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     r0__main__)run) rr r&rrrrrr0rZidlelib.idle_test.htestr2rrrrs