#ifndef __ObjFigure_h
#define __ObjFigure_h

#include "2Env.h"
#include "2ObjBase.h"	// Super class.

class MC2ARCHIVE;
class MC2RichText;

/*************************************************************************
 * <_xZkqqHx_iDeOiDiJiDfI_xHqqkZx_>	MC2ObjFigure
 *
 * <_xZkqqHx_iLeAjEfM_xHqqkZx_>	_xZkqqHx_jFjEjFgJiCmMjHnGiKhDjApMiCmMjFgAiJoGiBeBjDgIiCoIiCmCiCnEiClFjDjJiCmMiLeAjEfMiCpAiOmAiMlLiClHiCoJiBeCjFfMiOkGiClDiCoKiCoJ_xHqqkZx_
 *			_xZkqqHx_iDeDiDiBiBfLiDfHiCpAiOjNiCmCjFjEjFgJiCmNiBeBiClBiCmMiDeOiDiJiDfIiCmMiDfEiDhFiDeOiDiJiDfIiCmFiDeDiDjDiDhGiDiKiDiBiDjDiDgH_xHqqkZx_
 *			_xZkqqHx_iClDiCoKiCoJiBeC_xHqqkZx_
 *
 * <_xZkqqHx_jHjKjHpA_xHqqkZx_>	99.05.03 Fukushiro M. _xZkqqHx_iDfCiDiBiDjDiDgHiNoMjAkM_xHqqkZx_
 *************************************************************************/
class MC2ObjFigure : public MC2ObjBase
{
public:
	//----- _xZkqqHx_jBfDiCmEiCmM_xHqqkZx_Subclass_xZkqqHx_iCkKiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClFiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkC_xHqqkZx_ -----
	MC2ObjFigure ();
	virtual BOOL	IsKindOf (FTObjectType nType) const;

	//----- Subclass_xZkqqHx_iCmMiCkCiClIiCoKiCkJiCkKiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClFiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkC_xHqqkZx_ -----
	virtual void	OutStream (MC2ARCHIVE& ar);
	virtual void	InStream (MC2ARCHIVE& ar);

	//----- _xZkqqHx_iDhJiBfLiDfIiDgHiOjOiCmJjFmPiKlHiClDiCoKiCoJjBkOjAkLiCpAiOjNiCmC_xHqqkZx_Subclass_xZkqqHx_iCkKiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClFiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkC_xHqqkZx_ -----
	virtual ~MC2ObjFigure ();

protected:
	//----- _xZkqqHx_iClLiCmMjBlMiKgFiOoNiCmMiDiBiDjDiDgPjFmPjAjE_xHqqkZx_ -----
	FD2PenStyleID		m_psidPenStyle;			// _xZkqqHx_iDhJiDjDiCmMiDfIiDfOiDeDiDiL_xHqqkZx_._xZkqqHx_jClMjApM_xHqqkZx_,_xZkqqHx_jDfPjApM_xHqqkZx_,etc.
	union {
		BYTE			m_byPenPatternForStream;// _xZkqqHx_iDfIiDgHiDiKiBfLiDiAjHhAiBeC_xHqqkZx_
		FD2PatternID		m_ptidPenPattern;		// _xZkqqHx_iDhJiDjDiCmMiDhAiDfOiBfLiDjD_xHqqkZx_.
	};
	union {
		BYTE			m_byBrushPatternForStream;// _xZkqqHx_iDfIiDgHiDiKiBfLiDiAjHhAiBeC_xHqqkZx_
		FD2PatternID		m_ptidBrushPattern;		// _xZkqqHx_iDhFiDiJiDfGiCmMiDhAiDfOiBfLiDjD_xHqqkZx_.
	};
	union {
		BYTE		m_byTypeForStream;		// _xZkqqHx_iDfIiDgHiDiKiBfLiDiAjHhAiBeC_xHqqkZx_
		struct {
		  BYTE		m_byPenType		: 4;	// _xZkqqHx_iDhJiDjDiCmMiMfO_xHqqkZx_._xZkqqHx_iPiDjAeG_xHqqkZx_,_xZkqqHx_jDkHjGlO_xHqqkZx_,_xZkqqHx_iDhAiDfOiBfLiDjD_xHqqkZx_,etc.
		  BYTE		m_byBrushType	: 4;	// _xZkqqHx_iDhFiDiJiDfGiCmMiMfO_xHqqkZx_._xZkqqHx_iPiDjAeG_xHqqkZx_,_xZkqqHx_jDkHjGlO_xHqqkZx_,_xZkqqHx_iDhAiDfOiBfLiDjD_xHqqkZx_,etc.
		};
	};
	fmmetol			m_mmfPenWeight;			// _xZkqqHx_iDhJiDjDiCmMjFjN_xHqqkZx_.
	FD2SColorID		m_scidPenForeSColor;	// _xZkqqHx_iDhJiDjDiCmMjBePiMgJjAeG_xHqqkZx_.
	union {
		WORD			m_wPenColorForStream;	// _xZkqqHx_iDfIiDgHiDiKiBfLiDiAjHhAiBeC_xHqqkZx_
		FD2SColorID		m_scidPenBackSColor;	// _xZkqqHx_iDhJiDjDiCmMjEhHiMgJjAeG_xHqqkZx_.
	};
	union {
		WORD			m_wBrsForeColForStream;	// _xZkqqHx_iDfIiDgHiDiKiBfLiDiAjHhAiBeC_xHqqkZx_
		FD2SColorID		m_scidBrushForeSColor;	// _xZkqqHx_iDhFiDiJiDfGiCmMjBePiMgJjAeG_xHqqkZx_.
	};
	union {
		WORD			m_wBrsBackColForStream;	// _xZkqqHx_iDfIiDgHiDiKiBfLiDiAjHhAiBeC_xHqqkZx_
		FD2SColorID		m_scidBrushBackSColor;	// _xZkqqHx_iDhFiDiJiDfGiCmMjEhHiMgJjAeG_xHqqkZx_.
	};
	FD2SColorID			m_scidShadowSColor;		// _xZkqqHx_iJgFiCmMjAeGiBeC_xHqqkZx_
	union {
		WORD		m_wEMFInfoForStream;		// _xZkqqHx_iDfIiDgHiDiKiBfLiDiAjHhAiBeC_xHqqkZx_
		struct {
			WORD	m_byEMFHorzMap		: 2;	// _xZkqqHx_iDiBiDfOiDhEiDeAiDeDiDiLiCmMjAiFjFlNjFpLiMpMiCmMiDhNiDgCiDhGjFpLjGeAiBeC_xHqqkZx_
			WORD	m_byEMFVertMap		: 2;	// _xZkqqHx_iDiBiDfOiDhEiDeAiDeDiDiLiCmMjAiCjClMjFpLiMpMiCmMiDhNiDgCiDhGjFpLjGeAiBeC_xHqqkZx_
			WORD	m_emidEMFImage		: 12;	// _xZkqqHx_iDiBiDfOiDhEiDeAiDeDiDiLiCmMjDgPjIfOjGlM_xHqqkZx_.
		};
	};
	union {
		WORD		m_wArrowFForStream;		// _xZkqqHx_iDfIiDgHiDiKiBfLiDiAjHhAiBeC_xHqqkZx_
		struct {
			WORD	m_byArrowFType		: 4;	// _xZkqqHx_iKeKiOgOjGoOiIpDiCmMiMfOiBeC_xHqqkZx_
			WORD	m_byArrowFParam0	: 4;	// _xZkqqHx_iKeKiOgOjGoOiIpDiCmMiDhAiDiJiDiBiBfLiDfOiCePiBeC_xHqqkZx_
			WORD	m_byArrowFParam1	: 4;	// _xZkqqHx_iKeKiOgOjGoOiIpDiCmMiDhAiDiJiDiBiBfLiDfOiCfAiBeC_xHqqkZx_
			WORD	m_byArrowFParam2	: 4;	// _xZkqqHx_iKeKiOgOjGoOiIpDiCmMiDhAiDiJiDiBiBfLiDfOiCfBiBeC_xHqqkZx_
		};
	};
	union {
		WORD		m_wArrowBForStream;		// _xZkqqHx_iDfIiDgHiDiKiBfLiDiAjHhAiBeC_xHqqkZx_
		struct {
			WORD	m_byArrowBType		: 4;	// _xZkqqHx_iPeJjHlJjGoOiIpDiCmMiMfOiBeC_xHqqkZx_
			WORD	m_byArrowBParam0	: 4;	// _xZkqqHx_iPeJjHlJjGoOiIpDiCmMiDhAiDiJiDiBiBfLiDfOiCePiBeC_xHqqkZx_
			WORD	m_byArrowBParam1	: 4;	// _xZkqqHx_iPeJjHlJjGoOiIpDiCmMiDhAiDiJiDiBiBfLiDfOiCfAiBeC_xHqqkZx_
			WORD	m_byArrowBParam2	: 4;	// _xZkqqHx_iPeJjHlJjGoOiIpDiCmMiDhAiDiJiDiBiBfLiDfOiCfBiBeC_xHqqkZx_
		};
	};
	MC2RichText*	m_pRichText;
}; // class MC2ObjFigure.

#endif//__ObjFigure_h
