diff options
Diffstat (limited to 'activity.py')
-rw-r--r-- | activity.py | 103 |
1 files changed, 87 insertions, 16 deletions
diff --git a/activity.py b/activity.py index a8718f4..e147d46 100644 --- a/activity.py +++ b/activity.py @@ -17,10 +17,11 @@ import gtk import logging import elephant +import subprocess -from random import choice - -from gettext import gettext as _ +from time import sleep +from random import choice +from gettext import gettext as _ from sugar.activity import activity from sugar.graphics.toolbarbox import ToolbarBox @@ -76,10 +77,11 @@ class ElephantActivity(activity.Activity): # Instances to Elephants classes words = elephant.word_list() - choice_letter = elephant.letters() - - + # Get a word form word list and path + word, path = self.get_random_word(words) + choice_letter = elephant.letters(word) + # Vertical box conteinter definition vbox_main = gtk.VBox() @@ -93,13 +95,8 @@ class ElephantActivity(activity.Activity): button_repeat.set_label('Repetir') button_option1 = gtk.Button() - button_option1.set_label('Opcion 1:') - button_option2 = gtk.Button() - button_option2.set_label('Opcion 2:') - button_option3 = gtk.Button() - button_option3.set_label('Opcion 3:') #Old activity title #image_word = gtk.Image() @@ -110,10 +107,6 @@ class ElephantActivity(activity.Activity): #label_word = gtk.Label() #label_word.set_text('Elefante') - - #Get a word form word list and path - word, path = self.get_random_word(words) - #Image and label word image_word = self.show_image(path) label_word = self.show_label(word) @@ -134,8 +127,33 @@ class ElephantActivity(activity.Activity): hbox_03.add(button_option2) hbox_03.add(button_option3) - #ShowMeTheMoney!!! + # Connections + button_repeat.connect('clicked', self.__button_clicked_cb, \ + word, \ + choice_letter.letter, \ + choice_letter.relative_place, \ + choice_letter.place_word) + + label_word.connect('focus', self.__label_focus_cb, \ + word, \ + choice_letter.letter, \ + choice_letter.relative_place, \ + choice_letter.place_word) + + options_places = choice_letter.random_places + label = self.set_opton_label('Opcion 1:', options_places[0]) + button_option1.set_label(label) + + label = self.set_opton_label('Opcion 2:', options_places[1]) + button_option2.set_label(label) + + label = self.set_opton_label('Opcion 3:', options_places[2]) + button_option3.set_label(label) + + + # ShowMeTheMoney!!! vbox_main.show_all() + #label_word.is_focus = true # Get random word form word list def get_random_word(self, words): @@ -161,3 +179,56 @@ class ElephantActivity(activity.Activity): return label + # Create proper lables for options buttons + def set_opton_label(self, option, position): + label = option + label += ' Es la ' + label += position + label += ' letra' + + return label + + # Say the word and riddle on button click + def __button_clicked_cb(self, button, \ + word, \ + letter_to_say, \ + relative_place, \ + place_word): + + self.speech_to_say(word, \ + letter_to_say, \ + relative_place, \ + place_word) + + # Say the word and riddle on label focus + def __label_focus_cb(self, label, \ + word, \ + letter_to_say, \ + relative_place, \ + place_word): + + self.speech_to_say(word, \ + letter_to_say, \ + relative_place, \ + place_word) + + # Say the word and riddle + def speech_to_say (self, word, \ + letter_to_say, \ + relative_place, \ + place_word): + + speech_to_say = 'Donde esta la ' + if relative_place == False: + speech_to_say += '' + else: + speech_to_say += place_word + speech_to_say += ' letra ' + speech_to_say += letter_to_say + + self.say(word) + self.say(speech_to_say) + + # Say.. sayyyy.... saaaaayyyy... + def say(self, text): + subprocess.call(['espeak', '-v', 'es', text]) |