From 27a71cab6f24b13af63af31239b14c3de7fcab73 Mon Sep 17 00:00:00 2001 From: Roberto Cristaldo Date: Wed, 30 Jan 2013 18:01:58 +0000 Subject: Ya esta. Solo falta pulir la parte grafica --- diff --git a/activity.py b/activity.py index ca68e50..a3b25dc 100644 --- a/activity.py +++ b/activity.py @@ -37,7 +37,7 @@ class ElephantActivity(activity.Activity): def __init__(self, handle): """Set up the Elephant activity.""" activity.Activity.__init__(self, handle) - + # we do not have collaboration features # make the share option insensitive self.max_participants = 1 @@ -70,18 +70,12 @@ class ElephantActivity(activity.Activity): self.set_toolbar_box(toolbar_box) toolbar_box.show() - # label with the text, make the string translatable - # label = gtk.Label(_("Hello World!")) - # self.set_canvas(label) - # label.show() - # Instances to Elephants classes words = elephant.word_list() # Get a word form word list and path - word, path = self.get_random_word(words) - choice_letter = elephant.letters(word) - + self.get_random_word(words) + # Vertical box conteinter definition vbox_main = gtk.VBox() @@ -91,25 +85,18 @@ class ElephantActivity(activity.Activity): hbox_03 = gtk.HBox() # Buttons definitions - button_repeat = gtk.Button() - button_repeat.set_label('Repetir') + self.button_repeat = gtk.Button() + self.button_repeat.set_label('Repetir') - button_option1 = gtk.Button() - button_option2 = gtk.Button() - button_option3 = gtk.Button() - - #Old activity title - #image_word = gtk.Image() - #pixbuf = gtk.gdk.pixbuf_new_from_file("images/elefante_logo.png") - #scaled_pixbuf = pixbuf.scale_simple(150,150,gtk.gdk.INTERP_BILINEAR) - #image_word.set_from_pixbuf(scaled_pixbuf) - - #label_word = gtk.Label() - #label_word.set_text('Elefante') - - #Image and label word - image_word = self.show_image(path) - label_word = self.show_label(word) + self.button_option1 = gtk.Button() + self.button_option2 = gtk.Button() + self.button_option3 = gtk.Button() + + # Image and label word + self.label_word = gtk.Label() + self.image_word = gtk.Image() + #self.image_word = self.show_image(path) + #self.label_word = self.show_label(word) # Create layout self.set_canvas(vbox_main) @@ -118,79 +105,44 @@ class ElephantActivity(activity.Activity): vbox_main.add(hbox_03) # Put label and label on layout - hbox_02.add(image_word) - hbox_02.add(label_word) - + hbox_02.add(self.image_word) + hbox_02.add(self.label_word) + + # conectors + self.connect('realize', self.__window_realize) + self.button_repeat.connect('clicked', self.__button_clicked_rep) + self.button_option1.connect('clicked', self.__button_clicked_op) + self.button_option2.connect('clicked', self.__button_clicked_op) + self.button_option3.connect('clicked', self.__button_clicked_op) + # Put buttons on layout - hbox_01.add(button_repeat) - hbox_03.add(button_option1) - hbox_03.add(button_option2) - hbox_03.add(button_option3) - - # Connections - button_repeat.connect('clicked', self.__button_clicked_rep, \ - word, \ - choice_letter.letter, \ - choice_letter.place_word) - - label_word.connect('focus', self.__label_focus_lw, \ - word, \ - choice_letter.letter, \ - choice_letter.place_word) - - options_places = choice_letter.random_places - op_label = choice_letter.translate_to_str(options_places[0]) - label = self.set_option_label('Opcion 1:', op_label) - button_option1.set_label(label) + hbox_01.add(self.button_repeat) + hbox_03.add(self.button_option1) + hbox_03.add(self.button_option2) + hbox_03.add(self.button_option3) - op_label = choice_letter.translate_to_str(options_places[1]) - label = self.set_option_label('Opcion 2:', op_label) - button_option2.set_label(label) - - op_label = choice_letter.translate_to_str(options_places[2]) - label = self.set_option_label('Opcion 3:', op_label) - button_option3.set_label(label) - - button_option1.connect('clicked', self.__button_clicked_op, \ - choice_letter.letter_index, \ - options_places[0]) - - button_option2.connect('clicked', self.__button_clicked_op, \ - choice_letter.letter_index, \ - options_places[1]) - - button_option3.connect('clicked', self.__button_clicked_op, \ - choice_letter.letter_index, \ - options_places[2]) - - # ShowMeTheMoney!!! vbox_main.show_all() - #label_word.is_focus = true + #label_word.show() + self.elephant_is_saying() + # Get random word form word list def get_random_word(self, words): word_list = words.get_word_list() - word = choice(word_list) - path = words.get_word_image_path(word) - - return word, path + self.word = choice(word_list) + self.path = words.get_word_image_path(self.word) # Create image from path - def show_image(self, path): - image = gtk.Image() - pixbuf = gtk.gdk.pixbuf_new_from_file(path) + def show_image(self): + pixbuf = gtk.gdk.pixbuf_new_from_file(self.path) scaled_pixbuf = pixbuf.scale_simple(150,150,gtk.gdk.INTERP_BILINEAR) - image.set_from_pixbuf(scaled_pixbuf) + self.image_word.set_from_pixbuf(scaled_pixbuf) - return image # Crete label form word - def show_label(self,word): - label = gtk.Label() - label.set_text(word) - - return label + def show_label(self): + self.label_word.set_text(self.word) # Create proper lables for options buttons def set_option_label(self, option, position): @@ -201,48 +153,77 @@ class ElephantActivity(activity.Activity): return label + def __window_realize(self, window): + self.elephant_is_saying(self.word, self.path) + + # Say the word and riddle on button click - def __button_clicked_rep(self, button, \ - word, \ - letter_to_say, \ - place_word): - - self.speech_to_say(word, \ - letter_to_say, \ - place_word) - - def __button_clicked_op(self, button, true_letter, press_letter): - if true_letter == press_letter: - self.say('Okey') + def __button_clicked_rep(self, button): + self.speech_to_say() + + def __button_clicked_op(self, button): + + if button == self.button_true: + self.say('Felicitaciones. Tu respuesta es correcta') + + # Repeat + words = elephant.word_list() + self.get_random_word(words) + + self.elephant_is_saying() else: - self.say('Error') - - # Say the word and riddle on label focus - def __label_focus_lw(self, label, \ - word, \ - letter_to_say, \ - place_word): - - self.speech_to_say(word, \ - letter_to_say, \ - place_word) + self.say('Intenta de nuevo.') + self.speech_to_say() + # Say the word and riddle - def speech_to_say (self, word, \ - letter_to_say, \ - place_word): + def speech_to_say (self): speech_to_say = 'Donde esta la ' - if place_word == False: + if self.place_word == False: speech_to_say += '' else: - speech_to_say += place_word + speech_to_say += self.place_word speech_to_say += ' letra ' - speech_to_say += letter_to_say + speech_to_say += self.letter_to_say - self.say(word) + self.say(self.word) self.say(speech_to_say) # Say.. sayyyy.... saaaaayyyy... def say(self, text): subprocess.call(['espeak', '-v', 'es', text]) + + def elephant_is_saying (self): + choice_letter = elephant.letters(self.word) + + self.letter_index = choice_letter.letter_index + self.letter_to_say = choice_letter.letter + self.place_word = choice_letter.place_word + self.random_places = choice_letter.random_places + + self.show_image() + self.show_label() + + op_label = choice_letter.translate_to_str(self.random_places[0]) + label = self.set_option_label('Opcion 1:', op_label) + self.button_option1.set_label(label) + + op_label = choice_letter.translate_to_str(self.random_places[1]) + label = self.set_option_label('Opcion 2:', op_label) + self.button_option2.set_label(label) + + op_label = choice_letter.translate_to_str(self.random_places[2]) + label = self.set_option_label('Opcion 3:', op_label) + self.button_option3.set_label(label) + + if self.letter_index == self.random_places[0]: + self.button_true = self.button_option1 + elif self.letter_index == self.random_places[1]: + self.button_true = self.button_option2 + elif self.letter_index == self.random_places[2]: + self.button_true = self.button_option3 + else: + self.speech_to_say('Algo salio mal') + + self.speech_to_say() \ No newline at end of file -- cgit v0.9.1