diff options
Diffstat (limited to 'pango/mini-xft/minixftdpy.c')
-rw-r--r-- | pango/mini-xft/minixftdpy.c | 321 |
1 files changed, 0 insertions, 321 deletions
diff --git a/pango/mini-xft/minixftdpy.c b/pango/mini-xft/minixftdpy.c deleted file mode 100644 index e97077b9..00000000 --- a/pango/mini-xft/minixftdpy.c +++ /dev/null @@ -1,321 +0,0 @@ -/* - * $XFree86: xc/lib/MiniXft/xftdpy.c,v 1.7 2001/04/29 03:21:17 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 <stdio.h> -#include <stdlib.h> -#include <ctype.h> -#include "minixftint.h" - -MiniXftDisplayInfo *_MiniXftDisplayInfo; - -static MiniXftDisplayInfo * -_MiniXftDisplayInfoGet (Display *dpy) -{ - MiniXftDisplayInfo *info, **prev; - - for (prev = &_MiniXftDisplayInfo; (info = *prev); prev = &(*prev)->next) - { - if (info->display == dpy) - { - /* - * MRU the list - */ - if (prev != &_MiniXftDisplayInfo) - { - *prev = info->next; - info->next = _MiniXftDisplayInfo; - _MiniXftDisplayInfo = info; - } - return info; - } - } - info = (MiniXftDisplayInfo *) malloc (sizeof (MiniXftDisplayInfo)); - if (!info) - goto bail0; - - info->display = dpy; - info->defaults = 0; - - info->next = _MiniXftDisplayInfo; - _MiniXftDisplayInfo = info; - return info; - -bail0: - if (_MiniXftFontDebug () & XFT_DBG_RENDER) - { - printf ("MiniXftDisplayInfoGet failed to initialize, MiniXft unhappy\n"); - } - return 0; -} - -Bool -MiniXftDefaultHasRender (Display *dpy) -{ - return True; -} - -Bool -MiniXftDefaultSet (Display *dpy, MiniXftPattern *defaults) -{ - MiniXftDisplayInfo *info = _MiniXftDisplayInfoGet (dpy); - - if (!info) - return False; - if (info->defaults) - MiniXftPatternDestroy (info->defaults); - info->defaults = defaults; - return True; -} - -int -MiniXftDefaultParseBool (char *v) -{ - unsigned char c0, c1; - - c0 = *v; - if (isupper (c0)) - c0 = tolower (c0); - if (c0 == 't' || c0 == 'y' || c0 == '1') - return 1; - if (c0 == 'f' || c0 == 'n' || c0 == '0') - return 0; - if (c0 == 'o') - { - c1 = v[1]; - if (isupper (c1)) - c1 = tolower (c1); - if (c1 == 'n') - return 1; - if (c1 == 'f') - return 0; - } - return -1; -} - -static Bool -_MiniXftDefaultInitBool (Display *dpy, MiniXftPattern *pat, char *option) -{ - return True; -} - -static Bool -_MiniXftDefaultInitDouble (Display *dpy, MiniXftPattern *pat, char *option) -{ - return True; -} - -static Bool -_MiniXftDefaultInitInteger (Display *dpy, MiniXftPattern *pat, char *option) -{ - return True; -} - -static MiniXftPattern * -_MiniXftDefaultInit (Display *dpy) -{ - MiniXftPattern *pat; - - pat = MiniXftPatternCreate (); - if (!pat) - goto bail0; - - if (!_MiniXftDefaultInitBool (dpy, pat, XFT_CORE)) - goto bail1; - if (!_MiniXftDefaultInitDouble (dpy, pat, XFT_SCALE)) - goto bail1; - if (!_MiniXftDefaultInitDouble (dpy, pat, XFT_DPI)) - goto bail1; - if (!_MiniXftDefaultInitBool (dpy, pat, XFT_RENDER)) - goto bail1; - if (!_MiniXftDefaultInitInteger (dpy, pat, XFT_RGBA)) - goto bail1; - if (!_MiniXftDefaultInitBool (dpy, pat, XFT_ANTIALIAS)) - goto bail1; - if (!_MiniXftDefaultInitBool (dpy, pat, XFT_MINSPACE)) - goto bail1; - - return pat; - -bail1: - MiniXftPatternDestroy (pat); -bail0: - return 0; -} - -static MiniXftResult -_MiniXftDefaultGet (Display *dpy, const char *object, int screen, MiniXftValue *v) -{ - MiniXftDisplayInfo *info = _MiniXftDisplayInfoGet (dpy); - MiniXftResult r; - - if (!info) - return MiniXftResultNoMatch; - - if (!info->defaults) - { - info->defaults = _MiniXftDefaultInit (dpy); - if (!info->defaults) - return MiniXftResultNoMatch; - } - r = MiniXftPatternGet (info->defaults, object, screen, v); - if (r == MiniXftResultNoId && screen > 0) - r = MiniXftPatternGet (info->defaults, object, 0, v); - return r; -} - -Bool -MiniXftDefaultGetBool (Display *dpy, const char *object, int screen, Bool def) -{ - MiniXftResult r; - MiniXftValue v; - - r = _MiniXftDefaultGet (dpy, object, screen, &v); - if (r != MiniXftResultMatch || v.type != MiniXftTypeBool) - return def; - return v.u.b; -} - -int -MiniXftDefaultGetInteger (Display *dpy, const char *object, int screen, int def) -{ - MiniXftResult r; - MiniXftValue v; - - r = _MiniXftDefaultGet (dpy, object, screen, &v); - if (r != MiniXftResultMatch || v.type != MiniXftTypeInteger) - return def; - return v.u.i; -} - -double -MiniXftDefaultGetDouble (Display *dpy, const char *object, int screen, double def) -{ - MiniXftResult r; - MiniXftValue v; - - r = _MiniXftDefaultGet (dpy, object, screen, &v); - if (r != MiniXftResultMatch || v.type != MiniXftTypeDouble) - return def; - return v.u.d; -} - -MiniXftFontSet * -MiniXftDisplayGetFontSet (Display *dpy) -{ - return 0; -} - -static double default_dpi = 0.0; - -void -MiniXftSetDPI (double dpi) -{ - default_dpi = dpi; -} - -void -MiniXftDefaultSubstitute (Display *dpy, int screen, MiniXftPattern *pattern) -{ - MiniXftValue v; - double size; - double scale; - - if (MiniXftPatternGet (pattern, XFT_STYLE, 0, &v) == MiniXftResultNoMatch) - { - if (MiniXftPatternGet (pattern, XFT_WEIGHT, 0, &v) == MiniXftResultNoMatch ) - { - MiniXftPatternAddInteger (pattern, XFT_WEIGHT, XFT_WEIGHT_MEDIUM); - } - if (MiniXftPatternGet (pattern, XFT_SLANT, 0, &v) == MiniXftResultNoMatch) - { - MiniXftPatternAddInteger (pattern, XFT_SLANT, XFT_SLANT_ROMAN); - } - } - if (MiniXftPatternGet (pattern, XFT_ENCODING, 0, &v) == MiniXftResultNoMatch) - MiniXftPatternAddString (pattern, XFT_ENCODING, "iso8859-1"); - if (MiniXftPatternGet (pattern, XFT_RENDER, 0, &v) == MiniXftResultNoMatch) - { - MiniXftPatternAddBool (pattern, XFT_RENDER, - MiniXftDefaultGetBool (dpy, XFT_RENDER, screen, - MiniXftDefaultHasRender (dpy))); - } - if (MiniXftPatternGet (pattern, XFT_CORE, 0, &v) == MiniXftResultNoMatch) - { - MiniXftPatternAddBool (pattern, XFT_CORE, - MiniXftDefaultGetBool (dpy, XFT_CORE, screen, - !MiniXftDefaultHasRender (dpy))); - } - if (MiniXftPatternGet (pattern, XFT_ANTIALIAS, 0, &v) == MiniXftResultNoMatch) - { - MiniXftPatternAddBool (pattern, XFT_ANTIALIAS, - MiniXftDefaultGetBool (dpy, XFT_ANTIALIAS, screen, - True)); - } - if (MiniXftPatternGet (pattern, XFT_RGBA, 0, &v) == MiniXftResultNoMatch) - { - MiniXftPatternAddInteger (pattern, XFT_RGBA, - MiniXftDefaultGetInteger (dpy, XFT_RGBA, screen, - XFT_RGBA_NONE)); - } - if (MiniXftPatternGet (pattern, XFT_MINSPACE, 0, &v) == MiniXftResultNoMatch) - { - MiniXftPatternAddBool (pattern, XFT_MINSPACE, - MiniXftDefaultGetBool (dpy, XFT_MINSPACE, screen, - False)); - } - if (MiniXftPatternGet (pattern, XFT_PIXEL_SIZE, 0, &v) == MiniXftResultNoMatch) - { - double dpi; - - if (MiniXftPatternGet (pattern, XFT_SIZE, 0, &v) != MiniXftResultMatch) - { - size = 12.0; - MiniXftPatternAddDouble (pattern, XFT_SIZE, size); - } - else - { - switch (v.type) { - case MiniXftTypeInteger: - size = (double) v.u.i; - break; - case MiniXftTypeDouble: - size = v.u.d; - break; - default: - size = 12.0; - break; - } - } - scale = MiniXftDefaultGetDouble (dpy, XFT_SCALE, screen, 1.0); - size *= scale; - if (default_dpi > 0.0) - dpi = default_dpi; - else - dpi = 72.0; - dpi = MiniXftDefaultGetDouble (dpy, XFT_DPI, screen, dpi); - size = size * dpi / 72.0; - MiniXftPatternAddDouble (pattern, XFT_PIXEL_SIZE, size); - } -} - |