#ifndef lint
static char sccsid[] = "@(#)llib-lcgi 1.6 89/09/05 Copyr 1985-9 Sun Micro";
#endif

/*
 * Copyright (c) 1985, 1986, 1987, 1988, 1989 by Sun Microsystems, Inc.
 */

/* LINTLIBRARY */
/* For libcgi.a */

#include <cgipw.h>
#include <suntool/canvas.h>

Cerror open_cgi()
	{ static Cerror err; return err; }

Cerror open_vws(name,devdd)
    Cint *name;				/* name assigned to cgi view surface */
    Cvwsurf *devdd;			/* view surface descriptor */
	{ static Cerror err; return err; }

Cerror activate_vws(name)
    Cint name;				/* view surface name */
	{ static Cerror err; return err; }

Cerror deactivate_vws(name)
    Cint name;				/* view surface name */
	{ static Cerror err; return err; }

Cerror close_vws(name)
    Cint name;				/* view surface name */
	{ static Cerror err; return err; }

Cerror close_cgi()
	{ static Cerror err; return err; }

Cerror inquire_device_identification (name,devid)
    Cint name;				/* device name */
    Cchar *devid;			/* Workstation type */
	{ static Cerror err; return err; }

Cerror inquire_device_class(output,input)
    Cint *output,*input;		/* output and input abilities */
	{ static Cerror err; return err; }

Cerror inquire_physical_coordinate_system
	(name,xbase,ybase,xext,yext,xunits,yunits)
    Cint name;				/* name assigned to cgi view surface */
    Cint *xbase,*ybase;			/* base coordinates */
    Cint *xext,*yext;			/* number of pixels in each direction */
    Cfloat *xunits,*yunits;		/* number of pixels per mm. */
	{ static Cerror err; return err; }

Cerror inquire_output_function_set (level,support)
    Cint level;				/* level of output */
    Csuptype *support;			/* amount of support */
	{ static Cerror err; return err; }

Cerror inquire_vdc_type(type)
    Cvdctype *type;			/* type of vdc space */
	{ static Cerror err; return err; }

Cerror inquire_output_capabilities (first,num,list)
    Cint first;				/* first elements to be returned */
    Cint num;				/* number of elements to be returned */
    Cchar *list[];			/* returned list */
	{ static Cerror err; return err; }

Cerror inquire_input_capabilities (valid,table)
    Clogical *valid;			/* device state */
    Ccgidesctab *table;			/* CGI input description table */
	{ static Cerror err; return err; }

Cerror inquire_lid_capabilities (devclass,devnum,valid,table)
    Cdevoff devclass;
    Cint devnum;			/* device type, device number */
    Clogical *valid;			/* device supported at all */
    Cliddescript *table;		/* table of descriptors */
	{ static Cerror err; return err; }

Cerror inquire_trigger_capabilities(trigger,valid,tdis)
    Cint trigger;			/* trigger number */
    Clogical *valid;			/* trigger supported at all */
    Ctrigdis *tdis;			/* trigger description table */
	{ static Cerror err; return err; }

Cerror vdc_extent (c1, c2)
    Ccoor *c1;			/* bottom left-hand corner of VDC space */
    Ccoor *c2;			/* top right-hand corner of VDC space */
	{ static Cerror err; return err; }

Cerror device_viewport(name,c1,c2)
    Cint name;				/* name assigned to cgi view surface */
    Ccoor *c1;				/* bottom left-hand corner */
    Ccoor *c2;				/* top right-hand corner */
		/* of view surface to map device onto (expressed in pixels) */
	{ static Cerror err; return err; }

Cerror clip_indicator(cflag)
    Cclip cflag;			/* CLIP_RECTANGLE, VDC_EXTENT, or OFF */
	{ static Cerror err; return err; }

Cerror clip_rectangle(xmin,xmax,ymin,ymax)
    Cint xmin,xmax,ymin,ymax;		/* bottom left-hand corner
			    and top right-hand corner of clipping rectangle */
	{ static Cerror err; return err; }

Cerror hard_reset()
	{ static Cerror err; return err; }

Cerror reset_to_defaults()
	{ static Cerror err; return err; }

Cerror clear_view_surface (name,defflag,index)
    Cint name;				/* name assigned to cgi view surface */
    Cflag defflag;			/* default color flag */
    Cint index;				/* color of cleared screen */
	{ static Cerror err; return err; }

Cerror clear_control(soft,hard,intern,extent)
    Cacttype soft,hard;			/* soft-copy action, hard-copy action */
    Cacttype intern;			/* internal action */
    Cexttype extent;			/* clear extent */
	{ static Cerror err; return err; }

Cerror set_error_warning_mask(action)
    Cerrtype action;			/* Action on receipt of an error */
	{ static Cerror err; return err; }

Cerror set_up_sigwinch(name, sig_function)
    Cint name;
    Cint (*sig_function)();		/* signal handling function */
	{ static Cerror err; return err; }

Cerror polyline(polycoors)
    Ccoorlist *polycoors;		/* list of points */
	{ static Cerror err; return err; }

Cerror disjoint_polyline(polycoors)
    Ccoorlist *polycoors;		/* list of points */
	{ static Cerror err; return err; }

Cerror polymarker(polycoors)
    Ccoorlist *polycoors;		/* list of points */
	{ static Cerror err; return err; }

Cerror polygon(polycoors)
    Ccoorlist *polycoors;		/* list of points */
	{ static Cerror err; return err; }

Cerror partial_polygon(polycoors, cflag) 
    Ccoorlist *polycoors;		/* list of points */
    Ccflag cflag;			/* add to point buffer */
	{ static Cerror err; return err; }

Cerror rectangle(rbc, ltc)
    Ccoor *rbc,*ltc;			/* corners defining rectangle */
	{ static Cerror err; return err; }

Cerror circle(c1, rad)
    Ccoor *c1;				/* center */
    Cint rad;				/* radius */
	{ static Cerror err; return err; }
	
Cerror circular_arc_center(c1, c2x, c2y, c3x, c3y, rad)
    Ccoor *c1;				/* center */
    Cint c2x,c2y,c3x,c3y;		/* endpoints */
    Cint rad;				/* radius */
	{ static Cerror err; return err; }

Cerror circular_arc_center_close(c1, c2x, c2y, c3x, c3y, rad, close)
    Ccoor *c1;				/* center */
    Cint c2x,c2y,c3x,c3y;		/* endpoints */
    Cint rad;				/* radius */
    Cclosetype close;			/* PIE or CHORD */
	{ static Cerror err; return err; }

Cerror circular_arc_3pt(c1, c2, c3)
    Ccoor *c1,*c2,*c3;		/* starting, intermediate, and ending points */
	{ static Cerror err; return err; }

Cerror circular_arc_3pt_close(c1, c2, c3, close)
    Ccoor *c1, *c2, *c3;	/* starting, intermediate, and ending points */
    Cclosetype close;			/* PIE or CHORD */
	{ static Cerror err; return err; }

Cerror ellipse (c1, majx,miny)
    Ccoor *c1;				/* center */
    Cint majx,miny;			/* enpoints of x and x axes */
	{ static Cerror err; return err; }

Cerror elliptical_arc(c1, sx, sy, ex, ey, majx, miny)
    Ccoor *c1;				/* center */
    Cint sx,sy;				/* starting point of arc */
    Cint ex,ey;				/* ending point of arc */
    Cint majx,miny;			/* endpoints of major and minor axes */
	{ static Cerror err; return err; }

Cerror elliptical_arc_close(c1, sx, sy, ex, ey, majx, miny, close)
    Ccoor *c1;				/* center */
    Cint sx,sy;				/* starting point of arc */
    Cint ex,ey;				/* ending point of arc */
    Cint majx,miny;			/* enpoints of major and minor axes */
    Cclosetype close;			/* PIE or CHORD */
	{ static Cerror err; return err; }

/* text routines use a Ccoor pointer,
 * but the manual accidentally said it is a Ccoor
 */
Cerror text(c1, tstring) 
    Ccoor *c1;			    /* starting point of text (in VDC Space) */
    Cchar *tstring;			/* text */
	{ static Cerror err; return err; }

Cerror vdm_text(c1, flag, tstring) 
    Ccoor *c1;			    /* starting point of text (in VDC Space) */
    Ctextfinal flag;			/* final text for alignment */
    Cchar *tstring;			/* text */
	{ static Cerror err; return err; }

Cerror append_text(flag, tstring) 
    Ctextfinal flag;			/* final text for alignment */
    Cchar *tstring;			/* text */
	{ static Cerror err; return err; }

Cerror inquire_text_extent(tstring, nextchar, concat, lleft, uleft, uright) 
    Cchar *tstring;			/* text */
    Cchar nextchar;			/* last character */
    Ccoor *concat;			/* concatenation point */
    Ccoor *lleft,*uleft,*uright;	/* coordinates of text bounding box */
	{ static Cerror err; return err; }

Cerror cell_array(p, q, r, dx, dy, colorind)
    Ccoor *p, *q, *r;		/* corners of parallelogram (in VDC Space) */
    Cint dx,dy;				/* dimensions of color array */
    Cint *colorind;			/* array of color values */
	{ static Cerror err; return err; }

Cerror pixel_array (pcell,m,n,colorind)
    Ccoor *pcell;			/* base of array in VDC Space */
    Cint m,n;			/* dimensions of color array in screen space */
    Cint *colorind;			/* array of color values */
	{ static Cerror err; return err; }

Cerror bitblt_source_array(pixsource, xo, yo, xe, ye, pixtarget, xt, yt, name)
    Cpixrect *pixsource,*pixtarget;	/* source and target pixel arrays */
    Cint xo,yo;		/* coordinates of source pixel array (in VDC Space) */
    Cint xe,ye;		/* dimensions of source pixel array (in screen space) */
    Cint xt,yt;		/* coordinates of target pixel array (in VDC Space) */
    Cint name;		/* view surface name */
	{ static Cerror err; return err; }

Cerror bitblt_pattern_array(pixpat, px, py, pixtarget, rx, ry,
    ox, oy, dx, dy, name)
    Cpixrect *pixpat;			/* pattern source array */
    Cint px,py;				/* pattern extent */
    Cpixrect *pixtarget;		/* destination pattern array */
    Cint rx,ry;				/* pattern reference point */
    Cint ox,oy;				/* destination origin */
    Cint dx,dy;				/* destination extent */
    Cint name;				/* view surface name */
	{ static Cerror err; return err; }

Cerror bitblt_patterned_source_array(pixpat, px, py, pixtarget, rx, ry,
    pixsource, sx, sy, ox, oy, dx, dy, name)
    Cpixrect *pixpat;			/* pattern source array */
    Cint px,py;				/* pattern extent */
    Cpixrect *pixsource;		/* source array */
    Cint sx,sy;				/* source origin */
    Cpixrect *pixtarget;		/* destination pattern array */
    Cint rx,ry;				/* pattern reference point */
    Cint ox,oy;				/* destination origin */
    Cint dx,dy;				/* destination extent */
    Cint name;				/* view surface name */
	{ static Cerror err; return err; }

Cerror inquire_cell_array(name, p, q, r, dx, dy, colorind)
    Cint name;			/* view surface name */
    Ccoor *p, *q, *r;		/* corners of parallelogram (in VDC Space) */
    Cint dx,dy;			/* dimensions of color array */
    Cint *colorind;		/* array of color values */
	{ static Cerror err; return err; }

Cerror inquire_pixel_array(p, m, n, colorind, name)
    Ccoor *p;			/* base of array in VDC Space */
    Cint m,n;			/* dimensions of color array in screen space */
    Cint *colorind;		/* array of color values */
    Cint name;			/* view surface name */
	{ static Cerror err; return err; }

Cpixrect  *inquire_device_bitmap(name)
    Cint name;				/* name assigned to cgi view surface */
	{ return (Cpixrect  *) 0; }

Cerror inquire_bitblt_alignments(base, width, px, py, maxpx, maxpy, name)
    Cint *base;				/* bitmap base alignment */
    Cint *width;			/* width alignment */
    Cint *px,*py;			/* pattern extent alignment */
    Cint *maxpx,*maxpy;			/* maximum pattern size */
    Cint name;				/* name assigned to cgi view surface */
	{ static Cerror err; return err; }

Cerror set_drawing_mode(visibility, source, destination, combination)
    Cbmode visibility;			/* transparent or opaque */
    Cbitmaptype source;			/* NOT source bits */
    Cbitmaptype destination;		/* NOT destination bits */
    Ccombtype combination;		/* combination rules */
	{ static Cerror err; return err; }

Cerror set_global_drawing_mode(combination)
    Ccombtype combination;		/* combination rules */
	{ static Cerror err; return err; }

Cerror inquire_drawing_mode(visibility, source, destination, combination)
    Cbmode *visibility;			/* transparent or opaque */
    Cbitmaptype *source;		/* NOT source bits */
    Cbitmaptype *destination;		/* NOT destination bits */
    Ccombtype *combination;		/* combination rules */
	{ static Cerror err; return err; }

Cerror set_aspect_source_flags(flags)
    Cflaglist *flags;			/* list of ASFs */
	{ static Cerror err; return err; }

Cerror define_bundle_index(index,entry)
    Cint index;			/* entry in attribute environment table */
    Cbunatt *entry;			/* new attribute values */
	{ static Cerror err; return err; }

Cerror polyline_bundle_index(index)
    Cint index;				/* polyline bundle index */
	{ static Cerror err; return err; }

Cerror line_type (ttyp)
    Clintype ttyp;			/* style of line */
	{ static Cerror err; return err; }

Cerror line_endstyle (ttyp)
    Cendstyle ttyp;			/* style of line */
	{ static Cerror err; return err; }

Cerror line_width_specification_mode(mode)
    Cspecmode mode;			/* pixels or percent */
	{ static Cerror err; return err; }

Cerror line_width(index)
    Cfloat index;			/* line width */
	{ static Cerror err; return err; }

Cerror line_color(index)
    Cint index;				/* line color */
	{ static Cerror err; return err; }

Cerror polymarker_bundle_index(index)
    Cint index;				/* polymarker bundle index */
	{ static Cerror err; return err; }

Cerror marker_type (ttyp)
    Cmartype ttyp;			/* style of marker */
	{ static Cerror err; return err; }

Cerror marker_size_specification_mode(mode)
    Cspecmode mode;			/* pixels or percent */
	{ static Cerror err; return err; }

Cerror marker_size(index)
    Cfloat index;			/* marker size */
	{ static Cerror err; return err; }

Cerror marker_color(index)
    Cint index;				/* marker color */
	{ static Cerror err; return err; }

Cerror fill_area_bundle_index(index)
    Cint index;				/* fill area bundle index */
	{ static Cerror err; return err; }

Cerror interior_style(istyle,perimvis) 
    Cintertype istyle;			/* fill style */
    Cflag perimvis;			/* perimeter visibility */
	{ static Cerror err; return err; }

Cerror fill_color(color)
    Cint color;				/* color for solid object fill */
	{ static Cerror err; return err; }

Cerror hatch_index(index)
    Cint index;			/* index in the pattern table bound to HATCH */
	{ static Cerror err; return err; }

Cerror pattern_index(index)
    Cint index;		/* index in the pattern table bound to PATTERN */
	{ static Cerror err; return err; }

Cerror pattern_table(index,m,n,colorind)
    Cint index;				/* entry in table */
    Cint m,n;				/* number of rows and columns */
    Cint *colorind;			/* array containing pattern */
	{ static Cerror err; return err; }

Cerror	pattern_with_fill_color(flag)	/* Nonstandard function */
    Cflag   flag;			/* ON: use fill color where nonzero */
	{ static Cerror err; return err; }

Cerror pattern_reference_point(begin)
    Ccoor *begin;
	{ static Cerror err; return err; }

Cerror pattern_size(dx,dy)
    Cint dx,dy;				/* size of pattern in VDC Space */
	{ static Cerror err; return err; }

Cerror perimeter_type (ttyp)
    Clintype ttyp;			/* style of perimeter */
	{ static Cerror err; return err; }

Cerror perimeter_width(index)
    Cfloat index;			/* perimeter width */
	{ static Cerror err; return err; }

Cerror perimeter_width_specification_mode(mode)
    Cspecmode mode;			/* pixels or percent */
	{ static Cerror err; return err; }

Cerror perimeter_color(index)
    Cint index;				/* perimeter color */
	{ static Cerror err; return err; }

Cerror text_bundle_index(index)
    Cint index;				/* text bundle index */
	{ static Cerror err; return err; }

Cerror text_precision (ttyp)
    Cprectype ttyp;			/* text type */
	{ static Cerror err; return err; }

Cerror character_set_index(index)
    Cint index;				/* font set */
	{ static Cerror err; return err; }

Cerror text_font_index(index)
    Cint index;				/* font */
	{ static Cerror err; return err; }

Cerror character_expansion_factor(efac)
    Cfloat efac;			/* width factor */
	{ static Cerror err; return err; }

Cerror character_spacing(spcratio)
    Cfloat spcratio;			/* spacing ratio */
	{ static Cerror err; return err; }

Cerror character_height (height)
    Cint height;			/* height in VDC */
	{ static Cerror err; return err; }

Cerror fixed_font (index)
    Cint index;				/* fixed or variable width characters */
	{ static Cerror err; return err; }

Cerror text_color(index)
    Cint index;				/* color */
	{ static Cerror err; return err; }

Cerror character_orientation (xbase,ybase,xup,yup) 
    Cfloat xbase,ybase,xup,yup;	/* character base and character up vectors */
	{ static Cerror err; return err; }

Cerror character_path(path) 
    Cpathtype path;			/* text direction */
	{ static Cerror err; return err; }

Cerror text_alignment(halign,valign,hcalind,vcalind) 
    Chaligntype halign;			/* horizontal alignment type */
    Cvaligntype valign;			/* vertical alignment type */
    Cfloat hcalind,vcalind;		/* continuous alignment indicators */
	{ static Cerror err; return err; }

Cerror color_table(istart,clist)
    Cint istart;			/* starting address */
    Ccentry *clist;		/* color triples and number of entries */
	{ static Cerror err; return err; }

Clinatt *inquire_line_attributes()
	/* pointer to line attribute structure */
	{ static Clinatt *s; return s; }

Cmarkatt *inquire_marker_attributes()
	/* pointer to marker attribute structure */
	{ return (Cmarkatt *) 0; }

Cfillatt *inquire_fill_area_attributes()
	/* pointer to fill area attribute structure */
	{ return (Cfillatt *) 0; }

Cpatternatt *inquire_pattern_attributes()
	/* pointer to pattern attribute structure */
	{ return (Cpatternatt *) 0; }

Ctextatt *inquire_text_attributes()
	/* pointer to text attribute structure */
	{ return (Ctextatt  *) 0; }

Cflaglist *inquire_aspect_source_flags()
	/* pointer to text attribute structure */
	{ return (Cflaglist  *) 0; }

Cerror initialize_lid(devclass, devnum, ival)
    Cdevoff devclass;			/* device type */
    Cint devnum;			/* device number */
    Cinrep *ival;			/* initial value of device measure */
	{ static Cerror err; return err; }

Cerror release_input_device(devclass, devnum)
    Cdevoff devclass;			/* device type */
    Cint devnum;			/* device number */
	{ static Cerror err; return err; }

Cerror flush_event_queue()
	{ static Cerror err; return err; }

Cerror selective_flush_of_event_queue(devclass, devnum)
    Cdevoff devclass;			/* device type */
    Cint devnum;			/* device number */
	{ static Cerror err; return err; }

Cerror associate(trigger, devclass, devnum)
    Cint trigger;			/* trigger number */
    Cdevoff devclass;			/* device type */
    Cint devnum;			/* device number */
	{ static Cerror err; return err; }

Cerror set_default_trigger_associations(devclass, devnum)
    Cdevoff devclass;			/* device type */
    Cint devnum;			/* device number */
	{ static Cerror err; return err; }

Cerror dissociate(trigger, devclass, devnum)
    Cint trigger;			/* trigger number */
    Cdevoff devclass;			/* device type */
    Cint devnum;			/* device number */
	{ static Cerror err; return err; }

Cerror set_initial_value(devclass, devnum, value)
    Cdevoff devclass;			/* device type */
    Cint devnum;			/* device number */
    Cinrep *value;			/* device value */
	{ static Cerror err; return err; }

Cerror set_valuator_range(devnum, vmin, vmax)
    Cint devnum;			/* device number */
    Cfloat vmin,vmax;			/* limits of valuator */
	{ static Cerror err; return err; }

Cerror track_on(devclass, devnum, tracktype, trackregion, value)
    Cdevoff devclass;			/* device type */
    Cint devnum;			/* device number */
    Cint tracktype;			/* track number */
    Ccoorpair *trackregion;		/* window where track is enabled */
    Cinrep *value;			/* device value */
	{ static Cerror err; return err; }

Cerror track_off(devclass, devnum, tracktype, action)
    Cdevoff devclass;			/* device type */
    Cint devnum;			/* device number */
    Cint tracktype;
    Cint action;
	{ static Cerror err; return err; }

Cerror sample_input(devclass, devnum, valid, sample)
    Cdevoff devclass;			/* device type */
    Cint devnum;			/* device number */
    Clogical *valid;			/* device status */
    Cinrep *sample;			/* device value */
	{ static Cerror err; return err; }

Cerror initiate_request(devclass, devnum)
    Cdevoff devclass;			/* device type */
    Cint devnum;			/* device number */
	{ static Cerror err; return err; }

Cerror request_input(devclass, devnum, timeout, valid, sample, trigger)
    Cdevoff devclass;			/* device type */
    Cint devnum;			/* device number */
    Cint timeout;			/* amount of time to wait for input */
    Cawresult *valid;			/* device status */ 
    Cinrep *sample;			/* device value */
    Cint *trigger;			/* trigger number */
	{ static Cerror err; return err; }

Cerror get_last_requested_input(devclass, devnum, valid, sample)
/* WARNING: Revision A of the SunCGI Reference Manual is wrong here. */
    Cdevoff devclass;			/* device type */
    Cint devnum;			/* device number */
    Clogical *valid;			/* device status */
    Cinrep   *sample;			/* device value */
	{ static Cerror err; return err; }

Cerror enable_events(devclass, devnum)
    Cdevoff devclass;			/* device type */
    Cint devnum;			/* device number */
	{ static Cerror err; return err; }

Cerror disable_events(devclass, devnum)
    Cdevoff devclass;			/* device type */
    Cint devnum;			/* device number */
	{ static Cerror err; return err; }

Cerror await_event(timeout, valid, devclass, devnum, 
	measure, message_link, replost, time_stamp, qstat, overflow)
    Cint timeout;			/* amount of time to wait for input */
    Cawresult *valid;			/* status */
    Cdevoff *devclass;			/* device type */
    Cint *devnum;			/* device number */
    Cinrep *measure;			/* device value */
    Cmesstype *message_link;		/* type of message */
    Cint *replost;			/* reports lost */ 
    Cint *time_stamp;			/* time_stamp */
    Cqtype *qstat;			/* queue status */
    Ceqflow *overflow;			/* event queue */
	{ static Cerror err; return err; }

Cerror inquire_lid_state_list(devclass, devnum, valid, list)
    Cdevoff devclass;
    Cint devnum;			/* device type, device number */
    Clogical *valid;			/* device supported at all */
    Cstatelist *list;			/* table of descriptors */
	{ static Cerror err; return err; }

Cerror inquire_lid_state(devclass, devnum, valid, state)
    Cdevoff devclass;
    Cint devnum;			/* device type, device number */
    Clogical *valid;			/* device supported at all */
    Clidstate *state;			/* table of descriptors */
	{ static Cerror err; return err; }

Cerror inquire_trigger_state(trigger, valid, list)
    Cint trigger;			/* trigger number */
    Clogical *valid;			/* trigger state */
    Ctrigstate *list;			/* trigger description table */
	{ static Cerror err; return err; }

Cerror inquire_event_queue_state(qstat, qflow)
    Cqtype * qstat;			/* queue state */
    Ceqflow * qflow;			/* overflow indicator */
	{ static Cerror err; return err; }


/*
 * Cgipw routines, for using SunCGI and Pixwins
 */

Cerror open_pw_cgi()
	{ static Cerror err; return err; }

Cerror open_cgi_pw(pw, desc, name)
    struct pixwin *pw;
    Ccgiwin * desc;			/* CGI pixwin descriptor */
    Cint *name;				/* name assigned to cgi view surface */
	{ static Cerror err; return err; }

Cerror open_cgi_canvas(canvas, desc, name)
    Canvas canvas;
    Ccgiwin * desc;			/* CGI pixwin descriptor */
    Cint *name;				/* name assigned to cgi view surface */
	{ static Cerror err; return err; }

Cerror close_cgi_pw(desc)
    Ccgiwin * desc;			/* CGI pixwin descriptor */
	{ static Cerror err; return err; }

Cerror close_pw_cgi()
	{ static Cerror err; return err; }

Cerror cgipw_set_vdc_extent(desc, c1, c2)
    Ccgiwin * desc;             /* CGI pixwin descriptor */
    Ccoor *c1;			/* bottom left-hand corner of VDC space */
    Ccoor *c2;			/* top right-hand corner of VDC space */
	{ static Cerror err; return err; }

Cerror cgipw_polyline(desc, polycoors)
    Ccgiwin * desc;			/* CGI pixwin descriptor */
    Ccoorlist *polycoors;		/* list of points */
	{ static Cerror err; return err; }

Cerror cgipw_disjoint_polyline(desc, polycoors)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Ccoorlist *polycoors;		/* list of points */
	{ static Cerror err; return err; }

Cerror cgipw_polymarker(desc, polycoors)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Ccoorlist *polycoors;		/* list of points */
	{ static Cerror err; return err; }

Cerror cgipw_polygon(desc, polycoors)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Ccoorlist *polycoors;		/* list of points */
	{ static Cerror err; return err; }

Cerror cgipw_rectangle(desc, rbc, ltc)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Ccoor *rbc,*ltc;			/* corners defining rectangle */
	{ static Cerror err; return err; }

Cerror cgipw_circle(desc, c1, rad)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Ccoor *c1;				/* center */
    Cint rad;				/* radius */
	{ static Cerror err; return err; }

Cerror cgipw_circular_arc_center(desc, c1, c2x, c2y, c3x, c3y, rad)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Ccoor *c1;				/* center */
    Cint c2x,c2y,c3x,c3y;		/* endpoints */
    Cint rad;				/* radius */
	{ static Cerror err; return err; }

Cerror cgipw_circular_arc_center_close(desc, c1, c2x, c2y, c3x, c3y, rad, close)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Ccoor *c1;				/* center */
    Cint c2x,c2y,c3x,c3y;		/* endpoints */
    Cint rad;				/* radius */
    Cclosetype close;			/* PIE or CHORD */
	{ static Cerror err; return err; }

Cerror cgipw_circular_arc_3pt(desc, c1, c2, c3)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Ccoor *c1,*c2,*c3;		/* starting, intermediate, and ending points */
	{ static Cerror err; return err; }

Cerror cgipw_circular_arc_3pt_close(desc, c1, c2, c3, close)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Ccoor *c1, *c2, *c3;	/* starting, intermediate, and ending points */
    Cclosetype close;			/* PIE or CHORD */
	{ static Cerror err; return err; }

Cerror cgipw_ellipse(desc, c1, majx,miny)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Ccoor *c1;				/* center */
    Cint majx,miny;			/* enpoints of x and x axes */
	{ static Cerror err; return err; }

Cerror cgipw_elliptical_arc(desc, c1, sx, sy, ex, ey, majx, miny)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Ccoor *c1;				/* center */
    Cint sx,sy;				/* starting point of arc */
    Cint ex,ey;				/* ending point of arc */
    Cint majx,miny;			/* endpoints of major and minor axes */
	{ static Cerror err; return err; }

Cerror cgipw_elliptical_arc_close(desc, c1, sx, sy, ex, ey, majx, miny, close)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Ccoor *c1;				/* center */
    Cint sx,sy;				/* starting point of arc */
    Cint ex,ey;				/* ending point of arc */
    Cint majx,miny;			/* enpoints of major and minor axes */
    Cclosetype close;			/* PIE or CHORD */
	{ static Cerror err; return err; }

Cerror cgipw_text(desc, c1, tstring) 
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Ccoor *c1;			    /* starting point of text (in VDC Space) */
    Cchar *tstring;			/* text */
	{ static Cerror err; return err; }

Cerror cgipw_vdm_text(desc, c1, flag, tstring) 
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Ccoor *c1;			    /* starting point of text (in VDC Space) */
    Ctextfinal flag;			/* final text for alignment */
    Cchar *tstring;			/* text */
	{ static Cerror err; return err; }

Cerror cgipw_append_text(desc, flag, tstring) 
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Ctextfinal flag;			/* final text for alignment */
    Cchar *tstring;			/* text */
	{ static Cerror err; return err; }

Cerror cgipw_inquire_text_extent(desc, tstring, nextchar, concat, lleft, uleft, uright) 
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cchar *tstring;			/* text */
    Cchar nextchar;			/* last character */
    Ccoor *concat;			/* concatenation point */
    Ccoor *lleft,*uleft,*uright;	/* coordinates of text bounding box */
	{ static Cerror err; return err; }

Cerror cgipw_cell_array(desc, p, q, r, dx, dy, colorind)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Ccoor *p, *q, *r;		/* corners of parallelogram (in VDC Space) */
    Cint dx,dy;				/* dimensions of color array */
    Cint *colorind;			/* array of color values */
	{ static Cerror err; return err; }

Cerror cgipw_pixel_array(desc, pcell,m,n,colorind)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Ccoor *pcell;			/* base of array in VDC Space */
    Cint m,n;			/* dimensions of color array in screen space */
    Cint *colorind;			/* array of color values */
	{ static Cerror err; return err; }

Cerror cgipw_set_aspect_source_flags(desc, flags)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cflaglist *flags;			/* list of ASFs */
	{ static Cerror err; return err; }

Cerror cgipw_define_bundle_index(desc, index,entry)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cint index;			/* entry in attribute environment table */
    Cbunatt *entry;			/* new attribute values */
	{ static Cerror err; return err; }

Cerror cgipw_polyline_bundle_index(desc, index)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cint index;				/* polyline bundle index */
	{ static Cerror err; return err; }

Cerror cgipw_line_type(desc, ttyp)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Clintype ttyp;			/* style of line */
	{ static Cerror err; return err; }

Cerror cgipw_line_endstyle (desc, ttyp)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cendstyle ttyp;			/* style of line */
	{ static Cerror err; return err; }

Cerror cgipw_line_width_specification_mode(desc, mode)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cspecmode mode;			/* pixels or percent */
	{ static Cerror err; return err; }

Cerror cgipw_line_width(desc, index)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cfloat index;			/* line width */
	{ static Cerror err; return err; }

Cerror cgipw_line_color(desc, index)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cint index;				/* line color */
	{ static Cerror err; return err; }

Cerror cgipw_polymarker_bundle_index(desc, index)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cint index;				/* polymarker bundle index */
	{ static Cerror err; return err; }

Cerror cgipw_marker_type (desc, ttyp)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cmartype ttyp;			/* style of marker */
	{ static Cerror err; return err; }

Cerror cgipw_marker_size_specification_mode(desc, mode)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cspecmode mode;			/* pixels or percent */
	{ static Cerror err; return err; }

Cerror cgipw_marker_size(desc, index)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cfloat index;			/* marker size */
	{ static Cerror err; return err; }

Cerror cgipw_marker_color(desc, index)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cint index;				/* marker color */
	{ static Cerror err; return err; }

Cerror cgipw_fill_area_bundle_index(desc, index)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cint index;				/* fill area bundle index */
	{ static Cerror err; return err; }

Cerror cgipw_interior_style(desc, istyle,perimvis) 
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cintertype istyle;			/* fill style */
    Cflag perimvis;			/* perimeter visibility */
	{ static Cerror err; return err; }

Cerror cgipw_fill_color(desc, color)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cint color;				/* color for solid object fill */
	{ static Cerror err; return err; }

Cerror cgipw_hatch_index(desc, index)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cint index;			/* index in the pattern table bound to HATCH */
	{ static Cerror err; return err; }

Cerror cgipw_pattern_index(desc, index)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cint index;		/* index in the pattern table bound to PATTERN */
	{ static Cerror err; return err; }

Cerror cgipw_pattern_reference_point(desc, begin)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Ccoor *begin;
	{ static Cerror err; return err; }

Cerror cgipw_pattern_size(desc, dx,dy)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cint dx,dy;				/* size of pattern in VDC Space */
	{ static Cerror err; return err; }

Cerror cgipw_perimeter_type (desc, ttyp)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Clintype ttyp;			/* style of perimeter */
	{ static Cerror err; return err; }

Cerror cgipw_perimeter_width(desc, index)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cfloat index;			/* perimeter width */
	{ static Cerror err; return err; }

Cerror cgipw_perimeter_width_specification_mode(desc, mode)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cspecmode mode;			/* pixels or percent */
	{ static Cerror err; return err; }

Cerror cgipw_perimeter_color(desc, index)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cint index;				/* perimeter color */
	{ static Cerror err; return err; }

Cerror cgipw_text_bundle_index(desc, index)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cint index;				/* text bundle index */
	{ static Cerror err; return err; }

Cerror cgipw_text_precision (desc, ttyp)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cprectype ttyp;			/* text type */
	{ static Cerror err; return err; }

Cerror cgipw_character_set_index(desc, index)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cint index;				/* font set */
	{ static Cerror err; return err; }

Cerror cgipw_text_font_index(desc, index)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cint index;				/* font */
	{ static Cerror err; return err; }

Cerror cgipw_character_expansion_factor(desc, efac)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cfloat efac;			/* width factor */
	{ static Cerror err; return err; }

Cerror cgipw_character_spacing(desc, spcratio)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cfloat spcratio;			/* spacing ratio */
	{ static Cerror err; return err; }

Cerror cgipw_character_height (desc, height)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cint height;			/* height in VDC */
	{ static Cerror err; return err; }

Cerror cgipw_fixed_font (desc, index)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cint index;				/* fixed or variable width characters */
	{ static Cerror err; return err; }

Cerror cgipw_text_color(desc, index)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cint index;				/* color */
	{ static Cerror err; return err; }

Cerror cgipw_character_orientation (desc, xbase,ybase,xup,yup)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cfloat xbase,ybase,xup,yup;	/* character base and character up vectors */
	{ static Cerror err; return err; }

Cerror cgipw_character_path(desc, path) 
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cpathtype path;			/* text direction */
	{ static Cerror err; return err; }

Cerror cgipw_text_alignment(desc, halign,valign,hcalind,vcalind) 
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Chaligntype halign;			/* horizontal alignment type */
    Cvaligntype valign;			/* vertical alignment type */
    Cfloat hcalind,vcalind;		/* continuous alignment indicators */
	{ static Cerror err; return err; }

Cerror cgipw_color_table(desc, istart,clist)
    Ccgiwin * desc;                     /* CGI pixwin descriptor */
    Cint istart;			/* starting address */
    Ccentry *clist;		/* color triples and number of entries */
	{ static Cerror err; return err; }

Clinatt *cgipw_inquire_line_attributes(desc)
    Ccgiwin * desc;			/* CGI pixwin descriptor */
	/* pointer to line attribute structure */
	{ return (Clinatt *) 0; }

Cmarkatt *cgipw_inquire_marker_attributes(desc)
    Ccgiwin * desc;			/* CGI pixwin descriptor */
	/* pointer to marker attribute structure */
	{ return (Cmarkatt *) 0; }

Cfillatt *cgipw_inquire_fill_area_attributes(desc)
    Ccgiwin * desc;			/* CGI pixwin descriptor */
	/* pointer to fill area attribute structure */
	{ return (Cfillatt *) 0; }

Cpatternatt *cgipw_inquire_pattern_attributes(desc)
    Ccgiwin * desc;			/* CGI pixwin descriptor */
	/* pointer to pattern attribute structure */
	{ return (Cpatternatt *) 0; }

Ctextatt *cgipw_inquire_text_attributes(desc)
    Ccgiwin * desc;			/* CGI pixwin descriptor */
	/* pointer to text attribute structure */
	{ return (Ctextatt  *) 0; }

Cflaglist *cgipw_inquire_aspect_source_flags(desc)
    Ccgiwin * desc;			/* CGI pixwin descriptor */
	/* pointer to text attribute structure */
	{ return (Cflaglist  *) 0; }
