7 class SourceSelector(object):
9 def __init__(self, player, store):
13 self._errorBanner = banners.StackingBanner()
15 self._radioButton = self._create_button("radio", "Radio")
16 self._radioWrapper = gtk.VBox()
17 self._radioWrapper.pack_start(self._radioButton, False, True)
18 self._conferenceButton = self._create_button("conferences", "Conferences")
19 self._conferenceWrapper = gtk.VBox()
20 self._conferenceWrapper.pack_start(self._conferenceButton, False, True)
21 self._magazineButton = self._create_button("magazines", "Magazines")
22 self._magazineWrapper = gtk.VBox()
23 self._magazineWrapper.pack_start(self._magazineButton, False, True)
24 self._scriptureButton = self._create_button("scriptures", "Scriptures")
25 self._scriptureWrapper = gtk.VBox()
26 self._scriptureWrapper.pack_start(self._scriptureButton, False, True)
28 self._buttonLayout = gtk.VBox(True, 5)
29 self._buttonLayout.set_property("border-width", 5)
30 self._buttonLayout.pack_start(self._radioWrapper, True, True)
31 self._buttonLayout.pack_start(self._conferenceWrapper, True, True)
32 self._buttonLayout.pack_start(self._magazineWrapper, True, True)
33 self._buttonLayout.pack_start(self._scriptureWrapper, True, True)
35 self._playcontrol = playcontrol.PlayControl(player, store)
37 self._layout = gtk.VBox()
38 self._layout.pack_start(self._errorBanner.toplevel, False, True)
39 self._layout.pack_start(self._buttonLayout, True, True)
40 self._layout.pack_start(self._playcontrol.toplevel, False, True)
42 self._layout.show_all()
43 self._errorBanner.toplevel.hide()
44 self._playcontrol.toplevel.hide()
50 def _create_button(self, icon, message):
51 image = self._store.get_image_from_store(self._store.STORE_LOOKUP[icon])
54 label.set_text(message)
56 buttonLayout = gtk.HBox(False, 5)
57 buttonLayout.pack_start(image, False, False)
58 buttonLayout.pack_start(label, False, True)
60 button.add(buttonLayout)