fix call signature
[PyX/mjg.git] / pyx / resource.py
blobf25a163c4c4b4ffd18c8d33b097fa93ea9f4940d
1 #!/usr/bin/env python
2 # -*- coding: ISO-8859-1 -*-
5 # Copyright (C) 2003-2005 Jörg Lehmann <joergl@users.sourceforge.net>
6 # Copyright (C) 2003-2005 André Wobst <wobsta@users.sourceforge.net>
8 # This file is part of PyX (http://pyx.sourceforge.net/).
10 # PyX is free software; you can redistribute it and/or modify
11 # it under the terms of the GNU General Public License as published by
12 # the Free Software Foundation; either version 2 of the License, or
13 # (at your option) any later version.
15 # PyX is distributed in the hope that it will be useful,
16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 # GNU General Public License for more details.
20 # You should have received a copy of the GNU General Public License
21 # along with PyX; if not, write to the Free Software
22 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 """resource module:
26 This module contains various resources like fonts and definitions
27 needed by canvasitems and a resource registry class.
29 """
31 import pswriter, pdfwriter
33 class resource:
35 """ a resource needed by a canvasitem """
37 def __init__(self, id):
38 self.id = id
40 def PSregister(self, registry):
41 return []
45 # various standard resources
48 class definition(resource):
50 """ function definition """
52 def __init__(self, id, body):
53 self.id = id
54 self.body = body
56 def PSregister(self, registry):
57 pswriter.PSdefinition(self.id, self.body).register(registry)
60 class font(resource):
62 """ font definition """
64 def __init__(self, font):
65 """ include Type 1 font defined by the following parameters """
66 # XXX passing the font instance is probably not so nice
67 self.id = self.fontname = font.getpsname()
68 self.basepsname = font.getbasepsname()
69 self.fontfile = font.getfontfile()
70 self.encodingfile = font.getencodingfile()
71 self.encoding = font.getencoding()
72 self.usedchars = font.usedchars
73 self.font = font
75 def PSregister(self, registry):
76 if self.fontfile:
77 registry.add(pswriter.PSfontfile(self.basepsname, self.fontfile, self.encodingfile, self.usedchars))
78 if self.encoding:
79 registry.add(pswriter._ReEncodeFont)
80 registry.add(pswriter.PSfontencoding(self.encoding, self.encodingfile))
81 registry.add(pswriter.PSfontreencoding(self.fontname, self.basepsname, self.encoding))
83 def PDFregister(self, registry):
84 registry.add(pdfwriter.PDFfont(self.fontname, self.basepsname, self.font))