|
#include "StdAfx.h"
#include "DocController.h"
#include "UndoRedoMgr.h"
#include "DocEvents.h"
#include "CmdMsgHandler.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
namespace localNS
{
// Event Handlers ///////////////////////////////////////////////////////////////
class DocModifiedEventHandler : public SbjCore::EventMgr::EventHandler
{
SbjCore::Mvc::Doc::Controller* pTheCtrlr;
public:
DocModifiedEventHandler() :
SbjCore::EventMgr::EventHandler(SbjCore::Mvc::Doc::Events::EVID_DOC_MODIFIED)
{
}
void SetCtrlr(SbjCore::Mvc::Doc::Controller* p)
{
pTheCtrlr = p;
}
private:
virtual void OnHandle(SbjCore::EventMgr::Event* pEvent)
{
SbjCore::Mvc::Doc::Events::DocModified* pTheEvent = dynamic_cast<SbjCore::Mvc::Doc::Events::DocModified*>(pEvent);
ASSERT(pTheEvent != NULL);
if (pTheEvent != NULL)
{
pTheCtrlr->GetDocument()->SetModifiedFlag(pTheEvent->bModified);
}
}
};
}
namespace SbjCore
{
namespace Mvc
{
namespace Doc
{
struct ControllerImpl
{
localNS::DocModifiedEventHandler theDocModifiedHandler;
ControllerImpl()
{
}
virtual ~ControllerImpl()
{
}
};
/////////////////////////////////////////////////////////
Controller::Controller(void) :
m_pImpl(new ControllerImpl)
{
m_pImpl->theDocModifiedHandler.SetCtrlr(this);
}
Controller::~Controller(void)
{
try
{
delete m_pImpl;
}
catch(...)
{
ASSERT(FALSE);
}
}
CDocument* Controller::GetDocument() const
{
return (CDocument*)GetCmdTarget();
}
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Real name is Steve Johnson. Programming since 1979. Started on a Heathkit Micro with a DEC LSI-11 and UCSD Pascal. Moved to PCs & DOS as soon as Turbo Pascal became available. Did some Assembly, ISR, TSR etc. All this while working for a Manufacturing Co. for 8 years. Had my own solo Co. doing barcode labeling software for 4 years (terrible business man, all I wanted to do was code). Since then working for various software companies. Moved to Windows around the time of 3.1 with Borland C then C++. Then on to VC++ and MFC, and just about anything I could get my hands on or had to learn for my job, and been at it ever since. Of course recently I've been playing with .NET, ASP, C#, WPF etc.