1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
# Copyright 2013 Patricia Espinola
#
# 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 2 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, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
"""Piensa y Escribe: A case study for developing an activity."""
import gtk
import logging
from gettext import gettext as _
from sugar.activity import activity
from sugar.graphics.toolbarbox import ToolbarBox
from sugar.activity.widgets import ActivityButton
from sugar.activity.widgets import ActivityToolbox
from sugar.activity.widgets import TitleEntry
from sugar.activity.widgets import StopButton
from sugar.activity.widgets import ShareButton
class PiensaEscribeActivity(activity.Activity):
"""PiensaEscribe class as specified in activity.info"""
def __init__(self, handle):
"""Set up the PiensaEscribe activity."""
activity.Activity.__init__(self, handle)
# we do not have collaboration features
# make the share option insensitive
self.max_participants = 1
# toolbar with the new toolbar redesign
toolbar_box = ToolbarBox()
activity_button = ActivityButton(self)
toolbar_box.toolbar.insert(activity_button, 0)
activity_button.show()
title_entry = TitleEntry(self)
toolbar_box.toolbar.insert(title_entry, -1)
title_entry.show()
share_button = ShareButton(self)
toolbar_box.toolbar.insert(share_button, -1)
share_button.show()
separator = gtk.SeparatorToolItem()
separator.props.draw = False
separator.set_expand(True)
toolbar_box.toolbar.insert(separator, -1)
separator.show()
stop_button = StopButton(self)
toolbar_box.toolbar.insert(stop_button, -1)
stop_button.show()
self.set_toolbar_box(toolbar_box)
toolbar_box.show()
self.createGUI()
# label with the text, make the string translatable
def createGUI(self):
correct_option = [3, 2]
#fila_option = 0
#cantidad_imagenes = 2
image_number = 0
vbox = gtk.VBox()
hbox = gtk.HBox()
imagen1 = gtk.Image()
imagen1.set_from_file('gordo.jpg')
imagen2 = gtk.Image()
imagen2.set_from_file('flaco.jpg')
button1 = gtk.Button()
button1.set_label('Claro - Oscuro')
button2 = gtk.Button()
button2.set_label('Joven - Anciano')
button3 = gtk.Button()
button3.set_label('Gordo - Flaco')
button1.connect('enter', self.__sobre_boton_cb)
button2.connect('enter', self.__sobre_boton_cb)
button3.connect('enter', self.__sobre_boton_cb)
button1.connect('clicked', self.__correcto_cb, correct_option[0], 1)
button2.connect('clicked', self.__correcto_cb, correct_option[0], 2)
button3.connect('clicked', self.__correcto_cb, correct_option[0], 3)
hbox.add(imagen1)
hbox.add(imagen2)
vbox.add(hbox)
vbox.add(button1)
vbox.add(button2)
vbox.add(button3)
self.set_canvas(vbox)
vbox.show_all()
def __correcto_cb(self, button, correct_option, clave):
if correct_option == clave:
voice.say('opcion - correcta')
else:
voice.say('opcion - incorrecta')
def __sobre_boton_cb(self, button):
voice.say(button.get_label())
if __name__ == "__main__":
my_app = PiensaEscribeActivity()
gtk.main()
|