X-Git-Url: http://pileus.org/git/?p=~andy%2Fcsm213a-hw;a=blobdiff_plain;f=vis%2Fvisual.py;h=6fab6306caf63626d76ae0636a863e178d8794d1;hp=c4a266f2bba9439dc2627a58fd660d955ff0bb31;hb=1cc295bccdb5e7fbedd49c4f40080a2924f72660;hpb=13a31b75a57f7bb582795b22054dc355387f027b diff --git a/vis/visual.py b/vis/visual.py index c4a266f..6fab630 100644 --- a/vis/visual.py +++ b/vis/visual.py @@ -32,18 +32,25 @@ class Visual: self.rate_due = 0 self.rate_cnt = {'acc': 0, - 'mag': 0, - 'lgt': 0, - 'tch': 0, - 'a2d': 0} + 'mag': 0, + 'lgt': 0, + 'tch': 0, + 'a2d': 0} 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") + self.plotdraw = self.builder.get_object('plot') self.plotsns = self.builder.get_object('sns') self.plotaxis = self.builder.get_object('axis') + if sys.version_info<(3,0,0): + self.plotdraw.connect('expose-event', self.on_expose) + else: + self.plotdraw.connect('draw', self.on_draw) + self.accs = get_objects(['accx', 'accy', 'accz']) self.mags = get_objects(['magx', 'magy', 'magz']) self.lgts = get_objects(['lgt']) @@ -104,8 +111,7 @@ class Visual: setattr(self.config, name, value) self.config.save() - def on_expose(self, obj, _): - cairo = obj.window.cairo_create() + def on_draw(self, obj, cairo): count = len(self.history) extents = cairo.clip_extents() width = extents[2] - extents[0] @@ -121,6 +127,10 @@ class Visual: cairo.line_to(x, y) cairo.stroke() + def on_expose(self, obj, event): + cairo = obj.window.cairo_create() + self.draw(obj, cairo) + def on_key(self, win, ev): if ev.string == 'q': Gtk.main_quit(); @@ -128,7 +138,7 @@ class Visual: def on_destroy(self, win): Gtk.main_quit() - # Methods + # Methods def load_config(self): def set_val(name, val): self.builder.get_object(name).set_value(val)