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

对话框与窗口

开发平台:

Visual C++

  1. // XTPDockContext.h : interface for the CXTPDockContext class.
  2. //
  3. // This file is a part of the XTREME COMMANDBARS 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. //{{AFX_CODEJOCK_PRIVATE
  21. #if !defined(__XTPDOCKCONTEXT_H__)
  22. #define __XTPDOCKCONTEXT_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER >= 1000
  25. #pragma once
  26. #endif // _MSC_VER >= 1000
  27. #include "XTPCommandBarsDefines.h"
  28. class CXTPToolBar;
  29. //===========================================================================
  30. // Summary:
  31. //     CXTPDockContext is a stand alone class. It is used internally by
  32. //     CXTPToolBar.
  33. //===========================================================================
  34. class _XTP_EXT_CLASS CXTPDockContext
  35. {
  36. public:
  37. //-----------------------------------------------------------------------
  38. // Summary:
  39. //     Constructs a CXTPDockContext object
  40. // Parameters:
  41. //     pBar - Points to a CXTPToolBar object
  42. //-----------------------------------------------------------------------
  43. CXTPDockContext(CXTPToolBar* pBar);
  44. //-----------------------------------------------------------------------
  45. // Summary:
  46. //     Destroys a CXTPDockContext object, handles cleanup and deallocation.
  47. //-----------------------------------------------------------------------
  48. virtual ~CXTPDockContext();
  49. public:
  50. //-----------------------------------------------------------------------
  51. // Summary:
  52. //     This method is called when the user starts to move the toolbar.
  53. // Parameters:
  54. //     pt - Initial cursor position.
  55. //-----------------------------------------------------------------------
  56. virtual void StartDrag(CPoint pt);
  57. //-----------------------------------------------------------------------
  58. // Summary:
  59. //     This method is called when the user starts to resize the toolbar.
  60. // Parameters:
  61. //     nHitTest - Specifies the hit-test area code.
  62. //     pt       - Initial cursor position.
  63. //-----------------------------------------------------------------------
  64. virtual void StartResize(int nHitTest, CPoint pt);
  65. //-----------------------------------------------------------------------
  66. // Summary:
  67. //     This method is called to switch the docking position of the toolbar.
  68. // Returns:
  69. //     TRUE if successful; otherwise returns FALSE
  70. //-----------------------------------------------------------------------
  71. virtual BOOL ToggleDocking();
  72. protected:
  73. //-------------------------------------------------------------------------
  74. // Summary:
  75. //     This method is called to start tracking loop
  76. //-------------------------------------------------------------------------
  77. virtual void Track();
  78. //-----------------------------------------------------------------------
  79. // Summary:
  80. //     This method is called to stretch child toolbar.
  81. // Parameters:
  82. //     pt - CPoint object specifies xy coordinates.
  83. //-----------------------------------------------------------------------
  84. void Stretch(CPoint pt);
  85. //-----------------------------------------------------------------------
  86. // Summary:
  87. //     This method is called to move child toolbar to the specified position
  88. // Parameters:
  89. //     pt - CPoint object specifies xy coordinates.
  90. //-----------------------------------------------------------------------
  91. void Move(CPoint pt);
  92. //-----------------------------------------------------------------------
  93. // Summary:
  94. //     This method is called to move child toolbar to resize child dialog bar.
  95. // Parameters:
  96. //     pt - CPoint object specifies xy coordinates.
  97. //-----------------------------------------------------------------------
  98. void Resize(CPoint pt);
  99. private:
  100. static void AdjustRectangle(CRect& rect, CPoint pt);
  101. void EnsureVisible(CRect& rectDragFrame);
  102. protected:
  103. CXTPToolBar* m_pBar;                    // Child toolbar.
  104. int m_nHitTest;                         // Hit Test code
  105. CPoint m_ptLast;                        // Last mouse position.
  106. XTPBarPosition m_uMRUDockPosition;      // Last docking position.
  107. CRect m_rectMRUDockPos;                 // Last docking rectangle.
  108. CPoint m_ptMRUFloatPos;                 // Last floating rectangle
  109. CRect m_rectDragDock;                   // Current docking rectangle
  110. CRect m_rectDragFrame;                  // Current floating rectangle.
  111. private:
  112. friend class CXTPToolBar;
  113. friend class CXTPDockBar;
  114. };
  115. #endif //#if !defined(__XTPDOCKCONTEXT_H__)