]> git.neil.brown.name Git - freerunner.git/blob - music/properties.py
Lots of random updates
[freerunner.git] / music / properties.py
1
2 import gtk
3
4 class RootProp():
5     def __init__(self):
6         self.root = gtk.gdk.get_default_root_window()
7
8     def setstr(self, name, val):
9         self.root.property_change(name, "STRING", 8,
10                                   gtk.gdk.PROP_MODE_REPLACE, val)
11
12     def getstr(self, name):
13         (type, format, value) = self.root.property_get(name)
14         if type != "STRING" or format != 8:
15             return None
16         return value
17
18     def watchstr(self, name, fn):
19         m = self.root.get_events()
20         self.root.set_events(m | gtk.gdk.PROPERTY_CHANGE_MASK)
21         self.root.add_filter(self.gotev, True)
22
23     def gotev(self, ev, tr):
24         print ev, dir(ev)
25         print ev.type, ev.get_state()
26         if ev.type == gtk.gdk.PROPERTY_NOTIFY:
27             print ev.atom
28         else:
29             print ev.type
30
31         ev2 = gtk.gdk.event_get()
32         print "and", ev2.type
33         return gtk.gdk.FILTER_CONTINUE
34
35 def ping(*a):
36     print 'ping'
37
38 a= RootProp()
39 a.watchstr('song', ping)
40 gtk.main()