#ifndef GW_H
#define GW_H

#define FX  1
#define E_NO_INDEX 1
#define FXI 2
#define E_INDEXED  2
#define FXT 3
#define E_TIME_INDEXED  3
#define E_TIME_INDEX  3
#define E_TIME_INDEXED_ADD_POINTS  7
#define FXT_ADD_POINTS 7
#define FXM 0
#define SURFACE 4
#define XY 5
#define E_XY  5
#define DATA_TABLE  6
#define AUTOMATIC 0
#define ALGEBRAIC 1
#define SCIENTIFIC 2
#define LINEAR  3
#define LOGARITHMIC  4
#define E_FAIL  -1
#define E_SUCCESS  1

#define E_GRAPH_WINDOW_NOT_FOUND 8
#define E_DATASET_NOT_FOUND 9
#define E_GRAPH_NOT_FOUND 10
#define E_SEND_FAIL 11
#define E_DRAW_FAIL 12


extern int e_initialize();

extern int e_end();

extern int e_transpMonitor(
	int state);

extern int e_register(
	char *name,
	char *user,
	char *host,
	char *id,
	int   collect);

extern int e_GraphWindowCreate(
   char *name,
   int   nRows,
   int   nColumns
);

extern int e_GraphWindowAddGraph(
   char *windowName,
   char *graphName,
   int row,
   int column
);

extern int e_GraphWindowDisplay(
   char *name
);
/*
extern int e_GraphAddLabel(
   char *name,
   char *text,
   float location[],
   char *font,
   char *style,
   float height,
   float color[]
);
*/
extern int e_GraphAddFxDatasetID(
   char *name,
   int id
);

extern int e_GraphCreate(
   char *name,
   int   type
);

extern int e_GraphSetXLabel(
   char *name,
   char *text
);

extern int e_GraphSetYLabel(
   char *name,
   char *text
);

extern int e_GraphSetXAxis(
   char *name,
   int loglin
);

extern int e_GraphSetYAxis(
   char *name,
   int loglin
);

extern int e_GraphSetIndexLabel(
   char *name,
   char *text
);

extern int e_GraphSetTitle(
   char *name,
   char *text
);

extern int e_GraphSetLocation(
   char *name,
   int row,
   int column
);

extern int e_FxDatasetCreate(
   char *name,
   int   nPoints,
   double x[],
   double fx[]
);

extern int e_FxDatasetDisplay(
   char *windowName,
   char *graphName,
   char *datasetName
);

extern int e_DatasetAddPoints(
   char *windowName,
   char *graphName,
   char *datasetName,
   int   nPoints,
   double x[],
   double fx[]
);

extern int e_SurfaceCreate(
   char *graphName,
   char *surfaceName
);

extern int e_SurfaceSetTitle(
   char *surfaceName,
   char *label
);

#endif
