Annotation of 43BSDTahoe/new/X/libibm/libsrc/private.h, revision 1.1

1.1     ! root        1: /* $Header: private.h,v 10.1 86/11/19 10:46:15 jg Exp $ */
        !             2: /* Copyright 1985 Massachusetts Institute of Technology */
        !             3: 
        !             4: /* private.h - Defines and macros to access private data structures
        !             5:  *
        !             6:  *     Changes and modifications by:
        !             7:  *
        !             8:  *             Scott Bates
        !             9:  *             Brown University
        !            10:  *             IRIS, Box 1946
        !            11:  *             Providence, RI 02912
        !            12:  *
        !            13:  *
        !            14:  *             Copyright (c) 1986 Brown University
        !            15:  *
        !            16:  * Permission to use, copy, modify and distribute this software and its
        !            17:  * documentation for any purpose and without fee is hereby granted, provided
        !            18:  * that the above copyright notice appear in all copies, and that both
        !            19:  * that copyright notice and this permission notice appear in supporting
        !            20:  * documentation, and that the name of Brown University not be used in
        !            21:  * advertising or publicity pertaining to distribution of the software
        !            22:  * without specific, written prior permission. Brown University makes no
        !            23:  * representations about the suitability of this software for any purpose.
        !            24:  * It is provided "as-is" without express or implied warranty.
        !            25:  */
        !            26: 
        !            27: #include <sys/types.h>
        !            28: #include <stdio.h>
        !            29: #include <errno.h>
        !            30: #include "vsinput.h"
        !            31: #include "Xdev.h"
        !            32: #include "X.h"
        !            33: #include <sys/ioctl.h>
        !            34: #include <sgtty.h>
        !            35: #include <fcntl.h>
        !            36: #include <sys/tbioctl.h>
        !            37: #include <machineio/mouseio.h>
        !            38: #include <machinecons/xio.h>
        !            39: 
        !            40: #define ConstantPixmap         0       /* kinds of pixmaps, constant         */
        !            41: #define BitmapPixmap   1       /*   and ones with associated bitmaps */
        !            42: 
        !            43: #define CanBeTiled     1       /* this pixmap can be tiled */
        !            44: #define CannotBeTiled  0       /* this pixmap cannont be tiled */
        !            45: 
        !            46: #define InvertFlag     0x10    /* pixmap source should be inverted   */
        !            47: #define PTYPE(x)       (((int) (x)->kind) & 0xF)       /* get type */
        !            48: #define PINVERT(x)     (((int) (x)->kind) >> 4)        /* get invert flag */
        !            49: 
        !            50: #define TILE_SIZE      16      /* tile size in shorts */
        !            51: #define TILE_WIDTH     16      /* tile width in bits */
        !            52: #define TILE_HEIGHT    16      /* tile height in bits */
        !            53: 
        !            54: #define CURSOR_SIZE    16      /* cursor size in shorts */
        !            55: #define CURSOR_WIDTH   16      /* cursor width in bits */
        !            56: #define CURSOR_HEIGHT  16      /* cursor height in bits */
        !            57: 
        !            58: #define CDATA(x) ((CursPriv *) x->data)          /* get pntr to private cursor data */
        !            59: 
        !            60: typedef struct _curspriv {     /* private data struct for cursor */
        !            61:         u_short data[CURSOR_SIZE];     /* cursor image */
        !            62:         u_short mask[CURSOR_SIZE];     /* cursor mask */
        !            63:        struct {                        /* cursor hot spot */
        !            64:                short y;
        !            65:                short x;
        !            66:        } hotspot;
        !            67: } CursPriv;
        !            68: 
        !            69: #define FDATA(x) ((FontPriv *) x->data)  /* get pntr to private font data */
        !            70: 
        !            71: typedef struct _fontpriv {     /* private font data */
        !            72:         int maxwidth;          /* maximum width found in the font */
        !            73:         short *widths;         /* width table (in pixels)         */
        !            74:         short *leftarray;      /* leftarray                       */
        !            75:         BITMAP *chrs;          /* individual character bitmaps    */
        !            76:         BITMAP *offscr;                /* the font offscreen bitmap       */
        !            77: } FontPriv;
        !            78: 
        !            79: #define BDATA(x) ((u_short *) x->data)  /* get pntr to private bitmap data */
        !            80: 
        !            81: #define PDATA(x) ((BITMAP *) x->data) /* get pntr to private pixmap data */
        !            82: 
        !            83: /*
        !            84:  * Define for the global text offscreen array of unsigned shorts.
        !            85:  * Each offscr BITMAP.data structure will point to this array.
        !            86:  * When each font is opened, it uses this buffer which is designed to
        !            87:  * be as wide as the widest display and 128 bits high.
        !            88:  * This is roughly 20K.  (For all fonts.)
        !            89:  * (We are assuming some day one will have a 1280x1024 screen.)
        !            90:  */
        !            91: #define MAX_OFFSCR_WD          1280
        !            92: #define MAX_OFFSCR_HT          128
        !            93: #define TEXT_BUFFER_SIZE       ((MAX_OFFSCR_WD * MAX_OFFSCR_HT) >> 4)
        !            94: #define CH_THRESHOLD           3
        !            95: 
        !            96: /*
        !            97:  * Path list type flags
        !            98:  */
        !            99: 
        !           100: #define DRAW_PATH_LIST 0
        !           101: #define FILL_PATH_LIST 1
        !           102: 
        !           103: /*
        !           104:  * These macors are used in place of floating point
        !           105:  * code to get precision to the second decimal place
        !           106:  * using interger math.
        !           107:  */
        !           108: 
        !           109: #define SHIFT_LEFT_16(x) \
        !           110:        (((x) < 0) ? -(-(x) << 16) : (x) << 16)
        !           111: 
        !           112: #define ROUND_16(x) \
        !           113:        (((x) < 0) ? -((-(x) + 32768) >> 16) : (((x) + 32768) >> 16))
        !           114: 
        !           115: #define PERCENT_16(x, n, d) \
        !           116:        (((x) < 0) ? -((-(x) / d) * n) : (((x) / d) * n))
        !           117: 
        !           118: /*
        !           119:  * Macro to obtain address of the screens
        !           120:  * BITMAP structure
        !           121:  */
        !           122: 
        !           123: #define SCREEN_BITMAP  &pbm
        !           124: 
        !           125: /*
        !           126:  * Externs and declarations
        !           127:  */
        !           128: 
        !           129: extern BITMAP pbm;
        !           130: extern BITMAP txtbm;
        !           131: extern u_short *ConstantTiles[];
        !           132: extern PIXMAP constpix0;
        !           133: extern PIXMAP constpix1;
        !           134: extern char FBMap[];
        !           135: extern char SSMap[];
        !           136: extern int errno;
        !           137: 
        !           138: BITMAP *CharBitmap();
        !           139: BITMAP *MakeMask();
        !           140: PIXMAP *MakePixmap();
        !           141: char *Xalloc(), *calloc();
        !           142: char *strcpy(), *strcat();
        !           143: char *getenv();
        !           144: long lseek();

unix.superglobalmegacorp.com

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