#ifndef __ObjLabel_h
#define __ObjLabel_h

#include "ObjFigure.h"	// SuperClass.

//;----- <EXPORT TO SDK> -----;

#ifdef SUPER_CLASS
#undef SUPER_CLASS
#endif
#define SUPER_CLASS FCObjFigure

//;------ </EXPORT TO SDK> -----;

class FCUndoArchive;
class FCHiCommandTable;
class FCToolTimeLabel;

//----- 05.05.02 Fukushiro M. _xZkqqHx_iNoNiPjMiOgO_xHqqkZx_ ()-----
////;----- start export> -----;
//
///////////////////////////////////////////////////////////////////////////
//// CommandGate_xZkqqHx_iCmMiDfCiDhNiDjDiDgIiCmJiOgHjHhAiClHiCoJiNfMjBkCjBmMiBeC_xHqqkZx_
//
//struct FCLabelRec
//{
//	FCLabelRec () {}
//	FCLabelRec (WORD w, FDTIME fdtm, WORD wtype) :
//			wMask(w), fdtmLabelMtime(fdtm), wImageType(wtype) {}
//
//	WORD	wMask;
//	FDTIME	fdtmLabelMtime;
//	WORD	wImageType;
//}; // struct FCLabelRec.
//
//#define FDFP_LABELMTIME	WORD(1L << 0)
//#define FDFP_IMAGETYPE	WORD(1L << 1)
//
////;------ end export> -----;
//----- 05.05.02 Fukushiro M. _xZkqqHx_iNoNiPjMiPeJ_xHqqkZx_ ()-----

/*************************************************************************
 * <_xZkqqHx_iDeOiDiJiDfI_xHqqkZx_>	FCObjLabel
 *
 * <_xZkqqHx_iLeAjEfM_xHqqkZx_>	_xZkqqHx_iDiJiDhIiDiLjFjEjFgJiBeC_xHqqkZx_
 *
 * <_xZkqqHx_jHjKjHpA_xHqqkZx_>	01.04.20 Fukushiro M. _xZkqqHx_iNoMjAkM_xHqqkZx_
 *************************************************************************/
class FCObjLabel : public SUPER_CLASS
{
protected:
typedef SUPER_CLASS BASE_CLASS;

public:
	//----- _xZkqqHx_jBfDiCmEiCmM_xHqqkZx_Subclass_xZkqqHx_iCkKiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClFiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkC_xHqqkZx_ -----
	FCObjLabel (WORD wImageType = 0);
	virtual BOOL	IsKindOf (FTObjectType nType) const;

	//----- _xZkqqHx_iOmAjBmMiJlLiJmCjEfMiCmIiDeOiDiJiDfIiCkKiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClFiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkC_xHqqkZx_ -----
	virtual FTObjectType	Type () const;

	//----- Subclass_xZkqqHx_iCmMiCkCiClIiCoKiCkJiCkKiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClFiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkC_xHqqkZx_ -----
	virtual void	OnDraw (CDC* pDC, BOOL bIsMono);
	virtual DBLRect	GetResizeFrame () const;

	//----- _xZkqqHx_jBkOjAkLiCpAiOjNiCmCjBfDiCmEiCmM_xHqqkZx_Subclass_xZkqqHx_iCkKiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClFiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkC_xHqqkZx_ -----
	virtual BOOL	IsEqual (const FCObjDynabase* objp) const;
// 06.06.23 Fukushiro M. 1_xZkqqHx_iNhDjFmPiNfI_xHqqkZx_ ()
//	virtual void	OutStream (FCUndoArchive& ar);
	virtual void	OutStream (FCUndoArchive& ar, BOOL bIsOutBezier);
	virtual void	InStream (FCUndoArchive& ar);
	virtual void	CreatePropertyPage (CPropertyPageVector& vPropPage,
										const ObjDynabaseVector& vSelect);

	//----- _xZkqqHx_iKePiMgAiCpAiOjNiCmCjBfDiCmEiCmM_xHqqkZx_Subclass_xZkqqHx_iCkKiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClFiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkC_xHqqkZx_ -----
	virtual void	NewObjPolygonForDraw (	DBLPointVector& vmmptPoly,
											mmetol mmElemLen,
											const DBLRect mmrtaClip[],
											int iClipSize) const;
// 05.06.28 Fukushiro M. 1_xZkqqHx_iNhDjCmHiJmB_xHqqkZx_ ()
	virtual void	NewObjBezierForDraw (FCMmPolyBezier& polyBezier) const;

// 05.03.02 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//	virtual BOOL	IsSamePolygonForText () const;
	virtual void	NewObjPolygonForText (DBLPointVector& vmmptPoly,
										mmetol mmElemLen,
										const DBLRect mmrtaClip[], int iClipSize) const;
	virtual void	NewObjPolygonForResize (DBLPointVector& vmmptPoly,
											mmetol mmElemLen,
											const DBLRect mmrtaClip[],
											int iClipSize) const;

	//----- _xZkqqHx_jFeLjHhGiCmJiJjOiClGiCmEiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClHiCoKiCmOjHmHiCkC_xHqqkZx_ -----
// 05.02.28 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//	virtual BOOL	CanRotate () const;
// 06.03.01 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//	virtual BOOL	IsIntersect (const DBLPoint& mmpt) const;

//----- 06.03.01 Fukushiro M. _xZkqqHx_jCmHiJmBiOgO_xHqqkZx_ ()-----
	virtual FCObjDynabase*	GetIntersect (	BOOL& bIsHitEditText,
											long& lHitCharIndex,
											BOOL& bIsHitCharFront,
// 06.04.09 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//											BOOL bIsCheckText,
											const DBLPoint& mmptMargin,
											const DBLPoint& mmpt,
											BOOL bAsFillPaint) const;
//----- 06.03.01 Fukushiro M. _xZkqqHx_jCmHiJmBiPeJ_xHqqkZx_ ()-----

	virtual BOOL	IsObjInRect (const DBLRect& mmrt) const;
	virtual BOOL	IsPtInOuterFrame (const DBLPoint& mmptMsc, mmetol mmExt = 0.0) const;
// 05.03.03 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//	virtual void	CalcResizeFrameSelf ();

	//----- FCObjLabel_xZkqqHx_iDeOiDiJiDfIiMmFjHeMiCmMiKnGjAjE_xHqqkZx_ -----
	virtual const FDTIME&	GetLabelCtime () const;
	virtual const FDTIME&	GetLabelMtime () const;
//----- 05.07.05 Fukushiro M. _xZkqqHx_iNoNiPjMiOgO_xHqqkZx_ ()-----
//	virtual WString	GetLabelCtimeString () const;
//	virtual WString	GetLabelMtimeString () const;
//----- 05.07.05 Fukushiro M. _xZkqqHx_iNoNiPjMiPeJ_xHqqkZx_ ()-----

	virtual WORD	GetImageType () const;

friend class FCHiCommandTable;
friend class FCToolTimeLabel;
protected:
	//----- _xZkqqHx_jBkOjAkLiCpAiOjNiCmCjBfDiCmEiCmM_xHqqkZx_Subclass_xZkqqHx_iCkKiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClFiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkC_xHqqkZx_ -----
	virtual void	Copy (FCObjDynabase* pObj) const;
	virtual void	CopySelf (FCObjDynabase* pObj) const;

	//----- _xZkqqHx_jFeLjHhGiCmJiJjOiClGiCmEiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClHiCoKiCmOjHmHiCkC_xHqqkZx_ -----
	virtual void	Move (mmetol mmDX, mmetol mmDY);
	virtual void	Resize (BOOL bXPosi, BOOL bYPosi, const DBLRect& mmrtNew, const DBLRect& mmrtOld);
// 05.02.28 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//	virtual void	Rotate (double dR, mmetol mmCX, mmetol mmCY);

	//----- _xZkqqHx_jCmKiPoNiCmNiDeDiDjDiDhGiDiKiDiBiDjDiDgHiCmMjFeLjHhGiCmNjGlDiCkC_xHqqkZx_ -----
	virtual void	RegisterObjID ();
	virtual void	RegisterObjForceID ();
	virtual void	UnregisterObjID ();

	//----- FCObjFigure_xZkqqHx_iCmM_xHqqkZx_Subclass_xZkqqHx_iCmFjFeLjHhGiCmJiJjOiClGiCmEiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClHiCoKiCmOjHmHiCkC_xHqqkZx_ -----

	//----- FCObjLabel_xZkqqHx_iDeOiDiJiDfIiMmFjHeMiCmMiKnGjAjE_xHqqkZx_ -----
	virtual void	SetLabelMtime (const FDTIME& fdtmLabelMtime);
	virtual void	SetImageType (WORD wType);

protected:
	DBLRect		m_mmrtResize;		// _xZkqqHx_iDiKiDfEiDeDiDfJiDhEiDiMiBfLiDiAiBeC_xHqqkZx_
	FDTIME		m_fdtmCreateTime;	// _xZkqqHx_iClBiCmMjFjEjFgJiCmMjDgPjIfOiOjOiNiPiBeC_xHqqkZx_
	FDTIME		m_fdtmModifyTime;	// _xZkqqHx_iClBiCmMjFjEjFgJiCmMiDgFiDeMiDfIiDgHjFmPiNfIiOjOiNiPiBeC_xHqqkZx_
	WORD		m_wImageType;		// _xZkqqHx_iJeFiPoDiDeDiDiBiBfLiDfHiDfOiDeDiDhGiBeC_xHqqkZx_0:_xZkqqHx_iJjEjFeNiBeB_xHqqkZx_1:_xZkqqHx_iOiGiBeB_xHqqkZx_2:_xZkqqHx_iOjOiMhGiBeC_xHqqkZx_
}; // class FCObjLabel.

#endif//__ObjLabel_h
