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

对话框与窗口

开发平台:

Visual C++

  1. // XTPCustomizeSheet.h : interface for the CXTPCustomizeSheet 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(__XTPCUSTOMIZESHEET_H__)
  22. #define __XTPCUSTOMIZESHEET_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. #include "XTPCommandBarsDefines.h"
  28. class CXTPCommandBars;
  29. class CXTPCustomizeToolbarsPage;
  30. class CXTPCustomizeCommandsPage;
  31. class CXTPImageManager;
  32. //===========================================================================
  33. // Summary:
  34. //     CXTPCustomizeSheet is a CPropertySheet derived class. It represents
  35. //     the Customize dialog.
  36. //===========================================================================
  37. class _XTP_EXT_CLASS CXTPCustomizeSheet : public CPropertySheet
  38. {
  39. public:
  40. //-----------------------------------------------------------------------
  41. // Summary:
  42. //     Constructs a CXTPCustomizeSheet object
  43. // Parameters:
  44. //     pCommandBars - Points to a CXTPCommandBars object
  45. //     iSelectPage  - Page initially selected.
  46. //-----------------------------------------------------------------------
  47. CXTPCustomizeSheet(CXTPCommandBars* pCommandBars, UINT iSelectPage = 0);
  48. //-----------------------------------------------------------------------
  49. // Summary:
  50. //     Destroys a CXTPCustomizeSheet object, handles cleanup and deallocation.
  51. //-----------------------------------------------------------------------
  52. virtual ~CXTPCustomizeSheet();
  53. public:
  54. //-----------------------------------------------------------------------
  55. // Summary:
  56. //     Call this member to get a pointer to the context menu that
  57. //     is displayed in customization mode when a user right-clicks
  58. //     on a control.
  59. // Returns:
  60. //     Retrieves the context menu.
  61. //-----------------------------------------------------------------------
  62. CXTPPopupBar* GetContextMenu() const;
  63. //-----------------------------------------------------------------------
  64. // Summary:
  65. //     Retrieves collection of custom icons that can be selected for
  66. //     a control during customization mode.  Custom icons are displayed
  67. //     in the "Change Button Image" popup of the context menu that is
  68. //     displayed when a user right-clicks on a control.
  69. // Remarks:
  70. //     Icons must be numbered from 1.  When adding icons, the numbering
  71. //     must start with 1 and increment by 1 for each icon added.  So the
  72. //     numbering would look like this: 1, 2, 3, 4, ...N.
  73. //
  74. //          The toolkit provide 42 "built-in" icons that you can choose from
  75. //          and they are automatically displayed in the "Change Button Icon"
  76. //          popup menu if you do not remove them.  If you do not remove the
  77. //          "built-in" icons that are provided with the toolkit then you should
  78. //          start your numbering at 43.  If you start at 1 and you did not
  79. //          remove the "bulilt-in" icons, then you will overwrite some of
  80. //          the "built-in" icons.  So you would number your icons
  81. //          43, 44, 45, ...N.  So you could even keep some of the "built-in"
  82. //          icons and overwrite the ones you don't need with your own
  83. //          custom icons.
  84. //-----------------------------------------------------------------------
  85. CXTPImageManager* GetCustomIcons() const;
  86. int MessageBox(LPCTSTR lpszText, UINT nType = MB_OK);
  87. public:
  88. //-----------------------------------------------------------------------
  89. // Summary:
  90. //     Returns the Commands PropertyPage
  91. // Returns:
  92. //     A pointer to a CXTPCustomizeCommandsPage object
  93. //-----------------------------------------------------------------------
  94. CXTPCustomizeCommandsPage* GetCommandsPage() const;
  95. //-----------------------------------------------------------------------
  96. // Summary:
  97. //     Returns the parent Command Bars class
  98. // Returns:
  99. //     A pointer to a CXTPCommandBars object
  100. //-----------------------------------------------------------------------
  101. CXTPCommandBars* GetCommandBars() const;
  102. //-----------------------------------------------------------------------
  103. // Summary:
  104. //     Call this method to show customize dialog.
  105. //-----------------------------------------------------------------------
  106. INT_PTR DoModal();
  107. //-----------------------------------------------------------------------
  108. // Summary:
  109. //     This method shows the context menu for toolbars
  110. // Parameters:
  111. //     point - Position of the menu to show
  112. //-----------------------------------------------------------------------
  113. void ContextMenu(CPoint point);
  114. //-----------------------------------------------------------------------
  115. // Summary:
  116. //     Adds the supplied page with the rightmost tab in the property sheet.
  117. // Parameters:
  118. //     pPage - Points to the page to be added to the property sheet. Cannot be NULL.
  119. //-----------------------------------------------------------------------
  120. void AddPage(CPropertyPage* pPage);
  121. protected:
  122. //{{AFX_CODEJOCK_PRIVATE
  123. DECLARE_MESSAGE_MAP()
  124. //{{AFX_VIRTUAL(CXTPCustomizeSheet)
  125. BOOL OnInitDialog();
  126. BOOL PreTranslateMessage(MSG* pMsg);
  127. BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo);
  128. //}}AFX_VIRTUAL
  129. //{{AFX_MSG(CXTPCustomizeSheet)
  130. afx_msg void OnCustomizeDefaultStyle();
  131. afx_msg void OnCustomizeImageAndText();
  132. afx_msg void OnCustomizeTextOnly();
  133. afx_msg void OnCustomizeBeginGroup();
  134. afx_msg void OnCustomizeDelete();
  135. afx_msg void OnCustomizeCopyImage();
  136. afx_msg void OnCustomizePasteImage();
  137. afx_msg void OnCustomizeResetImage();
  138. afx_msg void OnCustomizeEditImage();
  139. afx_msg void OnCustomizeReset();
  140. afx_msg LRESULT OnCustomizeName(WPARAM wParam, LPARAM lParam);
  141. afx_msg void OnUpdateCustomizeDefaultStyle(CCmdUI* pCmdUI);
  142. afx_msg void OnUpdateCustomizeImageAndText(CCmdUI* pCmdUI);
  143. afx_msg void OnUpdateCustomizeTextOnly(CCmdUI* pCmdUI);
  144. afx_msg void OnUpdateCustomizeBeginGroup(CCmdUI* pCmdUI);
  145. afx_msg void OnUpdateCustomizeName(CCmdUI* pCmdUI);
  146. afx_msg void OnUpdateCustomizeCopyImage(CCmdUI* pCmdUI);
  147. afx_msg void OnUpdateCustomizePasteImage(CCmdUI* pCmdUI);
  148. afx_msg void OnUpdateCustomizeResetImage(CCmdUI* pCmdUI);
  149. afx_msg void OnUpdateCustomizeReset(CCmdUI* pCmdUI);
  150. afx_msg void OnUpdateCustomizeEditImage(CCmdUI* pCmdUI);
  151. afx_msg void OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  152. afx_msg void OnInitCommandsPopup(CXTPPopupBar* pPopupBar);
  153. afx_msg void OnGrabFocus();
  154. //}}AFX_MSG
  155. //}}AFX_CODEJOCK_PRIVATE
  156. private:
  157. BOOL FilterMouse(WPARAM wParam, LPARAM lParam);
  158. BOOL FilterKey(WPARAM wParam, LPARAM lParam);
  159. BOOL FilterMessage(WPARAM wParam, LPARAM lParam);
  160. void CreateContextMenu();
  161. BOOL IsAllowChangeStyle(CXTPControl* pControl) const;
  162. protected:
  163. CXTPCustomizeToolbarsPage* m_pPageToolBars;     // Toolbar page.
  164. CXTPCustomizeCommandsPage* m_pPageCommands;     // Commands page.
  165. CWnd* m_pWndParent;                             // Parent window.
  166. CXTPCommandBars* m_pCommandBars;                // Customized comamndBars.
  167. CXTPPopupBar* m_pContextMenu;                   // Context menu that is displayed in customization mode when a
  168.                                                 // user right-clicks on a control.
  169. CXTPImageManager* m_pCustomIcons;               // Icons displayed in the "Change Button Image" popup of the
  170.                                                 // context menu that is displayed when a user right-clicks on a control.
  171. private:
  172. DECLARE_DYNAMIC(CXTPCustomizeSheet)
  173. class CCustomizeButton;
  174. class CCustomizeEdit;
  175. };
  176. /////////////////////////////////////////////////////////////////////////////
  177. AFX_INLINE CXTPCustomizeCommandsPage* CXTPCustomizeSheet::GetCommandsPage() const {
  178. return m_pPageCommands;
  179. }
  180. AFX_INLINE CXTPCommandBars* CXTPCustomizeSheet::GetCommandBars() const {
  181. return m_pCommandBars;
  182. }
  183. AFX_INLINE CXTPPopupBar* CXTPCustomizeSheet::GetContextMenu() const {
  184. return m_pContextMenu;
  185. }
  186. AFX_INLINE CXTPImageManager* CXTPCustomizeSheet::GetCustomIcons() const {
  187. return m_pCustomIcons;
  188. }
  189. #endif // #if !defined(__XTPCUSTOMIZESHEET_H__)