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)
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 __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)
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)
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()
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()
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)
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)
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
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
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
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
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)
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()
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
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()
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
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 __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()
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_)
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
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
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)
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)