Annotation of 43BSDTahoe/new/X/libapollo/textutil.c, revision 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.