# Not Based on iwidgets version.
class ComboBoxDialog(Pmw
.Dialog
):
# Dialog window with simple combobox.
# Dialog window displaying a list and entry field and requesting
# the user to make a selection or enter a value
def __init__(self
, parent
= None, **kw
):
# Define the megawidget options.
('borderx', 10, INITOPT
),
('bordery', 10, INITOPT
),
self
.defineoptions(kw
, optiondefs
)
# Initialise the base class (after defining the options).
Pmw
.Dialog
.__init
__(self
, parent
)
interior
= self
.interior()
('listbox', 'combobox_listbox'),
('scrolledlist', 'combobox_scrolledlist'),
('entry', 'combobox_entry'),
('label', 'combobox_label'),
self
._combobox
= self
.createcomponent('combobox',
Pmw
.ComboBox
, (interior
,),
scrolledlist_dblclickcommand
= self
.invoke
,
self
._combobox
.pack(side
='top', expand
='true', fill
='both',
padx
= self
['borderx'], pady
= self
['bordery'])
if not kw
.has_key('activatecommand'):
# Whenever this dialog is activated, set the focus to the
# ComboBox's listbox widget.
listbox
= self
.component('listbox')
self
.configure(activatecommand
= listbox
.focus_set
)
# Check keywords and initialise options.
# Need to explicitly forward this to override the stupid
# (grid_)size method inherited from Tkinter.Toplevel.Grid.
return self
._combobox
.size()
# Need to explicitly forward this to override the stupid
# (grid_)bbox method inherited from Tkinter.Toplevel.Grid.
return self
._combobox
.bbox(index
)
Pmw
.forwardmethods(ComboBoxDialog
, Pmw
.ComboBox
, '_combobox')