
    d                     v    d Z ddlmZmZmZmZ  G d de          Zd Zedk    rddl	m
Z
  e
e           dS dS )	zd
OptionMenu widget modified to allow dynamic menu reconfiguration
and setting of highlightthickness
    )
OptionMenu_setit	StringVarButtonc                        e Zd ZdZd ZddZdS )DynOptionMenuzmAdd SetMenu and highlightthickness to OptionMenu.

    Highlightthickness adds space around menu button.
    c                     |                     dd           }t          j        | |||g|R i | || d<   || _        |                    d          | _        d S )Nhighlightthicknesscommand)popr   __init__variablegetr   )selfmasterr   valuevalueskwargsr
   s          #  /croot/python-split_1694437901252/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/idlelib/dynoption.pyr   zDynOptionMenu.__init__   sg    #ZZ(<dCCD&(EMFMMMfMMM%7!" zz),,    Nc           	          | d                              dd           |D ]8}| d                             |t          | j        || j                             9|r| j                            |           dS 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
        menur   end)labelr   N)deleteadd_commandr   r   r   set)r   	valueListr   items       r   SetMenuzDynOptionMenu.SetMenu   s     	VAe$$$ 	E 	EDL$$4"4=dlCC % E E E E 	%Me$$$$$	% 	%r   )N)__name__
__module____qualname____doc__r   r     r   r   r   r      sA         - - -% % % % % %r   r   c           	      8   ddl m}  ||           }|                    d           t          t          |                                                     d          dd                    \  }}|                    d|dz   |dz   fz             |                                 t          |          }|	                    d	           t          ||d
dddd                                           fd}t          |d|          }|                                 d S )Nr   )ToplevelzTest dynamic option menu+   z200x100+%d+%d      zOld option setold1old2old3old4   )r
   c                  :                          g dd           d S )N)new1new2new3new4znew option set)r   )r    )dyns   r   updatez _dyn_option_menu.<locals>.update/   s'    1119IJJJJJr   zChange option set)textr   )tkinterr'   titlemapintgeometrysplit	focus_setr   r   r   packr   )	parentr'   topxyvarr7   buttonr6   s	           @r   _dyn_option_menurG       s.         
(6

CII()))sFOO%%++C00455DAqLLAGQW#55666MMOOO
C..CGG
S&v+,. . .CHHJJJK K K K KC16BBBF
KKMMMMMr   __main__)runN)r$   r9   r   r   r   r   r   rG   r!   idlelib.idle_test.htestrI   r%   r   r   <module>rK      s     : 9 9 9 9 9 9 9 9 9 9 9% % % % %J % % %2  ( z++++++C r   