27
27
class SpinnerView(Gtk.Viewport):
28
28
"""A panel that contains a spinner with an optional legend.
30
The spinner is preset to a standard size and centered. An optional
31
label_text value can be specified for display with the spinner.
30
The spinner can be specified in one of two sizes, and defaults to
31
the larger size. An optional label_text value can be specified for
32
display with the spinner.
35
# define spinner size options
35
def __init__(self, label_text=""):
39
def __init__(self, label_text="", spinner_size=LARGE):
36
40
Gtk.Viewport.__init__(self)
37
41
self.spinner = Gtk.Spinner()
38
self.spinner.set_size_request(48, 48)
42
if spinner_size not in (self.SMALL, self.LARGE):
43
raise ValueError('The value of spinner_size must be '
44
'one of SpinnerView.SMALL or SpinnerView.LARGE')
45
if spinner_size == self.LARGE:
46
self.spinner.set_size_request(48, 48)
48
self.spinner.set_size_request(24, 24)
40
50
# use a table for the spinner (otherwise the spinner is massive!)
41
51
spinner_table = Gtk.Table(3, 3, False)
78
88
SPINNER_PAGE) = range(2)
80
def __init__(self, content, msg=""):
90
def __init__(self, content, msg="", spinner_size=SpinnerView.LARGE):
81
91
Gtk.Notebook.__init__(self)
82
92
self._last_timeout_id = None
83
self.spinner_view = SpinnerView(msg)
93
self.spinner_view = SpinnerView(msg, spinner_size)
84
94
# its critical to show() the spinner early as otherwise
85
95
# gtk_notebook_set_active_page() will not switch to it
86
96
self.spinner_view.show()