File:  [Research Unix] / researchv9 / jtools / src / sunlib / jerq.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:21:59 2018 UTC (8 years, 1 month ago) by root
Branches: belllabs, MAIN
CVS tags: researchv9-SUN3_old, researchv9-SUN3, HEAD
researchv9-SUN3(old)

#ifndef	JERQ_H
#define	JERQ_H

#ifdef X11
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include <X11/Xutil.h>
#ifdef BSD
#include <sys/time.h>
#endif BSD
#endif X11
#ifdef SUNTOOLS
#include <sunwindow/window_hs.h>
#undef	Rect
#endif SUNTOOLS

#ifndef NULL
#define NULL 0
#endif

#define	nap(x)		jnap(x)
#define	wait(x)		jwait(x)
#define Menu		JMenu
#define sleep(x)	Jsleep(x)
#define alarm(x)	Jalarm(x)
#define own()		(P->state|MOUSE)

typedef int	Word;		/* 32 bits */

typedef unsigned int	UWord;	/* 32 bits */

typedef struct Point {		/* short and to the point	*/
	short	x;
	short	y;
} Point;

typedef struct Rectangle {
	Point origin;
	Point corner;
} Rectangle;
#define cor corner
#define org origin

typedef struct Bitmap {
#ifdef	X11
	Drawable dr;
#endif	X11
#ifdef	SUNTOOLS
	char *dr;
#endif	SUNTOOLS
	Rectangle rect;
	int flag;
#define BI_OFFSCREEN	1		/* Offscreen if set */
} Bitmap;

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;
};

#define	min(x,y)	(((x) < (y)) ? (x) : (y))
#define	max(x,y)	(((x) > (y)) ? (x) : (y))

#ifdef X11
typedef Pixmap	Texture;	
typedef Pixmap	Texture32;	
#define	Font	XFontStruct	
#define fontheight(fp)	((fp)->max_bounds.ascent + (fp)->max_bounds.descent)
#define fontwidth(fp)	((fp)->max_bounds.width)
#define fontnchars(fp)	((fp)->max_char_or_byte2+1)
#endif X11
#ifdef SUNTOOLS
typedef short	*Texture;
typedef Word	*Texture32;
typedef Pixfont *Font;
#define fontheight(fp)	((*fp)->pf_defaultsize.y)
#define	fontwidth(fp)	((*fp)->pf_defaultsize.x)
#define fontnchars(fp)	255
#define	Cursor	JCursor
typedef struct Cursor {
	short	*bits;
	short	hotx;
	short	hoty;
} Cursor;
#endif SUNTOOLS

struct JProc {
	int	state;
	Cursor	*cursor;
};
#define RESHAPED	1		/* window has been changed */
#define KBD		2		/* we have keyboard input */
#define RCV		4		/* recevied from "host" proc */
#define MOUSE		8		/* we always have the mouse */
#define	SEND		16		/* for request compatability */
#define	CPU		32
#define ALARM		64

typedef int Code;

#if defined(sparc) || defined(lint)
#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
 */
#ifdef	X11
#define	F_STORE	(GXcopy)		/* target = source */
#define	F_OR	(GXor)			/* target |= source */
#define	F_CLR	(GXandInverted)		/* target &= ~source */
#define	F_XOR	(GXxor)			/* target ^= source */
#endif	X11
#ifdef	SUNTOOLS
#define	F_STORE	(PIX_SRC)		/* target = source */
#define	F_OR	(PIX_SRC | PIX_DST)	/* target |= source */
#define	F_CLR	(PIX_NOT(PIX_SRC)&PIX_DST)	/* target &= ~source */
#define	F_XOR	(PIX_SRC ^ PIX_DST)	/* target ^= source */
#endif	SUNTOOLS

#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,1)
#define getrect2()		getrectb(2,1)
#define getrect3()		getrectb(1,1)
#define getrect12()		getrectb(6,1)
#define getrect13()		getrectb(5,1)
#define getrect23()		getrectb(3,1)
#define getrect123()		getrectb(7,1)

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)

#ifdef X11
extern	Texture		ToTexture();
extern	Texture32	ToTexture32();
extern	GC		gc;
extern	Display		*dpy;
extern	int		fgpix, bgpix;
extern	Colormap	colormap;
extern	XColor		fgcolor, bgcolor;
#define	jerqsync()	XSync(dpy, 0)
#endif X11
#ifdef SUNTOOLS
extern	Pixwin		*displaypw;
extern	int		damagedone;
#define	ToTexture(x)	x
#define	ToTexture32(x)	x
#define	jerqsync()
#endif SUNTOOLS

extern	Font	getfont();
extern	Rectangle Drect;
extern	Bitmap	display, Jfscreen, ToBitmap();
extern	Point	Joffset;
extern	int	displayfd;
extern	int	jerqrcvmask;
extern	Cursor	ToCursor(), *cursswitch(), normalcursor;
extern	struct	Mouse mouse;
extern	struct	JProc *P;
extern	Font	defont;

#endif JERQ_H

unix.superglobalmegacorp.com

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