class GameImage(gtk.DrawingArea):

    def __init__(self):

        gtk.DrawingArea.__init__(self)

        self.modify_bg(gtk.STATE_NORMAL, COLORES["text"])
        self.add_events(gtk.gdk.BUTTON_PRESS_MASK)

        self.imagenplayer = False
        self.path = False

        self.show_all()

    def stop(self):
        if self.imagenplayer:
            self.imagenplayer.stop()
            del(self.imagenplayer)
            self.imagenplayer = False

    def load(self, topic):
        self.stop()
        self.path = os.path.abspath("Imagenes/juego1.png")
        self.imagenplayer = ImagePlayer(self)
        self.imagenplayer.load(self.path)
        return False
Example #2
0
class GameImage(gtk.DrawingArea):
    def __init__(self):

        gtk.DrawingArea.__init__(self)

        self.modify_bg(gtk.STATE_NORMAL, COLORES["text"])
        self.add_events(gtk.gdk.BUTTON_PRESS_MASK)

        self.imagenplayer = False
        self.path = False

        self.show_all()

    def stop(self):
        if self.imagenplayer:
            self.imagenplayer.stop()
            del (self.imagenplayer)
            self.imagenplayer = False

    def load(self, topic):
        self.stop()
        self.path = os.path.abspath("Imagenes/juego1.png")
        self.imagenplayer = ImagePlayer(self)
        self.imagenplayer.load(self.path)
        return False
Example #3
0
class OjosCompuestos(gtk.HPaned):

    def __init__(self, pantalla):

        gtk.HPaned.__init__(self)

        print "Corriendo Ojos Compuestos . . ."

        self.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#ffffff"))

        self.player = False
        self.pantalla = pantalla
        self.playerlist = PlayerList()

        self.pack1(self.pantalla, resize=True, shrink=True)
        self.pack2(self.playerlist, resize=False, shrink=False)

        self.playerlist.connect("nueva-seleccion", self.__play_item)

        self.connect("realize", self.__load_imagenes)
        self.show_all()

    def __load_imagenes(self, widget):
        gobject.idle_add(self.__run)

    def __run(self):
        self.player = ImagePlayer(self.pantalla)
        dirpath = os.path.join(BASE_PATH, "Imagenes")
        elementos = []
        for path in sorted(os.listdir(dirpath)):
            elementos.append([path, os.path.join(dirpath, path)])
        self.playerlist.lista.agregar_items(elementos)
        dialog = Dialog(parent=self.get_toplevel(),
            text="Presiona Escape Cuando Desees Salir")
        dialog.run()
        return False

    def __play_item(self, widget, path):
        if path:
            self.player.load(path)

    def salir(self):
        self.player.stop()
Example #4
0
class OjosCompuestos(Gtk.HPaned):

    def __init__(self, pantalla):

        GObject.GObject.__init__(self)

        print "Corriendo Ojos Compuestos . . ."

        self.override_background_color(Gtk.StateType.NORMAL, color_parser("#ffffff"))

        self.player = False
        self.pantalla = pantalla
        self.playerlist = PlayerList()

        self.pack1(self.pantalla, resize=True, shrink=True)
        self.pack2(self.playerlist, resize=False, shrink=False)

        self.playerlist.connect("nueva-seleccion", self.__play_item)

        self.connect("realize", self.__load_imagenes)
        self.show_all()

    def __load_imagenes(self, widget):
        GLib.idle_add(self.__run)

    def __run(self):
        self.player = ImagePlayer(self.pantalla)
        dirpath = os.path.join(BASE_PATH, "Imagenes")
        elementos = []
        for path in sorted(os.listdir(dirpath)):
            elementos.append([path, os.path.join(dirpath, path)])
        self.playerlist.lista.agregar_items(elementos)
        dialog = Dialog(parent=self.get_toplevel(),
            text="Presiona Escape Cuando Desees Salir")
        dialog.run()
        return False

    def __play_item(self, widget, path):
        if path:
            self.player.load(path)

    def salir(self):
        self.player.stop()
class HelpSlideShow(gtk.EventBox):

    def __init__(self):

        gtk.EventBox.__init__(self)

        self.modify_bg(gtk.STATE_NORMAL, COLORES["toolbar"])
        #self.set_border_width(20)

        self.slides = []
        self.index_select = 0
        self.imagenplayer = False
        self.control = False

        self.drawing = gtk.DrawingArea()
        eventcontainer = gtk.EventBox()
        eventcontainer.modify_bg(gtk.STATE_NORMAL, COLORES["toolbar"])
        self.label = gtk.Label("Text")
        self.label.set_property("justify", gtk.JUSTIFY_CENTER)
        self.drawing.modify_bg(gtk.STATE_NORMAL, COLORES["toolbar"])
        self.label.modify_bg(gtk.STATE_NORMAL, COLORES["toolbar"])
        self.label.modify_fg(gtk.STATE_NORMAL, COLORES["window"])
        #self.label.modify_font(pango.FontDescription("DejaVu Sans 16"))
        eventcontainer.add(self.label)

        hbox = gtk.HBox()
        self.left = gtk.Button()
        self.left.unset_flags(gtk.CAN_FOCUS)
        self.left.set_relief(gtk.RELIEF_NONE)
        imagen = gtk.Image()
        imagen.set_from_file("Imagenes/flecha_izquierda.png")
        self.left.set_border_width(0)
        self.left.add(imagen)
        self.left.connect("clicked", self.go_left)
        hbox.pack_start(self.left)

        hbox.add(eventcontainer)

        self.right = gtk.Button()
        self.right.set_relief(gtk.RELIEF_NONE)
        self.right.unset_flags(gtk.CAN_FOCUS)
        imagen = gtk.Image()
        imagen.set_from_file("Imagenes/flecha_derecha.png")
        self.right.set_border_width(0)
        self.right.add(imagen)
        self.right.connect("clicked", self.go_right)
        hbox.pack_end(self.right)

        tabla = gtk.Table(rows=8, columns=1, homogeneous=True)
        tabla.attach(self.drawing, 0, 1, 0, 7, ypadding=5)
        tabla.attach(hbox, 0, 1, 7, 8)

        align = gtk.Alignment(0.5, 0.5, 0.7, 0.95)
        align.add(tabla)

        self.add(align)

    def go_right(self, widget):
        self.__run_secuencia()
        self.left.show()
        self.right.show()

    def go_left(self, widget):
        self.__run_secuencia(offset=-1)
        self.left.show()
        self.right.show()

    def __run_secuencia(self, widget=None, offset=1):
        self.stop()
        self.index_select += offset
        self.path = self.slides[self.index_select % len(self.slides)]
        self.imagenplayer = ImagePlayer(self.drawing)
        self.imagenplayer.load(self.path)
        self.label.set_text("Slide %i of %i" % (
            self.index_select % len(self.slides) + 1, len(self.slides)))

        #self.left.hide()
        #self.right.hide()
        return True

    def toggle(self):
        if self.control:
            gobject.source_remove(self.control)
            self.control = False
            self.modify_bg(gtk.STATE_NORMAL, COLORES['rojo'])
            self.left.show()
            self.right.show()
        else:
            self.modify_bg(gtk.STATE_NORMAL, COLORES['window'])
            self.play()
            self.left.hide()
            self.right.hide()

    def reset(self):
        self.modify_bg(gtk.STATE_NORMAL, COLORES['window'])
        self.play()

    def stop(self):
        if self.imagenplayer:
            self.imagenplayer.stop()
            del(self.imagenplayer)
            self.imagenplayer = False

    def play(self):
        if not self.control:
            self.control = gobject.timeout_add(10000, self.__run_secuencia)

    def load(self):
        self.stop()
        self.slides = sorted(glob("Imagenes/tv_slides/slide*.png"))
        self.index_select = -1
        self.__run_secuencia()
        #self.play()
        return False
Example #6
0
class FlashCardView(gtk.EventBox):

    __gsignals__ = {
    "video": (gobject.SIGNAL_RUN_FIRST,
        gobject.TYPE_NONE, (gobject.TYPE_STRING, ))}

    def __init__(self):

        gtk.EventBox.__init__(self)

        self.modify_bg(gtk.STATE_NORMAL, COLORES["contenido"])
        self.set_border_width(4)

        self.user = False
        self.topic = False
        self.vocabulario = []
        self.imagenplayer = False
        self.index_select = 0
        self.click_event = True

        tabla = gtk.Table(rows=11, columns=5, homogeneous=True)
        tabla.set_property("column-spacing", 5)
        tabla.set_property("row-spacing", 5)
        tabla.set_border_width(4)

        self.cabecera = Cabecera()
        self.flashcard = FlashCard()

        tabla.attach(self.cabecera, 0, 5, 0, 2)
        tabla.attach(self.flashcard, 0, 3, 2, 11)

        self.derecha = Derecha()
        tabla.attach(self.derecha, 3, 5, 2, 10)
        self.statuslabel = gtk.Label("Flashcard 0 of 0")
        tabla.attach(self.statuslabel, 3, 5, 10, 11)

        self.add(tabla)
        self.show_all()

        self.derecha.connect("siguiente", self.__siguiente)
        self.derecha.connect("show_answer", self.__show_answer)

    def __show_answer(self, widget):
        index = self.index_select
        respuesta = self.vocabulario[index][3] if len(self.vocabulario[index]) > 3 else \
                    self.vocabulario[index][1]
        self.derecha.label.set_text(
            self.vocabulario[index][1].replace(" ", "\n"))
        self.cabecera.question_label.set_markup("<b>"+respuesta+"</b>")
        if self.click_event:
            self.flashcard.disconnect(self.click_event)
            self.click_event = None
        self.click_event = self.flashcard.connect("button-press-event", self.repetir_respuesta, respuesta)
        #self.cabecera.question_label.modify_fg(gtk.STATE_NORMAL, COLORES["rojo"])
        gobject.idle_add(self.__show_phrase, respuesta)

    def __show_phrase(self, respuesta):
        decir_demorado(170, 50, 0, "en-gb", respuesta)
        self.cabecera.question_label.modify_fg(gtk.STATE_NORMAL, COLORES["window"])
        self.cabecera.question_label.set_markup(respuesta)
        if not self.click_event:
            self.click_event = self.flashcard.connect("button-press-event", self.repetir_respuesta, respuesta)

    def __siguiente(self, widget, respuesta):
        """
        ContinĂșa con siguiente palabra del vocabulario cargado.
        """
        r = 0
        if respuesta == 1:
            r = 5
        elif respuesta == 2:
            r = 3
        elif respuesta == 3:
            r = 0
        guardar(self.user, self.topic,
            self.vocabulario[self.index_select][0], r)
        if self.index_select < len(self.vocabulario) - 1:
            self.index_select += 1
            gobject.timeout_add(500, self.__load, self.index_select)
        else:
            dialog = Dialog("Congratulations!", self.get_toplevel(),
                ("OK", gtk.RESPONSE_ACCEPT),
                "Memorization task completed for today.")
            dialog.run()
            dialog.destroy()
            self.emit("video", self.topic)

    def __load(self, index):
        """
        Carga una nueva palabra del Vocabulario
        """
        path = os.path.join(self.topic, "Imagenes",
            "%s.png" % self.vocabulario[index][0])
        if self.imagenplayer:
            self.imagenplayer.stop()
            del(self.imagenplayer)
            self.imagenplayer = False
        self.imagenplayer = ImagePlayer(self.flashcard.drawing)
        self.imagenplayer.load(path)
        #self.cabecera.question_label.modify_fg(gtk.STATE_NORMAL, COLORES["rojo"])
        pregunta = self.vocabulario[index][2] if len(self.vocabulario[index]) > 2 else ""
        if pregunta == "":
            pregunta = "What is this?"
        self.cabecera.question_label.set_markup("<b>"+pregunta+"</b>")

        if self.click_event:
            self.flashcard.disconnect(self.click_event)
            self.click_event = None
        self.click_event = self.flashcard.connect("button-press-event", self.repetir_pregunta, pregunta)
        gobject.idle_add(self.__activar, pregunta)
        return False

    def repetir_pregunta(self, widget, event, pregunta):
        if self.click_event:
            self.flashcard.disconnect(self.click_event)
            self.click_event = None
        self.click_event = None
        self.cabecera.question_label.set_markup("<b>"+pregunta+"</b>")
        gobject.idle_add(self.__activar, pregunta)

    def repetir_respuesta(self, widget, event, respuesta):
        if self.click_event:
            self.flashcard.disconnect(self.click_event)
            self.click_event = None
        self.click_event = None
        self.cabecera.question_label.set_markup("<b>"+respuesta+"</b>")
        gobject.idle_add(self.__show_phrase, respuesta)

    def __activar(self, pregunta):
        decir_demorado(170, 50, 0, "en", pregunta)
        if not self.click_event:
            self.click_event = self.flashcard.connect("button-press-event", self.repetir_pregunta, pregunta)
        self.derecha.activar()
        self.cabecera.question_label.modify_fg(gtk.STATE_NORMAL, COLORES["window"])
        self.cabecera.question_label.set_markup(pregunta)
        self.statuslabel.set_text("Flashcard %i of %i" % (
            self.index_select + 1, len(self.vocabulario)))
        return False

    def stop(self):
        """
        Desactiva la vista de FlashCards.
        """
        self.hide()
        if self.imagenplayer:
            self.imagenplayer.stop()
            del(self.imagenplayer)
            self.imagenplayer = False

    def run(self, data):
        """
        Carga Vocabulario, pone widgets a estado inicial y
        carga primera palabra.
        """
        topic, _dict = data
        self.user = _dict
        parser = SafeConfigParser()
        metadata = os.path.join(topic, "topic.ini")
        parser.read(metadata)

        self.cabecera.titulo.set_text("Topic: " + parser.get('topic', 'title'))

        self.derecha.run()
        vocabulario = get_vocabulario(topic, _dict)
        if len(vocabulario) > 14:
            vocabulario = vocabulario[:15]
        self.show()
        if vocabulario:
            self.vocabulario = vocabulario
            self.topic = topic
            self.index_select = 0
            gobject.timeout_add(500, self.__load, self.index_select)
        else:
            self.topic = topic
            dialog = Dialog("Come back tomorrow!", self.get_toplevel(),
                ("OK", gtk.RESPONSE_ACCEPT),
                "You've memorized all flashcards for today.")
            dialog.run()
            dialog.destroy()
            self.emit("video", self.topic)
class FlashCardsPreview(gtk.EventBox):

    def __init__(self):

        gtk.EventBox.__init__(self)

        self.modify_bg(gtk.STATE_NORMAL, COLORES["window"])
        #self.set_border_width(20)

        self.vocabulario = []
        self.index_select = 0
        self.imagenplayer = False
        self.path = False
        self.control = False
        self.topic = False

        self.drawing = gtk.DrawingArea()
        eventcontainer = gtk.EventBox()
        eventcontainer.modify_bg(gtk.STATE_NORMAL, COLORES["window"])
        self.label = gtk.Label("Text")
        self.label.set_property("justify", gtk.JUSTIFY_CENTER)
        self.drawing.modify_bg(gtk.STATE_NORMAL, COLORES["window"])
        self.label.modify_bg(gtk.STATE_NORMAL, COLORES["window"])
        self.label.modify_fg(gtk.STATE_NORMAL, COLORES["text"])
        self.label.modify_font(pango.FontDescription("DejaVu Sans 20"))
        eventcontainer.add(self.label)
        eventcontainer.connect("button-press-event", self.utter)

        hbox = gtk.HBox()
        self.left = gtk.Button()
        self.left.set_relief(gtk.RELIEF_NONE)
        imagen = gtk.Image()
        imagen.set_from_file("Imagenes/flecha_izquierda.png")
        self.left.modify_bg(gtk.STATE_NORMAL, COLORES["rojo"])
        self.left.add(imagen)
        self.left.connect("clicked", self.go_left)
        hbox.pack_start(self.left)

        hbox.add(eventcontainer)

        self.right = gtk.Button()
        self.right.set_relief(gtk.RELIEF_NONE)
        imagen = gtk.Image()
        imagen.set_from_file("Imagenes/flecha_derecha.png")
        self.right.modify_bg(gtk.STATE_NORMAL, COLORES["rojo"])
        self.right.add(imagen)
        self.right.connect("clicked", self.go_right)
        hbox.pack_end(self.right)

        tabla = gtk.Table(rows=8, columns=1, homogeneous=True)
        tabla.attach(self.drawing, 0, 1, 0, 7, ypadding=5)
        tabla.attach(hbox, 0, 1, 7, 8)

        align = gtk.Alignment(0.5, 0.5, 0.7, 0.95)
        align.add(tabla)

        self.add(align)

    def utter(self, widget, event):
        palabra = self.label.get_text()
        #self.label.modify_fg(gtk.STATE_NORMAL, COLORES["rojo"])
        self.label.set_markup("<b>"+palabra+"</b>")
        gobject.idle_add(self.utter2, palabra)
        return True

    def utter2(self, palabra):
        decir_demorado(170, 50, 0, "en-gb", palabra)
        self.label.set_markup(palabra)
        #self.label.modify_fg(gtk.STATE_NORMAL, COLORES["text"])

    def go_right(self, widget):
        self.__run_secuencia()
        self.left.show()
        self.right.show()

    def go_left(self, widget):
        self.__run_secuencia(-1)
        self.left.show()
        self.right.show()

    def __run_secuencia(self, widget=None, offset=1):
        self.stop()
        self.path = os.path.join(self.topic, "Imagenes",
            "%s.png" % self.vocabulario[self.index_select][0])
        self.imagenplayer = ImagePlayer(self.drawing)
        self.imagenplayer.load(self.path)
        self.label.set_text(
            self.vocabulario[self.index_select][1])
        if self.index_select < len(self.vocabulario) - 1:
            self.index_select += offset
        else:
            self.index_select = 0

        self.left.hide()
        self.right.hide()
        return True

    def toggle(self):
        if self.control:
            gobject.source_remove(self.control)
            self.control = False
            self.modify_bg(gtk.STATE_NORMAL, COLORES['rojo'])
            self.left.show()
            self.right.show()
        else:
            self.modify_bg(gtk.STATE_NORMAL, COLORES['window'])
            self.play()
            self.left.hide()
            self.right.hide()

    def reset(self):
        self.modify_bg(gtk.STATE_NORMAL, COLORES['window'])
        self.play()

    def stop(self):
        if self.imagenplayer:
            self.imagenplayer.stop()
            del(self.imagenplayer)
            self.imagenplayer = False

    def play(self):
        if not self.control:
            self.control = gobject.timeout_add(4000, self.__run_secuencia)

    def load(self, topic):
        self.stop()
        self.topic = topic
        self.vocabulario = get_flashcards_previews(self.topic)
        self.index_select = 0
        self.__run_secuencia()
        self.play()
        return False
Example #8
0
class FlashCardsPreview(gtk.EventBox):
    def __init__(self):

        gtk.EventBox.__init__(self)

        self.modify_bg(gtk.STATE_NORMAL, COLORES["window"])
        #self.set_border_width(20)

        self.vocabulario = []
        self.index_select = 0
        self.imagenplayer = False
        self.path = False
        self.control = False
        self.topic = False

        self.drawing = gtk.DrawingArea()
        eventcontainer = gtk.EventBox()
        eventcontainer.modify_bg(gtk.STATE_NORMAL, COLORES["window"])
        self.label = gtk.Label("Text")
        self.label.set_property("justify", gtk.JUSTIFY_CENTER)
        self.drawing.modify_bg(gtk.STATE_NORMAL, COLORES["window"])
        self.label.modify_bg(gtk.STATE_NORMAL, COLORES["window"])
        self.label.modify_fg(gtk.STATE_NORMAL, COLORES["text"])
        self.label.modify_font(pango.FontDescription("DejaVu Sans 20"))
        eventcontainer.add(self.label)
        eventcontainer.connect("button-press-event", self.utter)

        hbox = gtk.HBox()
        self.left = gtk.Button()
        self.left.set_relief(gtk.RELIEF_NONE)
        imagen = gtk.Image()
        imagen.set_from_file("Imagenes/flecha_izquierda.png")
        self.left.modify_bg(gtk.STATE_NORMAL, COLORES["rojo"])
        self.left.add(imagen)
        self.left.connect("clicked", self.go_left)
        hbox.pack_start(self.left)

        hbox.add(eventcontainer)

        self.right = gtk.Button()
        self.right.set_relief(gtk.RELIEF_NONE)
        imagen = gtk.Image()
        imagen.set_from_file("Imagenes/flecha_derecha.png")
        self.right.modify_bg(gtk.STATE_NORMAL, COLORES["rojo"])
        self.right.add(imagen)
        self.right.connect("clicked", self.go_right)
        hbox.pack_end(self.right)

        tabla = gtk.Table(rows=8, columns=1, homogeneous=True)
        tabla.attach(self.drawing, 0, 1, 0, 7, ypadding=5)
        tabla.attach(hbox, 0, 1, 7, 8)

        align = gtk.Alignment(0.5, 0.5, 0.7, 0.95)
        align.add(tabla)

        self.add(align)

    def utter(self, widget, event):
        palabra = self.label.get_text()
        #self.label.modify_fg(gtk.STATE_NORMAL, COLORES["rojo"])
        self.label.set_markup("<b>" + palabra + "</b>")
        gobject.idle_add(self.utter2, palabra)
        return True

    def utter2(self, palabra):
        decir_demorado(170, 50, 0, "en-gb", palabra)
        self.label.set_markup(palabra)
        #self.label.modify_fg(gtk.STATE_NORMAL, COLORES["text"])

    def go_right(self, widget):
        self.__run_secuencia()
        self.left.show()
        self.right.show()

    def go_left(self, widget):
        self.__run_secuencia(-1)
        self.left.show()
        self.right.show()

    def __run_secuencia(self, widget=None, offset=1):
        self.stop()
        self.path = os.path.join(
            self.topic, "Imagenes",
            "%s.png" % self.vocabulario[self.index_select][0])
        self.imagenplayer = ImagePlayer(self.drawing)
        self.imagenplayer.load(self.path)
        self.label.set_text(self.vocabulario[self.index_select][1])
        if self.index_select < len(self.vocabulario) - 1:
            self.index_select += offset
        else:
            self.index_select = 0

        self.left.hide()
        self.right.hide()
        return True

    def toggle(self):
        if self.control:
            gobject.source_remove(self.control)
            self.control = False
            self.modify_bg(gtk.STATE_NORMAL, COLORES['rojo'])
            self.left.show()
            self.right.show()
        else:
            self.modify_bg(gtk.STATE_NORMAL, COLORES['window'])
            self.play()
            self.left.hide()
            self.right.hide()

    def reset(self):
        self.modify_bg(gtk.STATE_NORMAL, COLORES['window'])
        self.play()

    def stop(self):
        if self.imagenplayer:
            self.imagenplayer.stop()
            del (self.imagenplayer)
            self.imagenplayer = False

    def play(self):
        if not self.control:
            self.control = gobject.timeout_add(4000, self.__run_secuencia)

    def load(self, topic):
        self.stop()
        self.topic = topic
        self.vocabulario = get_flashcards_previews(self.topic)
        self.index_select = 0
        self.__run_secuencia()
        self.play()
        return False
Example #9
0
class HelpSlideShow(gtk.EventBox):

    def __init__(self):

        gtk.EventBox.__init__(self)

        self.modify_bg(gtk.STATE_NORMAL, COLORES["toolbar"])
        #self.set_border_width(20)

        self.slides = []
        self.index_select = 0
        self.imagenplayer = False
        self.control = False

        self.drawing = gtk.DrawingArea()
        eventcontainer = gtk.EventBox()
        eventcontainer.modify_bg(gtk.STATE_NORMAL, COLORES["toolbar"])
        self.label = gtk.Label("Text")
        self.label.set_property("justify", gtk.JUSTIFY_CENTER)
        self.drawing.modify_bg(gtk.STATE_NORMAL, COLORES["toolbar"])
        self.label.modify_bg(gtk.STATE_NORMAL, COLORES["toolbar"])
        self.label.modify_fg(gtk.STATE_NORMAL, COLORES["window"])
        #self.label.modify_font(pango.FontDescription("DejaVu Sans 16"))
        eventcontainer.add(self.label)

        hbox = gtk.HBox()
        self.left = gtk.Button()
        self.left.unset_flags(gtk.CAN_FOCUS)
        self.left.set_relief(gtk.RELIEF_NONE)
        imagen = gtk.Image()
        imagen.set_from_file("Imagenes/flecha_izquierda.png")
        self.left.set_border_width(0)
        self.left.add(imagen)
        self.left.connect("clicked", self.go_left)
        hbox.pack_start(self.left)

        hbox.add(eventcontainer)

        self.right = gtk.Button()
        self.right.set_relief(gtk.RELIEF_NONE)
        self.right.unset_flags(gtk.CAN_FOCUS)
        imagen = gtk.Image()
        imagen.set_from_file("Imagenes/flecha_derecha.png")
        self.right.set_border_width(0)
        self.right.add(imagen)
        self.right.connect("clicked", self.go_right)
        hbox.pack_end(self.right)

        tabla = gtk.Table(rows=8, columns=1, homogeneous=True)
        tabla.attach(self.drawing, 0, 1, 0, 7, ypadding=5)
        tabla.attach(hbox, 0, 1, 7, 8)

        align = gtk.Alignment(0.5, 0.5, 0.7, 0.95)
        align.add(tabla)

        self.add(align)

    def go_right(self, widget):
        self.__run_secuencia()
        self.left.show()
        self.right.show()

    def go_left(self, widget):
        self.__run_secuencia(offset=-1)
        self.left.show()
        self.right.show()

    def __run_secuencia(self, widget=None, offset=1):
        self.stop()
        self.index_select += offset
        self.path = self.slides[self.index_select % len(self.slides)]
        self.imagenplayer = ImagePlayer(self.drawing)
        self.imagenplayer.load(self.path)
        self.label.set_text("Slide %i of %i" % (
            self.index_select % len(self.slides) + 1, len(self.slides)))

        #self.left.hide()
        #self.right.hide()
        return True

    def toggle(self):
        if self.control:
            gobject.source_remove(self.control)
            self.control = False
            self.modify_bg(gtk.STATE_NORMAL, COLORES['rojo'])
            self.left.show()
            self.right.show()
        else:
            self.modify_bg(gtk.STATE_NORMAL, COLORES['window'])
            self.play()
            self.left.hide()
            self.right.hide()

    def reset(self):
        self.modify_bg(gtk.STATE_NORMAL, COLORES['window'])
        self.play()

    def stop(self):
        if self.imagenplayer:
            self.imagenplayer.stop()
            del(self.imagenplayer)
            self.imagenplayer = False

    def play(self):
        if not self.control:
            self.control = gobject.timeout_add(10000, self.__run_secuencia)

    def load(self):
        self.stop()
        self.slides = sorted(glob("Imagenes/slides/slide*.png"))
        self.index_select = -1
        self.__run_secuencia()
        #self.play()
        return False