def __init__(self):
     
     Gtk.Toolbar.__init__(self)
     
     self.insert(get_separador(draw = False,
         ancho = 3, expand = False), -1)
     
     imagen = Gtk.Image()
     icono = os.path.join(
         JAMediaObjectsPath,
         "Iconos",
         "JAMediaTerminal.svg")
         
     pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(icono,
         -1, get_pixels(1.0))
     imagen.set_from_pixbuf(pixbuf)
     imagen.show()
     item = Gtk.ToolItem()
     item.add(imagen)
     self.insert(item, -1)
     
     self.insert(get_separador(draw = False,
         ancho = 0, expand = True), -1)
     
     ### Ayuda.
     archivo = os.path.join(
         JAMediaObjectsPath,
         "Iconos",
         "activity-help.svg")
         
     boton = get_boton(archivo,
         flip = False,
         pixels = get_pixels(1.0))
         
     boton.set_tooltip_text("Ayuda")
     boton.connect("clicked", self.__emit_help)
     self.insert(boton, -1)
     
     ### Salir.
     archivo = os.path.join(
         JAMediaObjectsPath,
         "Iconos",
         "button-cancel.svg")
         
     boton = get_boton(archivo,
         flip = False,
         pixels = get_pixels(1.0))
         
     boton.set_tooltip_text("Salir")
     boton.connect("clicked", self.__emit_salir)
     self.insert(boton, -1)
     
     self.insert(get_separador(draw = False,
         ancho = 3, expand = False), -1)
     
     self.show_all()
    def import_modulo(self, paquete, modulo):
        """
        Crea una lengüeta para el módulo que se cargará.
        """

        if paquete == "python-gi" or paquete == "python" or \
            paquete == "Otros":

            hbox = Gtk.HBox()
            label = Gtk.Label(modulo)

            label.modify_fg(0, Gdk.Color(0, 0, 0))

            boton = get_boton(os.path.join(JAMediaObjectsPath, "Iconos",
                                           "button-cancel.svg"),
                              pixels=get_pixels(0.5),
                              tooltip_text="Cerrar")

            hbox.pack_start(label, False, False, 0)
            hbox.pack_start(boton, False, False, 0)

            introspectionwidget = IntrospectionWidget(paquete, modulo)
            self.append_page(introspectionwidget, hbox)

            label.show()
            boton.show()
            self.show_all()

            boton.connect("clicked", self.__cerrar)

            self.set_current_page(-1)
示例#3
0
    def set_playing(self):

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "media-playback-pause.svg")
        pixel = get_pixels(1)
        pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(archivo, pixel, pixel)
        img = self.botonplay.get_children()[0].get_children()[0].get_children()[0]

        img.set_from_pixbuf(pixbuf)
示例#4
0
    def __init__(self, parent=None):

        Gtk.Dialog.__init__(self,
                            parent=parent,
                            flags=Gtk.DialogFlags.MODAL,
                            buttons=["Cerrar", Gtk.ResponseType.ACCEPT])

        self.set_border_width(15)

        tabla1 = Gtk.Table(columns=5, rows=2, homogeneous=False)

        vbox = Gtk.HBox()
        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "play.svg")
        self.anterior = get_boton(archivo,
                                  flip=True,
                                  pixels=get_pixels(0.8),
                                  tooltip_text="Anterior")
        self.anterior.connect("clicked", self.__switch)
        self.anterior.show()
        vbox.pack_start(self.anterior, False, False, 0)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "play.svg")
        self.siguiente = get_boton(archivo,
                                   pixels=get_pixels(0.8),
                                   tooltip_text="Siguiente")
        self.siguiente.connect("clicked", self.__switch)
        self.siguiente.show()
        vbox.pack_end(self.siguiente, False, False, 0)

        tabla1.attach_defaults(vbox, 0, 5, 0, 1)

        self.helps = []

        #for x in range(1, 2):
        #    help = Gtk.Image()
        #    help.set_from_file(
        #        os.path.join(JAMediaObjectsPath,
        #            "Iconos", "JAMedia-help%s.png" % x))
        #    tabla1.attach_defaults(help, 0, 5, 1, 2)

        #    self.helps.append(help)

        self.vbox.pack_start(tabla1, True, True, 0)
        self.vbox.show_all()

        self.__switch(None)
示例#5
0
    def __click_efecto(self, widget, nombre_efecto):
        """
        Recibe el nombre del efecto sobre el que
        se ha hecho click y decide si debe agregarse
        al pipe de JAMedia.
        """

        self.get_toplevel().set_sensitive(False)

        self.__cancel_toolbars_flotantes()

        agregar = False

        if self.player.efectos:
            if not nombre_efecto in self.player.efectos:
                agregar = True

        else:
            agregar = True

        if agregar:
            self.player.agregar_efecto(nombre_efecto)

            from Widgets import WidgetEfecto_en_Pipe

            # Agrega un widget a self.hbox_efectos_en_pipe
            botonefecto = WidgetEfecto_en_Pipe()
            botonefecto.set_tooltip(nombre_efecto)
            botonefecto.connect('clicked', self.__clicked_mini_efecto)
            lado = get_pixels(0.5)
            botonefecto.set_tamanio(lado, lado)

            archivo = os.path.join(JAMediaObjectsPath,
                "Iconos", 'configurar.png')

            pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(archivo, lado, lado)
            botonefecto.imagen.set_from_pixbuf(pixbuf)

            self.hbox_efectos_en_pipe.pack_start(botonefecto, False, False, 0)
            self.hbox_efectos_en_pipe.get_parent().get_parent(
                ).get_parent().show()

        else:
            self.player.quitar_efecto(nombre_efecto)

            self.widget_efectos.des_seleccionar_efecto(nombre_efecto)

            # Quitar el widget de self.hbox_efectos_en_pipe
            for efecto in self.hbox_efectos_en_pipe.get_children():
                if efecto.get_tooltip_text() == nombre_efecto:
                    efecto.destroy()
                    break

            if not self.hbox_efectos_en_pipe.get_children():
                self.hbox_efectos_en_pipe.get_parent().get_parent(
                    ).get_parent().hide()

        self.get_toplevel().set_sensitive(True)
示例#6
0
    def __init__(self):

        Gtk.Toolbar.__init__(self)

        self.intervalo = 3.0

        self.insert(get_separador(draw=False, ancho=0, expand=True), -1)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "list-remove.svg")
        boton = get_boton(archivo, flip=False, rotacion=None, pixels=get_pixels(0.8), tooltip_text="Disminuir")
        boton.connect("clicked", self.__menos_intervalo)
        self.insert(boton, -1)

        self.insert(get_separador(draw=False, ancho=3, expand=False), -1)

        item = Gtk.ToolItem()
        self.label = Gtk.Label("Cambiar Imagen cada: %s Segundos" % (self.intervalo))
        self.label.show()
        item.add(self.label)
        self.insert(item, -1)

        self.insert(get_separador(draw=False, ancho=3, expand=False), -1)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "gtk-add.svg")
        boton = get_boton(archivo, flip=False, rotacion=None, pixels=get_pixels(0.8), tooltip_text="Aumentar")
        boton.connect("clicked", self.__mas_intervalo)
        self.insert(boton, -1)

        self.insert(get_separador(draw=False, ancho=3, expand=False), -1)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "media-playback-start.svg")
        boton = get_boton(archivo, flip=False, rotacion=None, pixels=get_pixels(0.8), tooltip_text="Aceptar")
        boton.connect("clicked", self.__run_presentacion)
        self.insert(boton, -1)

        self.insert(get_separador(draw=False, ancho=0, expand=True), -1)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "button-cancel.svg")
        boton = get_boton(archivo, flip=False, rotacion=None, pixels=get_pixels(0.8), tooltip_text="Cancelar")
        boton.connect("clicked", self.__cancelar)
        self.insert(boton, -1)

        self.insert(get_separador(draw=False, ancho=3, expand=False), -1)

        self.show_all()
示例#7
0
    def __init__(self):

        Gtk.Toolbar.__init__(self)

        self.direccion = None
        self.modelo = None
        self.iter = None

        self.insert(get_separador(draw=False,
            ancho=0, expand=True), -1)

        archivo = os.path.join(JAMediaObjectsPath,
            "Iconos", "button-cancel.svg")
        boton = get_boton(archivo, flip=False,
            pixels=get_pixels(0.8))
        boton.set_tooltip_text("Cancelar")
        boton.connect("clicked", self.cancelar)
        self.insert(boton, -1)

        #self.insert(G.get_separador(draw = False,
        #    ancho = 3, expand = False), -1)

        item = Gtk.ToolItem()
        item.set_expand(True)
        self.label = Gtk.Label("")
        self.label.show()
        item.add(self.label)
        self.insert(item, -1)

        #self.insert(G.get_separador(draw = False,
        #    ancho = 3, expand = False), -1)

        archivo = os.path.join(JAMediaObjectsPath,
            "Iconos", "dialog-ok.svg")
        boton = get_boton(archivo, flip=False,
            pixels=get_pixels(0.8))
        boton.set_tooltip_text("Aceptar")
        boton.connect("clicked", self.emit_borrar)
        self.insert(boton, -1)

        self.insert(get_separador(draw=False,
            ancho=0, expand=True), -1)

        self.show_all()
示例#8
0
    def __Llenar_ListStore(self):

        self.get_toplevel().set_sensitive(False)

        import commands

        icono = os.path.join(ICONOS, "def.svg")
        pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
            icono, get_pixels(0.8), -1)
        self.get_model().append([pixbuf, 'Raiz', ROOT])

        icono = os.path.join(ICONOS, "stock-home.svg")
        pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
            icono, get_pixels(0.8), -1)
        self.get_model().append([pixbuf,
            commands.getoutput('whoami'), HOME])

        if describe_uri(ACTIVITIES):
            icono = os.path.join(ICONOS, "stock-home.svg")
            pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
                icono, get_pixels(0.8), -1)
            self.get_model().append([pixbuf, 'Actividades', ACTIVITIES])

        if describe_uri(JAMEDIA):
            icono = os.path.join(ICONOS, "JAMedia.svg")
            pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
                icono, get_pixels(0.8), -1)
            self.get_model().append([pixbuf, 'JAMediaDatos', JAMEDIA])

        if describe_uri(DIARIO):
            icono = os.path.join(ICONOS, "diario.svg")
            pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
                icono, get_pixels(0.8), -1)
            self.get_model().append([pixbuf, 'Diario', DIARIO])

        if describe_uri(LOGS):
            icono = os.path.join(ICONOS, "diario.svg")
            pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
                icono, get_pixels(0.8), -1)
            self.get_model().append([pixbuf, 'Logs', LOGS])

        icono = os.path.join(ICONOS, "drive-removable-media-usb.svg")
        pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
            icono, get_pixels(0.8), -1)

        unidades = self.demonio_unidades.get_unidades()

        for unidad in unidades.keys():
            dic = unidades.get(unidad, False)

            if dic:
                #label = dic.get('label', "")
                mount_path = dic.get('mount_path', "")

                self.get_model().append([
                    pixbuf, mount_path.split("/")[-1], mount_path])

        self.get_toplevel().set_sensitive(True)
示例#9
0
    def set_playing(self):

        archivo = os.path.join(JAMediaObjectsPath, "Iconos",
                               "media-playback-pause.svg")
        pixel = get_pixels(1)
        pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(archivo, pixel, pixel)
        img = self.botonplay.get_children()[0].get_children()[0].get_children(
        )[0]

        img.set_from_pixbuf(pixbuf)
    def __Llenar_ListStore(self):

        self.get_toplevel().set_sensitive(False)

        import commands

        icono = os.path.join(ICONOS, "def.svg")
        pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
            icono, get_pixels(0.8), -1)
        self.get_model().append([pixbuf, 'Raiz', ROOT])

        icono = os.path.join(ICONOS, "stock-home.svg")
        pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
            icono, get_pixels(0.8), -1)
        self.get_model().append([pixbuf, commands.getoutput('whoami'), HOME])

        if describe_uri(ACTIVITIES):
            icono = os.path.join(ICONOS, "stock-home.svg")
            pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
                icono, get_pixels(0.8), -1)
            self.get_model().append([pixbuf, 'Actividades', ACTIVITIES])

        if describe_uri(JAMEDIA):
            icono = os.path.join(ICONOS, "JAMedia.svg")
            pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
                icono, get_pixels(0.8), -1)
            self.get_model().append([pixbuf, 'JAMediaDatos', JAMEDIA])

        if describe_uri(DIARIO):
            icono = os.path.join(ICONOS, "diario.svg")
            pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
                icono, get_pixels(0.8), -1)
            self.get_model().append([pixbuf, 'Diario', DIARIO])

        if describe_uri(LOGS):
            icono = os.path.join(ICONOS, "diario.svg")
            pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
                icono, get_pixels(0.8), -1)
            self.get_model().append([pixbuf, 'Logs', LOGS])

        icono = os.path.join(ICONOS, "drive-removable-media-usb.svg")
        pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
            icono, get_pixels(0.8), -1)

        unidades = self.demonio_unidades.get_unidades()

        for unidad in unidades.keys():
            dic = unidades.get(unidad, False)

            if dic:
                #label = dic.get('label', "")
                mount_path = dic.get('mount_path', "")

                self.get_model().append(
                    [pixbuf, mount_path.split("/")[-1], mount_path])

        self.get_toplevel().set_sensitive(True)
示例#11
0
    def __get_widgets_colors(self):
        """
        Cuatro botones para seleccionar el color.
        """

        from JAMediaObjects.JAMediaWidgets import JAMediaButton

        color_widgets = gtk.HBox()

        white = JAMediaButton()
        white.connect('clicked', self.__set_color, 3)
        white.set_colores(colornormal=get_color("BLANCO"))
        white.set_tooltip('Blanco')

        red = JAMediaButton()
        red.connect('clicked', self.__set_color, 0)
        red.set_colores(colornormal=get_color("ROJO"))
        red.set_tooltip('Rojo')

        green = JAMediaButton()
        green.connect('clicked', self.__set_color, 1)
        green.set_colores(colornormal=get_color("VERDE"))
        green.set_tooltip('Verde')

        blue = JAMediaButton()
        blue.connect('clicked', self.__set_color, 2)
        blue.set_colores(colornormal=get_color("AZUL"))
        blue.set_tooltip('Azul')

        self.botones_colores = [
            white,
            red,
            green,
            blue]

        for button in self.botones_colores:
            button.set_tamanio(get_pixels(1.0), get_pixels(1.0))
            color_widgets.pack_start(button, True, True, 1)
            button.connect('clicked', self.__clicked_color)

        return color_widgets
示例#12
0
    def __get_widgets_modo(self):
        """
        Cuatro botones para seleccinar el modo.
        """

        from JAMediaObjects.JAMediaWidgets import JAMediaButton

        modo_widgets = Gtk.HBox()

        white = JAMediaButton()
        white.connect('clicked', self.__set_modo, 0)
        white.set_label(0)
        white.set_tooltip('normal')

        red = JAMediaButton()
        red.connect('clicked', self.__set_modo, 1)
        red.set_label(1)
        red.set_tooltip('strobe1')

        green = JAMediaButton()
        green.connect('clicked', self.__set_modo, 2)
        green.set_label(2)
        green.set_tooltip('strobe2')

        blue = JAMediaButton()
        blue.connect('clicked', self.__set_modo, 3)
        blue.set_label(3)
        blue.set_tooltip('trigger')

        self.botones_modo = [
            white,
            red,
            green,
            blue]

        for button in self.botones_modo:
            button.set_tamanio(get_pixels(1.0), get_pixels(1.0))
            modo_widgets.pack_start(button, True, True, 1)
            button.connect('clicked', self.__clicked_modo)

        return modo_widgets
示例#13
0
    def __get_widgets_colors(self):
        """
        Cuatro botones para seleccionar el color.
        """

        from JAMediaObjects.JAMediaWidgets import JAMediaButton

        color_widgets = Gtk.HBox()

        white = JAMediaButton()
        white.connect('clicked', self.__set_color, 3)
        white.set_colores(colornormal=get_color("BLANCO"))
        white.set_tooltip('Blanco')

        red = JAMediaButton()
        red.connect('clicked', self.__set_color, 0)
        red.set_colores(colornormal=get_color("ROJO"))
        red.set_tooltip('Rojo')

        green = JAMediaButton()
        green.connect('clicked', self.__set_color, 1)
        green.set_colores(colornormal=get_color("VERDE"))
        green.set_tooltip('Verde')

        blue = JAMediaButton()
        blue.connect('clicked', self.__set_color, 2)
        blue.set_colores(colornormal=get_color("AZUL"))
        blue.set_tooltip('Azul')

        self.botones_colores = [
            white,
            red,
            green,
            blue]

        for button in self.botones_colores:
            button.set_tamanio(get_pixels(1.0), get_pixels(1.0))
            color_widgets.pack_start(button, True, True, 1)
            button.connect('clicked', self.__clicked_color)

        return color_widgets
示例#14
0
    def __get_widgets_modo(self):
        """
        Cuatro botones para seleccinar el modo.
        """

        from JAMediaObjects.JAMediaWidgets import JAMediaButton

        modo_widgets = gtk.HBox()

        white = JAMediaButton()
        white.connect('clicked', self.__set_modo, 0)
        white.set_label(0)
        white.set_tooltip('normal')

        red = JAMediaButton()
        red.connect('clicked', self.__set_modo, 1)
        red.set_label(1)
        red.set_tooltip('strobe1')

        green = JAMediaButton()
        green.connect('clicked', self.__set_modo, 2)
        green.set_label(2)
        green.set_tooltip('strobe2')

        blue = JAMediaButton()
        blue.connect('clicked', self.__set_modo, 3)
        blue.set_label(3)
        blue.set_tooltip('trigger')

        self.botones_modo = [
            white,
            red,
            green,
            blue]

        for button in self.botones_modo:
            button.set_tamanio(get_pixels(1.0), get_pixels(1.0))
            modo_widgets.pack_start(button, True, True, 1)
            button.connect('clicked', self.__clicked_modo)

        return modo_widgets
示例#15
0
    def __init__(self, parent=None):

        Gtk.Dialog.__init__(
            self, parent=parent, flags=Gtk.DialogFlags.MODAL, buttons=["Cerrar", Gtk.ResponseType.ACCEPT]
        )

        self.set_border_width(15)

        tabla1 = Gtk.Table(columns=5, rows=2, homogeneous=False)

        vbox = Gtk.HBox()
        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "play.svg")
        self.anterior = get_boton(archivo, flip=True, pixels=get_pixels(0.8), tooltip_text="Anterior")
        self.anterior.connect("clicked", self.__switch)
        self.anterior.show()
        vbox.pack_start(self.anterior, False, False, 0)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "play.svg")
        self.siguiente = get_boton(archivo, pixels=get_pixels(0.8), tooltip_text="Siguiente")
        self.siguiente.connect("clicked", self.__switch)
        self.siguiente.show()
        vbox.pack_end(self.siguiente, False, False, 0)

        tabla1.attach_defaults(vbox, 0, 5, 0, 1)

        self.helps = []

        # for x in range(1, 2):
        #    help = Gtk.Image()
        #    help.set_from_file(
        #        os.path.join(JAMediaObjectsPath,
        #            "Iconos", "JAMedia-help%s.png" % x))
        #    tabla1.attach_defaults(help, 0, 5, 1, 2)

        #    self.helps.append(help)

        self.vbox.pack_start(tabla1, True, True, 0)
        self.vbox.show_all()

        self.__switch(None)
示例#16
0
    def __init__(self):

        Gtk.Toolbar.__init__(self)

        #self.modify_bg(0, Gdk.Color(0, 0, 0))

        self.insert(get_separador(draw=False,
            ancho=3, expand=False), -1)

        imagen = Gtk.Image()
        icono = os.path.join(ICONOS, "JAMediaExplorer.svg")
        pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(icono,
            -1, get_pixels(1.0))
        imagen.set_from_pixbuf(pixbuf)
        #imagen.modify_bg(0, Gdk.Color(0, 0, 0))
        imagen.show()
        item = Gtk.ToolItem()
        item.add(imagen)
        self.insert(item, -1)

        menu = Menu()
        item = Gtk.ToolItem()
        #item.set_size_request(100, -1)
        item.set_expand(True)
        item.add(menu)
        menu.connect('accion_ver', self.__re_emit_accion_ver)
        self.insert(item, -1)

        self.insert(get_separador(draw=False,
            ancho=0, expand=True), -1)

        archivo = os.path.join(ICONOS, "button-cancel.svg")
        boton = get_boton(archivo, flip=False,
            pixels=get_pixels(1))
        boton.set_tooltip_text("Salir")
        boton.connect("clicked", self.emit_salir)
        self.insert(boton, -1)

        self.show_all()
示例#17
0
    def __init__(self):

        Gtk.Toolbar.__init__(self)

        self.direccion = None
        self.modelo = None
        self.iter = None

        self.insert(get_separador(draw=False, ancho=0, expand=True), -1)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos",
                               "button-cancel.svg")
        boton = get_boton(archivo, flip=False, pixels=get_pixels(0.8))
        boton.set_tooltip_text("Cancelar")
        boton.connect("clicked", self.cancelar)
        self.insert(boton, -1)

        #self.insert(G.get_separador(draw = False,
        #    ancho = 3, expand = False), -1)

        item = Gtk.ToolItem()
        item.set_expand(True)
        self.label = Gtk.Label("")
        self.label.show()
        item.add(self.label)
        self.insert(item, -1)

        #self.insert(G.get_separador(draw = False,
        #    ancho = 3, expand = False), -1)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "dialog-ok.svg")
        boton = get_boton(archivo, flip=False, pixels=get_pixels(0.8))
        boton.set_tooltip_text("Aceptar")
        boton.connect("clicked", self.emit_borrar)
        self.insert(boton, -1)

        self.insert(get_separador(draw=False, ancho=0, expand=True), -1)

        self.show_all()
示例#18
0
    def add_leer(self, path):
        """
        Carga un Directorio y Agrega una Lengüeta para él.
        """

        directorios = Directorios()

        hbox = Gtk.HBox()

        texto = path
        if len(texto) > 15:
            texto = " . . . " + str(path[-15:])

        label = Gtk.Label(texto)

        boton = get_boton(
            os.path.join(icons, "button-cancel.svg"),
            pixels=get_pixels(0.5),
            tooltip_text="Cerrar")

        hbox.pack_start(label, False, False, 0)
        hbox.pack_start(boton, False, False, 0)

        scroll = Gtk.ScrolledWindow()
        scroll.set_policy(
            Gtk.PolicyType.AUTOMATIC,
            Gtk.PolicyType.AUTOMATIC)
        scroll.add(directorios)

        self.append_page(scroll, hbox)

        label.show()
        boton.show()
        self.show_all()

        directorios.connect('info', self.__emit_info)
        directorios.connect('borrar', self.__emit_borrar)
        directorios.connect('accion', self.__set_accion)
        directorios.connect('add-leer', self.__action_add_leer)

        directorios.load(path)

        boton.connect("clicked", self.__cerrar)

        self.set_current_page(-1)

        self.set_tab_reorderable(scroll, True)

        return False
示例#19
0
    def __init__(self):

        Gtk.Toolbar.__init__(self)

        #self.modify_bg(0, Gdk.Color(0, 0, 0))

        self.insert(get_separador(draw=False, ancho=3, expand=False), -1)

        imagen = Gtk.Image()
        icono = os.path.join(ICONOS, "JAMediaExplorer.svg")
        pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
            icono, -1, get_pixels(1.0))
        imagen.set_from_pixbuf(pixbuf)
        #imagen.modify_bg(0, Gdk.Color(0, 0, 0))
        imagen.show()
        item = Gtk.ToolItem()
        item.add(imagen)
        self.insert(item, -1)

        menu = Menu()
        item = Gtk.ToolItem()
        #item.set_size_request(100, -1)
        item.set_expand(True)
        item.add(menu)
        menu.connect('accion_ver', self.__re_emit_accion_ver)
        self.insert(item, -1)

        self.insert(get_separador(draw=False, ancho=0, expand=True), -1)

        archivo = os.path.join(ICONOS, "button-cancel.svg")
        boton = get_boton(archivo, flip=False, pixels=get_pixels(1))
        boton.set_tooltip_text("Salir")
        boton.connect("clicked", self.emit_salir)
        self.insert(boton, -1)

        self.show_all()
示例#20
0
    def add_leer(self, path):
        """
        Carga un Directorio y Agrega una Lengüeta para él.
        """

        directorios = Directorios()

        hbox = Gtk.HBox()

        texto = path
        if len(texto) > 15:
            texto = " . . . " + str(path[-15:])

        label = Gtk.Label(texto)

        boton = get_boton(os.path.join(icons, "button-cancel.svg"),
                          pixels=get_pixels(0.5),
                          tooltip_text="Cerrar")

        hbox.pack_start(label, False, False, 0)
        hbox.pack_start(boton, False, False, 0)

        scroll = Gtk.ScrolledWindow()
        scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
        scroll.add(directorios)

        self.append_page(scroll, hbox)

        label.show()
        boton.show()
        self.show_all()

        directorios.connect('info', self.__emit_info)
        directorios.connect('borrar', self.__emit_borrar)
        directorios.connect('accion', self.__set_accion)
        directorios.connect('add-leer', self.__action_add_leer)

        directorios.load(path)

        boton.connect("clicked", self.__cerrar)

        self.set_current_page(-1)

        self.set_tab_reorderable(scroll, True)

        return False
示例#21
0
    def __update_unidades2(self, lista):
        """
        Actualizar lista de unidades.
        """

        model = self.get_model()
        item = model.get_iter_first()

        mounts = []
        remove_explorers = []
        while item:
            # Remover Unidades desmontadas.
            item_remove = False

            if not os.path.exists(model.get_value(item, 2)):
                remove_explorers.append(model.get_value(item, 2))
                item_remove = item

            else:
                mounts.append(model.get_value(item, 1))

            item = model.iter_next(item)

            if item_remove:
                model.remove(item_remove)

        for it in lista.keys():
            # Agregar Unidades nuevas.

            if not it in mounts:
                icono = os.path.join(ICONOS,
                    "drive-removable-media-usb.svg")
                pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
                    icono, get_pixels(0.8), -1)

                model.append([pixbuf, it, lista[it]])

        if remove_explorers:
            self.emit('remove_explorers', remove_explorers)

        return False
    def __update_unidades2(self, lista):
        """
        Actualizar lista de unidades.
        """

        model = self.get_model()
        item = model.get_iter_first()

        mounts = []
        remove_explorers = []
        while item:
            # Remover Unidades desmontadas.
            item_remove = False

            if not os.path.exists(model.get_value(item, 2)):
                remove_explorers.append(model.get_value(item, 2))
                item_remove = item

            else:
                mounts.append(model.get_value(item, 1))

            item = model.iter_next(item)

            if item_remove:
                model.remove(item_remove)

        for it in lista.keys():
            # Agregar Unidades nuevas.

            if not it in mounts:
                icono = os.path.join(ICONOS, "drive-removable-media-usb.svg")
                pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
                    icono, get_pixels(0.8), -1)

                model.append([pixbuf, it, lista[it]])

        if remove_explorers:
            self.emit('remove_explorers', remove_explorers)

        return False
示例#23
0
    def __init__(self, path):

        Gtk.Toolbar.__init__(self)

        self.path = path

        self.buttons_back = []

        self.insert(get_separador(draw=False, ancho=3, expand=False), -1)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "go-next-rtl.svg")
        boton = get_boton(
            archivo,  # flip=True,
            rotacion=None,
            pixels=get_pixels(1),
            tooltip_text="Anterior")
        boton.connect("clicked", self.__emit_switch)
        self.insert(boton, -1)
        self.buttons_back.append(boton)

        separador = get_separador(draw=True, expand=False)
        self.insert(separador, -1)
        self.buttons_back.append(separador)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos",
                               "document-open.svg")
        boton = get_boton(archivo,
                          flip=False,
                          rotacion=None,
                          pixels=get_pixels(1),
                          tooltip_text="Abrir")
        boton.connect("clicked", self.__emit_open)
        self.insert(boton, -1)

        # FIXME: Hasta que no esté lista la vista de Cámara.
        #archivo = os.path.join(
        #    JAMediaObjectsPath,
        #    "Iconos", "camera-photo.svg")
        #boton = get_boton(
        #    archivo, flip=False,
        #    rotacion=None,
        #    pixels=get_pixels(1),
        #    tooltip_text="Cámara")
        #boton.connect("clicked", self.__emit_camara)
        #self.insert(boton, -1)

        self.insert(get_separador(draw=True, expand=False), -1)

        self.insert(get_separador(draw=False, ancho=15, expand=False), -1)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos",
                               "JAMediaImagenes.svg")
        boton = get_boton(archivo,
                          flip=False,
                          pixels=get_pixels(1.2),
                          tooltip_text="Autor.")
        boton.connect("clicked", self.__show_credits)
        self.insert(boton, -1)

        #archivo = os.path.join(JAMediaObjectsPath,
        #    "Iconos", "JAMedia-help1.svg")
        #boton = get_boton(
        #    archivo, flip=False,
        #    pixels=get_pixels(1),
        #    tooltip_text="Ayuda.")
        #boton.connect("clicked", self.__show_help)
        #self.insert(boton, -1)

        self.insert(get_separador(draw=True, expand=False), -1)

        self.insert(get_separador(draw=False, ancho=0, expand=True), -1)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos",
                               "button-cancel.svg")
        boton = get_boton(archivo,
                          flip=False,
                          rotacion=None,
                          pixels=get_pixels(1),
                          tooltip_text="Salir")
        boton.connect("clicked", self.__salir)
        self.insert(boton, -1)

        self.insert(get_separador(draw=False, ancho=5, expand=False), -1)

        self.show_all()
示例#24
0
    def __init__(self):

        Gtk.Toolbar.__init__(self)

        self.intervalo = 3.0

        self.insert(get_separador(draw=False, ancho=0, expand=True), -1)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "list-remove.svg")
        boton = get_boton(archivo,
                          flip=False,
                          rotacion=None,
                          pixels=get_pixels(0.8),
                          tooltip_text="Disminuir")
        boton.connect("clicked", self.__menos_intervalo)
        self.insert(boton, -1)

        self.insert(get_separador(draw=False, ancho=3, expand=False), -1)

        item = Gtk.ToolItem()
        self.label = Gtk.Label("Cambiar Imagen cada: %s Segundos" %
                               (self.intervalo))
        self.label.show()
        item.add(self.label)
        self.insert(item, -1)

        self.insert(get_separador(draw=False, ancho=3, expand=False), -1)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "gtk-add.svg")
        boton = get_boton(archivo,
                          flip=False,
                          rotacion=None,
                          pixels=get_pixels(0.8),
                          tooltip_text="Aumentar")
        boton.connect("clicked", self.__mas_intervalo)
        self.insert(boton, -1)

        self.insert(get_separador(draw=False, ancho=3, expand=False), -1)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos",
                               "media-playback-start.svg")
        boton = get_boton(archivo,
                          flip=False,
                          rotacion=None,
                          pixels=get_pixels(0.8),
                          tooltip_text="Aceptar")
        boton.connect("clicked", self.__run_presentacion)
        self.insert(boton, -1)

        self.insert(get_separador(draw=False, ancho=0, expand=True), -1)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos",
                               "button-cancel.svg")
        boton = get_boton(archivo,
                          flip=False,
                          rotacion=None,
                          pixels=get_pixels(0.8),
                          tooltip_text="Cancelar")
        boton.connect("clicked", self.__cancelar)
        self.insert(boton, -1)

        self.insert(get_separador(draw=False, ancho=3, expand=False), -1)

        self.show_all()
示例#25
0
    def __leer(self, dire):

        archivo = ""

        try:
            directorio = dire[0]
            path = dire[1]

            if path:
                iter_ = self.get_model().get_iter(path)

            else:
                iter_ = self.get_model().get_iter_first()

            archivos = []
            listdir = os.listdir(os.path.join(directorio))
            listdir.sort()

            for archivo in listdir:
                direccion = os.path.join(directorio, archivo)

                if not self.get_parent().get_parent().ver_ocultos:
                    if archivo.startswith('.'):
                        continue

                if os.path.isdir(direccion):
                    icono = None
                    lectura, escritura, ejecucion = describe_acceso_uri(
                        direccion)

                    if not lectura:
                        icono = os.path.join(ICONOS, "button-cancel.svg")

                    else:
                        icono = os.path.join(ICONOS, "document-open.svg")

                    pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
                        icono, -1, get_pixels(0.8))

                    iteractual = self.get_model().append(
                        iter_, [pixbuf,
                        archivo, direccion, ""])

                    self.__agregar_nada(iteractual)

                elif os.path.isfile(direccion):
                    archivos.append(direccion)

            for x in archivos:
                archivo = os.path.basename(x)
                icono = None
                tipo = describe_archivo(x)

                if 'video' in tipo:
                    icono = os.path.join(ICONOS, "video.svg")

                elif 'audio' in tipo:
                    icono = os.path.join(ICONOS, "sonido.svg")

                elif 'image' in tipo and not 'iso' in tipo:
                    #icono = os.path.join(x) #exige en rendimiento
                    icono = os.path.join(ICONOS, "edit-select-all.svg")

                elif 'pdf' in tipo:
                    icono = os.path.join(ICONOS, "pdf.svg")

                elif 'zip' in tipo or 'rar' in tipo:
                    icono = os.path.join(ICONOS, "edit-select-all.svg")

                else:
                    icono = os.path.join(ICONOS, "edit-select-all.svg")

                pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
                    icono, -1, get_pixels(0.8))

                self.get_model().append(
                    iter_, [pixbuf, archivo,
                    x, str(os.path.getsize(x)) + " bytes"])

            self.dict[directorio] = str(listdir)

        except:
            print "**** Error de acceso:", dire, archivo

        iter_ = self.get_model().get_iter_first()

        if iter_:
            self.get_selection().select_iter(iter_)
示例#26
0
    def __init__(self, path):

        Gtk.Toolbar.__init__(self)

        self.path = path
        self.buttons_player = []
        self.buttons_escala_rotacion = []
        self.buttons_config = []
        self.buttons_guardar = []
        self.modo = False  # Solo almacenará edit o player

        self.insert(get_separador(draw=False, ancho=3, expand=False), -1)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "go-next-rtl.svg")
        boton = get_boton(
            archivo,  # flip = True,
            rotacion=None,
            pixels=get_pixels(1),
            tooltip_text="Anterior")
        boton.connect("clicked", self.__emit_switch)
        self.insert(boton, -1)

        self.insert(get_separador(draw=True, expand=False), -1)

        ### Vistas Configuración, Presentaciones y Navegador.
        archivo = os.path.join(JAMediaObjectsPath, "Iconos",
                               "document-properties.svg")
        boton = get_boton(archivo,
                          flip=False,
                          pixels=get_pixels(1),
                          tooltip_text="Navegar Imágenes")
        boton.connect("clicked", self.__activar)
        self.insert(boton, -1)
        self.buttons_config.append(boton)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos",
                               "gtk-preferences.svg")
        button = get_boton(archivo,
                           flip=False,
                           pixels=get_pixels(1),
                           tooltip_text="Configurar Presentación")
        button.connect("clicked", self.__activar)
        self.insert(button, -1)
        self.buttons_config.append(button)

        separador = get_separador(draw=True, expand=False)
        self.insert(separador, -1)
        self.buttons_config.append(separador)

        ### Zoom
        archivo = os.path.join(JAMediaObjectsPath, "Iconos",
                               "zoom-fit-best.svg")
        boton = get_boton(archivo,
                          flip=False,
                          pixels=get_pixels(1),
                          tooltip_text="Centrar en Pantalla")
        boton.connect("clicked", self.__activar)
        self.insert(boton, -1)
        self.buttons_escala_rotacion.append(boton)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "zoom-out.svg")
        boton = get_boton(archivo,
                          flip=False,
                          pixels=get_pixels(1),
                          tooltip_text="Alejar")
        boton.connect("clicked", self.__activar)
        self.insert(boton, -1)
        self.buttons_escala_rotacion.append(boton)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "zoom-in.svg")
        boton = get_boton(archivo,
                          flip=False,
                          pixels=get_pixels(1),
                          tooltip_text="Acercar")
        boton.connect("clicked", self.__activar)
        self.insert(boton, -1)
        self.buttons_escala_rotacion.append(boton)

        separador = get_separador(draw=True, expand=False)
        self.insert(separador, -1)
        self.buttons_escala_rotacion.append(separador)

        ### Rotación
        archivo = os.path.join(JAMediaObjectsPath, "Iconos",
                               "object-rotate-left.svg")
        boton = get_boton(
            archivo,  # flip=False,
            pixels=get_pixels(1),
            tooltip_text="Rotar Izquierda")
        boton.connect("clicked", self.__activar)
        self.insert(boton, -1)
        self.buttons_escala_rotacion.append(boton)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos",
                               "object-rotate-right.svg")
        boton = get_boton(
            archivo,  # flip=True,
            pixels=get_pixels(1),
            tooltip_text="Rotar Derecha")
        boton.connect("clicked", self.__activar)
        self.insert(boton, -1)
        self.buttons_escala_rotacion.append(boton)

        separador = get_separador(draw=True, expand=False)
        self.insert(separador, -1)
        self.buttons_escala_rotacion.append(separador)

        ### Presentacion y Navegador
        archivo = os.path.join(JAMediaObjectsPath, "Iconos",
                               "media-seek-backward.svg")
        boton = get_boton(
            archivo,  # flip=True,
            pixels=get_pixels(1),
            tooltip_text="Anterior")
        boton.connect("clicked", self.__activar)
        self.insert(boton, -1)
        self.buttons_player.append(boton)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos",
                               "media-playback-start.svg")
        self.botonplay = get_boton(archivo,
                                   flip=False,
                                   pixels=get_pixels(1),
                                   tooltip_text="Reproducir")
        self.botonplay.connect("clicked", self.__activar)
        self.insert(self.botonplay, -1)
        self.buttons_player.append(self.botonplay)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos",
                               "media-seek-forward.svg")
        boton = get_boton(archivo,
                          flip=False,
                          pixels=get_pixels(1),
                          tooltip_text="Siguiente")
        boton.connect("clicked", self.__activar)
        self.insert(boton, -1)
        self.buttons_player.append(boton)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos",
                               "media-playback-stop.svg")
        boton = get_boton(archivo,
                          flip=False,
                          pixels=get_pixels(1),
                          tooltip_text="Detener")
        boton.connect("clicked", self.__activar)
        self.insert(boton, -1)
        self.buttons_player.append(boton)

        separador = get_separador(draw=True, expand=False)
        self.insert(separador, -1)
        self.buttons_player.append(separador)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos",
                               "document-save.svg")
        boton = get_boton(archivo,
                          flip=False,
                          pixels=get_pixels(1),
                          tooltip_text="Guardar")
        boton.connect("clicked", self.__activar)
        self.insert(boton, -1)
        self.buttons_guardar.append(boton)

        separador = get_separador(draw=True, expand=False)
        self.insert(separador, -1)
        self.buttons_guardar.append(separador)

        ### Salir
        self.insert(get_separador(draw=False, expand=True), -1)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos",
                               "button-cancel.svg")
        boton = get_boton(archivo,
                          flip=False,
                          rotacion=None,
                          pixels=get_pixels(1),
                          tooltip_text="Salir")
        boton.connect("clicked", self.__salir)
        self.insert(boton, -1)

        self.insert(get_separador(draw=False, ancho=3, expand=False), -1)

        self.show_all()
    def click_efecto(self, widget, nombre_efecto):
        """
        Recibe el nombre del efecto sobre el que
        se ha hecho click y decide si debe agregarse
        al pipe de JAMediaWebcam.
        """

        # HACK: si se agregan o quitan efectos mientras se graba,
        # las grabaciones se reinician.
        if self.jamediawebcam.estado == "GrabandoAudioVideo" or \
            self.jamediawebcam.estado == "GrabandoAudio":
            for efecto in self.hbox_efectos_en_pipe.get_children():
                n_efecto = efecto.get_tooltip_text()

                if n_efecto == nombre_efecto:
                    self.widget_efectos.seleccionar_efecto(nombre_efecto)
                    return

            self.widget_efectos.des_seleccionar_efecto(nombre_efecto)
            return

        agregar = False

        if self.jamediawebcam.efectos:
            if not nombre_efecto in self.jamediawebcam.efectos:
                # Si el efecto no está en el pipe.
                agregar = True

        else:
            # Si no se han agregado efectos.
            agregar = True

        if agregar:
            #if self.jamediawebcam.estado == "GrabandoAudioVideo":
            # self.jamediawebcam.re_init()
            #    pass

            from Widgets import WidgetEfecto_en_Pipe

            self.jamediawebcam.agregar_efecto(nombre_efecto)

            # Agrega un widget a self.hbox_efectos_en_pipe
            botonefecto = WidgetEfecto_en_Pipe()
            botonefecto.set_tooltip(nombre_efecto)
            botonefecto.connect('clicked', self.clicked_mini_efecto)
            lado = get_pixels(0.5)
            botonefecto.set_tamanio(lado, lado)

            archivo = os.path.join(JAMediaObjectsPath, "Iconos",
                                   'configurar.svg')

            pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
                archivo, lado, lado)
            botonefecto.imagen.set_from_pixbuf(pixbuf)

            self.hbox_efectos_en_pipe.pack_start(botonefecto, False, False, 0)

        else:
            # Si el usuario hace click sobre el botón de un efecto
            # que ya se encuentra en el pipe de la camara, se quita
            # el efecto del pipe y se deselecciona el botón correspondiente.
            #if self.jamediawebcam.estado == "GrabandoAudioVideo":
            # self.jamediawebcam.re_init()
            #    pass

            self.jamediawebcam.quitar_efecto(nombre_efecto)

            self.widget_efectos.des_seleccionar_efecto(nombre_efecto)

            # Quitar el widget de self.hbox_efectos_en_pipe
            for efecto in self.hbox_efectos_en_pipe.get_children():
                if efecto.get_tooltip_text() == nombre_efecto:
                    efecto.destroy()
                    break
示例#28
0
    def __init__(self, path):

        Gtk.Toolbar.__init__(self)

        self.path = path

        self.buttons_back = []

        self.insert(get_separador(draw=False, ancho=3, expand=False), -1)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "go-next-rtl.svg")
        boton = get_boton(archivo, rotacion=None, pixels=get_pixels(1), tooltip_text="Anterior")  # flip=True,
        boton.connect("clicked", self.__emit_switch)
        self.insert(boton, -1)
        self.buttons_back.append(boton)

        separador = get_separador(draw=True, expand=False)
        self.insert(separador, -1)
        self.buttons_back.append(separador)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "document-open.svg")
        boton = get_boton(archivo, flip=False, rotacion=None, pixels=get_pixels(1), tooltip_text="Abrir")
        boton.connect("clicked", self.__emit_open)
        self.insert(boton, -1)

        # FIXME: Hasta que no esté lista la vista de Cámara.
        # archivo = os.path.join(
        #    JAMediaObjectsPath,
        #    "Iconos", "camera-photo.svg")
        # boton = get_boton(
        #    archivo, flip=False,
        #    rotacion=None,
        #    pixels=get_pixels(1),
        #    tooltip_text="Cámara")
        # boton.connect("clicked", self.__emit_camara)
        # self.insert(boton, -1)

        self.insert(get_separador(draw=True, expand=False), -1)

        self.insert(get_separador(draw=False, ancho=15, expand=False), -1)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "JAMediaImagenes.svg")
        boton = get_boton(archivo, flip=False, pixels=get_pixels(1.2), tooltip_text="Autor.")
        boton.connect("clicked", self.__show_credits)
        self.insert(boton, -1)

        # archivo = os.path.join(JAMediaObjectsPath,
        #    "Iconos", "JAMedia-help1.svg")
        # boton = get_boton(
        #    archivo, flip=False,
        #    pixels=get_pixels(1),
        #    tooltip_text="Ayuda.")
        # boton.connect("clicked", self.__show_help)
        # self.insert(boton, -1)

        self.insert(get_separador(draw=True, expand=False), -1)

        self.insert(get_separador(draw=False, ancho=0, expand=True), -1)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "button-cancel.svg")
        boton = get_boton(archivo, flip=False, rotacion=None, pixels=get_pixels(1), tooltip_text="Salir")
        boton.connect("clicked", self.__salir)
        self.insert(boton, -1)

        self.insert(get_separador(draw=False, ancho=5, expand=False), -1)

        self.show_all()
    def setup_init(self):
        """
        Se crea la interfaz grafica,
        se setea y se empaqueta todo.
        """

        from Widgets import ToolbarVideo

        # Widgets Base: - vbox - toolbars - panel
        basebox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)

        self.toolbar_salir = ToolbarSalir()
        self.toolbar = ToolbarVideo()
        hpanel = Gtk.HPaned()

        basebox.pack_start(self.toolbar_salir, False, True, 0)
        basebox.pack_start(self.toolbar, False, True, 0)
        basebox.pack_start(hpanel, True, True, 0)

        self.add(basebox)

        # Panel lado Izquierdo: vbox - pantalla - hbox_efectos_aplicados
        vbox_izq_panel = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        self.pantalla = Visor()
        eventbox = Gtk.EventBox()
        eventbox.modify_bg(0, get_color("NEGRO"))

        self.hbox_efectos_en_pipe = Gtk.Box(
            orientation=Gtk.Orientation.HORIZONTAL)

        self.hbox_efectos_en_pipe.set_size_request(-1, get_pixels(0.5))

        scroll = Gtk.ScrolledWindow()

        scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.NEVER)

        scroll.add_with_viewport(eventbox)

        eventbox.add(self.hbox_efectos_en_pipe)

        vbox_izq_panel.pack_start(self.pantalla, True, True, 0)
        vbox_izq_panel.pack_start(scroll, False, False, 0)

        hpanel.pack1(vbox_izq_panel, resize=True, shrink=True)

        # Panel lado Derecho: eventbox - vbox - scroll
        # - balance_widget - widget_efectos
        self.box_config = Gtk.EventBox()
        self.box_config.set_size_request(get_pixels(5.0), -1)

        vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        self.balance_widget = ToolbarBalanceConfig()

        scroll = Gtk.ScrolledWindow()

        scroll.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)

        scroll.add_with_viewport(vbox)

        self.box_config.add(scroll)

        self.widget_efectos = WidgetsGstreamerEfectos()

        vbox.pack_start(self.balance_widget, False, True, 0)
        vbox.pack_start(self.widget_efectos, False, True, 0)

        hpanel.pack2(self.box_config, resize=False, shrink=False)

        self.show_all()
        self.realize()

        from gi.repository import GdkX11

        xid = self.pantalla.get_property('window').get_xid()
        self.jamediawebcam = JAMediaWebCam(xid)

        self.controles_dinamicos = [
            self.toolbar_salir,
            self.box_config,
        ]

        map(self.ocultar, self.controles_dinamicos)

        self.jamediawebcam.connect('estado', self.set_estado)

        self.pantalla.connect("button_press_event", self.clicks_en_pantalla)

        self.toolbar.connect("rotar", self.set_rotacion)
        self.toolbar.connect("accion", self.set_accion)
        self.toolbar.connect('salir', self.confirmar_salir)

        self.balance_widget.connect('valor', self.set_balance)

        self.widget_efectos.connect("click_efecto", self.click_efecto)
        self.widget_efectos.connect('configurar_efecto',
                                    self.configurar_efecto)

        self.toolbar_salir.connect('salir', self.emit_salir)
    def click_efecto(self, widget, nombre_efecto):
        """
        Recibe el nombre del efecto sobre el que
        se ha hecho click y decide si debe agregarse
        al pipe de JAMediaWebcam.
        """

        # HACK: si se agregan o quitan efectos mientras se graba,
        # las grabaciones se reinician.
        if self.jamediawebcam.estado == "GrabandoAudioVideo" or \
            self.jamediawebcam.estado == "GrabandoAudio":
                for efecto in self.hbox_efectos_en_pipe.get_children():
                    n_efecto = efecto.get_tooltip_text()

                    if n_efecto == nombre_efecto:
                        self.widget_efectos.seleccionar_efecto(nombre_efecto)
                        return

                self.widget_efectos.des_seleccionar_efecto(nombre_efecto)
                return

        agregar = False

        if self.jamediawebcam.efectos:
            if not nombre_efecto in self.jamediawebcam.efectos:
            # Si el efecto no está en el pipe.
                agregar = True

        else:
            # Si no se han agregado efectos.
            agregar = True

        if agregar:
            #if self.jamediawebcam.estado == "GrabandoAudioVideo":
                # self.jamediawebcam.re_init()
            #    pass

            from Widgets import WidgetEfecto_en_Pipe

            self.jamediawebcam.agregar_efecto(nombre_efecto)

            # Agrega un widget a self.hbox_efectos_en_pipe
            botonefecto = WidgetEfecto_en_Pipe()
            botonefecto.set_tooltip(nombre_efecto)
            botonefecto.connect('clicked', self.clicked_mini_efecto)
            lado = get_pixels(0.5)
            botonefecto.set_tamanio(lado, lado)

            archivo = os.path.join(JAMediaObjectsPath,
                "Iconos", 'configurar.svg')

            pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(
                archivo, lado, lado)
            botonefecto.imagen.set_from_pixbuf(pixbuf)

            self.hbox_efectos_en_pipe.pack_start(
                botonefecto, False, False, 0)

        else:
            # Si el usuario hace click sobre el botón de un efecto
            # que ya se encuentra en el pipe de la camara, se quita
            # el efecto del pipe y se deselecciona el botón correspondiente.
            #if self.jamediawebcam.estado == "GrabandoAudioVideo":
                # self.jamediawebcam.re_init()
            #    pass

            self.jamediawebcam.quitar_efecto(nombre_efecto)

            self.widget_efectos.des_seleccionar_efecto(nombre_efecto)

            # Quitar el widget de self.hbox_efectos_en_pipe
            for efecto in self.hbox_efectos_en_pipe.get_children():
                if efecto.get_tooltip_text() == nombre_efecto:
                    efecto.destroy()
                    break
示例#31
0
    def __init__(self, path):

        Gtk.Toolbar.__init__(self)

        self.path = path
        self.buttons_player = []
        self.buttons_escala_rotacion = []
        self.buttons_config = []
        self.buttons_guardar = []
        self.modo = False  # Solo almacenará edit o player

        self.insert(get_separador(draw=False, ancho=3, expand=False), -1)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "go-next-rtl.svg")
        boton = get_boton(archivo, rotacion=None, pixels=get_pixels(1), tooltip_text="Anterior")  # flip = True,
        boton.connect("clicked", self.__emit_switch)
        self.insert(boton, -1)

        self.insert(get_separador(draw=True, expand=False), -1)

        ### Vistas Configuración, Presentaciones y Navegador.
        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "document-properties.svg")
        boton = get_boton(archivo, flip=False, pixels=get_pixels(1), tooltip_text="Navegar Imágenes")
        boton.connect("clicked", self.__activar)
        self.insert(boton, -1)
        self.buttons_config.append(boton)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "gtk-preferences.svg")
        button = get_boton(archivo, flip=False, pixels=get_pixels(1), tooltip_text="Configurar Presentación")
        button.connect("clicked", self.__activar)
        self.insert(button, -1)
        self.buttons_config.append(button)

        separador = get_separador(draw=True, expand=False)
        self.insert(separador, -1)
        self.buttons_config.append(separador)

        ### Zoom
        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "zoom-fit-best.svg")
        boton = get_boton(archivo, flip=False, pixels=get_pixels(1), tooltip_text="Centrar en Pantalla")
        boton.connect("clicked", self.__activar)
        self.insert(boton, -1)
        self.buttons_escala_rotacion.append(boton)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "zoom-out.svg")
        boton = get_boton(archivo, flip=False, pixels=get_pixels(1), tooltip_text="Alejar")
        boton.connect("clicked", self.__activar)
        self.insert(boton, -1)
        self.buttons_escala_rotacion.append(boton)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "zoom-in.svg")
        boton = get_boton(archivo, flip=False, pixels=get_pixels(1), tooltip_text="Acercar")
        boton.connect("clicked", self.__activar)
        self.insert(boton, -1)
        self.buttons_escala_rotacion.append(boton)

        separador = get_separador(draw=True, expand=False)
        self.insert(separador, -1)
        self.buttons_escala_rotacion.append(separador)

        ### Rotación
        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "object-rotate-left.svg")
        boton = get_boton(archivo, pixels=get_pixels(1), tooltip_text="Rotar Izquierda")  # flip=False,
        boton.connect("clicked", self.__activar)
        self.insert(boton, -1)
        self.buttons_escala_rotacion.append(boton)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "object-rotate-right.svg")
        boton = get_boton(archivo, pixels=get_pixels(1), tooltip_text="Rotar Derecha")  # flip=True,
        boton.connect("clicked", self.__activar)
        self.insert(boton, -1)
        self.buttons_escala_rotacion.append(boton)

        separador = get_separador(draw=True, expand=False)
        self.insert(separador, -1)
        self.buttons_escala_rotacion.append(separador)

        ### Presentacion y Navegador
        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "media-seek-backward.svg")
        boton = get_boton(archivo, pixels=get_pixels(1), tooltip_text="Anterior")  # flip=True,
        boton.connect("clicked", self.__activar)
        self.insert(boton, -1)
        self.buttons_player.append(boton)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "media-playback-start.svg")
        self.botonplay = get_boton(archivo, flip=False, pixels=get_pixels(1), tooltip_text="Reproducir")
        self.botonplay.connect("clicked", self.__activar)
        self.insert(self.botonplay, -1)
        self.buttons_player.append(self.botonplay)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "media-seek-forward.svg")
        boton = get_boton(archivo, flip=False, pixels=get_pixels(1), tooltip_text="Siguiente")
        boton.connect("clicked", self.__activar)
        self.insert(boton, -1)
        self.buttons_player.append(boton)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "media-playback-stop.svg")
        boton = get_boton(archivo, flip=False, pixels=get_pixels(1), tooltip_text="Detener")
        boton.connect("clicked", self.__activar)
        self.insert(boton, -1)
        self.buttons_player.append(boton)

        separador = get_separador(draw=True, expand=False)
        self.insert(separador, -1)
        self.buttons_player.append(separador)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "document-save.svg")
        boton = get_boton(archivo, flip=False, pixels=get_pixels(1), tooltip_text="Guardar")
        boton.connect("clicked", self.__activar)
        self.insert(boton, -1)
        self.buttons_guardar.append(boton)

        separador = get_separador(draw=True, expand=False)
        self.insert(separador, -1)
        self.buttons_guardar.append(separador)

        ### Salir
        self.insert(get_separador(draw=False, expand=True), -1)

        archivo = os.path.join(JAMediaObjectsPath, "Iconos", "button-cancel.svg")
        boton = get_boton(archivo, flip=False, rotacion=None, pixels=get_pixels(1), tooltip_text="Salir")
        boton.connect("clicked", self.__salir)
        self.insert(boton, -1)

        self.insert(get_separador(draw=False, ancho=3, expand=False), -1)

        self.show_all()
    def setup_init(self):
        """
        Se crea la interfaz grafica,
        se setea y se empaqueta todo.
        """

        from Widgets import ToolbarVideo

        # Widgets Base: - vbox - toolbars - panel
        basebox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)

        self.toolbar_salir = ToolbarSalir()
        self.toolbar = ToolbarVideo()
        hpanel = Gtk.HPaned()

        basebox.pack_start(self.toolbar_salir, False, True, 0)
        basebox.pack_start(self.toolbar, False, True, 0)
        basebox.pack_start(hpanel, True, True, 0)

        self.add(basebox)

        # Panel lado Izquierdo: vbox - pantalla - hbox_efectos_aplicados
        vbox_izq_panel = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        self.pantalla = Visor()
        eventbox = Gtk.EventBox()
        eventbox.modify_bg(0, get_color("NEGRO"))

        self.hbox_efectos_en_pipe = Gtk.Box(
            orientation=Gtk.Orientation.HORIZONTAL)

        self.hbox_efectos_en_pipe.set_size_request(-1, get_pixels(0.5))

        scroll = Gtk.ScrolledWindow()

        scroll.set_policy(
            Gtk.PolicyType.AUTOMATIC,
            Gtk.PolicyType.NEVER)

        scroll.add_with_viewport(eventbox)

        eventbox.add(self.hbox_efectos_en_pipe)

        vbox_izq_panel.pack_start(self.pantalla, True, True, 0)
        vbox_izq_panel.pack_start(scroll, False, False, 0)

        hpanel.pack1(vbox_izq_panel, resize=True, shrink=True)

        # Panel lado Derecho: eventbox - vbox - scroll
        # - balance_widget - widget_efectos
        self.box_config = Gtk.EventBox()
        self.box_config.set_size_request(get_pixels(5.0), -1)

        vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        self.balance_widget = ToolbarBalanceConfig()

        scroll = Gtk.ScrolledWindow()

        scroll.set_policy(
            Gtk.PolicyType.NEVER,
            Gtk.PolicyType.AUTOMATIC)

        scroll.add_with_viewport(vbox)

        self.box_config.add(scroll)

        self.widget_efectos = WidgetsGstreamerEfectos()

        vbox.pack_start(self.balance_widget, False, True, 0)
        vbox.pack_start(self.widget_efectos, False, True, 0)

        hpanel.pack2(self.box_config, resize=False, shrink=False)

        self.show_all()
        self.realize()

        from gi.repository import GdkX11

        xid = self.pantalla.get_property('window').get_xid()
        self.jamediawebcam = JAMediaWebCam(xid)

        self.controles_dinamicos = [
            self.toolbar_salir,
            self.box_config,
            ]

        map(self.ocultar, self.controles_dinamicos)

        self.jamediawebcam.connect('estado', self.set_estado)

        self.pantalla.connect("button_press_event",
            self.clicks_en_pantalla)

        self.toolbar.connect("rotar", self.set_rotacion)
        self.toolbar.connect("accion", self.set_accion)
        self.toolbar.connect('salir', self.confirmar_salir)

        self.balance_widget.connect('valor', self.set_balance)

        self.widget_efectos.connect("click_efecto",
            self.click_efecto)
        self.widget_efectos.connect('configurar_efecto',
            self.configurar_efecto)

        self.toolbar_salir.connect('salir', self.emit_salir)
示例#33
0
    def setup_init(self):
        """
        Se crea la interfaz grafica,
        se setea y se empaqueta todo.
        """

        self.get_toplevel().set_sensitive(False)

        from JAMediaObjects.JAMediaWidgets import Visor
        from JAMediaObjects.JAMediaWidgets import BarraProgreso
        from JAMediaObjects.JAMediaWidgets import ControlVolumen
        from JAMediaObjects.JAMediaWidgets import Lista
        from JAMediaObjects.JAMediaWidgets import ToolbarReproduccion
        from JAMediaObjects.JAMediaWidgets import WidgetsGstreamerEfectos
        from JAMediaObjects.JAMediaWidgets import ToolbarAccion
        from JAMediaObjects.JAMediaWidgets import ToolbarSalir

        from Widgets import Toolbar
        from Widgets import ToolbarConfig
        from Widgets import ToolbarGrabar
        from Widgets import ToolbarInfo
        from Widgets import ToolbarAddStream

        self.pantalla = Visor()
        self.barradeprogreso = BarraProgreso()
        self.volumen = ControlVolumen()
        self.lista_de_reproduccion = Lista()
        self.controlesrepro = ToolbarReproduccion()
        self.toolbar = Toolbar()
        self.toolbar_config = ToolbarConfig()
        self.widget_efectos = WidgetsGstreamerEfectos()
        self.toolbar_accion = ToolbarAccion()
        self.toolbar_grabar = ToolbarGrabar()
        self.toolbar_info = ToolbarInfo()
        self.toolbaraddstream = ToolbarAddStream()
        self.toolbar_salir = ToolbarSalir()

        basebox = gtk.VBox()
        hpanel = gtk.HPaned()

        basebox.pack_start(self.toolbar, False, False, 0)
        basebox.pack_start(self.toolbar_salir, False, False, 0)
        basebox.pack_start(self.toolbar_accion, False, False, 0)
        basebox.pack_start(self.toolbaraddstream, False, False, 0)

        basebox.pack_start(hpanel, True, True, 0)

        ### Area Izquierda del Panel

        ### Efectos que se están aplicando.
        # FIXME: Mantiene el fondo negro en miniefectos que se aplican
        eventbox = gtk.EventBox()
        eventbox.modify_bg(0, get_color("NEGRO"))
        self.hbox_efectos_en_pipe = gtk.HBox()
        self.hbox_efectos_en_pipe.set_size_request(-1, get_pixels(0.5))
        eventbox.add(self.hbox_efectos_en_pipe)
        scroll = gtk.ScrolledWindow()
        scroll.set_policy(
            gtk.POLICY_AUTOMATIC,
            gtk.POLICY_NEVER)
        scroll.add_with_viewport(eventbox)

        ### Barra de Progreso + Volúmen
        ev_box = gtk.EventBox() # FIXME: Para poder pintar el fondo de volumen
        ev_box.modify_bg(0, get_color("BLANCO"))
        hbox_barra_progreso = gtk.HBox()
        hbox_barra_progreso.pack_start(self.barradeprogreso, True, True, 0)
        hbox_barra_progreso.pack_start(self.volumen, False, False, 0)
        ev_box.add(hbox_barra_progreso)

        ### Todo
        vbox = gtk.VBox()
        vbox.pack_start(self.toolbar_grabar, False, False, 0)
        vbox.pack_start(self.pantalla, True, True, 0)
        vbox.pack_start(scroll, False, False, 0)
        vbox.pack_start(self.toolbar_info, False, False, 0)
        vbox.pack_start(ev_box, False, True, 0)

        hpanel.pack1(vbox, resize=True, shrink=True)

        ### Area Derecha del Panel
        self.derecha_vbox = gtk.VBox()

        ### Configuración de balanace y efectos
        self.vbox_config = gtk.VBox()
        self.scroll_config = gtk.ScrolledWindow()
        self.scroll_config.set_policy(
            gtk.POLICY_AUTOMATIC,
            gtk.POLICY_AUTOMATIC)
        self.scroll_config.add_with_viewport(self.vbox_config)
        self.vbox_config.pack_start(self.toolbar_config, False, False, 0)
        self.vbox_config.pack_start(self.widget_efectos, False, False, 0)

        ### Lista de Reproducción
        # FIXME: Para poder pintar el fondo
        self.evnt_box_lista_reproduccion = gtk.EventBox()
        self.vbox_lista_reproduccion = gtk.VBox()
        self.scroll_list = gtk.ScrolledWindow()
        self.scroll_list.set_policy(
            gtk.POLICY_AUTOMATIC,
            gtk.POLICY_AUTOMATIC)
        self.scroll_list.add(self.lista_de_reproduccion)
        #Lista + Controles de Reproducción
        self.__pack_vbox_lista_reproduccion()
        self.evnt_box_lista_reproduccion.add(self.vbox_lista_reproduccion)

        ### Configuración + Lista de Reproducción.
        self.derecha_vbox.pack_start(self.scroll_config, True, True, 0)
        self.derecha_vbox.pack_start(self.evnt_box_lista_reproduccion,
            True, True, 0)

        hpanel.pack2(self.derecha_vbox, resize=False, shrink=True)

        self.controles_dinamicos = [
            hbox_barra_progreso,
            self.derecha_vbox,
            self.toolbar,
            self.toolbar_info,
            self.hbox_efectos_en_pipe.get_parent().get_parent(
                ).get_parent()]

        basebox.show_all()

        map(self.__ocultar,
            [self.toolbar_salir,
            self.scroll_config,
            self.toolbar_accion,
            self.toolbar_grabar,
            self.toolbaraddstream,
            self.toolbar_info.descarga])

        self.add(basebox)

        xid = self.pantalla.get_property('window').xid

        # HACK: La aplicación nunca debe explotar :P
        if get_programa("mplayer"):
            self.mplayerreproductor = MplayerReproductor(xid)

        elif not get_programa("mplayer") and "xo1.5" in platform.platform():
            self.mplayerreproductor = MplayerReproductor(xid)

        else:
            self.mplayerreproductor = MplayerReproductor(self.pantalla)

        # HACK: La aplicación nunca debe explotar :P
        if verificar_Gstreamer():
            self.jamediareproductor = JAMediaReproductor(xid)

        else:
            self.jamediareproductor = JAMediaReproductor(self.pantalla)

        self.switch_reproductor(None, "JAMediaReproductor") # default Gst.

        self.mplayerreproductor.connect("endfile", self.__endfile)
        self.mplayerreproductor.connect("estado",
            self.__cambioestadoreproductor)
        self.mplayerreproductor.connect("newposicion", self.__update_progress)
        self.mplayerreproductor.connect("volumen", self.__get_volumen)
        self.mplayerreproductor.connect("video", self.__set_video)

        self.jamediareproductor.connect("endfile", self.__endfile)
        self.jamediareproductor.connect("estado",
            self.__cambioestadoreproductor)
        self.jamediareproductor.connect("newposicion", self.__update_progress)
        self.jamediareproductor.connect("volumen", self.__get_volumen)
        self.jamediareproductor.connect("video", self.__set_video)

        self.lista_de_reproduccion.connect("nueva-seleccion",
            self.__cargar_reproducir)
        self.lista_de_reproduccion.connect("button-press-event",
            self.__click_derecho_en_lista)

        self.controlesrepro.connect("activar", self.__activar)
        self.barradeprogreso.connect("user-set-value", self.__user_set_value)
        self.pantalla.connect("ocultar_controles", self.__ocultar_controles)
        self.pantalla.connect("button_press_event", self.__clicks_en_pantalla)
        #self.pantalla.connect('expose-event', self.paint_pantalla)

        self.toolbar.connect('salir', self.confirmar_salir)
        #self.toolbar.connect('capturar', self.fotografiar)
        self.toolbar.connect('config', self.__mostrar_config)

        self.toolbar_salir.connect('salir', self.__emit_salir)
        self.toolbar_config.connect('reproductor', self.switch_reproductor)
        self.toolbar_config.connect('valor', self.__set_balance)
        self.toolbar_info.connect('rotar', self.__set_rotacion)
        self.toolbar_info.connect('actualizar_streamings',
            self.__actualizar_streamings)
        self.toolbar_accion.connect("Grabar", self.__grabar_streaming)
        self.toolbar_accion.connect("accion-stream", self.__accion_stream)
        self.toolbar_grabar.connect("stop", self.__detener_grabacion)
        self.volumen.connect("volumen", self.__set_volumen)
        self.toolbaraddstream.connect("add-stream", self.__ejecutar_add_stream)

        self.widget_efectos.connect("click_efecto", self.__click_efecto)
        self.widget_efectos.connect('configurar_efecto',
            self.__configurar_efecto)

        ### Controlador del mouse.
        # FIXME: new_from_pixbuf y get_default no existe
        #icono = os.path.join(JAMediaObjectsPath,
        #    "Iconos", "jamedia_cursor.png")
        #pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(icono,
        #    -1, get_pixels(0.8))
        #self.jamedia_cursor = gtk.gdk.Cursor.new_from_pixbuf(
        #    gtk.gdk.Display.get_default(), pixbuf, 0, 0)

        #self.cursor_root = self.get_parent_window().get_cursor()

        #self.get_parent_window().set_cursor(self.jamedia_cursor)

        #from JAMediaObjects.JAMediaWidgets import MouseSpeedDetector

        #self.mouse_listener = MouseSpeedDetector(self)
        #self.mouse_listener.connect("estado", self.__set_mouse)
        #self.mouse_listener.new_handler(True)

        self.get_parent().connect("hide", self.__hide_show_parent)
        self.get_parent().connect("show", self.__hide_show_parent)

        self.hbox_efectos_en_pipe.get_parent().get_parent(
            ).get_parent().hide()

        self.get_toplevel().set_sensitive(True)