ยปCore Development>Code coverage>Lib/idlelib/dynOptionMenuWidget.py

Python code coverage for Lib/idlelib/dynOptionMenuWidget.py

#countcontent
1n/a"""
2n/aOptionMenu widget modified to allow dynamic menu reconfiguration
3n/aand setting of highlightthickness
4n/a"""
5n/afrom tkinter import OptionMenu
6n/afrom tkinter import _setit
7n/aimport copy
8n/a
9n/aclass DynOptionMenu(OptionMenu):
10n/a """
11n/a unlike OptionMenu, our kwargs can include highlightthickness
12n/a """
13n/a def __init__(self, master, variable, value, *values, **kwargs):
14n/a #get a copy of kwargs before OptionMenu.__init__ munges them
15n/a kwargsCopy=copy.copy(kwargs)
16n/a if 'highlightthickness' in list(kwargs.keys()):
17n/a del(kwargs['highlightthickness'])
18n/a OptionMenu.__init__(self, master, variable, value, *values, **kwargs)
19n/a self.config(highlightthickness=kwargsCopy.get('highlightthickness'))
20n/a #self.menu=self['menu']
21n/a self.variable=variable
22n/a self.command=kwargs.get('command')
23n/a
24n/a def SetMenu(self,valueList,value=None):
25n/a """
26n/a clear and reload the menu with a new set of options.
27n/a valueList - list of new options
28n/a value - initial value to set the optionmenu's menubutton to
29n/a """
30n/a self['menu'].delete(0,'end')
31n/a for item in valueList:
32n/a self['menu'].add_command(label=item,
33n/a command=_setit(self.variable,item,self.command))
34n/a if value:
35n/a self.variable.set(value)