From 69745d616fb36fe94f04bfbd9d651459509df874 Mon Sep 17 00:00:00 2001 From: CSRG Date: Tue, 30 Apr 1991 16:57:37 -0800 Subject: [PATCH] BSD 4_4_Lite2 development Work on file usr/src/contrib/X11R5-lib/lib/X/XmbWrap.c Work on file usr/src/contrib/X11R5-lib/lib/X/XwcWrap.c Synthesized-from: CSRG/cd3/4.4BSD-Lite2 --- usr/src/contrib/X11R5-lib/lib/X/XmbWrap.c | 197 ++++++++++++++++++++++ usr/src/contrib/X11R5-lib/lib/X/XwcWrap.c | 136 +++++++++++++++ 2 files changed, 333 insertions(+) create mode 100644 usr/src/contrib/X11R5-lib/lib/X/XmbWrap.c create mode 100644 usr/src/contrib/X11R5-lib/lib/X/XwcWrap.c diff --git a/usr/src/contrib/X11R5-lib/lib/X/XmbWrap.c b/usr/src/contrib/X11R5-lib/lib/X/XmbWrap.c new file mode 100644 index 0000000000..b160f5e4e9 --- /dev/null +++ b/usr/src/contrib/X11R5-lib/lib/X/XmbWrap.c @@ -0,0 +1,197 @@ +/* + * $XConsortium: XmbWrap.c,v 11.4 91/05/01 10:57:18 rws Exp $ + */ + +/* + * Copyright 1991 by the Massachusetts Institute of Technology + * Copyright 1991 by the Open Software Foundation + * + * 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 names of Open Software Foundation and M.I.T. + * not be used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. Open Software + * Foundation and M.I.T. make no representations about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + * + * OPEN SOFTWARE FOUNDATION AND M.I.T. DISCLAIM ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS, IN NO EVENT SHALL OPEN SOFTWARE FOUNDATIONN OR M.I.T. 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. + * + * M. Collins OSF + */ + +#include "Xlibint.h" +#include "Xlcint.h" + +void +XmbDrawText(dpy, d, gc, x, y, text_items, nitems) + Display *dpy; + Drawable d; + GC gc; + int x, y; + XmbTextItem *text_items; + int nitems; +{ + register XFontSet fs; + register XmbTextItem *p = text_items; + register int i = nitems; + register int esc; + + /* ignore leading items with no fontset */ + while (i && !p->font_set) { + i--; + p++; + } + + for (; --i >= 0; p++) { + if (p->font_set) + fs = p->font_set; + x += p->delta; + esc = (*fs->methods->mb_draw_string) (dpy, d, fs, gc, x, y, + p->chars, p->nchars); + if (!esc) + esc = fs->methods->mb_escapement (fs, p->chars, p->nchars); + x += esc; + } +} + +#if NeedFunctionPrototypes +void +XmbDrawString( + Display *dpy, + Drawable d, + XFontSet font_set, + GC gc, + int x, + int y, + _Xconst char *text, + int text_len) +#else +void +XmbDrawString(dpy, d, font_set, gc, x, y, text, text_len) + Display *dpy; + Drawable d; + XFontSet font_set; + GC gc; + int x, y; + char *text; + int text_len; +#endif +{ + (void)(*font_set->methods->mb_draw_string) (dpy, d, font_set, gc, x, y, + (char *)text, text_len); +} + + +#if NeedFunctionPrototypes +void +XmbDrawImageString( + Display *dpy, + Drawable d, + XFontSet font_set, + GC gc, + int x, + int y, + _Xconst char *text, + int text_len) +#else +void +XmbDrawImageString(dpy, d, font_set, gc, x, y, text, text_len) + Display *dpy; + Drawable d; + XFontSet font_set; + GC gc; + int x, y; + char *text; + int text_len; +#endif +{ + (*font_set->methods->mb_draw_image_string) (dpy, d, font_set, gc, x, y, + (char *)text, text_len); +} + +#if NeedFunctionPrototypes +int +XmbTextEscapement( + XFontSet font_set, + _Xconst char *text, + int text_len) +#else +int +XmbTextEscapement(font_set, text, text_len) + XFontSet font_set; + char *text; + int text_len; +#endif +{ + return (*font_set->methods->mb_escapement) (font_set, + (char *)text, text_len); +} + +#if NeedFunctionPrototypes +int +XmbTextExtents( + XFontSet font_set, + _Xconst char *text, + int text_len, + XRectangle *overall_ink_extents, + XRectangle *overall_logical_extents) +#else +int +XmbTextExtents(font_set, text, text_len, + overall_ink_extents, overall_logical_extents) + XFontSet font_set; + char *text; + int text_len; + XRectangle *overall_ink_extents; + XRectangle *overall_logical_extents; +#endif +{ + return (*font_set->methods->mb_extents) (font_set, + (char *)text, text_len, + overall_ink_extents, + overall_logical_extents); +} + +#if NeedFunctionPrototypes +Status +XmbTextPerCharExtents( + XFontSet font_set, + _Xconst char *text, + int text_len, + XRectangle *ink_extents_buffer, + XRectangle *logical_extents_buffer, + int buffer_size, + int *num_chars, + XRectangle *max_ink_extents, + XRectangle *max_logical_extents) +#else +Status +XmbTextPerCharExtents(font_set, text, text_len, + ink_extents_buffer, logical_extents_buffer, + buffer_size, num_chars, + max_ink_extents, max_logical_extents) + XFontSet font_set; + char *text; + int text_len; + XRectangle *ink_extents_buffer; + XRectangle *logical_extents_buffer; + int buffer_size; + int *num_chars; + XRectangle *max_ink_extents; + XRectangle *max_logical_extents; +#endif +{ + return (*font_set->methods->mb_extents_per_char) + (font_set, (char *)text, text_len, + ink_extents_buffer, logical_extents_buffer, + buffer_size, num_chars, max_ink_extents, max_logical_extents); +} diff --git a/usr/src/contrib/X11R5-lib/lib/X/XwcWrap.c b/usr/src/contrib/X11R5-lib/lib/X/XwcWrap.c new file mode 100644 index 0000000000..81a99948c3 --- /dev/null +++ b/usr/src/contrib/X11R5-lib/lib/X/XwcWrap.c @@ -0,0 +1,136 @@ +/* + * $XConsortium: XwcWrap.c,v 11.4 91/05/01 10:57:25 rws Exp $ + */ + +/* + * Copyright 1991 by the Massachusetts Institute of Technology + * Copyright 1991 by the Open Software Foundation + * + * 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 names of Open Software Foundation and M.I.T. + * not be used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. Open Software + * Foundation and M.I.T. make no representations about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + * + * OPEN SOFTWARE FOUNDATION AND M.I.T. DISCLAIM ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS, IN NO EVENT SHALL OPEN SOFTWARE FOUNDATIONN OR M.I.T. 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. + * + * M. Collins OSF + */ + +#include "Xlibint.h" +#include "Xlcint.h" + +void +XwcDrawText(dpy, d, gc, x, y, text_items, nitems) + Display *dpy; + Drawable d; + GC gc; + int x, y; + XwcTextItem *text_items; + int nitems; +{ + register XFontSet fs; + register XwcTextItem *p = text_items; + register int i = nitems; + register int esc; + + /* ignore leading items with no fontset */ + while (i && !p->font_set) { + i--; + p++; + } + + for (; --i >= 0; p++) { + if (p->font_set) + fs = p->font_set; + x += p->delta; + esc = (*fs->methods->wc_draw_string) (dpy, d, fs, gc, x, y, + p->chars, p->nchars); + if (!esc) + esc = fs->methods->wc_escapement (fs, p->chars, p->nchars); + x += esc; + } +} + +void +XwcDrawString(dpy, d, font_set, gc, x, y, text, text_len) + register Display *dpy; + Drawable d; + XFontSet font_set; + GC gc; + int x, y; + wchar_t *text; + int text_len; +{ + (void)(*font_set->methods->wc_draw_string) (dpy, d, font_set, gc, x, y, + text, text_len); +} + +void +XwcDrawImageString(dpy, d, font_set, gc, x, y, text, text_len) + register Display *dpy; + Drawable d; + XFontSet font_set; + GC gc; + int x, y; + wchar_t *text; + int text_len; +{ + (*font_set->methods->wc_draw_image_string) (dpy, d, font_set, gc, x, y, + text, text_len); +} + +int +XwcTextEscapement(font_set, text, text_len) + XFontSet font_set; + wchar_t *text; + int text_len; +{ + return (*font_set->methods->wc_escapement) (font_set, text, text_len); +} + +int +XwcTextExtents(font_set, text, text_len, + overall_ink_extents, overall_logical_extents) + XFontSet font_set; + wchar_t *text; + int text_len; + XRectangle *overall_ink_extents; + XRectangle *overall_logical_extents; +{ + return (*font_set->methods->wc_extents) (font_set, text, text_len, + overall_ink_extents, + overall_logical_extents); +} + +Status +XwcTextPerCharExtents(font_set, text, text_len, + ink_extents_buffer, logical_extents_buffer, + buffer_size, num_chars, + max_ink_extents, max_logical_extents) + XFontSet font_set; + wchar_t *text; + int text_len; + XRectangle *ink_extents_buffer; + XRectangle *logical_extents_buffer; + int buffer_size; + int *num_chars; + XRectangle *max_ink_extents; + XRectangle *max_logical_extents; +{ + return (*font_set->methods->wc_extents_per_char) + (font_set, text, text_len, + ink_extents_buffer, logical_extents_buffer, + buffer_size, num_chars, max_ink_extents, max_logical_extents); +} -- 2.20.1