def __init__(self, parent, tracks): cur = player.getAudioTrack() # Creates an audio track selector dialogue. dlg = gtk.Dialog(_("Select Tracks"), parent, buttons = (gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE)) # Create the label. label = gtk.Label(_("Audio:")) label.set_alignment(0, 0.5) dlg.vbox.pack_start(label) # For all the tracks, create a radio button. group = gtk.RadioButton() buttons = [] for x in range(len(tracks)): button = gtk.RadioButton(group, '%d. %s' % (x, tracks[x])) button.connect('toggled', self.buttonToggled, x) dlg.vbox.pack_start(button) buttons.append(button) # Set the current active button to active. buttons[cur].set_active(True) # Show all the dialogue and run it. dlg.show_all() dlg.run() dlg.destroy()
def buttonToggled(self, widget, track): ## When a button is toggled. if (player.getAudioTrack() != track): # If the current track differs to the selected one. # Get the current time, change the track, seek to 0 to activate # the new track, then seek back to the original position. # (Just changing the track didn't work) t = player.getPlayed() player.setAudioTrack(track) player.seek(0) player.seek(t)