diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2007-07-19 23:48:55 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2007-07-19 23:48:55 +0000 |
| commit | c479beea7cc338380a38e29ae041c03b2c299ac1 (patch) | |
| tree | 54a2173395f0f15d27f54ed3e9cf5efa9fc136c9 /lib/python/Components/Renderer/Canvas.py | |
| parent | 4a8afa26612c40ba5c9c48d42e15abe8bcec2b98 (diff) | |
| download | enigma2-c479beea7cc338380a38e29ae041c03b2c299ac1.tar.gz enigma2-c479beea7cc338380a38e29ae041c03b2c299ac1.zip | |
add 'canvas' gui element where you can draw into a pixmap from python
Diffstat (limited to 'lib/python/Components/Renderer/Canvas.py')
| -rw-r--r-- | lib/python/Components/Renderer/Canvas.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/python/Components/Renderer/Canvas.py b/lib/python/Components/Renderer/Canvas.py new file mode 100644 index 00000000..01b05fb0 --- /dev/null +++ b/lib/python/Components/Renderer/Canvas.py @@ -0,0 +1,40 @@ +from Renderer import Renderer + +from enigma import eCanvas, eRect, gRGB + +class Canvas(Renderer): + GUI_WIDGET = eCanvas + + def __init__(self): + Renderer.__init__(self) + self.sequence = None + self.draw_count = 0 + + def pull_updates(self): + if self.instance is None: + return + + # do an incremental update + list = self.source.drawlist + if list is None: + return + + # if the lists sequence count changed, re-start from begin + if list[0] != self.sequence: + self.sequence = list[0] + self.draw_count = 0 + + self.draw(list[1][self.draw_count:]) + self.draw_count = len(list[1]) + + def draw(self, list): + for l in list: + print "drawing ..", l + self.instance.fillRect(eRect(l[1], l[2], l[3], l[4]), gRGB(l[5])) + + def changed(self, what): + self.pull_updates() + + def postWidgetCreate(self, instance): + self.sequence = None + self.pull_updates() |
