// ShitarabianPlugInTest.h: CShitarabianDllImp クラスのインターフェイス
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SHITARABIANPLUGINTEST_H__CF340C81_4D44_469C_BBEB_2A68616E036C__INCLUDED_)
#define AFX_SHITARABIANPLUGINTEST_H__CF340C81_4D44_469C_BBEB_2A68616E036C__INCLUDED_

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

#include "ShitarabianPlugIn.h"
#include <afxtempl.h>
class	CDocumentIF;



enum EKeyCommandType{
	KeyCommandUnknown = 0,
	KeyCommandDown = 1,
	KeyCommandInput =2,
};


typedef struct{
	EKeyCommandType	eType;
	CString			strChar;
	BOOL			bShift;
	BOOL			bCtrl;
	BOOL			bAlt;
}TKeyCommand;


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

	virtual const char*		GetPlugInName();

	virtual void		OnDrawWall(
		CDocumentIF*	pDocIF,
		CDC*			pDstDC,
		int				iLeft,
		int				iTop,
		int				iWidth,
		int				iHeight
	){};

	// 設定ダイアログ
	virtual void		OnSetting(
		CDocumentIF*	pDocIF
	);

	// ツールボタン押下
	virtual void OnToolButton(
		CDocumentIF*	pDocIF,
		int				idxButton
	);
	virtual void OnToolButtonUI(
		CDocumentIF*	pDocIF,
		int				idxButton,
		CCmdUI*			pCmdUI
	);

	// キーが押されたときのハンドラ
	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 RemoveAll();

protected:
	BOOL			m_bRecording;
	CList<TKeyCommand, TKeyCommand&>		m_atKeyCommandz;

	void Save();
	void Load();

};

#endif // !defined(AFX_SHITARABIANPLUGINTEST_H__CF340C81_4D44_469C_BBEB_2A68616E036C__INCLUDED_)
