class OrderShuffleControls(FControl, gtk.HBox, LoadSave): def __init__(self, controls): gtk.HBox.__init__(self, False) self.rlabel = EventLabel(text="S", func=lambda * a: self.on_random()) self.olabel = EventLabel(text="R", func=lambda * a: self.on_order()) self.pack_start(self.rlabel) self.pack_start(gtk.Label(" ")) self.pack_start(self.olabel) self.pack_start(gtk.SeparatorToolItem()) def update(self): if FC().is_order_random: self.rlabel.set_markup("<b>S</b>") self.rlabel.set_tooltip_text(_("Shuffle on")) else: self.rlabel.set_markup("S") self.rlabel.set_tooltip_text(_("Shuffle off")) if FC().repeat_state == const.REPEAT_ALL: self.olabel.set_markup("<b>R</b>") self.olabel.set_tooltip_text(_("Repeat all")) elif FC().repeat_state == const.REPEAT_SINGLE: self.olabel.set_markup("<b>R1</b>") self.olabel.set_tooltip_text(_("Repeat single")) else: self.olabel.set_markup("R") self.olabel.set_tooltip_text(_("Repeat off")) def on_random(self, *a): FC().is_order_random = not FC().is_order_random self.update() def on_order(self): if FC().repeat_state == const.REPEAT_ALL: FC().repeat_state = const.REPEAT_SINGLE elif FC().repeat_state == const.REPEAT_SINGLE: FC().repeat_state = const.REPEAT_NO elif FC().repeat_state == const.REPEAT_NO: FC().repeat_state = const.REPEAT_ALL self.update() def on_load(self): self.update() def on_save(self): pass
class OrderShuffleControls(FControl, Gtk.HBox, LoadSave): def __init__(self, controls): Gtk.HBox.__init__(self, False) self.toggle_buttons = OrderShuffleControls_ZAVLAB(controls) self.rlabel = EventLabel(text="S", func=lambda * a: self.on_random()) self.olabel = EventLabel(text="R", func=lambda * a: self.on_order()) self.pack_start(self.rlabel, False, False, 0) self.pack_start(Gtk.Label(" "), False, False, 0) self.pack_start(self.olabel, False, False, 0) self.pack_start(self.toggle_buttons, False, False, 0) self.pack_start(Gtk.SeparatorToolItem.new(), False, False, 0) def update(self): if FC().is_order_random: self.rlabel.set_markup("<b>S</b>") self.rlabel.set_tooltip_text(_("Shuffle on")) else: self.rlabel.set_markup("S") self.rlabel.set_tooltip_text(_("Shuffle off")) if FC().repeat_state == const.REPEAT_ALL: self.olabel.set_markup("<b>R</b>") self.olabel.set_tooltip_text(_("Repeat all")) elif FC().repeat_state == const.REPEAT_SINGLE: self.olabel.set_markup("<b>R1</b>") self.olabel.set_tooltip_text(_("Repeat single")) else: self.olabel.set_markup("R") self.olabel.set_tooltip_text(_("Repeat off")) def on_random(self, *a): FC().is_order_random = not FC().is_order_random self.update() def on_order(self): if FC().repeat_state == const.REPEAT_ALL: FC().repeat_state = const.REPEAT_SINGLE elif FC().repeat_state == const.REPEAT_SINGLE: FC().repeat_state = const.REPEAT_NO elif FC().repeat_state == const.REPEAT_NO: FC().repeat_state = const.REPEAT_ALL self.update() def on_load(self): if FC().order_repeat_style == "ToggleButtons": self.toggle_buttons.on_load() self.olabel.hide() self.rlabel.hide() self.toggle_buttons.show() else: self.update() self.toggle_buttons.hide() self.olabel.show() self.rlabel.show() def on_save(self): pass
class OrderShuffleControls(FControl, Gtk.Box, LoadSave): def __init__(self, controls): Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL, spacing=0) self.toggle_buttons = OrderShuffleControls_ZAVLAB(controls) self.rlabel = EventLabel(text="S", func=lambda *a: self.on_random()) self.olabel = EventLabel(text="R", func=lambda *a: self.on_order()) self.pack_start(self.rlabel, False, False, 0) self.pack_start(Gtk.Label.new(" "), False, False, 0) self.pack_start(self.olabel, False, False, 0) self.pack_start(self.toggle_buttons, False, False, 0) self.pack_start(Gtk.SeparatorToolItem.new(), False, False, 0) def update(self): if FC().is_order_random: self.rlabel.set_markup("<b>S</b>") self.rlabel.set_tooltip_text(_("Shuffle on")) else: self.rlabel.set_markup("S") self.rlabel.set_tooltip_text(_("Shuffle off")) if FC().repeat_state == const.REPEAT_ALL: self.olabel.set_markup("<b>R</b>") self.olabel.set_tooltip_text(_("Repeat all")) elif FC().repeat_state == const.REPEAT_SINGLE: self.olabel.set_markup("<b>R1</b>") self.olabel.set_tooltip_text(_("Repeat single")) else: self.olabel.set_markup("R") self.olabel.set_tooltip_text(_("Repeat off")) def on_random(self, *a): FC().is_order_random = not FC().is_order_random self.update() def on_order(self): if FC().repeat_state == const.REPEAT_ALL: FC().repeat_state = const.REPEAT_SINGLE elif FC().repeat_state == const.REPEAT_SINGLE: FC().repeat_state = const.REPEAT_NO elif FC().repeat_state == const.REPEAT_NO: FC().repeat_state = const.REPEAT_ALL self.update() def on_load(self): if FC().order_repeat_style == "ToggleButtons": self.toggle_buttons.on_load() self.olabel.hide() self.rlabel.hide() self.toggle_buttons.show() else: self.update() self.toggle_buttons.hide() self.olabel.show() self.rlabel.show() def on_save(self): pass