//	Zinc Application Framework - Z_IDATA1.HPP
//	COPYRIGHT (C) 1990-1999.  All Rights Reserved.
//	Zinc Software Incorporated.  Pleasant Grove, Utah  USA

#if !defined(Z_IDATA1_HPP)
#define Z_IDATA1_HPP
#include <z_dsp.hpp>
#include <z_data.hpp>

// --------------------------------------------------------------------------
// ----- ZafImageData -------------------------------------------------------
// --------------------------------------------------------------------------

class ZAF_EXPORT ZafImageData : public ZafData
{
public:
	// --- General members ---
	virtual ~ZafImageData(void);

#if defined(USE_ZAF_PERSISTENCE)
	// --- Persistent members ---
	ZafImageData(const ZafIChar *name, ZafDataPersistence &persist);
	virtual void Write(ZafDataPersistence &persist);
#endif

	// --- Class identification ---
	static ZafClassID classID;
	static ZafClassNameChar ZAF_FARDATA className[];
	virtual ZafClassID ClassID(void) const { return (classID); }
	virtual ZafClassName ClassName(void) const { return (className); }
	virtual bool IsA(ZafClassID compareID) const;
	virtual bool IsA(ZafClassName compareName) const;

protected:
	// --- General members ---
	ZafImageData(void);
	ZafImageData(const ZafImageData &copy);
	ZafError InitializeImage(ZafImageStruct &image);
	ZafError SetImage(ZafImageStruct &image, const ZafImageStruct &copy);
	ZafError SetImage(ZafImageStruct &image, int width, int height, ZafLogicalColor *array);
};

#endif // Z_IDATA1_HPP

