#!/usr/bin/python # -*- coding: iso-8859-15 -*- ''' Config de Prestame tu voz ''' #Copyright (C) 2009 Federico Moreira - # Alejandro Esperón - #Copyright (C) 2010 Plan Ceibal # Esteban Arias - # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see import gtk import os import settings from manejar_datos import cargar_datos, cargar_planillas class VentanaConfig(gtk.Table): def __init__(self): self.lista_tarjetas = [] self.pos_actual = 0 self.posicion = gtk.Label('1/' + str(settings.TABLA_ANCHO * settings.TABLA_ALTO)) etiqueta_titulo = gtk.Label('Titulo : ') self.titulo = gtk.Entry(30) self.imagen = gtk.Image() self.boton_imagen = gtk.FileChooserButton('Agregar imagen') etiqueta_sonido = gtk.Label('Sonido : ') self.boton_sonido = gtk.FileChooserButton('Agregar sonido') boton_ingresar = gtk.Button('Ingresar Sig') gtk.Table.__init__(self, 5, 1) self.attach(self.posicion,0,1,0,1) etiqueta_titulo.show() self.titulo.show() self.titulo.set_width_chars(10) caja_titulo = gtk.HBox() caja_titulo.pack_start(etiqueta_titulo) caja_titulo.pack_start(self.titulo) self.attach(caja_titulo,0,1,1,2) self.imagen.show() self.imagen.set_size_request(500, 500) self.imagen.set_from_file(os.path.join(os.getcwd(),'icons','sin_foto.png')) self.boton_imagen.show() caja_imagen = gtk.VBox() caja_imagen.pack_start(self.imagen) caja_imagen.pack_start(self.boton_imagen) self.attach(caja_imagen,0,1,2,3) etiqueta_sonido.show() self.boton_sonido.show() caja_sonido = gtk.HBox() caja_sonido.pack_start(etiqueta_sonido) caja_sonido.pack_start(self.boton_sonido) self.attach(caja_sonido,0,1,3,4) boton_ingresar.show() boton_ingresar.connect("clicked", self.ingresar_siguiente, "siguiente") self.attach(boton_ingresar,0,1,4,5) self.cargar_demo() def cargar_tarjeta(self,lista_tarjetas): print len(lista_tarjetas) self.lista_tarjetas = lista_tarjetas self.titulo.set_text(self.lista_tarjetas[self.pos_actual].titulo) self.imagen.clear() self.imagen.set_from_file(os.path.join(os.getcwd(), \ self.lista_tarjetas[self.pos_actual].imagen)) self.actualizar_ventana() def ingresar_siguiente(self, widget, info): self.pos_actual += 1 if self.pos_actual > (len(self.lista_tarjetas) - 1): self.pos_actual = 0 self.titulo.set_text(self.lista_tarjetas[self.pos_actual].titulo) self.posicion.set_label(str(self.pos_actual + 1) + '/'+ str(settings.TABLA_ANCHO * settings.TABLA_ALTO)) self.actualizar_ventana() def actualizar_ventana(self): self.imagen.clear() self.imagen.set_from_file(self.lista_tarjetas[self.pos_actual].imagen) self.boton_imagen.set_filename(self.lista_tarjetas[self.pos_actual].imagen) self.boton_sonido.set_filename(self.lista_tarjetas[self.pos_actual].audio) def guardar(self, archivo): ''' Guarda un archivo ''' if archivo == '': print "fideo" selector = gtk.FileChooserDialog(title=None, action=gtk.FILE_CHOOSER_ACTION_SAVE, buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)) selector.set_current_folder(os.getcwd()) respuesta = selector.run() if respuesta == gtk.RESPONSE_OK: self.crear_tarjetas(selector.get_filename()) selector.destroy() else: self.crear_tarjetas(archivo) def crear_tarjetas(self, nombre_archivo): ''' Creo las tarjetas ''' #guardar_datos(nombre_archivo, self.lista_de_tarjetas) print nombre_archivo def abrir(self, widget, info): ''' Permite abrir un archivo ''' largo_home = len(os.environ["HOME"]) + 1 selector = gtk.FileChooserDialog(title=None, action=gtk.FILE_CHOOSER_ACTION_OPEN, buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)) selector.set_current_folder(os.getcwd()) selector.set_default_response(gtk.RESPONSE_OK) respuesta = selector.run() if respuesta == gtk.RESPONSE_OK: self.datos = cargar_datos(selector.get_filename()) self.archivo = selector.get_filename() selector.destroy() self.ventana.cargar_tarjeta(self.datos) def guardar(self, widget, info): '''Permite guardar ''' self.ventana.guardar(self.archivo) def cargar_demo(self): self.lista_tarjetas = cargar_datos('fede2') self.actualizar_ventana() #config = gtk.Window(gtk.WINDOW_TOPLEVEL) #config.set_title('Prestame tu voz') #ventana = VentanaConfig() ##control = ControlConfig(ventana) # #caja_principal = gtk.VBox() ##caja_principal.pack_start(control) #caja_principal.pack_start(ventana) #caja_principal.show() # #config.add(caja_principal) #ventana.show_all() ##control.show_all() # #config.set_default_size(300,300) #config.show() #config.connect("delete_event", gtk.main_quit) #gtk.main()