From f4092abdf94af6a99aff944d6264bc1284e8bdd4 Mon Sep 17 00:00:00 2001 From: Reinhard Tartler Date: Mon, 10 Oct 2011 17:43:39 +0200 Subject: Imported nx-X11-3.1.0-1.tar.gz Summary: Imported nx-X11-3.1.0-1.tar.gz Keywords: Imported nx-X11-3.1.0-1.tar.gz into Git repository --- nx-X11/lib/Xft1/xftpat.c | 243 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 243 insertions(+) create mode 100644 nx-X11/lib/Xft1/xftpat.c (limited to 'nx-X11/lib/Xft1/xftpat.c') diff --git a/nx-X11/lib/Xft1/xftpat.c b/nx-X11/lib/Xft1/xftpat.c new file mode 100644 index 000000000..611144c2d --- /dev/null +++ b/nx-X11/lib/Xft1/xftpat.c @@ -0,0 +1,243 @@ +/* + * $XFree86: xc/lib/Xft/xftpat.c,v 1.6 2001/03/30 18:50:18 keithp Exp $ + * + * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of Keith Packard not be used in + * advertising or publicity pertaining to distribution of the software without + * specific, written prior permission. Keith Packard makes no + * representations about the suitability of this software for any purpose. It + * is provided "as is" without express or implied warranty. + * + * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include +#include "xftint.h" +#include + +XftPattern * +XftPatternCreate (void) +{ + return FcPatternCreate (); +} + +void +XftValueDestroy (XftValue v) +{ + FcValueDestroy (v); +} + +void +XftPatternDestroy (XftPattern *p) +{ + FcPatternDestroy (p); +} + + +Bool +XftPatternAdd (XftPattern *p, const char *object, XftValue value, Bool append) +{ + return FcPatternAdd (p, object, value, append); +} + +Bool +XftPatternDel (XftPattern *p, const char *object) +{ + return FcPatternDel (p, object); +} + +Bool +XftPatternAddInteger (XftPattern *p, const char *object, int i) +{ + XftValue v; + + v.type = XftTypeInteger; + v.u.i = i; + return XftPatternAdd (p, object, v, True); +} + +Bool +XftPatternAddDouble (XftPattern *p, const char *object, double d) +{ + XftValue v; + + v.type = XftTypeDouble; + v.u.d = d; + return XftPatternAdd (p, object, v, True); +} + + +Bool +XftPatternAddString (XftPattern *p, const char *object, const char *s) +{ + XftValue v; + + v.type = XftTypeString; + v.u.s = (FcChar8 *) s; + return XftPatternAdd (p, object, v, True); +} + +Bool +XftPatternAddMatrix (XftPattern *p, const char *object, const XftMatrix *s) +{ + XftValue v; + + v.type = XftTypeMatrix; + v.u.m = (XftMatrix *) s; + return XftPatternAdd (p, object, v, True); +} + + +Bool +XftPatternAddBool (XftPattern *p, const char *object, Bool b) +{ + XftValue v; + + v.type = XftTypeBool; + v.u.b = b; + return XftPatternAdd (p, object, v, True); +} + +XftResult +XftPatternGet (XftPattern *p, const char *object, int id, XftValue *v) +{ + return FcPatternGet (p, object, id, v); +} + +XftResult +XftPatternGetInteger (XftPattern *p, const char *object, int id, int *i) +{ + XftValue v; + XftResult r; + + r = XftPatternGet (p, object, id, &v); + if (r != XftResultMatch) + return r; + switch (v.type) { + case XftTypeDouble: + *i = (int) v.u.d; + break; + case XftTypeInteger: + *i = v.u.i; + break; + default: + return XftResultTypeMismatch; + } + return XftResultMatch; +} + +XftResult +XftPatternGetDouble (XftPattern *p, const char *object, int id, double *d) +{ + XftValue v; + XftResult r; + + r = XftPatternGet (p, object, id, &v); + if (r != XftResultMatch) + return r; + switch (v.type) { + case XftTypeDouble: + *d = v.u.d; + break; + case XftTypeInteger: + *d = (double) v.u.i; + break; + default: + return XftResultTypeMismatch; + } + return XftResultMatch; +} + +XftResult +XftPatternGetString (XftPattern *p, const char *object, int id, char **s) +{ + XftValue v; + XftResult r; + + r = XftPatternGet (p, object, id, &v); + if (r != XftResultMatch) + return r; + if (v.type != XftTypeString) + return XftResultTypeMismatch; + *s = (char *) v.u.s; + return XftResultMatch; +} + +XftResult +XftPatternGetMatrix (XftPattern *p, const char *object, int id, XftMatrix **m) +{ + XftValue v; + XftResult r; + + r = XftPatternGet (p, object, id, &v); + if (r != XftResultMatch) + return r; + if (v.type != XftTypeMatrix) + return XftResultTypeMismatch; + *m = (XftMatrix *) v.u.m; + return XftResultMatch; +} + + +XftResult +XftPatternGetBool (XftPattern *p, const char *object, int id, Bool *b) +{ + XftValue v; + XftResult r; + + r = XftPatternGet (p, object, id, &v); + if (r != XftResultMatch) + return r; + if (v.type != XftTypeBool) + return XftResultTypeMismatch; + *b = v.u.b; + return XftResultMatch; +} + +XftPatternElt * +XftPatternFind (XftPattern *p, const char *object, FcBool insert) +{ + if (insert) + return FcPatternInsertElt (p, object); + else + return FcPatternFindElt (p, object); +} + + +XftPattern * +XftPatternDuplicate (XftPattern *orig) +{ + return FcPatternDuplicate (orig); +} + +XftPattern * +XftPatternVaBuild (XftPattern *orig, va_list va) +{ + XftPattern *ret; + + FcPatternVapBuild (ret, orig, va); + return ret; +} + +XftPattern * +XftPatternBuild (XftPattern *orig, ...) +{ + va_list va; + + va_start (va, orig); + FcPatternVapBuild (orig, orig, va); + va_end (va); + return orig; +} -- cgit v1.2.3