# Based on iwidgets2.2.0/messagedialog.itk code.
class MessageDialog(Pmw
.Dialog
):
def __init__(self
, parent
= None, **kw
):
# Define the megawidget options.
('borderx', 20, INITOPT
),
('bordery', 20, INITOPT
),
('iconmargin', 20, INITOPT
),
('iconpos', None, INITOPT
),
self
.defineoptions(kw
, optiondefs
)
# Initialise the base class (after defining the options).
Pmw
.Dialog
.__init
__(self
, parent
)
interior
= self
.interior()
self
._message
= self
.createcomponent('message',
Tkinter
.Label
, (interior
,))
iconpos
= self
['iconpos']
iconmargin
= self
['iconmargin']
borderx
= self
['borderx']
bordery
= self
['bordery']
self
._message
.grid(column
= 1, row
= 1)
self
._icon
= self
.createcomponent('icon',
Tkinter
.Label
, (interior
,))
if iconpos
not in 'nsew':
'bad iconpos option "%s": should be n, s, e, or w' \
self
._icon
.grid(column
= 1, row
= icon
)
self
._message
.grid(column
= 1, row
= message
)
interior
.grid_rowconfigure(2, minsize
= iconmargin
)
self
._icon
.grid(column
= icon
, row
= 1)
self
._message
.grid(column
= message
, row
= 1)
interior
.grid_columnconfigure(2, minsize
= iconmargin
)
interior
.grid_columnconfigure(0, minsize
= borderx
)
interior
.grid_rowconfigure(0, minsize
= bordery
)
interior
.grid_columnconfigure(border_right
, minsize
= borderx
)
interior
.grid_rowconfigure(border_bottom
, minsize
= bordery
)
# Check keywords and initialise options.