From 2d29927aa26e15e148e9548af6b90bbfffdb1114 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andr=C3=A9=20Wobst?= Date: Fri, 9 Dec 2011 21:41:43 +0000 Subject: [PATCH] add a layered canvas class git-svn-id: https://pyx.svn.sourceforge.net/svnroot/pyx/trunk/pyx@3236 069f4177-920e-0410-937b-c2a4a81bcd90 --- pyx/canvas.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pyx/canvas.py b/pyx/canvas.py index 54b52d3c..20b497af 100644 --- a/pyx/canvas.py +++ b/pyx/canvas.py @@ -332,3 +332,24 @@ class canvas(_canvas): os.unlink(fname) else: raise RuntimeError("input 'eps' or 'pdf' expected") + + +class layered_canvas(canvas): + + def __init__(self, **kwargs): + canvas.canvas.__init__(self, **kwargs) + self._layers = {} + + def layer(self, name): + try: + group, layer = name.split(".", 1) + except ValueError: + if not name in self._layers: + self._layers[name] = self.insert(Layer(texrunner=self.texrunner)) + return self._layers[name] + else: + if not group in self._layers: + self._layers[group] = self.insert(Layer(texrunner=self.texrunner)) + return self._layers[group].layer(layer) + + -- 2.11.4.GIT