#ifndef __PgTextPaste_h
#define __PgTextPaste_h

// PgTextPaste.h : DLL _xZkqqHx_iDeBiDhGiDiKiDfAiBfLiDfGiDiHiDjDjHhAiCmMiDeHiDjDiDgHiDiK_xHqqkZx_ _xZkqqHx_iDhMiDeDiDjDiDgHiCpAjCoIiLgAiClFiCnMiClHiBeC_xHqqkZx_
//

/////////////////////////////////////////////////////////////////////////////////

class CA : public IMpgInterface
{
public:
	//----- IUnknown -----

	//----- Interface IPgInfo -----
	virtual const GUID&		GetComponentCLSID () const;
	virtual const wchar_t*	GetAuthorName () const;
	virtual const wchar_t* GetComponentName () const;
	virtual const wchar_t* GetVersionName () const;
	virtual const wchar_t* GetComment () const;
	virtual wchar_t        GetComponentShortcut () const;

	//----- Interface IPgMain -----
	virtual HRESULT Initialize (IMpgMolipMain* pI);
	virtual HRESULT Terminate ();
	virtual HRESULT OnCommand (UINT nCmdID);
	virtual HRESULT OnUpdateCommandUI (MfcCmdUI* pCmdUI);
	virtual HRESULT GetPopHint (WString& wstrHintText, UINT nCmdID);

	//----- CA domestic -----
	CA ();
	virtual ~CA ();

	virtual DWORD	GetCommandId (int iIndex) const;
	virtual short	GetCreateObjCount ();
	virtual long	GetDistancePower ();
	virtual long	GetColorPower ();
	virtual short	GetIsOnlyGnameColor ();
	virtual short	GetIsUseNearColor ();
	virtual short	GetIsGroup ();

	virtual void	SetCreateObjCount (short nCreateObjCount);
	virtual void	SetDistancePower (long lDistancePower);
	virtual void	SetColorPower (long lColorPower);
	virtual void	SetIsOnlyGnameColor (short nIsOnlyGnameColor);
	virtual void	SetIsUseNearColor (short nIsUseNearColor);
	virtual void	SetIsGroup (short nIsGroup);

protected:
	virtual SColorID	FindSColor (COLORREF color);

	virtual BOOL	GradationObject (BOOL bIsTest);

	virtual void	GradationRichText (	FCObjFigure* pNew,
										const FCObjFigure* pObj0,
										const FCObjFigure* pObj1,
										double dC1);

//----- 06.03.22 Fukushiro M. _xZkqqHx_jFmPiNfIjBeP_xHqqkZx_ ()-----
//	virtual FCObjFigure*	GradationFigure (	const FCObjFigure* pObj0,
//												const FCObjFigure* pObj1,
//												double dA1, double dC1,
//												BOOL bIsTest);
//
//	virtual FCObjLine*	GradationLine (	const FCObjLine* pObj0,
//										const FCObjLine* pObj1,
//										double dA1, double dC1,
//										BOOL bIsTest);
//
//	virtual FCObjRect*	GradationRect (	const FCObjRect* pObj0,
//										const FCObjRect* pObj1,
//										double dA1, double dC1,
//										BOOL bIsTest);
//
//	virtual FCObjRoundRect*	GradationRoundRect (const FCObjRoundRect* pObj0,
//												const FCObjRoundRect* pObj1,
//												double dA1, double dC1,
//												BOOL bIsTest);
//
//	virtual FCObjArc*	GradationArc (	const FCObjArc* pObj0,
//										const FCObjArc* pObj1,
//										double dA1, double dC1,
//										BOOL bIsTest);
//
//	virtual FCObjPoly*	GradationPoly (	const FCObjPoly* pObj0,
//										const FCObjPoly* pObj1,
//										double dA1, double dC1,
//										BOOL bIsTest);
//
//	virtual FCObjWidePoly*	GradationWidePoly (	const FCObjWidePoly* pObj0,
//												const FCObjWidePoly* pObj1,
//												double dA1, double dC1,
//												BOOL bIsTest);
//
//	virtual FCObjGroup*	GradationGroup (const FCObjGroup* pObj0,
//										const FCObjGroup* pObj1,
//										double dA1, double dC1,
//										BOOL bIsTest);
//----- 06.03.22 Fukushiro M. _xZkqqHx_jFmPiNfIiMoD_xHqqkZx_ ()-----
	virtual BOOL	GradationFigure (	FCObjFigure* pNew,
										const FCObjFigure* pObj0,
										const FCObjFigure* pObj1,
										double dA1,
										double dC1,
										BOOL bIsTest);

	virtual BOOL	GradationLine (	FCObjLine* pNew,
									const FCObjLine* pObj0,
									const FCObjLine* pObj1,
									double dA1,
									double dC1,
									BOOL bIsTest);

	virtual BOOL	GradationRect (	FCObjRect* pNew,
									const FCObjRect* pObj0,
									const FCObjRect* pObj1,
									double dA1,
									double dC1,
									BOOL bIsTest);

	virtual BOOL	GradationRoundRect (FCObjRoundRect* pNew,
										const FCObjRoundRect* pObj0,
										const FCObjRoundRect* pObj1,
										double dA1,
										double dC1,
										BOOL bIsTest);

	virtual BOOL	GradationArc (	FCObjArc* pNew,
									const FCObjArc* pObj0,
									const FCObjArc* pObj1,
									double dA1,
									double dC1,
									BOOL bIsTest);

	virtual BOOL	GradationPoly (	FCObjPoly* pNew,
									const FCObjPoly* pObj0,
									const FCObjPoly* pObj1,
									double dA1,
									double dC1,
									BOOL bIsTest);

	virtual BOOL	GradationWidePoly (	FCObjWidePoly* pNew,
										const FCObjWidePoly* pObj0,
										const FCObjWidePoly* pObj1,
										double dA1,
										double dC1,
										BOOL bIsTest);

	virtual BOOL	GradationGroup (FCObjGroup* pNew,
									const FCObjGroup* pObj0,
									const FCObjGroup* pObj1,
									double dA1,
									double dC1,
									BOOL bIsTest);
//----- 06.03.22 Fukushiro M. _xZkqqHx_jFmPiNfIiPeJ_xHqqkZx_ ()-----

private:
	DWORD	m_adwCommandId[5];		// _xZkqqHx_iDfCiDhNiDjDiDgIiCkKiOpLiCnMiCoJjFkKiCmMjEhKjHpBiBeC_xHqqkZx_

	short	m_nCreateObjCount;		// _xZkqqHx_jAfGiLeLjFjEjFgJiNoMjAkMjAjEiBeC_xHqqkZx_
	long	m_lDistancePower;		// _xZkqqHx_jFjEjFgJiLjHjHkDiCmMiJmBjBkMjDhIiBeC_xHqqkZx_
	long	m_lColorPower;			// _xZkqqHx_jFjEjFgJjAeGiCmMiJmBjBkMjDhIiBeC_xHqqkZx_
	short	m_nIsOnlyGnameColor;	// _xZkqqHx_jAeGjGlMiBhF_xHqqkZx_Gradater_xZkqqHx_iBhGiCmMiCnNiOgHjHhAiBeC_xHqqkZx_
	short	m_nIsUseNearColor;		// _xZkqqHx_iLnPiCkCjAeGiCpAjHkMjHhAiBeC_xHqqkZx_
	short	m_nIsGroup;				// _xZkqqHx_jFjEjFgJiCpAiDePiDiLiBfLiDhGiJlLiBeC_xHqqkZx_

	long	m_lColorNameCount;		// _xZkqqHx_jAeGjGlMiCmMjEnEiNiGiBeC_xHqqkZx_

// 06.03.20 Fukushiro M. 1_xZkqqHx_iNhDjCmHiJmB_xHqqkZx_ ()
	HWND	m_hwndDialog;			// _xZkqqHx_iDfPiDeDiDeBiDiNiDePiDgOiDjDiDgIiDiLiBeC_xHqqkZx_
}; // class CA.

// _xZkqqHx_iDfCiDjDiDhMiBfLiDgMiDjDiDgHjCoIiLgAiBeCjFeLjAhLiBeC_xHqqkZx_
// 06.03.17 Fukushiro M. 1_xZkqqHx_iNhDjFmPiNfI_xHqqkZx_ ()
//#define COMPO_CLASS_0	CA
#define COMPONENT_CLASS_CA0	CA

#endif//__PgTextPaste_h
