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
|
# -*- coding: utf-8 -*-
import gtk
import pygtk
import pango
import random
import copy
from sugar.graphics import style
from settings import Settings
from coach import Coach
from exaddsimp import ExAddSimp
from exaddsub import ExAddSub
from expassten import ExPassTen
from exmult import ExMult
from extimesdiv import ExTimesDiv
from extimesadd import ExTimesAdd
class Collection:
def __init__(self, display, coach):
self._sett = Settings()
#WN.LV diese Daten via pickle.load(...) holen
self._data = [self._sett.get_setting('addsub_simp'),
self._sett.get_setting('passten'),
self._sett.get_setting('times_div')]
self._display = display
self._coach = coach
self._active_topic = None
def select(self, key):
""" Select an exercise by key. """
#WN.LV Code ersetzen, key NICHT fuer Listen sondern fuer ...
print('in collection.select, key=', key)
print('in collection.select, _data=', self._data)
print('in collection.select, _data[key]=', self._data[key])
_sett = self._data[key]
if _sett['topic'] == 'addsub_simp':
return ExAddSimp(self._display, _sett)
elif _sett['topic'] == 'exaddsub':
return ExAddSub(self._display, _sett)
elif _sett['topic'] == 'passten':
return ExPassTen(self._display, _sett)
elif _sett['topic'] == 'exmult':
return ExMult(self._display, _sett)
elif _sett['topic'] == 'times_div':
return ExTimesDiv(self._display, _sett)
elif _sett['topic'] == 'extimesadd':
return ExTimesAdd(self._display, _sett)
else:
raise Exception()
def define_coll_gui(self):
""" Define gui-elements for presenting the collcetion. """
#WN.LV diesen Code ersetzen !!!!!
self.topic_box = gtk.HBox(True, 0)
self._display.topic_table.attach(self.topic_box, 0, 6, 0, 1)
def set_coll_gui(self):
""" Set gui-elements according to Collection.data. """
#WN.LV diesen Code ersetzen !!!!!
_i = 0
for _t in ['addsub_simp','passten','times_div']:
self.button = gtk.Button()
self.image = gtk.Image()
if(_t == 'addsub_simp'):
self.image.set_from_file("img/addsub_simp.jpg")
elif(_t == 'passten'):
self.image.set_from_file("img/passten.jpg")
elif(_t == 'times_div'):
self.image.set_from_file("img/times_div.jpg")
self.button.set_image(self.image)
self.button.connect("clicked", self.select_exerc_callback, _i)
self.topic_box.pack_start(self.button)
self.button.show()
_i = _i + 1
self.topic_box.show()
def select_exerc_callback(self, widget, topic):
"""callback: get the users choice from buttons above the settings"""
if(self._active_topic == None):
self._active_topic = topic
print('in collection.select_exerc_callback, 422 self._sett=',
self._sett)
self._coach.notify(('exerc-selected', topic))
elif(self._active_topic == topic):
pass
elif(self._active_topic != topic):
self._active_topic = topic
#WN.LV the code below should go into display
self._display.settings_table.destroy()
self._display.settings_table = gtk.Table(15, 6, True)
self._display.table.attach(self._display.
settings_table, 1, 2, 0, 5)
self._display.settings_table.show()
self._display.table_with_start.destroy()
self._display.table_with_start = gtk.Table(15, 6, True)
self._display.table.attach(self._display.
table_with_start, 1, 2, 0, 5)
self._display.table_with_start.show()
self._coach.notify(('exerc-selected', topic))
|