|
|
researchv10 Norman
#ifndef JERQ_H
#define JERQ_H
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include <X11/Xutil.h>
#ifndef NULL
#define NULL 0
#endif
typedef int Word; /* 32 bits */
typedef unsigned int UWord; /* 32 bits */
typedef struct Point {
short x;
short y;
} Point;
typedef struct Rectangle {
Point origin;
Point corner;
} Rectangle;
typedef struct Bitmap { /* a Bitmap, but offset */
Drawable dr;
Rectangle rect;
int flag;
} Bitmap;
/*
* Flag bits
*/
#define BI_PIXMAP 1
typedef struct Menu{
char **item; /* string array, ending with 0 */
char *(*generator)(); /* used if item == 0 */
short prevhit; /* private to menuhit() */
short prevtop; /* private to menuhit() */
} Menu;
struct Mouse {
Point xy;
int buttons;
unsigned long time;
};
struct JProc {
int state; /* only one we need */
};
#define RESHAPED 1 /* window has been changed */
#define KBD 2 /* we have keyboard input */
#define RCV 4 /* recevied from "host" proc */
#define SEND 8 /* sent to "host" proc */
#define MOUSE 16 /* we always have the mouse */
#define CPU 32 /* we always have the cpu */
typedef int Code;
#define Texture Pixmap
#define Font XFontStruct
#define wait(x) jwait(x)
/* The faster implementation of Rect, Pt, and Rpt is machine dependent
(depends on structure packing and argument passing). To avoid
machine dependencies, and make lint happy, use -Dsafe */
#ifdef safe
#define Rect(a,b,c,d) SRect(a,b,c,d)
extern Point Pt();
extern Rectangle SRect();
extern Rectangle Rpt();
#else
#define Pt(x, y) ((((short)(x))<<16)|((unsigned short)(y)))
#define Rect(x1, y1, x2, y2) Pt(x1, y1), Pt(x2, y2)
#define Rpt(p1, p2) (p1), (p2)
#endif
#define muldiv(a,b,c) ((long)((a)*((long)b)/(c)))
/*
* Function Codes
*/
#define F_STORE 0 /* target = source */
#define F_OR 1 /* target |= source */
#define F_CLR 2 /* target &= ~source */
#define F_XOR 3 /* target ^= source */
#define button(i) (mouse.buttons&(8>>i))
#define button1() (mouse.buttons&4)
#define button2() (mouse.buttons&2)
#define button3() (mouse.buttons&1)
#define button12() (mouse.buttons&6)
#define button13() (mouse.buttons&5)
#define button23() (mouse.buttons&3)
#define button123() (mouse.buttons&7)
Rectangle getrectb(), getrect();
#define getrect1() getrectb(4)
#define getrect2() getrectb(2)
#define getrect3() getrectb(1)
#define getrect12() getrectb(6)
#define getrect13() getrectb(5)
#define getrect23() getrectb(3)
#define getrect123() getrectb(7)
extern Point add(), sub(), mul(), div(), string();
extern Rectangle rsubp(), raddp(), inset();
extern Bitmap *balloc();
extern char *gcalloc(), *calloc();
extern void bfree(), gcfree();
extern void rectf(), rectfD(), bitblt(), bitbltD(),
texture(), evtomouse();
#define alloc(n) calloc(n,1)
#define realtime(x) (mouse.time)
#define jstrwidth(b) strwidth(&defont,b)
extern Cursor ToCursor(), *cursswitch();
extern Pixmap ToPixmap();
extern Cursor normalcursor;
extern Rectangle Drect;
extern Bitmap display;
extern GC gcs[];
extern Display *dpy;
extern unsigned long fgpix;
extern unsigned long bgpix;
extern Colormap colormap;
extern XColor fgcolor, bgcolor;
extern struct Mouse mouse;
extern struct JProc *P;
extern Font defont;
#endif JERQ_H
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.