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

对话框与窗口

开发平台:

Visual C++

  1. // XTPMarkupControl.h: interface for the CXTPMarkupControl 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. #if !defined(__XTPMARKUPCONTROL_H__)
  21. #define __XTPMARKUPCONTROL_H__
  22. #if _MSC_VER > 1000
  23. #pragma once
  24. #endif // _MSC_VER > 1000
  25. #include "XTPMarkupFrameworkElement.h"
  26. class CXTPMarkupBrush;
  27. class CXTPMarkupBuilder;
  28. class _XTP_EXT_CLASS CXTPMarkupControl : public CXTPMarkupFrameworkElement
  29. {
  30. DECLARE_MARKUPCLASS(CXTPMarkupControl);
  31. public:
  32. void SetPadding(int nLeft, int nTop, int nRight, int nBottom);
  33. void SetPadding(int nPadding);
  34. CXTPMarkupThickness* GetPadding() const;
  35. protected:
  36. CSize ArrangeOverride(CSize szFinalSize);
  37. CSize MeasureOverride(CXTPMarkupDrawingContext* pDC, CSize szAvailableSize);
  38. public:
  39. static CXTPMarkupDependencyProperty* m_pPaddingProperty;
  40. static CXTPMarkupDependencyProperty* m_pBackgroundProperty;
  41. static CXTPMarkupDependencyProperty* m_pForegroundProperty;
  42. };
  43. class _XTP_EXT_CLASS CXTPMarkupContentControl : public CXTPMarkupControl
  44. {
  45. DECLARE_MARKUPCLASS(CXTPMarkupContentControl);
  46. protected:
  47. CXTPMarkupContentControl();
  48. ~CXTPMarkupContentControl();
  49. public:
  50. CXTPMarkupUIElement* GetContent() const;
  51. void SetContent(CXTPMarkupUIElement* pContent);
  52. public:
  53. virtual int GetVisualChildrenCount() const;
  54. virtual CXTPMarkupVisual* GetVisualChild(int nIndex) const;
  55. protected:
  56. virtual void SetContentObject(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pContent);
  57. virtual BOOL HasContentObject() const;
  58. protected:
  59. static CXTPMarkupDependencyProperty* m_pContentProperty;
  60. };
  61. AFX_INLINE void CXTPMarkupControl::SetPadding(int nLeft, int nTop, int nRight, int nBottom) {
  62. SetValue(m_pPaddingProperty, new CXTPMarkupThickness(nLeft, nTop, nRight, nBottom));
  63. }
  64. AFX_INLINE void CXTPMarkupControl::SetPadding(int padding) {
  65. SetValue(m_pPaddingProperty, new CXTPMarkupThickness(padding));
  66. }
  67. AFX_INLINE CXTPMarkupThickness* CXTPMarkupControl::GetPadding() const {
  68. return  MARKUP_STATICCAST(CXTPMarkupThickness, GetValue(m_pPaddingProperty));
  69. }
  70. AFX_INLINE int CXTPMarkupContentControl::GetVisualChildrenCount() const {
  71. return GetContent() != NULL ? 1 : 0;
  72. }
  73. AFX_INLINE CXTPMarkupVisual* CXTPMarkupContentControl::GetVisualChild(int nIndex) const {
  74. return nIndex == 0 ? GetContent() : NULL;
  75. }
  76. #endif // !defined(__XTPMARKUPCONTROL_H__)