#!/usr/bin/env python import pygtk import gtk class Visual: def __init__(self, config, device, xively): self.config = config self.device = device self.xively = xively self.builder = gtk.Builder() self.builder.add_from_file('visual.ui') self.builder.connect_signals(self) self.window = self.builder.get_object("window") self.settings = self.builder.get_object("settings") # Signal handlers def on_hide(self, win, *args): self.settings.hide() return True def on_show(self, act): self.settings.show() return True def on_serial(self, win): self.device.connect() return True def on_xively(self, win): self.xively.connect() return True def on_enable(self, _): print "Unimplemented: on_enable" return True def on_rate(self, _): print "Unimplemented: on_rate" return True def on_key(self, win, ev): if ev.string == 'q': gtk.main_quit(); def on_destroy(self, win): gtk.main_quit() # Methods def load_config(self): # Serial settings baud = self.builder.get_object("baudrate") parity = self.builder.get_object("parity") datab = self.builder.get_object("databits") stopb = self.builder.get_object("stopbits") baud.set_value(self.config.baudrate) parity.set_text(self.config.parity) datab.set_value(self.config.databits) stopb.set_value(self.config.stopbits) # Xively settings user = self.builder.get_object("username") pwd = self.builder.get_object("password") api = self.builder.get_object("apikey") user.set_text(self.config.username) pwd.set_text(self.config.password) api.set_text(self.config.apikey) # TODO - send changes back to config def run(self): self.load_config() self.window.show() gtk.main()