summaryrefslogtreecommitdiff
path: root/otk_c/font.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-01-17 06:40:00 +0000
committerDana Jansens <danakj@orodu.net>2003-01-17 06:40:00 +0000
commit6188650ce975e287c7c8644927cd5d01e7cc7baa (patch)
tree6396de81dbb9ef56f39c24a062b93e4c896a5773 /otk_c/font.c
parent58ff3f35c2b712ec92b093ffd8b96331615f546a (diff)
rm my lucid experiment
Diffstat (limited to 'otk_c/font.c')
-rw-r--r--otk_c/font.c154
1 files changed, 0 insertions, 154 deletions
diff --git a/otk_c/font.c b/otk_c/font.c
deleted file mode 100644
index a709f587..00000000
--- a/otk_c/font.c
+++ /dev/null
@@ -1,154 +0,0 @@
-// -*- mode: C; indent-tabs-mode: nil; c-basic-offset: 2; -*-
-
-#include "../config.h"
-#include "font.h"
-#include "display.h"
-#include "color.h"
-
-#include "../src/gettext.h"
-
-static Bool xft_init = False;
-static const char *fallback = "fixed";
-
-void OtkFont_Initialize()
-{
- if (!XftInit(0)) {
- printf(_("Couldn't initialize Xft version %d.%d.%d.\n\n"),
- XFT_MAJOR, XFT_MINOR, XFT_REVISION);
- exit(3);
- }
- printf(_("Using Xft %d.%d.%d.\n"), XFT_MAJOR, XFT_MINOR, XFT_REVISION);
- xft_init = True;
-}
-
-PyObject *OtkFont_New(int screen, const char *fontstring, Bool shadow,
- unsigned char offset, unsigned char tint)
-{
- OtkFont *self = PyObject_New(OtkFont, &OtkFont_Type);
-
- assert(xft_init);
- assert(screen >= 0);
- assert(fontstring);
-
- self->screen = screen;
- self->shadow = shadow;
- self->offset = offset;
- self->tint = tint;
-
- if (!(self->xftfont = XftFontOpenName(OBDisplay->display, screen,
- fontstring))) {
- printf(_("Unable to load font: %s"), fontstring);
- printf(_("Trying fallback font: %s\n"), fallback);
- if (!(self->xftfont =
- XftFontOpenName(OBDisplay->display, screen, fallback))) {
- printf(_("Unable to load font: %s"), fallback);
- printf(_("Aborting!.\n"));
-
- exit(3); // can't continue without a font
- }
- }
-
- return (PyObject*)self;
-}
-
-int OtkFont_MeasureString(OtkFont *self, const char *string)//, Bool utf8)
-{
- XGlyphInfo info;
-
-/* if (utf8)*/
- XftTextExtentsUtf8(OBDisplay->display, self->xftfont,
- (const FcChar8*)string, strlen(string), &info);
-/* else
- XftTextExtents8(OBDisplay->display, self->xftfont,
- (const FcChar8*)string, strlen(string), &info);*/
-
- return info.xOff + (self->shadow ? self->offset : 0);
-}
-
-void OtkFont_DrawString(OtkFont *self, XftDraw *d, int x, int y,
- OtkColor *color, const char *string)//, Bool utf8)
-{
- assert(self);
- assert(d);
-
- if (self->shadow) {
- XftColor c;
- c.color.red = 0;
- c.color.green = 0;
- c.color.blue = 0;
- c.color.alpha = self->tint | self->tint << 8; // transparent shadow
- c.pixel = BlackPixel(OBDisplay->display, self->screen);
-
-/* if (utf8)*/
- XftDrawStringUtf8(d, &c, self->xftfont, x + self->offset,
- self->xftfont->ascent + y + self->offset,
- (const FcChar8*)string, strlen(string));
-/* else
- XftDrawString8(d, &c, self->xftfont, x + self->offset,
- self->xftfont->ascent + y + self->offset,
- (const FcChar8*)string, strlen(string));*/
- }
-
- XftColor c;
- c.color.red = color->red | color->red << 8;
- c.color.green = color->green | color->green << 8;
- c.color.blue = color->blue | color->blue << 8;
- c.pixel = color->pixel;
- c.color.alpha = 0xff | 0xff << 8; // no transparency in BColor yet
-
-/* if (utf8)*/
- XftDrawStringUtf8(d, &c, self->xftfont, x, self->xftfont->ascent + y,
- (const FcChar8*)string, strlen(string));
-/* else
- XftDrawString8(d, &c, self->xftfont, x, self->xftfont->ascent + y,
- (const FcChar8*)string, strlen(string));*/
-}
-
-
-
-
-static PyObject *otkfont_measurestring(OtkFont* self, PyObject* args)
-{
- char *s;
-
- if (!PyArg_ParseTuple(args, "s", &s))
- return NULL;
- return PyInt_FromLong(OtkFont_MeasureString(self, s));
-}
-
-static PyMethodDef get_methods[] = {
- {"measureString", (PyCFunction)otkfont_measurestring, METH_VARARGS,
- "Measure the length of a string with a font."},
- {NULL, NULL, 0, NULL}
-};
-
-
-static void otkfont_dealloc(OtkFont* self)
-{
- // this is always set. cuz if it failed.. the app would exit!
- XftFontClose(OBDisplay->display, self->xftfont);
- PyObject_Del((PyObject*)self);
-}
-
-static PyObject *otkfont_getattr(PyObject *obj, char *name)
-{
- return Py_FindMethod(get_methods, obj, name);
-}
-
-PyTypeObject OtkFont_Type = {
- PyObject_HEAD_INIT(NULL)
- 0,
- "OtkFont",
- sizeof(OtkFont),
- 0,
- (destructor)otkfont_dealloc, /*tp_dealloc*/
- 0, /*tp_print*/
- otkfont_getattr, /*tp_getattr*/
- 0, /*tp_setattr*/
- 0, /*tp_compare*/
- 0, /*tp_repr*/
- 0, /*tp_as_number*/
- 0, /*tp_as_sequence*/
- 0, /*tp_as_mapping*/
- 0, /*tp_hash */
-};