ControlTools.cpp
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:3k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // ControlTools.cpp: implementation of the CControlTools class.
  2. //
  3. // This file is a part of the XTREME TOOLKIT PRO MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. #include "stdafx.h"
  21. #include "resource.h"
  22. #include "ControlTools.h"
  23. #include "CustomizePageTools.h"
  24. //////////////////////////////////////////////////////////////////////
  25. // Construction/Destruction
  26. //////////////////////////////////////////////////////////////////////
  27. IMPLEMENT_XTP_CONTROL( CControlTools, CXTPControlButton)
  28. CControlTools::CControlTools()
  29. {
  30. }
  31. CControlTools::~CControlTools()
  32. {
  33. }
  34. void CControlTools::OnCalcDynamicSize(DWORD /*dwMode*/)
  35. {
  36. ASSERT(m_pControls->GetAt(m_nIndex) == this);
  37. while (m_nIndex + 1 < m_pControls->GetCount())
  38. {
  39. CXTPControl* pControl = m_pControls->GetAt(m_nIndex + 1);
  40. if (pControl->GetID() == ID_TOOLS_TOOLITEM)
  41. {
  42. m_pControls->Remove(pControl);
  43. }
  44. else break;
  45. }
  46. if (m_pParent->IsCustomizeMode())
  47. {
  48. m_dwHideFlags = 0;
  49. SetEnabled(TRUE);
  50. return;
  51. }
  52. if (CCustomizePageTools::m_lstTools.IsEmpty())
  53. {
  54. m_dwHideFlags = 0;
  55. SetEnabled(FALSE);
  56. return;
  57. }
  58. m_dwHideFlags |= xtpHideGeneric;
  59. int nIndex = m_nIndex + 1;
  60. POSITION pos = CCustomizePageTools::m_lstTools.GetHeadPosition();
  61. while (pos)
  62. {
  63. CToolRec& tool = CCustomizePageTools::m_lstTools.GetNext(pos);
  64. CXTPControl* pControl = m_pControls->Add(xtpControlButton, ID_TOOLS_TOOLITEM, _T(""), nIndex, TRUE);
  65. pControl->SetBeginGroup(nIndex == m_nIndex + 1 && GetBeginGroup());
  66. pControl->SetCaption(tool.m_strTitle);
  67. pControl->SetFlags(xtpFlagManualUpdate);
  68. pControl->SetTag((DWORD_PTR)&tool);
  69. pControl->SetIconId(tool.m_nIconID);
  70. nIndex++;
  71. }
  72. }
  73. BOOL CControlTools::IsCustomizeDragOverAvail(CXTPCommandBar* pCommandBar, CPoint /*point*/, DROPEFFECT& dropEffect)
  74. {
  75. if (pCommandBar->GetType() != xtpBarTypePopup)
  76. {
  77. dropEffect = DROPEFFECT_NONE;
  78. return FALSE;
  79. }
  80. return TRUE;
  81. }