7 class Dialog(gtk
.Dialog
):
11 gtk
.Dialog
.__init
__(self
)
12 self
.set_has_separator(False)
13 self
.set_position(gtk
.WIN_POS_CENTER
)
15 def add_mixed_button(self
, message
, stock
, response
):
16 button
= MixedButton(message
, stock
)
17 button
.set_flags(gtk
.CAN_DEFAULT
)
19 self
.add_action_widget(button
, response
)
23 def alert(parent
, message
, type = gtk
.MESSAGE_ERROR
):
24 if type == gtk
.MESSAGE_ERROR
:
28 box
= gtk
.MessageDialog(parent
, gtk
.DIALOG_DESTROY_WITH_PARENT
,
31 box
.set_position(gtk
.WIN_POS_CENTER
)
34 box
.connect('response', resp
)
37 def MixedButton(message
, stock
, x_align
= 0.5):
41 label
.set_text_with_mnemonic(message
)
42 label
.set_mnemonic_widget(button
)
44 image
= gtk
.image_new_from_stock(stock
, gtk
.ICON_SIZE_BUTTON
)
45 box
= gtk
.HBox(False, 2)
46 align
= gtk
.Alignment(x_align
, 0.5, 0.0, 0.0)
48 box
.pack_start(image
, False, False, 0)
49 box
.pack_end(label
, False, False, 0)
55 def frame(page
, title
, content
, expand
= False):
58 label
.set_markup('<b>%s</b>' % title
)
59 frame
.set_label_widget(label
)
60 frame
.set_shadow_type(gtk
.SHADOW_NONE
)
61 if type(content
) in (str, unicode):
62 content
= gtk
.Label(content
)
63 content
.set_alignment(0, 0.5)
64 content
.set_selectable(True)
66 if hasattr(content
, 'set_padding'):
67 content
.set_padding(8, 4)
69 content
.set_border_width(8)
70 page
.pack_start(frame
, expand
, True, 0)