102 lines
2.5 KiB
C++
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;
|
|
}
|