|
//------------------------------------------------------------------------------
// $Workfile: DesignViewItem.cpp $
// $Header: /SbjDev/SbjCore/DesignViewItem.cpp 10 11/12/08 2:22p Steve $
//
// Copyright � 2008 SbjCat
// All rights reserved.
//
//
// *** Authors ***
// Steve Johnson
//
// $Revision: 10 $
//
//-----------------------------------------------------------------------------
#include "StdAfx.h"
#include "DesignViewItem.h"
#include "EventMgr.h"
#include "DocEvents.h"
#include "RectTracker.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
namespace SbjCore
{
namespace Mvc
{
namespace DesignView
{
struct ItemImpl
{
Controller* pTheCtrlr;
HANDLE hModelItem;
SbjCore::Mvc::RectTracker theRectTracker;
ItemImpl() :
pTheCtrlr(NULL),
hModelItem(NULL)
{
}
virtual ~ItemImpl()
{
}
};
///////////////////////////////////////////////////////////
IMPLEMENT_DYNCREATE(Item, CObject)
Item::Item(void) :
m_pImpl(new ItemImpl)
{
}
Item::~Item(void)
{
try
{
delete m_pImpl;
}
catch(...)
{
ASSERT(FALSE);
}
}
void Item::Draw(CDC* pDC)
{
OnDraw(pDC);
}
void Item::SetController(Controller* pCtrlr )
{
m_pImpl->pTheCtrlr = pCtrlr;
}
Controller* Item::GetController() const
{
return m_pImpl->pTheCtrlr;
}
bool Item::IsTrackedItem( const RectTracker* p )
{
return (p == GetRectTracker());
}
void Item::OnDraw( CDC* pDC )
{
pDC;
}
RectTracker* Item::GetRectTracker() const
{
return OnGetRectTracker();
}
SbjCore::Mvc::RectTracker* Item::OnGetRectTracker() const
{
SbjCore::Mvc::RectTracker* pTracker = NULL;
if (IsTrackable())
{
pTracker = &m_pImpl->theRectTracker;
}
return pTracker;
}
void Item::SetModelItemHandle( const HANDLE hModelItem )
{
m_pImpl->hModelItem = hModelItem;
m_pImpl->theRectTracker.SetModelItemHandle(hModelItem);
}
HANDLE Item::GetModelItemHandle() const
{
return m_pImpl->hModelItem;
}
bool Item::IsTrackable() const
{
return OnIsTrackable();
}
bool Item::OnIsTrackable() const
{
return false;
}
}
}
}
//*** Modification History ***
// $Log: /SbjDev/SbjCore/DesignViewItem.cpp $
//
// 10 11/12/08 2:22p Steve
// Finished Generalization of Model v2.0.1
//
// 9 10/26/08 9:19a Steve
//
// 8 10/24/08 9:03a Steve
//
// 7 10/14/08 1:12p Steve
// Implemented Deletes
|
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.