www.pudn.com > drawpad.zip > ellipsefilltool.cpp
#include "stdafx.h"
#include "DrawPadDoc.h"
#include "rbdELLIPSEfill.h"
#include "ELLIPSEfilltool.h"
#include "eELLIPSEfill.h"
ELLIPSEFILL_TOOL::ELLIPSEFILL_TOOL()
{
m_pRbdLine = NULL;
m_pView = NULL;
}
ELLIPSEFILL_TOOL::~ELLIPSEFILL_TOOL()
{
if( m_pRbdLine ) delete m_pRbdLine;
}
int ELLIPSEFILL_TOOL::ProcessEvent(int evType, const PICK_EVENT& pe)
{
switch( evType ) {
case WM_LBUTTONDOWN:
m_nStart = pe.pick();
m_pView = pe.view();
if( m_pRbdLine ) delete m_pRbdLine;
m_pRbdLine = new RBD_ELLIPSEFILL(m_nStart);
m_pRbdLine->Start(pe);
evType = 0;
break;
case WM_LBUTTONUP:
delete m_pRbdLine;
m_pRbdLine = NULL;
m_nEnd = pe.pick();
CreateEllipsefill();
evType = 0;
break;
}
return MOUSE_TOOL::ProcessEvent(evType, pe);
}
void ELLIPSEFILL_TOOL::CreateEllipsefill()
{
ASSERT_VALID(m_pView);
CDrawPadDoc *pDoc = (CDrawPadDoc *)m_pView->GetDocument();
ASSERT_VALID(pDoc);
if( m_nStart != m_nEnd )
{
UNDO_BEGIN
pDoc->AddEntity(new EELLIPSEFILL(m_nStart, m_nEnd,pDoc->m_nColor,pDoc->m_brush));
UNDO_END
}
}