add 'canvas' gui element where you can draw into a pixmap from python
[enigma2.git] / lib / python / Components / Renderer / Canvas.py
1 from Renderer import Renderer
2
3 from enigma import eCanvas, eRect, gRGB
4
5 class Canvas(Renderer):
6         GUI_WIDGET = eCanvas
7
8         def __init__(self):
9                 Renderer.__init__(self)
10                 self.sequence = None
11                 self.draw_count = 0
12
13         def pull_updates(self):
14                 if self.instance is None:
15                         return
16
17                 # do an incremental update
18                 list = self.source.drawlist
19                 if list is None:
20                         return
21
22                 # if the lists sequence count changed, re-start from begin
23                 if list[0] != self.sequence:
24                         self.sequence = list[0]
25                         self.draw_count = 0
26
27                 self.draw(list[1][self.draw_count:])
28                 self.draw_count = len(list[1])
29
30         def draw(self, list):
31                 for l in list:
32                         print "drawing ..", l
33                         self.instance.fillRect(eRect(l[1], l[2], l[3], l[4]), gRGB(l[5]))
34
35         def changed(self, what):
36                 self.pull_updates()
37
38         def postWidgetCreate(self, instance):
39                 self.sequence = None
40                 self.pull_updates()