// ★コメント未記入
// ShitarabianPlugInKeyMacro.h: CShitarabianPlugInKeyMacro クラスのインターフェイス
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SHITARABIANPLUGINKEYASSIGN_INCLUDED_)
#define AFX_SHITARABIANPLUGINKEYASSIGN_INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000


#include "ShitarabianPlugIn.h"
#include <afxtempl.h>
typedef struct {
	char*		szKeyFunctionName;
	int			iSrcKey;
	BOOL		bSrcShift;
	BOOL		bSrcCtrl;
	BOOL		bSrcAlt;
} TSystemKeyDefine;

typedef struct {
	BOOL		bSystemDefine;
	CString		strKeyFunctionName;
	int			iSrcKey;
	BOOL		bSrcShift;
	BOOL		bSrcCtrl;
	BOOL		bSrcAlt;
	int			iDstKey;
	BOOL		bDstShift;
	BOOL		bDstCtrl;
	BOOL		bDstAlt;
} TKeyDefine;


class CDocumentIF;


class CShitarabianPlugInKeyAssign : public CShitarabianPlugIn  
{
public:
	CShitarabianPlugInKeyAssign();
	virtual ~CShitarabianPlugInKeyAssign();

	virtual const char*		GetPlugInName();


	virtual void		OnLoad(CDocumentIF*	pDocIF);
	virtual void		OnSave(CDocumentIF*	pDocIF);


	virtual void		OnSetting(
		CDocumentIF*	pDoc
	);

	// キーが押されたときのハンドラ
	virtual void		OnKeyDown(
		CDocumentIF*	pDocIF,
		UCHAR*			punKey,
		BOOL*			pbShift,
		BOOL*			pbCtrl,
		BOOL*			pbAlt
	);

	// キーが押されたときのハンドラ
	virtual void		OnChar(
		CDocumentIF*	pDocIF,
		CString*		pstrChar,
		BOOL*			pbShift,
		BOOL*			pbCtrl,
		BOOL*			pbAlt
	);


	void	Load( );
	void	Save( );

	CArray<TKeyDefine,TKeyDefine&>	m_aKeyDefinez;
	BOOL							m_bEnable;
};

#endif // !defined(AFX_SHITARABIANPLUGINKEYASSIGN_INCLUDED_)
