|
|
1.1 root 1: /*
2: * The Sun X drivers are a product of Sun Microsystems, Inc. and are provided
3: * for unrestricted use provided that this legend is included on all tape
4: * media and as a part of the software program in whole or part. Users
5: * may copy or modify these drivers without charge, but are not authorized
6: * to license or distribute them to anyone else except as part of a product or
7: * program developed by the user.
8: *
9: * THE SUN X DRIVERS ARE PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND
10: * INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A
11: * PARTICULAR PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE
12: * PRACTICE.
13: *
14: * The Sun X Drivers are provided with no support and without any obligation
15: * on the part of Sun Microsystems, Inc. to assist in their use, correction,
16: * modification or enhancement.
17: *
18: * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
19: * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THE SUN X
20: * DRIVERS OR ANY PART THEREOF.
21: *
22: * In no event will Sun Microsystems, Inc. be liable for any lost revenue
23: * or profits or other special, indirect and consequential damages, even if
24: * Sun has been advised of the possibility of such damages.
25: *
26: * Sun Microsystems, Inc.
27: * 2550 Garcia Avenue
28: * Mountain View, California 94043
29: */
30:
31: /*-
32: * Copyright 1985, Massachusetts Institute of Technology
33: * Copyright (c) 1986 by Sun Microsystems, Inc.
34: *
35: * @(#)Xsun.h 2.1 86/01/28
36: *
37: */
38:
39: #include <stdio.h>
40: #include <X/X.h>
41: #include <pixrect/pixrect_hs.h>
42: #include "../X/vsinput.h"
43: #include "../X/Xdev.h"
44:
45:
46: #define ConstantPixmap 0x0 /* kinds of pixmaps on sun, constant */
47: #define BitmapPixmap 0x1 /* and ones with associated bitmaps */
48: #define ZColorPixmap 0x2 /* and 8-bit color ones */
49: #define XYColorPixmap 0x3 /* in both styles */
50: #define CanBeTiled 1 /* this pixmap can be tiled */
51: #define CannotBeTiled 0 /* this pixmap cannont be tiled */
52:
53: #define InvertFlag 0x10 /* pixmap source should be inverted */
54: #define PTYPE(x) (((int) (x)->kind) & 0xf)
55: #define PINVERT(x) (((int) (x)->kind) >> 4)
56:
57: typedef struct _fontpriv {
58: int maxwidth; /* maximum width found in the font */
59: int wpitch; /* number of bytes/line in strike */
60: short *widths; /* width table (in pixels) */
61: short *leftarray; /* leftarray */
62: BITMAP *strike; /* the font stike bitmap itself */
63: long *chrs; /* chars in independent bitmaps */
64: char **fltable; /* beginning of each strike line */
65: } FontPriv;
66:
67: typedef struct _curspriv {
68: struct pixrect *top; /* The cursor image */
69: BITMAP *top_bit;
70: struct pixrect *bot; /* The cursor image */
71: BITMAP *bot_bit;
72: struct pixrect *sv; /* The pixels underneath */
73: int fore, back;
74: } CursPriv;
75:
76: #define CDATA(x) ((CursPriv *) x->data)
77:
78: #define F_DATA(x) ((struct pixfont *) x->data)
79:
80: #define BDATA(x) ((VSArea *) x->data)
81:
82: #define PDATA(x) ((BITMAP *) x->data)
83:
84: #define SUN_FROM_X_OP(func) (Sun_From_X_Op[func])
85:
86: short Sun_From_X_Op[];
87:
88: #define CURSOR_WIDTH 16
89: #define CURSOR_HEIGHT 16
90:
91: #define GetNextClip(clips, cleft, ctop, cwidth, cheight) \
92: { \
93: CLIP *cl = clips++; \
94: cleft = cl->left; \
95: ctop = cl->top; \
96: cwidth = cl->width; \
97: cheight = cl->height; \
98: }
99:
100: #define OverLap(x1, y1, w1, h1, x2, y2, w2, h2) \
101: ((x1 < x2+w2) && (y1 < y2+h2) && (x2 < x1+w1) && (y2 < y1+h1))
102:
103: #define imin(i,j) (i<j?i:j)
104:
105: #define imax(i,j) (i>j?i:j)
106:
107: #define SetZmask(pr, zm) { \
108: extern private_czmask; \
109: if (*(char *)(zm) != (char)private_czmask) { \
110: pr_putattributes(pr, (zm)); \
111: private_czmask = *(zm); \
112: }}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.