Commit d9082b1ea33bfeb31740147795867ee41af8750e

Authored by Christopher Stone
1 parent cad30d6c
Exists in master

Made plot a subclass of window

telemetry/code/monitor/.graph_plotter_rewrite.py.kate-swp 0 → 100644
No preview for this file type
telemetry/code/monitor/graph_plotter_rewrite.py
@@ -28,28 +28,25 @@ class Series: @@ -28,28 +28,25 @@ class Series:
28 if len(self.data) > self.points: 28 if len(self.data) > self.points:
29 del self.points[-1] 29 del self.points[-1]
30 30
31 -class Plot():  
32 - def __init__(self, series, size=(640, 480)): 31 +class Plot(pyglet.window.Window):
  32 + def __init__(self, series):
33 """Setup a the details of a plot, and create a corresponding window""" 33 """Setup a the details of a plot, and create a corresponding window"""
  34 + pyglet.window.Window.__init__(self, resizable=True)
34 self.series = series 35 self.series = series
35 self.title = self.series.title 36 self.title = self.series.title
36 - self.size = size  
37 self.font = 'Arkhip' 37 self.font = 'Arkhip'
38 self.margins = (0.02, 0.02) # Fractions of window size 38 self.margins = (0.02, 0.02) # Fractions of window size
39 self.lines = (12, 8) 39 self.lines = (12, 8)
40 - self.window = pyglet.window.Window(self.size[0], self.size[1], resizable=True)  
41 - self.window.set_caption(self.title)  
42 - self.window.on_resize = self.resize  
43 - self.window.on_draw = self.draw  
44 - self.bounds = ((int(self.window.width * self.margins[0]), int(self.window.width * (1 - self.margins[0]))),  
45 - (int(self.window.height * self.margins[1]), int(self.window.height * (1 - self.margins[1])))) 40 + #self.resizable = True
  41 + self.set_caption(self.title)
  42 + self.bounds = ((int(self.width * self.margins[0]), int(self.width * (1 - self.margins[0]))),
  43 + (int(self.height * self.margins[1]), int(self.height * (1 - self.margins[1]))))
46 44
47 - def resize(self, width, height):  
48 - """Handle a pyglet resize event, then give control back to the event loop"""  
49 - self.size = (width, height)  
50 - super(pyglet.window.Window, self.window).on_resize(width, height) 45 + #def on_resize(self, width, height):
  46 + """Handle a pyglet resize event"""
  47 + # pass
51 48
52 - def draw(self): 49 + def on_draw(self):
53 """Draw all the components of the graph""" 50 """Draw all the components of the graph"""
54 self.drawBackground() 51 self.drawBackground()
55 self.drawHeading() 52 self.drawHeading()
@@ -57,12 +54,12 @@ class Plot(): @@ -57,12 +54,12 @@ class Plot():
57 54
58 def drawBackground(self): 55 def drawBackground(self):
59 """Draw the graph background, currently a plain colour""" 56 """Draw the graph background, currently a plain colour"""
60 - pyglet.image.SolidColorImagePattern(WHITE).create_image(self.size[0], self.size[1]).blit(0, 0) 57 + pyglet.image.SolidColorImagePattern(WHITE).create_image(self.width, self.height).blit(0, 0)
61 58
62 def drawHeading(self): 59 def drawHeading(self):
63 """Draw a title for the graph (duplicated in the window titlebar, if present""" 60 """Draw a title for the graph (duplicated in the window titlebar, if present"""
64 heading = pyglet.text.Label(self.title, color=BLACK, 61 heading = pyglet.text.Label(self.title, color=BLACK,
65 - font_name=self.font, font_size=self.size[0]*self.margins[0], x=self.size[0]/2, y=self.size[1], 62 + font_name=self.font, font_size=self.width*self.margins[0], x=self.width/2, y=self.height,
66 anchor_x='center', anchor_y='top') 63 anchor_x='center', anchor_y='top')
67 heading.draw() 64 heading.draw()
68 65