|
//------------------------------------------------------------------------------
// $Workfile: DockPropGridPaneController.cpp $
// $Header: /SbjDev/SbjCore/DockPropGridPaneController.cpp 7 11/12/08 2:22p Steve $
//
// Copyright � 2008 SbjCat
// All rights reserved.
//
//
// *** Authors ***
// Steve Johnson
//
// $Revision: 7 $
//
//-----------------------------------------------------------------------------
#include "stdafx.h"
#include "Resource.h"
#include "DockPropGridPaneController.h"
#include "ControlledPropGridCtrl.h"
#include "PropGridController.h"
#include "WndMsgHandler.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
localNS
namespace SbjCore
{
namespace Mvc
{
struct DockPropGridPaneControllerImpl
{
ControlledPropGridCtrl thePropGrid;
DockPropGridPaneControllerImpl()
{
}
virtual ~DockPropGridPaneControllerImpl()
{
}
};
/////////////////////////////////////////////////////
IMPLEMENT_DYNCREATE(DockPropGridPaneController, WndController)
DockPropGridPaneController::DockPropGridPaneController() :
m_pImpl(new DockPropGridPaneControllerImpl)
{
}
DockPropGridPaneController::~DockPropGridPaneController()
{
try
{
delete m_pImpl;
}
catch (...)
{
ASSERT(FALSE);
}
}
CMFCPropertyGridCtrl* DockPropGridPaneController::GetPropGridCtrl() const
{
return &m_pImpl->thePropGrid;
}
void DockPropGridPaneController::SetPropGridController(PropGrid::Controller* pPropGridCtrlr )
{
m_pImpl->thePropGrid.SetController((SbjCore::Mvc::CmdTargetController*)pPropGridCtrlr);
}
int DockPropGridPaneController::OnAdjustLayout(int nTop /*= 0*/)
{
nTop;
int nRslt = 0;
if (GetWnd()->GetSafeHwnd() != NULL)
{
int cyTlb = t_Base::OnAdjustLayout();
CRect rectClient;
GetWnd()->GetClientRect(rectClient);
m_pImpl->thePropGrid.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 DockPropGridPaneController::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
lpcs;
pContext;
BOOL bRslt = false;
CRect rectDummy;
rectDummy.SetRectEmpty();
PropGrid::Controller* pPropGridCtrlr = dynamic_cast<PropGrid::Controller*>(m_pImpl->thePropGrid.GetController());
if (pPropGridCtrlr != NULL)
{
const DWORD dwViewStyle = pPropGridCtrlr->GetStyle();
if (m_pImpl->thePropGrid.Create(dwViewStyle, rectDummy, GetWnd(), AFX_IDW_PANE_FIRST))
{
pPropGridCtrlr->Initialize();
bRslt = true;
}
}
return bRslt;
}
UINT DockPropGridPaneController::OnGetToolBarID( UINT& nToolBarImageID ) const
{
nToolBarImageID = IDB_PROPERTIES_HC;
return IDR_PROPERTIES;
}
}
}
//*** Modification History ***
// $Log: /SbjDev/SbjCore/DockPropGridPaneController.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.