|
|
1.1 root 1: #ifndef JERQ_H
2: #define JERQ_H
3: #include <X11/Xlib.h>
4: #include <X11/Xatom.h>
5: #include <X11/Xutil.h>
6:
7: #ifndef NULL
8: #define NULL 0
9: #endif
10:
11: typedef int Word; /* 32 bits */
12:
13: typedef unsigned int UWord; /* 32 bits */
14:
15: typedef struct Point {
16: short x;
17: short y;
18: } Point;
19:
20: typedef struct Rectangle {
21: Point origin;
22: Point corner;
23: } Rectangle;
24:
25: typedef struct Bitmap { /* a Bitmap, but offset */
26: Drawable dr;
27: Rectangle rect;
28: int flag;
29: } Bitmap;
30:
31: /*
32: * Flag bits
33: */
34: #define BI_PIXMAP 1
35:
36: typedef struct Menu{
37: char **item; /* string array, ending with 0 */
38: char *(*generator)(); /* used if item == 0 */
39: short prevhit; /* private to menuhit() */
40: short prevtop; /* private to menuhit() */
41: } Menu;
42:
43: struct Mouse {
44: Point xy;
45: int buttons;
46: unsigned long time;
47: };
48:
49: struct JProc {
50: int state; /* only one we need */
51: };
52: #define RESHAPED 1 /* window has been changed */
53: #define KBD 2 /* we have keyboard input */
54: #define RCV 4 /* recevied from "host" proc */
55: #define SEND 8 /* sent to "host" proc */
56: #define MOUSE 16 /* we always have the mouse */
57: #define CPU 32 /* we always have the cpu */
58:
59: typedef int Code;
60:
61: #define Texture Pixmap
62: #define Font XFontStruct
63: #define wait(x) jwait(x)
64:
65: /* The faster implementation of Rect, Pt, and Rpt is machine dependent
66: (depends on structure packing and argument passing). To avoid
67: machine dependencies, and make lint happy, use -Dsafe */
68: #ifdef safe
69: #define Rect(a,b,c,d) SRect(a,b,c,d)
70: extern Point Pt();
71: extern Rectangle SRect();
72: extern Rectangle Rpt();
73: #else
74: #define Pt(x, y) ((((short)(x))<<16)|((unsigned short)(y)))
75: #define Rect(x1, y1, x2, y2) Pt(x1, y1), Pt(x2, y2)
76: #define Rpt(p1, p2) (p1), (p2)
77: #endif
78:
79: #define muldiv(a,b,c) ((long)((a)*((long)b)/(c)))
80:
81: /*
82: * Function Codes
83: */
84: #define F_STORE 0 /* target = source */
85: #define F_OR 1 /* target |= source */
86: #define F_CLR 2 /* target &= ~source */
87: #define F_XOR 3 /* target ^= source */
88:
89: #define button(i) (mouse.buttons&(8>>i))
90: #define button1() (mouse.buttons&4)
91: #define button2() (mouse.buttons&2)
92: #define button3() (mouse.buttons&1)
93: #define button12() (mouse.buttons&6)
94: #define button13() (mouse.buttons&5)
95: #define button23() (mouse.buttons&3)
96: #define button123() (mouse.buttons&7)
97:
98: Rectangle getrectb(), getrect();
99: #define getrect1() getrectb(4)
100: #define getrect2() getrectb(2)
101: #define getrect3() getrectb(1)
102: #define getrect12() getrectb(6)
103: #define getrect13() getrectb(5)
104: #define getrect23() getrectb(3)
105: #define getrect123() getrectb(7)
106:
107: extern Point add(), sub(), mul(), div(), string();
108: extern Rectangle rsubp(), raddp(), inset();
109: extern Bitmap *balloc();
110: extern char *gcalloc(), *calloc();
111: extern void bfree(), gcfree();
112: extern void rectf(), rectfD(), bitblt(), bitbltD(),
113: texture(), evtomouse();
114:
115: #define alloc(n) calloc(n,1)
116: #define realtime(x) (mouse.time)
117: #define jstrwidth(b) strwidth(&defont,b)
118:
119: extern Cursor ToCursor(), *cursswitch();
120: extern Pixmap ToPixmap();
121: extern Cursor normalcursor;
122: extern Rectangle Drect;
123: extern Bitmap display;
124: extern GC gcs[];
125: extern Display *dpy;
126: extern unsigned long fgpix;
127: extern unsigned long bgpix;
128: extern Colormap colormap;
129: extern XColor fgcolor, bgcolor;
130: extern struct Mouse mouse;
131: extern struct JProc *P;
132: extern Font defont;
133:
134: #endif JERQ_H
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.