Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoberto Cristaldo <rcristal@gmail.com>2013-01-30 18:01:58 (GMT)
committer Roberto Cristaldo <rcristal@gmail.com>2013-01-30 18:01:58 (GMT)
commit27a71cab6f24b13af63af31239b14c3de7fcab73 (patch)
tree0a8eb141fc4d5cca78e23bfd8aaab706b5590e44
parentb2ca03b218aa5faf0d70e503b83f348fa55ed9ab (diff)
Ya esta. Solo falta pulir la parte graficaHEADmaster
-rw-r--r--activity.py213
1 files changed, 97 insertions, 116 deletions
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