www.pudn.com > drawpad.zip > texttool.cpp
#include "stdafx.h"
#include "DrawPadDoc.h"
#include "rbdTEXT.h"
#include "TEXTtool.h"
#include "eTEXT.h"
IMPLEMENT_DYNAMIC(TEXT_TOOL, MOUSE_TOOL)
TEXT_TOOL::TEXT_TOOL()
{
m_pRbdTEXT = NULL;
m_pView = NULL;
}
TEXT_TOOL::~TEXT_TOOL()
{
if( m_pRbdTEXT ) delete m_pRbdTEXT;
}
int TEXT_TOOL::ProcessEvent(int evType, const PICK_EVENT& pe)
{
switch( evType ) {
case WM_LBUTTONDOWN:
m_nStart = pe.pick();
m_pView = pe.view();
if( m_pRbdTEXT ) delete m_pRbdTEXT;
m_pRbdTEXT = new RBD_TEXT(m_nStart);
m_pRbdTEXT->Start(pe);
delete m_pRbdTEXT;
m_pRbdTEXT = NULL;
m_nEnd = pe.pick();
CreateText();
evType = 0;
break;
case WM_LBUTTONUP:
// delete m_pRbdTEXT;
// m_pRbdTEXT = NULL;
// m_nEnd = pe.pick();
// CreateText();
evType = 0;
break;
}
return MOUSE_TOOL::ProcessEvent(evType, pe);
}
void TEXT_TOOL::CreateText()
{
ASSERT_VALID(m_pView);
CDrawPadDoc *pDoc = (CDrawPadDoc *)m_pView->GetDocument();
ASSERT_VALID(pDoc);
// if( m_nStart != m_nEnd )
UNDO_BEGIN
pDoc->AddEntity(new ETEXT(m_nStart, m_nEnd,pDoc->m_String,pDoc->m_nColor,pDoc->m_Font));
UNDO_END
}