plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

dat.h (3559B)


      1 /* Copyright (c) 1994-1996 David Hogan, see README for licence details */
      2 
      3 #define BORDER		_border
      4 #define CORNER		_corner
      5 #define	INSET		_inset
      6 #define MAXHIDDEN	128
      7 #define B3FIXED 	5
      8 #define NUMVIRTUALS	12
      9 
     10 #define AllButtonMask	(Button1Mask|Button2Mask|Button3Mask \
     11 			|Button4Mask|Button5Mask)
     12 #define ButtonMask	(ButtonPressMask|ButtonReleaseMask)
     13 #define MenuMask	(ButtonMask|ButtonMotionMask|ExposureMask)
     14 #define MenuGrabMask	(ButtonMask|ButtonMotionMask|StructureNotifyMask)
     15 
     16 #ifdef	Plan9
     17 #define DEFSHELL	"/bin/rc"
     18 #else
     19 #define DEFSHELL	"/bin/sh"
     20 #endif
     21 
     22 typedef struct Client Client;
     23 typedef struct Menu Menu;
     24 typedef struct ScreenInfo ScreenInfo;
     25 
     26 struct Client {
     27 	Window		window;
     28 	Window		parent;
     29 	Window		trans;
     30 	Client		*next;
     31 	Client		*revert;
     32 
     33 	int 		x;
     34 	int 		y;
     35 	int 		dx;
     36 	int 		dy;
     37 	int 		border;
     38 
     39 	XSizeHints	size;
     40 	int 		min_dx;
     41 	int 		min_dy;
     42 
     43 	int 		state;
     44 	int 		init;
     45 	int 		reparenting;
     46 	int 		is9term;
     47 	int 		hold;
     48 	int 		proto;
     49 	int			virt;
     50 
     51 	char		*label;
     52 	char		*instance;
     53 	char		*class;
     54 	char		*name;
     55 	char		*iconname;
     56 
     57 	Colormap	cmap;
     58 	int 		ncmapwins;
     59 	Window		*cmapwins;
     60 	Colormap	*wmcmaps;
     61 	ScreenInfo	*screen;
     62 };
     63 
     64 #define hidden(c)	((c)->state == IconicState)
     65 #define withdrawn(c)	((c)->state == WithdrawnState)
     66 #define normal(c)	((c)->state == NormalState)
     67 
     68 /* c->proto */
     69 #define Pdelete 	1
     70 #define Ptakefocus	2
     71 #define Plosefocus	4
     72 
     73 struct Menu {
     74 	char	**item;
     75 	char	*(*gen)();
     76 	int	lasthit;
     77 };
     78 
     79 enum BorderOrient {
     80 	BorderUnknown = 0, /* we depend on this!*/
     81 	BorderN,
     82 	BorderNNE,
     83 	BorderENE,
     84 	BorderE,
     85 	BorderESE,
     86 	BorderSSE,
     87 	BorderS,
     88 	BorderSSW,
     89 	BorderWSW,
     90 	BorderW,
     91 	BorderWNW,
     92 	BorderNNW,
     93 	NBorder
     94 };
     95 typedef enum BorderOrient BorderOrient;
     96 
     97 struct ScreenInfo {
     98 	int			num;
     99 	int			depth;
    100 	Visual		*vis;
    101 	int			width;
    102 	int			height;
    103 	Window		root;
    104 	Window		menuwin;
    105 	Window		sweepwin;
    106 	Colormap		def_cmap;
    107 	GC			gc;
    108 	GC			gccopy;
    109 	GC			gcred;
    110 	GC			gcsweep;
    111 	GC			gcmenubg;
    112 	GC			gcmenubgs;
    113 	GC			gcmenufg;
    114 	GC			gcmenufgs;
    115 	unsigned long	black;
    116 	unsigned long	white;
    117 	unsigned long	activeholdborder;
    118 	unsigned long	inactiveholdborder;
    119 	unsigned long	activeborder;
    120 	unsigned long	inactiveborder;
    121 	unsigned long	red;
    122 	Pixmap		bkup[2];
    123 	int			min_cmaps;
    124 	Cursor		target;
    125 	Cursor		sweep0;
    126 	Cursor		boxcurs;
    127 	Cursor		arrow;
    128 	Cursor		bordcurs[NBorder];
    129 	Pixmap		root_pixmap;
    130 	char			display[256];	/* arbitrary limit */
    131 };
    132 
    133 /* main.c */
    134 extern Display		*dpy;
    135 extern ScreenInfo	*screens;
    136 extern int			num_screens;
    137 extern int			initting;
    138 extern XFontStruct	*font;
    139 extern int			nostalgia;
    140 extern char		**myargv;
    141 extern Bool 		shape;
    142 extern char 		*termprog;
    143 extern char 		*shell;
    144 extern char 		*version[];
    145 extern int			_border;
    146 extern int			_corner;
    147 extern int			_inset;
    148 extern int			curtime;
    149 extern int			debug;
    150 extern int			solidsweep;
    151 extern int			numvirtuals;
    152 extern int			scrolling;
    153 extern int			ffm;	/* focus follows mouse */
    154 
    155 extern Atom		exit_rio;
    156 extern Atom		restart_rio;
    157 extern Atom 		wm_state;
    158 extern Atom		wm_change_state;
    159 extern Atom 		_rio_hold_mode;
    160 extern Atom 		wm_protocols;
    161 extern Atom 		wm_delete;
    162 extern Atom 		wm_take_focus;
    163 extern Atom		wm_lose_focus;
    164 extern Atom 		wm_colormaps;
    165 extern Atom		wm_state_fullscreen;
    166 extern Atom		wm_state;
    167 /* client.c */
    168 extern Client		*clients;
    169 extern Client		*current;
    170 extern Client		*currents[];
    171 
    172 /* menu.c */
    173 extern Client		*hiddenc[];
    174 extern int 			numhidden;
    175 extern char 		*b2items[];
    176 extern Menu 		b2menu;
    177 extern char 		*b3items[];
    178 extern Menu 		b3menu;
    179 extern int			virt;
    180 
    181 /* manage.c */
    182 extern int			isNew;
    183 
    184 /* error.c */
    185 extern int 			ignore_badwindow;