DragonNest/Third/XTToolkitPro/Samples/DockingPane/DockingContainers/ToolsView.cpp
2024-12-19 09:48:26 +08:00

139 lines
3.1 KiB
C++

// ToolsView.cpp: implementation of the CToolsView class.
//
// This file is a part of the XTREME TOOLKIT PRO MFC class library.
// (c)1998-2008 Codejock Software, All Rights Reserved.
//
// THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
// RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
// CONSENT OF CODEJOCK SOFTWARE.
//
// THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
// IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
// YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
// SINGLE COMPUTER.
//
// CONTACT INFORMATION:
// support@codejock.com
// http://www.codejock.com
//
/////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "DockingContainers.h"
#include "ToolsView.h"
#include "DockingContainersView.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CToolsView::CToolsView()
{
m_nToolBarID = IDR_TOOLS_BAR;
m_nCurrentTool = ID_TOOLS_SELECTION;
}
CToolsView::~CToolsView()
{
}
BEGIN_MESSAGE_MAP(CToolsView, CPaneView)
//{{AFX_MSG_MAP(CToolsView)
ON_COMMAND_RANGE(ID_TOOLS_SELECTION, ID_TOOLS_ELLIPSE2, OnToolsCommand)
ON_UPDATE_COMMAND_UI_RANGE(ID_TOOLS_SELECTION, ID_TOOLS_ELLIPSE2, OnUpdateToolsCommand)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CToolsView::Refresh()
{
if (m_wndNavigateWnd.GetSafeHwnd())
m_wndNavigateWnd.Invalidate(FALSE);
}
CWnd* CToolsView::OnCreateView()
{
if (!m_wndNavigateWnd.Create(NULL, WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
CRect(0,0,0,0), this ))
{
TRACE0( "Unable to create tree control.\n" );
return NULL;
}
return &m_wndNavigateWnd;
}
void CToolsView::OnToolsCommand(UINT nID)
{
m_nCurrentTool = nID;
}
void CToolsView::OnUpdateToolsCommand(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_nCurrentTool == pCmdUI->m_nID? TRUE: FALSE);
}
/////////////////////////////////////////////////////////////////////////////
// CToolsNavigateWnd
CToolsNavigateWnd::CToolsNavigateWnd()
{
}
CToolsNavigateWnd::~CToolsNavigateWnd()
{
}
BEGIN_MESSAGE_MAP(CToolsNavigateWnd, CStatic)
//{{AFX_MSG_MAP(CToolsNavigateWnd)
ON_WM_ERASEBKGND()
ON_WM_PAINT()
ON_WM_SIZE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CToolsNavigateWnd message handlers
BOOL CToolsNavigateWnd::OnEraseBkgnd(CDC*)
{
return TRUE;
}
void CToolsNavigateWnd::OnPaint()
{
CPaintDC dc(this); // device context for painting
CXTPClientRect rc(this);
dc.FillSolidRect(rc, GetSysColor(COLOR_WINDOW));
CDockingContainersView* pView =
((CMDIFrameWnd*)AfxGetMainWnd())->MDIGetActive()?
(CDockingContainersView*)(((CMDIFrameWnd*)AfxGetMainWnd())->MDIGetActive()->GetActiveView())
: NULL;
if (pView)
{
pView->DrawLines(&dc, rc);
}
}
void CToolsNavigateWnd::OnSize(UINT nType, int cx, int cy)
{
CStatic::OnSize(nType, cx, cy);
Invalidate(FALSE);
}