Example #1
0
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()