class PlayerList(gtk.Frame): __gsignals__ = { 'accion': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT, gobject.TYPE_STRING, gobject.TYPE_PYOBJECT))} def __init__(self): gtk.Frame.__init__(self) self.modify_bg(gtk.STATE_NORMAL, get_colors("window")) self.set_size_request(180, -1) vbox = gtk.VBox() self.toolbar = ToolbarList() vbox.pack_start(self.toolbar, False, False, 0) scroll = gtk.ScrolledWindow() scroll.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) vbox1 = gtk.VBox() scroll.add_with_viewport(vbox1) scroll.get_child().modify_bg(gtk.STATE_NORMAL, get_colors("window")) self.balance = BalanceWidget() vbox1.pack_start(self.balance, False, False, 0) self.lista = Lista() vbox1.pack_start(self.lista, False, False, 0) vbox.pack_start(scroll, True, True, 0) self.add(vbox) self.toolbar.connect("configview", self.__show_config) self.toolbar.connect("load", self.__load_files) self.lista.connect("button-press-event", self.__click_en_lista) self.connect("realize", self.__realized) self.show_all() def __show_config(self, widget, valor): self.toolbar.show() if valor: self.lista.hide() self.balance.show() else: self.balance.hide() self.lista.show() def __realized(self, widget): self.balance.hide() self.toolbar.show() self.lista.show() def __click_en_lista(self, widget, event): boton = event.button pos = (event.x, event.y) tiempo = event.time path, columna, xdefondo, ydefondo = (None, None, None, None) try: path, columna, xdefondo, ydefondo = widget.get_path_at_pos( int(pos[0]), int(pos[1])) except: return if boton == 1: return elif boton == 3: menu = MenuList( widget, boton, pos, tiempo, path, widget.get_model()) menu.connect('accion', self.__set_accion) gtk.Menu.popup(menu, None, None, None, boton, tiempo) elif boton == 2: return def __set_accion(self, widget, lista, accion, _iter): self.emit("accion", lista, accion, _iter) def __load_files(self, widget, items, tipo): if tipo == "load": self.lista.limpiar() self.toolbar.clear.set_sensitive(False) if items: self.lista.agregar_items(items) self.toolbar.clear.set_sensitive(True) def set_video(self, widget, valor): self.toolbar.config.set_sensitive(valor) if not valor and self.balance.get_visible(): self.toolbar.config.set_active(valor) self.balance.hide() self.lista.show()