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
|
import Musicpainter
from sugar.presence import presenceservice
from sugar.activity.activity import ActivityToolbox
from sugar.activity import activity
class MusicpainterActivity(activity.Activity):
def __init__(self, handle):
activity.Activity.__init__(self, handle)
self.connect('destroy', self._cleanup_cb)
#load the sugar toolbar
toolbox = activity.ActivityToolbox(self)
self.set_toolbox(toolbox)
activity_toolbar = toolbox.get_activity_toolbar()
activity_toolbar.remove(activity_toolbar.share)
activity_toolbar.share = None
activity_toolbar.keep.connect('clicked', self._keep_cb)
#activity_toolbar.remove(activity_toolbar.keep)
#activity_toolbar.keep = None
activity_toolbar.stop.can_focus = True
activity_toolbar.keep.can_focus = True
#activity_toolbar.keep.grab_focus()
toolbox.show()
activity_toolbar.keep.grab_focus()
self.gamename = 'Musicpainter'
self.set_title("Music Painter")
# connect to the in/out events
self.connect('notify::active', self.onActive)
self.connect('focus_in_event', self._focus_in)
self.connect('focus_out_event', self._focus_out)
self.musicpainter = Musicpainter.Musicpainter()
# self.musicpainter.grab_focus()
# musicpainter.init_csoundpath(activity.get_bundle_path())
presenceService = presenceservice.get_instance()
xoOwner = presenceService.get_owner() # get my name
# self.grab_focus()
self.musicpainter.initSugar(self, xoOwner.props.nick)
try:
print "To load: " + self.to_read
self.musicpainter.canvas.canvas_load_journal(self.to_read)
print "complete!"
except:
return
# self.activity_toolbar.share.hide()
def _keep_cb(self, data=None):
print "to keep()"
self.musicpainter.canvas.save_file()
return
def _cleanup_cb(self, data=None):
return
def _focus_in(self, event, data=None):
return
def _focus_out(self, event, data=None):
return
def onActive(self, widget = None, event = None):
if widget.props.active == False:
print "MusicpainterActivity.onActive: to disconnect"
self.musicpainter.deactivate()
else:
print "MusicpainterActivity.onActive: to re-connect"
self.musicpainter.reactivate()
def read_file(self, file_path):
'''Read file from Sugar Journal.'''
print "read file: " + file_path + " pending"
self.to_read = file_path
#self.musicpainter.canvas.canvas_load_journal(file_path)
def write_file(self, file_path):
'''Save file on Sugar Journal. '''
print "write file: " + file_path
self.musicpainter.score.write_journal(file_path)
self.metadata['activity'] = self.get_bundle_id()
self.metadata['mime_type'] = 'application/x-musicpainter'
|