diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2010-01-06 16:32:59 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2010-01-06 16:32:59 +0000 |
commit | f3a77d3c00c095a53f37aa7efb39d56168799596 (patch) | |
tree | 0bd2269afe0edd5018c5d231c95a5011002c83cf /ruflmodule.c | |
parent | 628079a91ca6d86a7915906d266e6fe5593bb846 (diff) | |
download | librufl-f3a77d3c00c095a53f37aa7efb39d56168799596.tar.gz librufl-f3a77d3c00c095a53f37aa7efb39d56168799596.tar.bz2 |
Port to core buildsystem.
The python module (and associated make runes) need some love (as does non-GCC building with the core buildsystem in general)
svn path=/trunk/rufl/; revision=9792
Diffstat (limited to 'ruflmodule.c')
-rw-r--r-- | ruflmodule.c | 203 |
1 files changed, 0 insertions, 203 deletions
diff --git a/ruflmodule.c b/ruflmodule.c deleted file mode 100644 index b62a883..0000000 --- a/ruflmodule.c +++ /dev/null @@ -1,203 +0,0 @@ -/* - * This file is part of RUfl - * Licensed under the MIT License, - * http://www.opensource.org/licenses/mit-license - * Copyright 2006 James Bursa <james@semichrome.net> - */ - -/* Python module for RUfl. */ - -#include "Python.h" -#include "rufl.h" - - -static char pyrufl_paint__doc__[] = -"paint(font_family, font_style, font_size, string, x, y, flags)\n\n" -"Render Unicode text." -; - -static PyObject * -pyrufl_paint(PyObject *self /* Not used */, PyObject *args) -{ - const char *font_family; - rufl_style font_style; - unsigned int font_size; - const char *string; - int length; - int x; - int y; - unsigned int flags; - - if (!PyArg_ParseTuple(args, "siIs#iiI", - &font_family, &font_style, &font_size, - &string, &length, &x, &y, &flags)) - return NULL; - - rufl_paint(font_family, font_style, font_size, string, length, - x, y, flags); - - Py_INCREF(Py_None); - return Py_None; -} - - -static char pyrufl_width__doc__[] = -"width(font_family, font_style, font_size, string)\n\n" -"Return the width of Unicode text." -; - -static PyObject * -pyrufl_width(PyObject *self /* Not used */, PyObject *args) -{ - const char *font_family; - rufl_style font_style; - unsigned int font_size; - const char *string; - int length; - int width = 0; - - if (!PyArg_ParseTuple(args, "siIs#", - &font_family, &font_style, &font_size, - &string, &length)) - return NULL; - - rufl_width(font_family, font_style, font_size, string, length, - &width); - - return PyInt_FromLong(width); -} - - -static char pyrufl_x_to_offset__doc__[] = -"x_to_offset(font_family, font_style, font_size, string, click_x)\n\n" -"Return a pair of the character offset in string that click_x falls,\n" -"and the actual x coordinate for that character offset." -; - -static PyObject * -pyrufl_x_to_offset(PyObject *self /* Not used */, PyObject *args) -{ - const char *font_family; - rufl_style font_style; - unsigned int font_size; - const char *string; - int length; - int click_x; - size_t char_offset = 0; - int actual_x = 0; - - if (!PyArg_ParseTuple(args, "siIs#i", - &font_family, &font_style, &font_size, - &string, &length, &click_x)) - return NULL; - - rufl_x_to_offset(font_family, font_style, font_size, string, length, - click_x, - &char_offset, &actual_x); - - return Py_BuildValue("ii", (int) char_offset, actual_x); -} - - -static char pyrufl_split__doc__[] = -"split(font_family, font_style, font_size, string, width)\n\n" -"Return a pair of the character offset in string that fits in width,\n" -"and the actual x coordinate for that character offset." -; - -static PyObject * -pyrufl_split(PyObject *self /* Not used */, PyObject *args) -{ - const char *font_family; - rufl_style font_style; - unsigned int font_size; - const char *string; - int length; - int width; - size_t char_offset = 0; - int actual_x = 0; - - if (!PyArg_ParseTuple(args, "siIs#i", - &font_family, &font_style, &font_size, - &string, &length, &width)) - return NULL; - - rufl_split(font_family, font_style, font_size, string, length, - width, - &char_offset, &actual_x); - - return Py_BuildValue("ii", (int) char_offset, actual_x); -} - - -static char pyrufl_invalidate_cache__doc__[] = -"invalidate_cache()\n\n" -"Clear the internal font handle cache.\n" -"Call this function on mode changes or output redirection changes." -; - -static PyObject * -pyrufl_invalidate_cache(PyObject *self /* Not used */, PyObject *args) -{ - if (!PyArg_ParseTuple(args, "")) - return NULL; - - rufl_invalidate_cache(); - - Py_INCREF(Py_None); - return Py_None; -} - - -/* List of methods defined in the module */ - -static struct PyMethodDef pyrufl_methods[] = { - {"paint", (PyCFunction)pyrufl_paint, METH_VARARGS, pyrufl_paint__doc__}, - {"width", (PyCFunction)pyrufl_width, METH_VARARGS, pyrufl_width__doc__}, - {"x_to_offset", (PyCFunction)pyrufl_x_to_offset, METH_VARARGS, - pyrufl_x_to_offset__doc__}, - {"split", (PyCFunction)pyrufl_split, METH_VARARGS, pyrufl_split__doc__}, - {"invalidate_cache", (PyCFunction)pyrufl_invalidate_cache, METH_VARARGS, - pyrufl_invalidate_cache__doc__}, - - {NULL, (PyCFunction)NULL, 0, NULL} /* sentinel */ -}; - - -/* Initialization function for the module (*must* be called initrufl) */ - -static char pyrufl_module_documentation[] = -"This module provides access to the RISC OS Unicode font library\n" -"All string parameters must be in UTF-8." -; - -void -initrufl(void) -{ - PyObject *module; - rufl_code code; - - code = rufl_init(); - if (code != rufl_OK) - Py_FatalError("rufl_init() failed"); - - Py_AtExit(rufl_quit); - - /* Create the module and add the functions */ - module = Py_InitModule4("rufl", pyrufl_methods, - pyrufl_module_documentation, - (PyObject *) NULL, PYTHON_API_VERSION); - - /* Add some symbolic constants to the module */ - PyModule_AddIntConstant(module, "regular", rufl_REGULAR); - PyModule_AddIntConstant(module, "slanted", rufl_SLANTED); - PyModule_AddIntConstant(module, "bold", rufl_BOLD); - PyModule_AddIntConstant(module, "bold_slanted", rufl_BOLD_SLANTED); - - PyModule_AddIntConstant(module, "blend", rufl_BLEND_FONT); - - /* Check for errors */ - if (PyErr_Occurred()) - Py_FatalError("can't initialize module rufl"); -} - |