/*********************************************************************************
 JCurveInfo.h
 
	Interface for the JCurveInfo struct.
 
	Copyright @ 1998 by Glenn W. Bach. All rights reserved.

 ********************************************************************************/

#ifndef _H_JCurveInfo
#define _H_JCurveInfo

#include <jTypes.h>

class JString;

// Do not change or reorder these types once they are created
// because they are stored in files.  It is safe to add more
// types, but do not remove any.

enum JSymbolType
{
	kCircle = 0,
	kDiamond,
	kSquare, 
	kTriangle,
	kPlus, 
	kCross,

	kSymbolCount
};

struct JCurveInfo
{
	JBoolean 	curve;
	JBoolean	lines;
	JBoolean	symbols;
	JBoolean	points;
	JBoolean	own;
	JBoolean	xerrors;
	JBoolean	yerrors;
	JBoolean	protect;
	JIndex		color;
	JSymbolType	symbol;
	JString*	name;

	JCurveInfo(	const JBoolean c, 
				const JBoolean l, 
				const JBoolean s,
				const JBoolean p,
				const JBoolean o,
				const JBoolean x,
				const JBoolean y,
				const JBoolean prot,
				const JIndex col,
				const JSymbolType sym,
				JString* n)
		:
		curve(c), lines(l), symbols(s),
		points(p), own(o), xerrors(x),
		yerrors(y), protect(prot), color(col),
		symbol(sym), name(n)
		{ };

	JCurveInfo()
		{ };
};

istream& operator>>(istream& input, JCurveInfo& info);
ostream& operator<<(ostream& output, const JCurveInfo& info);

istream& operator>>(istream& input, JSymbolType& type);
ostream& operator<<(ostream& output, const JSymbolType type);

#endif
