]> Pileus Git - ~andy/csm213a-hw/blob - vis/visual.py
908304d908da2b374d93211d51c1982fbe2db559
[~andy/csm213a-hw] / vis / visual.py
1 #!/usr/bin/env python
2
3 import pygtk
4 import gtk
5
6 class Visual:
7         def __init__(self, config, device, xively):
8                 self.config   = config
9                 self.device   = device
10                 self.xively   = xively
11                 self.builder  = gtk.Builder()
12
13                 self.builder.add_from_file('visual.ui')
14                 self.builder.connect_signals(self)
15                 self.window   = self.builder.get_object("window")
16                 self.settings = self.builder.get_object("settings")
17
18         # Signal handlers
19         def on_hide(self, win, *args):
20                 self.settings.hide()
21                 return True
22
23         def on_show(self, act):
24                 self.settings.show()
25                 return True
26
27         def on_serial(self, win):
28                 self.device.connect()
29                 return True
30
31         def on_xively(self, win):
32                 self.xively.connect()
33                 return True
34
35         def on_enable(self, _):
36                 print "Unimplemented: on_enable"
37                 return True
38         
39         def on_rate(self, _):
40                 print "Unimplemented: on_rate"
41                 return True
42
43         def on_key(self, win, ev):
44                 if ev.string == 'q':
45                         gtk.main_quit();
46
47         def on_destroy(self, win):
48                 gtk.main_quit()
49
50         # Methods
51         def load_config(self):
52                 # Serial settings
53                 baud   = self.builder.get_object("baudrate")
54                 parity = self.builder.get_object("parity")
55                 datab  = self.builder.get_object("databits")
56                 stopb  = self.builder.get_object("stopbits")
57                 baud.set_value(self.config.baudrate)
58                 parity.set_text(self.config.parity)
59                 datab.set_value(self.config.databits)
60                 stopb.set_value(self.config.stopbits)
61
62                 # Xively settings
63                 user  = self.builder.get_object("username")
64                 pwd   = self.builder.get_object("password")
65                 api   = self.builder.get_object("apikey")
66                 user.set_text(self.config.username)
67                 pwd.set_text(self.config.password)
68                 api.set_text(self.config.apikey)
69
70                 # TODO - send changes back to config
71
72         def run(self):
73                 self.load_config()
74                 self.window.show()
75                 gtk.main()