|
//------------------------------------------------------------------------------
// $Workfile: DockTreePaneController.cpp $
// $Header: /SbjDev/SbjCore/DockTreePaneController.cpp 7 11/12/08 2:22p Steve $
//
// Copyright � 2008 SbjCat
// All rights reserved.
//
//
// *** Authors ***
// Steve Johnson
//
// $Revision: 7 $
//
//-----------------------------------------------------------------------------
#include "stdafx.h"
#include "DockTreePaneController.h"
#include "ControlledTree.h"
#include "TreeController.h"
#include "WndMsgHandler.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
namespace SbjCore
{
namespace Mvc
{
struct DockTreePaneControllerImpl
{
ControlledTreeCtrl theTree;
DockTreePaneControllerImpl()
{
}
virtual ~DockTreePaneControllerImpl()
{
}
};
/////////////////////////////////////////////////////
DockTreePaneController::DockTreePaneController() :
m_pImpl(new DockTreePaneControllerImpl)
{
}
DockTreePaneController::~DockTreePaneController()
{
try
{
delete m_pImpl;
}
catch (...)
{
ASSERT(FALSE);
}
}
CTreeCtrl* DockTreePaneController::GetTreeCtrl() const
{
return &m_pImpl->theTree;
}
void DockTreePaneController::SetTreeController(TreeView::Controller* pTreeCtrlr )
{
m_pImpl->theTree.SetController((SbjCore::Mvc::CmdTargetController*)pTreeCtrlr);
}
int DockTreePaneController::OnAdjustLayout(int nTop /*= 0*/)
{
nTop;
int nRslt = 0;
if (GetWnd()->GetSafeHwnd() != NULL)
{
int cyTlb = t_Base::OnAdjustLayout();
CRect rectClient;
GetWnd()->GetClientRect(rectClient);
m_pImpl->theTree.SetWindowPos(NULL, rectClient.left + 1, rectClient.top + cyTlb + 1, rectClient.Width() - 2, rectClient.Height() - cyTlb - 2, SWP_NOACTIVATE | SWP_NOZORDER);
nRslt = rectClient.Height();
}
return nRslt;
}
BOOL DockTreePaneController::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
lpcs;
pContext;
BOOL bRslt = false;
CRect rectDummy;
rectDummy.SetRectEmpty();
TreeView::Controller* pTreeCtrlr = dynamic_cast<TreeView::Controller*>(m_pImpl->theTree.GetController());
if (pTreeCtrlr != NULL)
{
const DWORD dwViewStyle = pTreeCtrlr->GetStyle();
if (m_pImpl->theTree.Create(dwViewStyle, rectDummy, GetWnd(), AFX_IDW_PANE_FIRST))
{
pTreeCtrlr->Initialize();
bRslt = true;
}
}
return bRslt;
}
}
}
//*** Modification History ***
// $Log: /SbjDev/SbjCore/DockTreePaneController.cpp $
//
// 7 11/12/08 2:22p Steve
// Finished Generalization of Model v2.0.1
|
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.