/*-----------------------------------------------------------------------------
[名称]	ShitarabianPlugIn.h
[概要]	したらびあんプラグイン基底クラスのヘッダ
[備考]	なし
[履歴]	2003-03-13	NC		コメント付加(moralog)
-----------------------------------------------------------------------------*/
#if !defined(AFX_SHITARABIANPLUGIN_H_INCLUDED_)
#define AFX_SHITARABIANPLUGIN_H_INCLUDED_

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

//-----------------------------------------------------------------------------
// インクルード・不完全定義
//-----------------------------------------------------------------------------
class CEditDrawer;
class CDocumentIF;


/*-----------------------------------------------------------------------------
[名称]	したらびあんプラグイン基底クラス
[用途]	したらびあんプラグインのIFを定義。
[備考]	したらびあんプラグインは基本的にイベントドリブン。
-----------------------------------------------------------------------------*/
class CShitarabianPlugIn  
{
public:
	// 生成
	CShitarabianPlugIn();

	// 破棄
	virtual ~CShitarabianPlugIn();

	// 初期化ハンドラ
	virtual void		OnInitialize(CDocumentIF*	pDocIF);

	// 破棄ハンドラ
	virtual void		OnDestroy(CDocumentIF*	pDocIF);

	// 設定読み込みハンドラ
	virtual void		OnLoad(CDocumentIF*	pDocIF);

	// 設定保存ハンドラ
	virtual void		OnSave(CDocumentIF*	pDocIF);

	// プラグイン名称
	virtual const char*		GetPlugInName();

	// 背景を表示するときのハンドラ
	virtual void		OnDrawWall(
		CDocumentIF*	pDocIF,
		CDC*			pDstDC,
		int				iLeft,
		int				iTop,
		int				iWidth,
		int				iHeight
	);

	// ドキュメント内容が編集されたときのハンドラ
	virtual void		OnEdit(
		CDocumentIF*	pDoc
	);

	// 設定ダイアログ表示ハンドラ
	virtual void		OnSetting(
		CDocumentIF*	pDoc
	);

	// DLLのインスタンスハンドル
	virtual HINSTANCE	GetInstanceHandle(){ return( ::AfxGetInstanceHandle() ); };

	// ツールボタンが押されたときのハンドラ
	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
	);
};

#endif // !defined(AFX_SHITARABIANPLUGIN_H_INCLUDED_)
