// ★コメント未記入
// ShitarabianPlugInTest.cpp: CShitarabianPlugInTest クラスのインプリメンテーション
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "shitarabian.h"
#include "ShitarabianPlugInTest.h"
#include "PlugInGridDlg.h"
#include "DocumentIF.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif



//////////////////////////////////////////////////////////////////////
// 構築/消滅
//////////////////////////////////////////////////////////////////////

CShitarabianPlugInTest::CShitarabianPlugInTest()
	:	m_iGridWidth( 100 )
	,	m_iGridHeight( 50 )
	,	m_bEnable( FALSE )
	,	m_colGrid( RGB(0,0,0) )
{

}

CShitarabianPlugInTest::~CShitarabianPlugInTest()
{

}

const char* CShitarabianPlugInTest::GetPlugInName()
{
	return( "グリッド ver1.0" );
}

void CShitarabianPlugInTest::OnDrawWall(
	CDocumentIF*	pDocIF,
	CDC*			pDstDC,
	int				iLeft,
	int				iTop,
	int				iWidth,
	int				iHeight
)
{
	// warning C4100:警告の無視
	pDocIF;

	if ( m_bEnable )
	{
		CPen	pen;
		pen.CreatePen( PS_SOLID, 1, m_colGrid );
		CPen*	pOldPen = pDstDC->SelectObject( &pen );

		// 縦線
		for( int X=m_iGridWidth ; X<iWidth+iLeft ; X+=m_iGridWidth )
		{
			pDstDC->MoveTo(
				X-iLeft,
				0
			);
			pDstDC->LineTo(
				X-iLeft,
				iHeight+1
			);
		}

		// 縦線
		for( int Y=m_iGridHeight ; Y<iHeight+iTop ; Y+=m_iGridHeight )
		{
			pDstDC->MoveTo(
				0,
				Y-iTop
			);
			pDstDC->LineTo(
				iWidth+1,
				Y-iTop
			);
		}

		pDstDC->SelectObject( pOldPen );
	}
}


void CShitarabianPlugInTest::OnSetting(
	CDocumentIF*	pDoc
)
{
	CPlugInGridDlg	dlg;

	dlg.m_uiWidth = m_iGridWidth;
	dlg.m_uiHeight = m_iGridHeight;
	dlg.m_bEnable = m_bEnable;
	dlg.m_colGrid = m_colGrid;

	if ( dlg.DoModal() == IDOK )
	{
		m_iGridWidth = dlg.m_uiWidth;
		m_iGridHeight = dlg.m_uiHeight;
		m_bEnable = dlg.m_bEnable;
		m_colGrid = dlg.m_colGrid;

		pDoc->SetAllUpdate();
		pDoc->ReDraw();
	}
}
