//**************************************************************************************// Filename:	CEncodingArray.h// Copyright © 2000 Tomasz Kukielka. All rights reserved.//// Description:	////**************************************************************************************// Revision History:// Tuesday, May 16, 2000 - Original//**************************************************************************************#ifndef _H_CEncodingArray#define _H_CEncodingArray#pragma once#include <LVariableArray.h>#include <LComparator.h>struct EncAndNameRec{	TextEncoding	encoding;	Str255			name;//pascal style string (but not all 255 chars are included in our array};class CEncodingArray: public LVariableArray{	public:									CEncodingArray();		virtual					~CEncodingArray();		ArrayIndexT				AddEncoding(TextEncoding inEncoding);		ArrayIndexT				FetchIndexByEncoding( TextEncoding	inEncoding );		ArrayIndexT				FetchIndexByEncodingBase( TextEncoding	inEncoding );		Boolean					FetchEncValueAt(									ArrayIndexT		inAtIndex,									TextEncoding*	outEnc) const;										Boolean					FetchEncNameAt(									ArrayIndexT		inAtIndex,									Str255	outName) const;	protected:};// ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡclass	CEncNameComparator : public LComparator {public:						CEncNameComparator();	virtual				~CEncNameComparator();				virtual SInt32		Compare(								const void*			inItemOne,								const void* 		inItemTwo,								UInt32				inSizeOne,								UInt32				inSizeTwo) const;/* use inherited									virtual Boolean		IsEqualTo(								const void*			inItemOne,								const void* 		inItemTwo,								UInt32				inSizeOne,								UInt32				inSizeTwo) const;*/									virtual CEncNameComparator*	Clone();									static CEncNameComparator*	GetComparator();	protected:	static CEncNameComparator*	sEncNameComparator;};// ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡclass	CEncValueComparator : public LComparator {public:						CEncValueComparator();	virtual				~CEncValueComparator();				virtual SInt32		Compare(								const void*			inItemOne,								const void* 		inItemTwo,								UInt32				inSizeOne = 0,								UInt32				inSizeTwo = 0) const;									virtual Boolean		IsEqualTo(								const void*			inItemOne,								const void* 		inItemTwo,								UInt32				inSizeOne,								UInt32				inSizeTwo) const;									virtual CEncValueComparator*	Clone();									static CEncValueComparator*		GetComparator();	protected:	static CEncValueComparator*	sEncValueComparator;};#endif //_H_CEncodingArray