53
53
a panel that contains a spinner preset to a standard size and centered
54
54
an optional label_text value can be specified for display with the spinner
56
def __init__(self, label_text=None):
56
def __init__(self, label_text=""):
57
57
gtk.Viewport.__init__(self)
58
58
self.spinner = Spinner()
59
59
self.spinner.set_size_request(48, 48)
61
61
# use a table for the spinner (otherwise the spinner is massive!)
62
62
spinner_table = gtk.Table(3, 3, False)
64
spinner_label = gtk.Label()
65
spinner_label.set_markup('<big>%s</big>' % label_text)
66
spinner_vbox = gtk.VBox()
67
spinner_vbox.pack_start(self.spinner, expand=False)
68
spinner_vbox.pack_start(spinner_label, expand=True, padding=10)
69
spinner_table.attach(spinner_vbox, 1, 2, 1, 2, gtk.EXPAND, gtk.EXPAND)
71
spinner_table.attach(self.spinner, 1, 2, 1, 2, gtk.EXPAND, gtk.EXPAND)
63
self.spinner_label = gtk.Label()
64
self.spinner_label.set_markup('<big>%s</big>' % label_text)
65
spinner_vbox = gtk.VBox()
66
spinner_vbox.pack_start(self.spinner, expand=False)
67
spinner_vbox.pack_start(self.spinner_label, expand=True, padding=10)
68
spinner_table.attach(spinner_vbox, 1, 2, 1, 2, gtk.EXPAND, gtk.EXPAND)
73
70
self.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(1.0, 1.0, 1.0))
74
71
self.add(spinner_table)
88
85
self.spinner.stop()
89
86
self.spinner.hide()
88
def set_text(self, spinner_text = ""):
90
useful for adding/removing/changing the label text after the spinner instance has been created
92
self.spinner_label.set_markup('<big>%s</big>' % spinner_text)
91
94
if __name__ == "__main__":
92
spinner_view = SpinnerView(label_text="Connecting to payment service...")
95
spinner_view = SpinnerView()
93
96
spinner_view.start()
95
98
window = gtk.Window()
96
99
window.add(spinner_view)
97
100
window.set_size_request(600, 500)
98
101
window.set_position(gtk.WIN_POS_CENTER)
100
103
window.connect('destroy', gtk.main_quit)
105
spinner_view.set_text("Loading...")