Annotation of 43BSDTahoe/new/X/libapollo/textutil.c, revision 1.1.1.1

1.1       root        1: #ifndef lint
                      2: static char *rcsid_textutil_c = "$Header: textutil.c,v 10.1 86/11/29 13:53:04 jg Rel $";
                      3: #endif lint
                      4:     /*
                      5: 
                      6:     Copyright 1986 by the University of Utah
                      7: 
                      8:     Permission to use, copy, modify, and distribute this
                      9:     software and its documentation for any purpose and without
                     10:     fee is hereby granted, provided that the above copyright
                     11:     notice appear in all copies and that both that copyright
                     12:     notice and this permission notice appear in supporting
                     13:     documentation, and that the name of the University of Utah
                     14:     not be used in advertising or publicity pertaining to 
                     15:     distribution of the software without specific, written 
                     16:     prior permission. The University of Utah makes no
                     17:     representations about the suitability of this software for
                     18:     any purpose.  It is provided "as is" without express or
                     19:     implied warranty.
                     20: 
                     21:     */
                     22: 
                     23: /* textutil.c  text related utility routines.
                     24:  *
                     25:  *     CopyText        Copy text to bitmap
                     26:  *     TextWidth       Returns width of a piece of text in a font
                     27:  *     CharWidth       Returns width of a character in a font
                     28:  *
                     29:  */
                     30: 
                     31: #include "Xapollo.h"
                     32: 
                     33: status_$t status;
                     34: 
                     35: CopyText (string, strlen, font, bm)
                     36:        char *string;
                     37:        int strlen;
                     38:        FONT *font;
                     39:        BITMAP *bm;
                     40: {
                     41:     FontPriv   * fp;
                     42: 
                     43:     fp = (FontPriv *)font->data;
                     44:     gpr_$set_text_font( (short)fp->ap_font_id, status);
                     45:     gpr_$set_bitmap( bm->data, status);
                     46:     gpr_$text(*string, (short)strlen, status);
                     47:     gpr_$set_bitmap(Screen.bm);
                     48: }
                     49: 
                     50: /* Returns the width of a string in a font
                     51:  * Works only for Apollo-type fonts
                     52:  */
                     53: int TextWidth (string, strlen, spacepad, font)
                     54:        register char *string;
                     55:        register int strlen;
                     56:        int spacepad;
                     57:        register FONT *font;
                     58: {
                     59:        register int width = 0;
                     60: 
                     61:        if (font->fixed) {
                     62:            width = strlen * font->avg_width;
                     63:            if (spacepad) {
                     64:                while (--strlen >= 0)
                     65:                    if (*string++ == font->space)
                     66:                        width += spacepad;
                     67:              }
                     68:          } else {
                     69:            FontPriv    * fp;
                     70:            gpr_$offset_t size;
                     71: 
                     72:            fp = (FontPriv *)font->data;
                     73:            gpr_$set_text_font( (short)fp->ap_font_id, status);
                     74:            gpr_$inq_text_extent(*string, (short)strlen, size, status);
                     75:            width = size.x_size;
                     76:          }
                     77:        
                     78:        return (width);
                     79: }
                     80: 
                     81: /* Returns width of a character in a font.
                     82:  * Works only for Apollo-type fonts
                     83:  */
                     84: int 
                     85: CharWidth(c, font)
                     86:        register unsigned int c;
                     87:        register FONT *font;
                     88: { 
                     89:     FontPriv   * fp;
                     90:     int width;
                     91: 
                     92:     if (c < font->first || c > font->last)
                     93:         return (0);
                     94:     fp = (FontPriv *)font->data;
                     95:     gpr_$inq_character_width( (short)fp->ap_font_id, c, (short)width, status);
                     96:     return(width);
                     97: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.