diff options
Diffstat (limited to 'nx-X11/lib/X11/omTextPer.c')
-rw-r--r-- | nx-X11/lib/X11/omTextPer.c | 202 |
1 files changed, 0 insertions, 202 deletions
diff --git a/nx-X11/lib/X11/omTextPer.c b/nx-X11/lib/X11/omTextPer.c deleted file mode 100644 index ae08fe6a4..000000000 --- a/nx-X11/lib/X11/omTextPer.c +++ /dev/null @@ -1,202 +0,0 @@ -/* - * Copyright 1992, 1993 by TOSHIBA Corp. - * - * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose and without fee is hereby granted, 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 TOSHIBA not be used in advertising - * or publicity pertaining to distribution of the software without specific, - * written prior permission. TOSHIBA make no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING - * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL - * TOSHIBA 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. - * - * Author: Katsuhisa Yano TOSHIBA Corp. - * mopi@osa.ilab.toshiba.co.jp - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif -#include "Xlibint.h" -#include "XomGeneric.h" -#include <stdio.h> - -static Status -_XomGenericTextPerCharExtents( - XOC oc, - XOMTextType type, - XPointer text, - int length, - XRectangle *ink_buf, - XRectangle *logical_buf, - int buf_size, - int *num_chars, - XRectangle *overall_ink, - XRectangle *overall_logical) -{ - XlcConv conv; - XFontStruct *font; - Bool is_xchar2b; - XPointer args[2]; - XChar2b xchar2b_buf[BUFSIZ], *xchar2b_ptr; - char *xchar_ptr = NULL; - XCharStruct *def, *cs, overall; - int buf_len, left, require_num; - int logical_ascent, logical_descent; - Bool first = True; - - conv = _XomInitConverter(oc, type); - if (conv == NULL) - return 0; - - bzero((char *) &overall, sizeof(XCharStruct)); - logical_ascent = logical_descent = require_num = *num_chars = 0; - - args[0] = (XPointer) &font; - args[1] = (XPointer) &is_xchar2b; - - while (length > 0) { - xchar2b_ptr = xchar2b_buf; - left = buf_len = BUFSIZ; - - if (_XomConvert(oc, conv, (XPointer *) &text, &length, - (XPointer *) &xchar2b_ptr, &left, args, 2) < 0) - break; - buf_len -= left; - - if (require_num) { - require_num += buf_len; - continue; - } - if (buf_size < buf_len) { - require_num = *num_chars + buf_len; - continue; - } - buf_size -= buf_len; - - if (first) { - logical_ascent = font->ascent; - logical_descent = font->descent; - } else { - logical_ascent = max(logical_ascent, font->ascent); - logical_descent = max(logical_descent, font->descent); - } - - if (is_xchar2b) { - CI_GET_DEFAULT_INFO_2D(font, def) - xchar2b_ptr = xchar2b_buf; - } else { - CI_GET_DEFAULT_INFO_1D(font, def) - xchar_ptr = (char *) xchar2b_buf; - } - - while (buf_len-- > 0) { - if (is_xchar2b) { - CI_GET_CHAR_INFO_2D(font, xchar2b_ptr->byte1, - xchar2b_ptr->byte2, def, cs) - xchar2b_ptr++; - } else { - CI_GET_CHAR_INFO_1D(font, *xchar_ptr, def, cs) - xchar_ptr++; - } - if (cs == NULL) - continue; - - ink_buf->x = overall.width + cs->lbearing; - ink_buf->y = -(cs->ascent); - ink_buf->width = cs->rbearing - cs->lbearing; - ink_buf->height = cs->ascent + cs->descent; - ink_buf++; - - logical_buf->x = overall.width; - logical_buf->y = -(font->ascent); - logical_buf->width = cs->width; - logical_buf->height = font->ascent + font->descent; - logical_buf++; - - if (first) { - overall = *cs; - first = False; - } else { - overall.ascent = max(overall.ascent, cs->ascent); - overall.descent = max(overall.descent, cs->descent); - overall.lbearing = min(overall.lbearing, - overall.width + cs->lbearing); - overall.rbearing = max(overall.rbearing, - overall.width + cs->rbearing); - overall.width += cs->width; - } - - (*num_chars)++; - } - } - - if (require_num) { - *num_chars = require_num; - return 0; - } else { - if (overall_ink) { - overall_ink->x = overall.lbearing; - overall_ink->y = -(overall.ascent); - overall_ink->width = overall.rbearing - overall.lbearing; - overall_ink->height = overall.ascent + overall.descent; - } - - if (overall_logical) { - overall_logical->x = 0; - overall_logical->y = -(logical_ascent); - overall_logical->width = overall.width; - overall_logical->height = logical_ascent + logical_descent; - } - } - - return 1; -} - -Status -_XmbGenericTextPerCharExtents(XOC oc, _Xconst char *text, int length, - XRectangle *ink_buf, XRectangle *logical_buf, - int buf_size, int *num_chars, - XRectangle *overall_ink, - XRectangle *overall_logical) -{ - return _XomGenericTextPerCharExtents(oc, XOMMultiByte, (XPointer) text, - length, ink_buf, logical_buf, buf_size, - num_chars, overall_ink, - overall_logical); -} - -Status -_XwcGenericTextPerCharExtents(XOC oc, _Xconst wchar_t *text, int length, - XRectangle *ink_buf, XRectangle *logical_buf, - int buf_size, int *num_chars, - XRectangle *overall_ink, - XRectangle *overall_logical) -{ - return _XomGenericTextPerCharExtents(oc, XOMWideChar, (XPointer) text, - length, ink_buf, logical_buf, buf_size, - num_chars, overall_ink, - overall_logical); -} - -Status -_Xutf8GenericTextPerCharExtents(XOC oc, _Xconst char *text, int length, - XRectangle *ink_buf, XRectangle *logical_buf, - int buf_size, int *num_chars, - XRectangle *overall_ink, - XRectangle *overall_logical) -{ - return _XomGenericTextPerCharExtents(oc, XOMUtf8String, (XPointer) text, - length, ink_buf, logical_buf, buf_size, - num_chars, overall_ink, - overall_logical); -} |