|
//------------------------------------------------------------------------------
// $Workfile: RectTracker.cpp $
// $Header: /SbjDev/SbjCore/RectTracker.cpp 6 11/12/08 2:22p Steve $
//
// Copyright � 2008 SbjCat
// All rights reserved.
//
//
// *** Authors ***
// Steve Johnson
//
// $Revision: 6 $
//
//-----------------------------------------------------------------------------
#include "stdafx.h"
#include "RectTracker.h"
#include "ModelDataTypes.h"
#include "ModelController.h"
#include "WndController.h"
#include "EventMgr.h"
namespace localNS
{
}
namespace SbjCore
{
namespace Mvc
{
struct RectTrackerImpl
{
bool bSelected;
HANDLE hItem;
RectTrackerImpl() :
bSelected(false),
hItem(NULL)
{
}
virtual ~RectTrackerImpl()
{
}
};
////////////////////////////////////////////////////////
RectTracker::RectTracker() :
CRectTracker(),
m_pImpl(new RectTrackerImpl)
{
m_rect.SetRectEmpty();
m_nStyle = CRectTracker::resizeOutside | CRectTracker::hatchedBorder;
m_nHandleSize = 7;
}
RectTracker::RectTracker(CRect* pRect) :
CRectTracker(pRect, CRectTracker::resizeOutside | CRectTracker::hatchedBorder),
m_pImpl(new RectTrackerImpl)
{
m_nHandleSize = 7;
}
RectTracker::~RectTracker()
{
try
{
delete m_pImpl;
}
catch (...)
{
ASSERT(FALSE);
}
}
void RectTracker::SetModelItemHandle( const HANDLE hModelItem )
{
m_pImpl->hItem = hModelItem;
Update();
}
HANDLE RectTracker::GetModelItemHandle() const
{
return m_pImpl->hItem;
}
bool RectTracker::Track(SbjCore::Mvc::WndController* pCtrlr, CPoint point, BOOL bAllowInvert, CWnd* pWndClipTo )
{
bool bRslt = CRectTracker::Track(pCtrlr->GetWnd(), point, bAllowInvert, pWndClipTo);
if (bRslt)
{
SetRect(m_rect);
}
return bRslt;
}
void RectTracker::OffsetRect(CPoint pt)
{
OnOffsetRect(pt);
}
void RectTracker::SetRect(CRect r)
{
OnSetRect(r);
}
void RectTracker::SetSelected(bool b)
{
OnSetSelected(b);
}
void RectTracker::Update()
{
OnUpdate();
}
bool RectTracker::IsSelected()
{
return OnIsSelected();
}
void RectTracker::OnSetSelected(bool b)
{
m_pImpl->bSelected = b;
}
bool RectTracker::OnIsSelected()
{
return m_pImpl->bSelected;
}
void RectTracker::OnOffsetRect(CPoint pt)
{
m_rect.OffsetRect(pt);
SbjCore::Mvc::Model::Rect::SetItemValue(SbjCore::Mvc::Model::GetCurController(), m_pImpl->hItem, m_rect, true, true);
}
void RectTracker::OnSetRect(CRect r)
{
m_rect.CopyRect(r);
SbjCore::Mvc::Model::Rect::SetItemValue(SbjCore::Mvc::Model::GetCurController(), m_pImpl->hItem, m_rect, true, true);
}
void RectTracker::OnUpdate()
{
m_rect = SbjCore::Mvc::Model::Rect::GetItemValue(SbjCore::Mvc::Model::GetCurController(), m_pImpl->hItem);
}
}
}
//*** Modification History ***
// $Log: /SbjDev/SbjCore/RectTracker.cpp $
//
// 6 11/12/08 2:22p Steve
// Finished Generalization of Model v2.0.1
//
// 5 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.