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

#if !defined(AFX_SHITARABIANPLUGINMANAGER_H__5ED27B70_C528_4983_BE89_E6200B33B298__INCLUDED_)
#define AFX_SHITARABIANPLUGINMANAGER_H__5ED27B70_C528_4983_BE89_E6200B33B298__INCLUDED_

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

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

class CShitarabianPlugInManager  
{
public:
	static CShitarabianPlugInManager* GetInstance();
	~CShitarabianPlugInManager();


	void RemoveAll();


	CArray<CShitarabianPlugIn*, CShitarabianPlugIn*>* GetPlugInz(){ return( &m_apPlugInz ); };

	CString GetPlugInName(
		int idxPlugIn
	);

	void		OnDrawWall(
		CDocumentIF*	pDocIF,
		CDC*			pDstDC,
		int				iLeft,
		int				iTop,
		int				iWidth,
		int				iHeight
	);
	void		OnSetting(
		CShitarabianDoc*	pDoc,
		int					idxPlugIn
	);

	void		OnEdit(
		CShitarabianDoc*	pDoc
	);

	void OnToolButton(
		HINSTANCE			hDLL,
		CShitarabianDoc*	pDoc,
		int					idxButton
	);

	void OnToolButtonUI(
		HINSTANCE			hDLL,
		CShitarabianDoc*	pDoc,
		int					idxButton,
		CCmdUI*				pCmdUI
	);

	void	OnKeyDown(
		CShitarabianDoc*	pDoc,
		UCHAR*				punKey,
		BOOL*				pbShift,
		BOOL*				pbCtrl,
		BOOL*				pbAlt
	);
	void	OnChar(
		CShitarabianDoc*	pDoc,
		CString*			pstrChar,
		BOOL*				pbShift,
		BOOL*				pbCtrl,
		BOOL*				pbAlt
	);

	void	OnInitialize(	CShitarabianDoc*	pDoc);
	void	OnDestroy(	CShitarabianDoc*	pDoc);

	void	OnLoad(	CShitarabianDoc*	pDoc);
	void	OnSave(	CShitarabianDoc*	pDoc);

	int		GetPlugInIndexFromMenu(	int		idCommand);

private:
	CArray<CShitarabianPlugIn*, CShitarabianPlugIn*> m_apPlugInz;
	CArray<int, int&>	m_aidMenuCommand;
	void EnumlateSbpz();

	CShitarabianPlugInManager();
};

#endif // !defined(AFX_SHITARABIANPLUGINMANAGER_H__5ED27B70_C528_4983_BE89_E6200B33B298__INCLUDED_)
