#ifndef lint
static char SccsCgraphdefId[] = "%W%  %G%";
#endif

/* Module:	Cgraph.def
 * Purpose:	Declare the struct for color graph parameters
 * Modified:	{0} Michael VanHilst	initial version		 11 June 1989
 *		{n} <who> -- <does what> -- <when>
 */

struct colbarRec colorbar = { /*	parameters for display color bar */
 NULL,	/* Display *display;		display handle of colorbox */
 NULL,	/* Window ID;			handle of bar subwindow */
 0, 0,	/* int ref_width, ref_height;	colorbox size when last checked */
 0, 0,	/* unsigned int width,height;	dimensions of bar subwindow */
 0,	/* int ncolors;			number of shades represented */
 NULL,	/* XImage *image;		uses image struct of colorbox */
 0,	/* int data_size;		data allocated (both byte and bit) */
 0,	/* int bytes_per_bit_line;	bytes per line for bitmap */
 NULL,	/* char *byte_data;		one byte per pixel */
 NULL	/* char *bit_data;		one bit per pixel (after byte_data */
};

struct cgraphRec cgraph = {
 1,	/* int inactive;		do-not-draw-graph */
 0,	/* int vertical;		1=vertical sweep, else horizontal */
 0,	/* int ncolors;			number of image color cells */
 0,	/* int point_cnt;		applies to all color lines */
 0,	/* int bargraph;		use-bar-type-instead-of-line */
 NULL,	/* Font font;			font id for XDrawImageString */
 NULL,	/* XFontStruct *fontstruct;	struct for font size info */
 NULL,	/* GCspec *disp;		gc info to draw bar */
 NULL,	/* GCspec *menu;		gc info for text */
 NULL,	/* GCspec *black;		gc info for black text and lines */
 {	/* struct colbarRec bar;	parameters for graph color bar */
   NULL,  /* Display *display;		display handle of colorbox */
   NULL,  /* Window ID;			handle of bar subwindow */
   0, 0,  /* int ref_width, ref_height;	colorbox size when last checked */
   0, 0,  /* unsigned int width,height;	dimensions of bar subwindow */
   0,	  /* int ncolors;		number of shades represented */
   NULL,  /* XImage *image;		uses image struct of colorbox */
   0,	  /* int data_size;		data allocated (both byte and bit) */
   0,	  /* int bytes_per_bit_line;	bytes per line for bitmap */
   NULL,  /* char *byte_data;		one byte per pixel */
   NULL   /* char *bit_data;		one bit per pixel (after byte_data */
 },
 {	/* struct {			parameters to label the bar */
   NULL,  /* Window min_ID;		lowest color (0) subwindow */
   NULL,  /* Window max_ID;		highest color (ncolors-1) subwindow */
   0, 0,  /* int min_x, min_y;		lowest color label placement */
   0, 0,  /* int max_x, max_y;		highest color label placement */
   0, 0,  /* int width, height;		size of both label subwindows */
   0,	  /* int base_width;		dimension of basic label to center */
   0	  /* int base_height; */
 },	/* } barlabel; */
 {	/* struct {			parameters for color graph */
   NULL,  /* Display *display;		display handle of graphbox */
   NULL,  /* Window ID;			handle of graph subwindow */
   0, 0,  /* int ref_width, ref_height;	size of graphbox when last checked */
   0,	  /* int ncolors;		number of shades represented */
   0, 0,  /* int width, height;		size of graph subwindow */
   0, 0,  /* int xzero, yzero;		graph area offset */
   0, 0,  /* int xwidth, yheight;	graph area dimensions */
   0, 0,  /* int xmax, ymax;		maximum drawing coordinate */
   0.0,0.0, /* double Xwidth, Yheight;	often used double version */
   0.0,0.0  /* double Xinc, Yinc;	color spacing (ncolors/wdth;hght) */
 },	/* } graph; */
 {	/* struct {			parameters to label the graph */
   NULL,  /* Window gamma_ID;		window in which to label gamma */
   NULL,  /* Window minmax_ID;		window in which to label min & max */
   0, 0,  /* int width, height;		size of both label subwindows */
   NULL,  /* Window geq_ID;		borderless box with "g=" */
   NULL,  /* Window red_ID;		red border box for red gamma */
   NULL,  /* Window green_ID;		green border box for green gamma */
   NULL,  /* Window blue_ID;		blue border box for blue gamma */
   0, 0,  /* int box_width, box_height;	size of each gamma val boxes */
   0, 0,  /* int box_x, box_y;		text string coord in box */
   0, 0,  /* int geq_width, geq_height;	size of "g=" box */
   0, 0,  /* int geq_text_x, geq_text_y;text string coord in "g=" box */
   0,	  /* int three_limit;		minimum size to hold 3 gamma vals */
   0,	  /* int four_limit;		three_limit plus the "g=" */
   0, 0,  /* int geq_x, geq_y;		placement of "g=" box */
   0, 0,  /* int red_x, red_y;		placement of red box */
   0, 0,  /* int green_x, green_y;	placement of green box */
   0, 0,  /* int blue_x, blue_y;	placement of blue box */
   0, 0,  /* int min_x, min_y;		placement of "min" text string */
   0, 0,  /* int max_x, max_y;		placement of "max" text string */
   0,	  /* int minmax_xoff;		coordinate offset from right */
   0,	  /* int minmax_yoff;		coordinate offset from bottom */
   0,	  /* int active;		label the color bar and graph */
   0	  /* int geq_active;		include "g=" in gamma label */
 },	/* } graphlabel; */
 {	/* struct {			special values for hash marks */
   0.0,0.0, /* double Xzero, Yzero;	offset by HASH_RAY */
   0.0,0.0, /* double Xwidth, Yheight;	decremented by inc */
   0.0	    /* double Ymax;		perceptually, y goes upward from max */
 },	/* } hash; */
 {	/* struct colgRec red;		ensemble for red */
   0,	  /* int active;		this-color-is-being-manipulated */
   1,	  /* int unset;			line-does-not-match-current-state */
   NULL,  /* struct subtableRec *table;	color information */
   NULL,  /* GCspec *draw;		gc info to draw graph this color */
  -1,	  /* int active_vertex;		vertex being manipulated */
  -1,	  /* int active_hash;		hash mark being manipulated */
   0,	  /* int hash_0;		index in table of hash[0] */
   0, 	  /* int queue_index;		position in drawing queue */
   0,	  /* int hash_cnt;		number of hash marks */
   0,	  /* int pad;			allignment space */
   	  /* XRectangle hash[PSEUDOSZ];	hash marks for X (PSEUDOSZ = 64) */
   { { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ } },
   { 0 }  /* XPoint line[MAXPOINTS];	graph line for this color */
 },
 {	/* struct colgRec green;	ensemble for green */
   0,	  /* int active;		this-color-is-being-manipulated */
   1,	  /* int unset;			line-does-not-match-current-state */
   NULL,  /* struct subtableRec *table;	color information */
   NULL,  /* GCspec *draw;		gc info to draw graph this color */
  -1,	  /* int active_vertex;		vertex being manipulated */
  -1,	  /* int active_hash;		hash mark being manipulated */
   0,	  /* int hash_0;		index in table of hash[0] */
   1, 	  /* int queue_index;		position in drawing queue */
   0,	  /* int hash_cnt;		number of hash marks */
   0,	  /* int pad;			allignment space */
   {	  /* XRectangle hash[PSEUDOSZ];	hash marks for X (PSEUDOSZ = 64) */
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ } },
   { 0 }  /* XPoint line[MAXPOINTS];	graph line for this color */
 },
 {	/* struct colgRec blue;		ensemble for blue */
   0,	  /* int active;		this-color-is-being-manipulated */
   1,	  /* int unset;			line-does-not-match-current-state */
   NULL,  /* struct subtableRec *table;	color information */
   NULL,  /* GCspec *draw;		gc info to draw graph this color */
  -1,	  /* int active_vertex;		vertex being manipulated */
  -1,	  /* int active_hash;		hash mark being manipulated */
   0,	  /* int hash_0;		index in table of hash[0] */
   2, 	  /* int queue_index;		position in drawing queue */
   0,	  /* int hash_cnt;		number of hash marks */
   0,	  /* int pad;			allignment space */
   {	  /* XRectangle hash[PSEUDOSZ];	hash marks for X (PSEUDOSZ = 64) */
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ },
     { 0, 0, HASH_SZ, HASH_SZ }, { 0, 0, HASH_SZ, HASH_SZ } },
   { 0 }  /* XPoint line[MAXPOINTS];	graph line for this color */
 },
 3,	/* int queue_cnt;		number of color ensembles in queue */
 { 0 }	/* struct colgRec *queue[3];	order of drawing */
};
