Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/MusicpainterActivity.py
blob: 7ca1c55c36247dc886edd793b93706f598b8fa81 (plain)
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'