| @@ -951,6 +951,34 @@ class Canvas(_Canvas): | |||||
| return ctypes.string_at(ret, p.value) | return ctypes.string_at(ret, p.value) | ||||
| def set_figfont(self, filename): | |||||
| """ Load a figfont and attach it to a canvas. | |||||
| filename -- the figfont file to load. | |||||
| """ | |||||
| _lib.caca_canvas_set_figfont.argtypes = [_Canvas, ctypes.c_char_p] | |||||
| _lib.caca_canvas_set_figfont.restype = ctypes.c_int | |||||
| return _lib.caca_canvas_set_figfont(self, filename) | |||||
| def put_figchar(self, ch): | |||||
| """ Paste a character using the current figfont. | |||||
| ch -- the character to paste | |||||
| """ | |||||
| _lib.caca_put_figchar.argtypes = [_Canvas, ctypes.c_uint32] | |||||
| _lib.caca_put_figchar.restype = ctypes.c_int | |||||
| return _lib.caca_put_figchar(self, ord(ch)) | |||||
| def flush_figlet(self): | |||||
| """ Flush the figlet context | |||||
| """ | |||||
| _lib.caca_flush_figlet.argtypes = [_Canvas] | |||||
| _lib.caca_flush_figlet.restype = ctypes.c_int | |||||
| return _lib.caca_flush_figlet(self) | |||||
| class NullCanvas(_Canvas): | class NullCanvas(_Canvas): | ||||
| """ Represent a NULL canvas_t, eg to use as canvas mask for blit operations. | """ Represent a NULL canvas_t, eg to use as canvas mask for blit operations. | ||||
| """ | """ | ||||
| @@ -0,0 +1,54 @@ | |||||
| #!/usr/bin/env python | |||||
| # -*- coding: utf-8 -*- | |||||
| # | |||||
| # figfont libcaca FIGfont test program | |||||
| # Copyright (c) 2010 Alex Foulon <alxf@lavabit.com> | |||||
| # | |||||
| # This file is a Python port of "examples/figfont.c" | |||||
| # which is: | |||||
| # Copyright (c) 2007-2010 Sam Hocevar <sam@hocevar.net> | |||||
| # All Rights Reserverd | |||||
| # | |||||
| # This library is free software. It comes without any warranty, to | |||||
| # the extent permitted by applicable law. You can redistribute it | |||||
| # and/or modify it under the terms of the Do What The Fuck You Want | |||||
| # To Public License, Version 2, as published by Sam Hocevar. See | |||||
| # http://sam.zoy.org/wtfpl/COPYING for more details. | |||||
| # | |||||
| import os | |||||
| import sys | |||||
| import caca | |||||
| from caca.canvas import Canvas, CanvasError | |||||
| def main(): | |||||
| """ Main function. """ | |||||
| color = 0 | |||||
| if len(sys.argv) < 3: | |||||
| sys.stderr.write("Usage: %s <figfont file> <word>\n" \ | |||||
| % os.path.basename(sys.argv[0])) | |||||
| sys.exit(2) | |||||
| try: | |||||
| cv = Canvas(0, 0) | |||||
| except CanvasError, err: | |||||
| sys.stderr.write("%s\n" % err) | |||||
| sys.exit(2) | |||||
| if cv.set_figfont(sys.argv[1]): | |||||
| sys.stderr.write("Could not open font...\n") | |||||
| sys.exit(2) | |||||
| for c in sys.argv[2]: | |||||
| color += 4 | |||||
| cv.set_color_ansi(1+(color % 15), caca.COLOR_TRANSPARENT) | |||||
| cv.put_figchar(c) | |||||
| sys.stderr.write(cv.export_to_memory("utf8")) | |||||
| if __name__ == "__main__": | |||||
| main() | |||||