DragonNest/Third/XTToolkitPro/Samples/CommandBars/CustomizeDlg/ControlTools.cpp
2024-12-19 09:48:26 +08:00

102 lines
2.5 KiB
C++

// ControlTools.cpp: implementation of the CControlTools 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 "resource.h"
#include "ControlTools.h"
#include "CustomizePageTools.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
IMPLEMENT_XTP_CONTROL( CControlTools, CXTPControlButton)
CControlTools::CControlTools()
{
}
CControlTools::~CControlTools()
{
}
void CControlTools::OnCalcDynamicSize(DWORD /*dwMode*/)
{
ASSERT(m_pControls->GetAt(m_nIndex) == this);
while (m_nIndex + 1 < m_pControls->GetCount())
{
CXTPControl* pControl = m_pControls->GetAt(m_nIndex + 1);
if (pControl->GetID() == ID_TOOLS_TOOLITEM)
{
m_pControls->Remove(pControl);
}
else break;
}
if (m_pParent->IsCustomizeMode())
{
m_dwHideFlags = 0;
SetEnabled(TRUE);
return;
}
if (CCustomizePageTools::m_lstTools.IsEmpty())
{
m_dwHideFlags = 0;
SetEnabled(FALSE);
return;
}
m_dwHideFlags |= xtpHideGeneric;
int nIndex = m_nIndex + 1;
POSITION pos = CCustomizePageTools::m_lstTools.GetHeadPosition();
while (pos)
{
CToolRec& tool = CCustomizePageTools::m_lstTools.GetNext(pos);
CXTPControl* pControl = m_pControls->Add(xtpControlButton, ID_TOOLS_TOOLITEM, _T(""), nIndex, TRUE);
pControl->SetBeginGroup(nIndex == m_nIndex + 1 && GetBeginGroup());
pControl->SetCaption(tool.m_strTitle);
pControl->SetFlags(xtpFlagManualUpdate);
pControl->SetTag((DWORD_PTR)&tool);
pControl->SetIconId(tool.m_nIconID);
nIndex++;
}
}
BOOL CControlTools::IsCustomizeDragOverAvail(CXTPCommandBar* pCommandBar, CPoint /*point*/, DROPEFFECT& dropEffect)
{
if (pCommandBar->GetType() != xtpBarTypePopup)
{
dropEffect = DROPEFFECT_NONE;
return FALSE;
}
return TRUE;
}