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

对话框与窗口

开发平台:

Visual C++

  1. // XTPCommandBarDefines.h
  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(__XTPCOMMANDBARDEFINES_H__)
  22. #define __XTPCOMMANDBARDEFINES_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER >= 1000
  25. #pragma once
  26. #endif // _MSC_VER >= 1000
  27. class CXTPControl;
  28. class CXTPCommandBar;
  29. class CXTPPopupBar;
  30. //-----------------------------------------------------------------------
  31. // Summary:
  32. //     Position of the command bar
  33. // Example:
  34. // <code>
  35. // CXTPToolBar* pToolBar = pCommandBars->Add("ToolBar", xtpBarTop);
  36. // pToolBar->SetPosition(xtpBarBottom);
  37. // </code>
  38. // See Also:
  39. //     CXTPCommandBars, CXTPToolBar, CXTPToolBar::SetPosition
  40. //
  41. // <KEYWORDS xtpBarTop, xtpBarBottom, xtpBarLeft, xtpBarRight, xtpBarFloating, xtpBarPopup, xtpBarListBox, xtpBarNone>
  42. //-----------------------------------------------------------------------
  43. enum XTPBarPosition
  44. {
  45. xtpBarTop = 0,      // Docked at top.
  46. xtpBarBottom = 1,   // Docked at bottom.
  47. xtpBarLeft = 2,     // Docked at left.
  48. xtpBarRight = 3,    // Docked at right.
  49. xtpBarFloating = 4, // Floated.
  50. xtpBarPopup = 5,    // Popup.
  51. xtpBarListBox = 6,  // List box.
  52. xtpBarNone = 7      // None.
  53. };
  54. //-----------------------------------------------------------------------
  55. // Summary:
  56. //     Type of the command bar.
  57. // Example:
  58. // <code>
  59. // CXTPCommandBar* pMenuBar = pCommandBars->GetMenuBar();
  60. // ASSERT(pMenuBar->GetType() == xtpBarTypeMenuBar);
  61. // </code>
  62. // See Also: CXTPCommandBars, CXTPCommandBar, CXTPCommandBar::GetType
  63. //
  64. // <KEYWORDS xtpBarTypeMenuBar, xtpBarTypePopup>
  65. //-----------------------------------------------------------------------
  66. enum XTPBarType
  67. {
  68. xtpBarTypeMenuBar, // Command bar is a menu bar.
  69. xtpBarTypeNormal,  // Command bar is a toolbar.
  70. xtpBarTypePopup,   // Command bar is a popup.
  71. xtpBarTypeRibbon   // Command bar is a ribbonbar.
  72. };
  73. //-----------------------------------------------------------------------
  74. // Summary:
  75. //     Type of the control.
  76. // Example:
  77. //     <code>pToolBar->GetControls()->Add(xtpControlButton, ID_FILE_NEW);</code>
  78. // See Also: CXTPControl, CXTPControl::GetType, CXTPControls
  79. //
  80. // <KEYWORDS xtpControlError, xtpControlButton, xtpControlPopup, xtpControlButtonPopup, xtpControlSplitButtonPopup, xtpControlComboBox, xtpControlEdit, xtpControlCustom, xtpControlLabel>
  81. //-----------------------------------------------------------------------
  82. enum XTPControlType
  83. {
  84. xtpControlError,            // Type is not defined.
  85. xtpControlButton,           // Button type.
  86. xtpControlPopup,            // Popup type.
  87. xtpControlButtonPopup,      // Button popup.
  88. xtpControlSplitButtonPopup, // Split button popup.
  89. xtpControlComboBox,         // Combo box button.
  90. xtpControlEdit,             // Edit control.
  91. xtpControlCustom,           // Custom control.
  92. xtpControlLabel,            // Label control
  93. xtpControlCheckBox,         // CheckBox control
  94. xtpControlGallery,          // Gallery control
  95. xtpControlRadioButton       // Radio Button control
  96. };
  97. //-----------------------------------------------------------------------
  98. // Summary:
  99. //     Flags of the control.
  100. // Example:
  101. //     <code>pControl->SetFlags(xtpFlagRightAlign);</code>
  102. // See Also: CXTPControl, CXTPControl::SetFlags
  103. //
  104. // <KEYWORDS xtpFlagRightAlign, xtpFlagSkipFocus, xtpFlagLeftPopup, xtpFlagManualUpdate, xtpFlagNoMovable, xtpFlagControlStretched>
  105. //-----------------------------------------------------------------------
  106. enum XTPControlFlags
  107. {
  108. xtpFlagRightAlign = 1,          // Control is right aligned.
  109. xtpFlagSkipFocus = 2,           // Control does not have focus.
  110. xtpFlagLeftPopup = 4,           // To Pop up child bar left.
  111. xtpFlagManualUpdate = 8,        // Control is manually updated.
  112. xtpFlagNoMovable = 16,          // To disable customization.
  113. xtpFlagControlStretched = 32,   // Control is stretched in parent command bar.
  114. xtpFlagShowPopupBarTip = 64,    // Show tooltip always
  115. xtpFlagWrapRow = 128            // Wrap row for toolbar or popup bar.
  116. };
  117. //-----------------------------------------------------------------------
  118. // Summary:
  119. //     Control's hide flags, these are flags that specify why a control is hidden.
  120. // Example:
  121. //     <code>pControl->SetHideFlags(xtpHideGeneric);</code>
  122. // See Also: CXTPControl, CXTPControl::SetHideFlags
  123. //
  124. // <KEYWORDS xtpNoHide, xtpHideGeneric, xtpHideWrap, xtpHideDockingPosition, xtpHideScroll, xtpHideCustomize, xtpHideExpand, xtpHideDocTemplate>
  125. //-----------------------------------------------------------------------
  126. enum XTPControlHideFlags
  127. {
  128. xtpNoHide = 0,              // Control is visible.
  129. xtpHideGeneric = 1,         // Control is hidden by generic reason.  Developer set Visible = False.
  130. xtpHideWrap = 2,            // Control is hidden by wrap.  Toolbar is too small and the control is wrapped.
  131. xtpHideDockingPosition = 4, // Control is hidden by docking position.  If a toolbar has a combobox or edit control, when the toolbar is docked in the left or in the right side of frame, the Commandbar ComboBox and Edit controls becomes hidden.
  132. xtpHideScroll = 8,          // Control is hidden by scrolling.  There are too many controls in a popup and the control is hidden because the popup is scrolled.
  133. xtpHideCustomize = 16,      // Control is hidden by customize settings.  User removed it.  This is only possible when customization is enabled.  This flag is set if the user removes the control from the Add and Remove Buttons popup menu.
  134. xtpHideExpand = 32,         // If the control is rarely used and it is not visible because the intelligent menus option on and the command is a hidden command.
  135. xtpHideDocTemplate = 64,    // Control is hidden because active template excluded from its list.
  136. xtpHideRibbonTab =  128     // Control is hidden because inactive ribbon tab.
  137. };
  138. //-----------------------------------------------------------------------
  139. // Summary:
  140. //     Button's styles
  141. // Remarks:
  142. //     This styles can be applied to CXTPControlButton and CXTPControlPopup derived classes.
  143. // Example:
  144. //     <code>pControl->SetStyle(xtpButtonIconAndCaption);</code>
  145. // See Also: CXTPControlButton, CXTPControl::SetStyle, CXTPControl::GetStyle
  146. //
  147. // <KEYWORDS xtpButtonAutomatic, xtpButtonCaption, xtpButtonIcon, xtpButtonIconAndCaption>
  148. //-----------------------------------------------------------------------
  149. enum XTPButtonStyle
  150. {
  151. xtpButtonUndefined = -1,      // Automatic style.
  152. xtpButtonAutomatic = 0,     // Automatic style.
  153. xtpButtonCaption = 1,       // Button draw only caption.
  154. xtpButtonIcon = 2,          // Button draw only icon.
  155. xtpButtonIconAndCaption = 3, // Button draw icon and caption.
  156. xtpButtonIconAndCaptionBelow = 4,      // Button draw icon and draw caption below icon.
  157. xtpButtonCaptionAndDescription = 5     // Button draw icon, caption and description for popup bar.
  158. };
  159. //-----------------------------------------------------------------------
  160. // Summary: Deprecated style for Combo control
  161. //-----------------------------------------------------------------------
  162. #define xtpComboNormal xtpButtonAutomatic
  163. //-----------------------------------------------------------------------
  164. // Summary: Deprecated style for Combo control
  165. //-----------------------------------------------------------------------
  166. #define xtpComboLabel xtpButtonCaption
  167. //-----------------------------------------------------------------------
  168. // Summary:
  169. //     Paint themes used by command bars.
  170. // Example:
  171. //     <code>XTPPaintManager()->SetTheme(xtpThemeWhidbey);</code>
  172. // See Also:
  173. //     CXTPCommandBars, CXTPPaintManager
  174. //
  175. // <KEYWORDS xtpThemeOfficeXP, xtpThemeOffice2000, xtpThemeOffice2003, xtpThemeNativeWinXP, xtpThemeWhidbey, xtpThemeCustom>
  176. //-----------------------------------------------------------------------
  177. enum XTPPaintTheme
  178. {
  179. xtpThemeOffice2000,     // Office 2000 theme.
  180. xtpThemeOfficeXP,       // Office XP theme.
  181. xtpThemeOffice2003,     // Office 2003 theme.
  182. xtpThemeNativeWinXP,    // Windows XP themes support.
  183. xtpThemeWhidbey,        // Visual Studio 2005 theme.
  184. xtpThemeOffice2007,     // Office 2007 theme.
  185. xtpThemeRibbon,         // Office 2007 style ribbon theme
  186. xtpThemeVisualStudio2008, // Visual Studio 2008 theme
  187. xtpThemeCustom          // Custom theme.
  188. };
  189. //-----------------------------------------------------------------------
  190. // Summary:
  191. //     Menubar system button flags.
  192. // Example:
  193. // <code>
  194. // CXTPMenuBar* pMenuBar = pCommandBars->SetMenu(_T("Menu Bar", IDR_MAINFRAME);
  195. // pMenuBar->SetFlags(xtpFlagIgnoreSetMenuMessage);
  196. // </code>
  197. // See Also:
  198. //     CXTPMenuBar, CXTPCommandBar, CXTPCommandBar::SetFlags
  199. //
  200. // <KEYWORDS xtpFlagHideMinimizeBox, xtpFlagHideMaximizeBox, xtpFlagIgnoreSetMenuMessage, xtpFlagUseMDIMenus, xtpFlagHideClose, xtpFlagHideMDIButtons, xtpFlagAddMDISysPopup>
  201. //-----------------------------------------------------------------------
  202. enum XTPMenuBarFlags
  203. {
  204. xtpFlagHideMinimizeBox      = 0x0100L,          // To hide minimize box.
  205. xtpFlagHideMaximizeBox      = 0x0200L,          // To hide maximize box.
  206. xtpFlagIgnoreSetMenuMessage = 0x0400L,          // To ignore MDI menus.
  207. xtpFlagUseMDIMenus          = 0x0800L,          // To use MDI menus. Not longer used.
  208. xtpFlagHideClose            = 0x1000L,          // To hide close button.
  209. xtpFlagHideMDIButtons = xtpFlagHideMinimizeBox | xtpFlagHideMaximizeBox | xtpFlagHideClose,  // Specifies to hide all MDI buttons displayed on the Command Bar.
  210. xtpFlagAddMDISysPopup       = 0x2000L           // To add system MDI popup bar.  Specifies to add system MDI popup menu to the Menu Bar.  This will appears as an icon to the far left of the Menu Bar and will display the MDI menu bar options when clicked.
  211. };
  212. //-----------------------------------------------------------------------
  213. // Summary:
  214. //     Docking flags.
  215. // Example:
  216. // <code>
  217. // CXTPMenuBar* pMenuBar = pCommandBars->SetMenu(_T("Menu Bar", IDR_MAINFRAME);
  218. // pMenuBar->EnableDocking(xtpFlagAlignTop | xtpFlagStretched);
  219. // </code>
  220. // See Also: CXTPToolBar, CXTPToolBar::EnableDocking
  221. //
  222. // <KEYWORDS xtpFlagAlignTop, xtpFlagAlignBottom, xtpFlagAlignLeft, xtpFlagAlignRight, xtpFlagAlignAny, xtpFlagFloating, xtpFlagHideWrap, xtpFlagStretched>
  223. //-----------------------------------------------------------------------
  224. enum XTPToolBarFlags
  225. {
  226. xtpFlagAlignTop = 1,                // Allows docking at the top of the client area.
  227. xtpFlagAlignBottom = 2,             // Allows docking at the bottom of the client area.
  228. xtpFlagAlignLeft = 4,               // Allows docking on the left side of the client area.
  229. xtpFlagAlignRight = 8,              // Allows docking on the right side of the client area.
  230. xtpFlagAlignAny = xtpFlagAlignTop | xtpFlagAlignBottom | xtpFlagAlignLeft | xtpFlagAlignRight, // Allows docking on any side of the client area.
  231. xtpFlagFloating = 16,               // Allows floating.
  232. xtpFlagHideWrap = 32,               // Allow to hide wrapped controls.
  233. xtpFlagStretched = 64,              // Bar is stretched.
  234. xtpFlagStretchedShared = 0x100000,  // Bar is stretched, but not fill whole row
  235. xtpFlagSmartLayout = 0x200000       // Smart layout enabled
  236. };
  237. //-----------------------------------------------------------------------
  238. // Summary:
  239. //     Enumerated type used to determine menu underlines.
  240. // Example:
  241. // <code>
  242. // pCommandBars->GetCommandBarsOptions()->ShowKeyboardCues(xtpKeyboardCuesShowWindowsDefault);
  243. // </code>
  244. //-----------------------------------------------------------------------
  245. enum XTPKeyboardCuesShow
  246. {
  247. xtpKeyboardCuesShowAlways,          // Show keyboard cues always
  248. xtpKeyboardCuesShowNever,           // Never show keyboard cues
  249. xtpKeyboardCuesShowWindowsDefault   // System defined.
  250. };
  251. //-----------------------------------------------------------------------
  252. // Summary:
  253. //     Enumerated type used to determine if menu underlines execute popups.
  254. // Example:
  255. // <code>
  256. // pCommandBars->GetCommandBarsOptions()->keyboardCuesUse = xtpKeyboardCuesUseAll;
  257. // </code>
  258. //-----------------------------------------------------------------------
  259. enum XTPKeyboardCuesUse
  260. {
  261. xtpKeyboardCuesUseMenuOnly      = 0, // Activate only menu by using underlines
  262. xtpKeyboardCuesUseAll           = 1, // Activate menu and tool bars by using underlines
  263. xtpKeyboardCuesUseNone          = 2, // No using underlines
  264. xtpKeyboardCuesUseAmpersandOnly = 4  // Activates menu items with ampersand only (by default first character used if no ampersand found)
  265. };
  266. //-----------------------------------------------------------------------
  267. // Summary:
  268. //     Enumerated type used to determine the animation effect of popup bars.
  269. // Example:
  270. //     <code> pCommandBars->GetCommandBarsOptions()->animationType = xtpAnimateSlide; </code>
  271. // See Also: CXTPCommandBarsOptions, CXTPCommandBarsOptions::animationType
  272. //
  273. // <KEYWORDS xtpAnimateWindowsDefault, xtpAnimateRandom, xtpAnimateUnfold, xtpAnimateSlide, xtpAnimateFade, xtpAnimateNone>
  274. //-----------------------------------------------------------------------
  275. enum XTPAnimationType
  276. {
  277. xtpAnimateWindowsDefault,   // As defined in the "Display" settings.
  278. xtpAnimateRandom,           // Any of the first three in random selection.
  279. xtpAnimateUnfold,           // Unfold top to bottom.
  280. xtpAnimateSlide,            // Slide in from left.
  281. xtpAnimateFade,             // Fade-in.
  282. xtpAnimateNone              // No animation.
  283. };
  284. //-----------------------------------------------------------------------
  285. // Summary:
  286. //     Docking direction enumerator.
  287. // See Also: CXTPPopupBar, CXTPPopupBar::m_popupFlags
  288. //
  289. // <KEYWORDS xtpPopupRight, xtpPopupLeft, xtpPopupDown>
  290. //-----------------------------------------------------------------------
  291. enum XTPPopupDirection
  292. {
  293. xtpPopupRight = 0,          // Popup Bar will be opened right of control.
  294. xtpPopupLeft  = 1,          // Popup Bar will be opened left of control.
  295. xtpPopupDown  = 2,          // Popup Bar will be opened bottom of control.
  296. xtpPopupUp    = 4           // Popup Bar will be opened top of control.
  297. };
  298. //-----------------------------------------------------------------------
  299. // Summary:
  300. //     Special keys enumerator.
  301. // Remarks:
  302. //     See CXTPCommandBar::ProcessSpecialKey for details.
  303. // See Also: CXTPCommandBar, CXTPCommandBar::ProcessSpecialKey
  304. //
  305. // <KEYWORDS xtpKeyNext, xtpKeyPrev, xtpKeyBack, xtpKeyPopup, xtpKeyEscape, xtpKeyReturn, xtpKeyHome, xtpKeyEnd>
  306. //-----------------------------------------------------------------------
  307. enum XTPSpecialKey
  308. {
  309. xtpKeyNext,             // Select next key
  310. xtpKeyPrev,             // Select previous key
  311. xtpKeyBack,             // Close active popup key
  312. xtpKeyPopup,            // Open selected popup key
  313. xtpKeyEscape,           // Escape key
  314. xtpKeyReturn,           // Return key
  315. xtpKeyHome,             // Select firs key
  316. xtpKeyEnd,              // Select last key
  317. xtpKeyLeft,             // Select left
  318. xtpKeyRight,            // Select right
  319. xtpKeySpace             // Space
  320. };
  321. //-----------------------------------------------------------------------
  322. // Summary:
  323. //     Flags for idle routine
  324. // Example:
  325. //     <code>pToolBar->DelayRedraw();</code>
  326. // See Also: CXTPCommandBar::DelayRedraw, CXTPCommandBar::DelayLayout
  327. //
  328. // <KEYWORDS xtpIdleLayout, xtpIdleRedraw>
  329. //-----------------------------------------------------------------------
  330. enum XTPIdleFlags
  331. {
  332. xtpIdleLayout = 1,         // Delay recalculate layout of command bar
  333. xtpIdleRedraw = 2          // Delay redraw.command bar.
  334. };
  335. #include "XTPCommandBars.inl"
  336. #include "Common/XTPPropExchange.inc"
  337. //-----------------------------------------------------------------------
  338. // Summary:
  339. //     Base message for CommandBars
  340. //-----------------------------------------------------------------------
  341. const UINT WM_XTP_COMMANDBARS_BASE = (WM_USER + 9300);
  342. //-----------------------------------------------------------------------
  343. // Summary:
  344. //     The WM_XTP_TOOLBARVISIBLECHANGED is sent to the CXTPCommandBars site
  345. //     when the user show/hide a toolbar object
  346. // Parameters:
  347. //     pToolBar - (CXTPToolBar*)wParam - pointer to toolbar.
  348. // Example:
  349. //     Here is an example of how an application would process the WM_XTP_TOOLBARVISIBLECHANGED
  350. //     message.
  351. // <code>
  352. // BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
  353. //     //{{AFX_MSG_MAP(CMainFrame)
  354. //     ON_MESSAGE(WM_XTP_TOOLBARVISIBLECHANGED, OnToolBarVisibleChanged)
  355. //     //}}AFX_MSG_MAP
  356. // END_MESSAGE_MAP()
  357. //
  358. // LRESULT CMainFrame::OnToolBarVisibleChanged(WPARAM wParam, LPARAM lParam)
  359. // {
  360. //     UNUSED_ALWAYS(lParam);
  361. //     CXTPToolBar* pToolBar = (CXTPToolBar*)wParam;
  362. //
  363. //     return 0;
  364. // }
  365. // </code>
  366. // See Also: CXTPToolBar
  367. //-----------------------------------------------------------------------
  368. const UINT WM_XTP_TOOLBARVISIBLECHANGED = (WM_XTP_COMMANDBARS_BASE + 1);
  369. //-----------------------------------------------------------------------
  370. // Summary:
  371. //     The WM_XTP_CONTROLSELECTED is sent to the CXTPCommandBars site
  372. //     when the user selects a CXTPCommandBar item
  373. // Parameters:
  374. //     pControl - (CXTPControl*)wParam - pointer to selected item.
  375. // Remarks:
  376. //     pControl parameter is NULL when the user remove mouse pointer from selected item.
  377. // Example:
  378. //     Here is an example of how an application would process the WM_XTP_CONTROLSELECTED
  379. //     message.
  380. // <code>
  381. // BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
  382. //     //{{AFX_MSG_MAP(CMainFrame)
  383. //     ON_MESSAGE(WM_XTP_CONTROLSELECTED, OnControlSelected)
  384. //     //}}AFX_MSG_MAP
  385. // END_MESSAGE_MAP()
  386. //
  387. // LRESULT CMainFrame::OnControlSelected(WPARAM wParam, LPARAM lParam)
  388. // {
  389. //     UNUSED_ALWAYS(lParam);
  390. //     CXTPControl* pControl = (CXTPControl*)wParam;
  391. //
  392. //     return 0;
  393. // }
  394. // </code>
  395. // See Also: CXTPControl, CXTPCommandBar
  396. //-----------------------------------------------------------------------
  397. const UINT WM_XTP_CONTROLSELECTED = (WM_XTP_COMMANDBARS_BASE + 2);
  398. //-----------------------------------------------------------------------
  399. // Summary:
  400. //     The WM_XTP_DRAGCONTROLCHANGED is sent to the CXTPCommandBars site when user select button of toolbar
  401. //     in customization mode
  402. // Example:
  403. //     Here is an example of how an application would process the WM_XTP_DRAGCONTROLCHANGED
  404. //     message.
  405. // <code>
  406. // BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
  407. //     //{{AFX_MSG_MAP(CMainFrame)
  408. //     ON_MESSAGE_VOID(WM_XTP_DRAGCONTROLCHANGED, OnDragControlChanged)
  409. //     //}}AFX_MSG_MAP
  410. // END_MESSAGE_MAP()
  411. //
  412. // void CMainFrame::OnDragControlChanged()
  413. // {
  414. //     CXTPControl* pControl = GetCommandBars()->GetDragControl();
  415. // }
  416. // </code>
  417. // See Also: CXTPCommandBars::GetDragControl, CXTPCommandBars::SetCustomizeMode
  418. //-----------------------------------------------------------------------
  419. const UINT WM_XTP_DRAGCONTROLCHANGED = (WM_XTP_COMMANDBARS_BASE + 3);
  420. //-----------------------------------------------------------------------
  421. // Summary:
  422. //     The WM_XTP_INITMENU is sent to the CXTPCommandBars site when menu is about to become active.
  423. //     It occurs when the user clicks an item on the menu bar or presses a menu key.
  424. //     This allows the application to modify the menu before it is displayed.
  425. // Parameters:
  426. //     pMenuBar - (CXTPMenuBar*)wParam - pointer to CXTPMenuBar object to be initialized.
  427. // Returns:
  428. //     If an application processes this message, it should return zero.
  429. // Example:
  430. //     Here is an example of how an application would process the WM_XTP_INITMENU
  431. //     message.
  432. // <code>
  433. // BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
  434. //     //{{AFX_MSG_MAP(CMainFrame)
  435. //     ON_MESSAGE(WM_XTP_INITMENU, OnInitMenu)
  436. //     //}}AFX_MSG_MAP
  437. // END_MESSAGE_MAP()
  438. //
  439. // LRESULT CMainFrame::OnInitMenu(WPARAM wParam, LPARAM lParam)
  440. // {
  441. //     UNUSED_ALWAYS(lParam);
  442. //     CXTPMenuBar* pMenuBar = (CXTPMenuBar*)wParam;
  443. //
  444. //     return 0;
  445. // }
  446. // </code>
  447. // See Also: CXTPCommandBars, CXTPMenuBar
  448. //-----------------------------------------------------------------------
  449. const UINT WM_XTP_INITMENU = (WM_XTP_COMMANDBARS_BASE + 4);
  450. //-----------------------------------------------------------------------
  451. // Summary:
  452. //     The WM_XTP_CONTROLRBUTTONUP is sent to the CXTPCommandBars site when menu user press right
  453. //     button in command bar control.
  454. // Parameters:
  455. //     pPoint - (LPPOINT)wParam - Cursor position
  456. //     pControl - (CXTPControl*)lParam - Selected control.
  457. // Returns:
  458. //     If an application processes this message, it should return TRUE.
  459. // Example:
  460. //     Here is an example of how an application would process the WM_XTP_CONTROLRBUTTONUP
  461. //     message.
  462. // <code>
  463. // BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
  464. //     //{{AFX_MSG_MAP(CMainFrame)
  465. //     ON_MESSAGE(WM_XTP_CONTROLRBUTTONUP, OnControlRButtonUp)
  466. //     //}}AFX_MSG_MAP
  467. // END_MESSAGE_MAP()
  468. //
  469. // LRESULT CMainFrame::OnControlRButtonUp(WPARAM wParam, LPARAM lParam)
  470. // {
  471. //      CXTPControl* pControl = (CXTPControl*)lParam;
  472. //      if (pControl->GetID() == ID_FAVORITE_LINK)
  473. //      {
  474. //          CControlFavoriteLink* pLink = DYNAMIC_DOWNCAST(CControlFavoriteLink, pControl);
  475. //          if (!pLink)
  476. //               return FALSE;
  477. //
  478. //          CMenu menu;
  479. //          menu.LoadMenu(IDR_MENU_FAVORITE_LINK);
  480. //
  481. //          CPoint pt;
  482. //          GetCursorPos(&pt);
  483. //
  484. //          UINT nReturn = CXTPCommandBars::TrackPopupMenu(menu.GetSubMenu(0), TPM_NONOTIFY | TPM_RECURSE | TPM_RETURNCMD, pt.x, pt.y, this);
  485. //
  486. //          switch (nReturn)
  487. //          {
  488. //              ....
  489. //          }
  490. //          return TRUE;
  491. //      }
  492. //      return FALSE;
  493. // }
  494. // </code>
  495. // See Also: CXTPCommandBar, CXTPControl
  496. //-----------------------------------------------------------------------
  497. const UINT WM_XTP_CONTROLRBUTTONUP = (WM_XTP_COMMANDBARS_BASE + 5);
  498. //-----------------------------------------------------------------------
  499. // Summary:
  500. //     The WM_XTP_COMMANDBARKEYDOWN is sent to the CXTPCommandBars site when user press key
  501. // Parameters:
  502. //     pChar - (UINT*)wParam - pointer to UINT containing pressed key
  503. //     pCommandBar - (CXTPCommandBar*)lParam - pointer to CXTPCommandBar object
  504. // Example:
  505. //     Here is an example of how an application would process the WM_XTP_COMMANDBARKEYDOWN
  506. //     message.
  507. // <code>
  508. // BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
  509. //     //{{AFX_MSG_MAP(CMainFrame)
  510. //     ON_MESSAGE(WM_XTP_COMMANDBARKEYDOWN, OnCommandBarKeyDown)
  511. //     //}}AFX_MSG_MAP
  512. // END_MESSAGE_MAP()
  513. //
  514. // LRESULT CMainFrame::OnCommandBarKeyDown(WPARAM wParam, LPARAM lParam)
  515. // {
  516. //     UINT* pChar = (UINT*)wParam;
  517. //
  518. //     return 0;
  519. // }
  520. // </code>
  521. // See Also: CXTPCommandBar
  522. //-----------------------------------------------------------------------
  523. const UINT WM_XTP_COMMANDBARKEYDOWN = (WM_XTP_COMMANDBARS_BASE + 6);
  524. //-----------------------------------------------------------------------
  525. // Summary:
  526. //     The WM_XTP_INITCOMMANDSPOPUP is sent to the CXTPCommandBars site when a pop-up menu
  527. //     is about to become active
  528. // Parameters:
  529. //     pPopupBar - Pointer to drop-down menu.
  530. // Example:
  531. //     Here is an example of how an application would process the WM_XTP_INITCOMMANDSPOPUP
  532. //     message.
  533. // <code>
  534. // BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
  535. //     //{{AFX_MSG_MAP(CMainFrame)
  536. //     ON_XTP_INITCOMMANDSPOPUP()
  537. //     //}}AFX_MSG_MAP
  538. // END_MESSAGE_MAP()
  539. //
  540. // void CMainFrame::OnInitCommandsPopup(CXTPPopupBar* pPopupBar)
  541. // {
  542. //     // get the list of commands for the popup.
  543. //     CXTPControls* pControls = pPopupBar->GetControls();
  544. // }
  545. // </code>
  546. // See Also: WM_XTP_UNINITCOMMANDSPOPUP, CXTPPopupBar
  547. //-----------------------------------------------------------------------
  548. const UINT WM_XTP_INITCOMMANDSPOPUP = (WM_XTP_COMMANDBARS_BASE + 7);
  549. //-----------------------------------------------------------------------
  550. // Summary:
  551. //     The WM_XTP_TOOLBARCONTEXTMENU is sent to the CXTPCommandBars site when context menu is about to become visible
  552. // Parameters:
  553. //     pToolBar - (CXTPToolBar*)wParam - Toolbar under cursor; or NULL if clicked docking bar.
  554. //     pPopup - (CXTPPopupBar*)lParam - Popup bar with context menu.
  555. // Example:
  556. //     Here is an example of how an application would process the WM_XTP_TOOLBARCONTEXTMENU
  557. //     message.
  558. // <code>
  559. // BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
  560. //     //{{AFX_MSG_MAP(CMainFrame)
  561. //     ON_MESSAGE(WM_XTP_TOOLBARCONTEXTMENU, OnToolbarContextMenu)
  562. //     //}}AFX_MSG_MAP
  563. // END_MESSAGE_MAP()
  564. //
  565. // LRESULT CMainFrame::OnToolbarContextMenu(WPARAM wParam, LPARAM lParam)
  566. // {
  567. //     CXTPToolBar* pToolBar = (CXTPToolBar*)wParam;
  568. //     CXTPPopupBar* pPopup = (CXTPPopupBar*)lParam;
  569. //
  570. //     pPopupBar->GetControls()->RemoveAll();
  571. //
  572. //     return TRUE;
  573. // }
  574. // </code>
  575. // See Also: CXTPPopupBar, CXTPControls
  576. //-----------------------------------------------------------------------
  577. const UINT WM_XTP_TOOLBARCONTEXTMENU = (WM_XTP_COMMANDBARS_BASE + 8);
  578. //<ALIAS WM_XTP_INITCOMMANDSPOPUP>
  579. #define ON_XTP_INITCOMMANDSPOPUP()
  580. //{{AFX_CODEJOCK_PRIVATE
  581. #undef ON_XTP_INITCOMMANDSPOPUP
  582. #define ON_XTP_INITCOMMANDSPOPUP()
  583. { WM_XTP_INITCOMMANDSPOPUP, 0, 0, 0, AfxSig_vs, 
  584. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CXTPPopupBar*))&OnInitCommandsPopup } ,
  585. //}}AFX_CODEJOCK_PRIVATE
  586. //-----------------------------------------------------------------------
  587. // Summary:
  588. //     The WM_XTP_UNINITCOMMANDSPOPUP is sent to the CXTPCommandBars site when a pop-up
  589. //     menu has been closed.
  590. // Parameters:
  591. //     pPopupBar - Pointer to drop-down menu.
  592. // Example:
  593. //     Here is an example of how an application would process the WM_XTP_UNINITCOMMANDSPOPUP
  594. //     message.
  595. // <code>
  596. // BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
  597. //     //{{AFX_MSG_MAP(CMainFrame)
  598. //     ON_XTP_UNINITCOMMANDSPOPUP()
  599. //     //}}AFX_MSG_MAP
  600. // END_MESSAGE_MAP()
  601. //
  602. // void CMainFrame::OnUninitCommandsPopup(CXTPPopupBar* pPopupBar)
  603. // {
  604. //     // get the list of commands for the popup.
  605. //     CXTPControls* pControls = pPopupBar->GetControls();
  606. // }
  607. // </code>
  608. // See Also: ON_XTP_INITCOMMANDSPOPUP
  609. //-----------------------------------------------------------------------
  610. const UINT WM_XTP_UNINITCOMMANDSPOPUP = (WM_XTP_COMMANDBARS_BASE + 9);
  611. //<ALIAS WM_XTP_UNINITCOMMANDSPOPUP>
  612. #define ON_XTP_UNINITCOMMANDSPOPUP()
  613. //{{AFX_CODEJOCK_PRIVATE
  614. #undef ON_XTP_UNINITCOMMANDSPOPUP
  615. #define ON_XTP_UNINITCOMMANDSPOPUP()
  616. { WM_XTP_UNINITCOMMANDSPOPUP, 0, 0, 0, AfxSig_vs, 
  617. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CXTPPopupBar*))&OnUninitCommandsPopup } ,
  618. //}}AFX_CODEJOCK_PRIVATE
  619. //-----------------------------------------------------------------------
  620. // Summary:
  621. //     This structure is passed as parameter in CBN_XTP_EXECUTE message.
  622. // Remarks:
  623. //     See description of CBN_XTP_EXECUTE  for details.
  624. // See Also: CBN_XTP_EXECUTE
  625. //-----------------------------------------------------------------------
  626. typedef struct
  627. {
  628. NMHDR   hdr;            // NMHDR structure that contains additional information about this notification.
  629. CXTPControl* pControl;  // Pointer to control that caused the event.
  630. }
  631. NMXTPCONTROL, FAR* LPNMXTPCONTROL;
  632. //-----------------------------------------------------------------------
  633. // Summary:
  634. //     The CBN_XTP_EXECUTE is sent to the CXTPCommandBars site when user click item of CXTPCommandBar object
  635. // Parameters:
  636. //     id -         ID of control was clicked.
  637. //     memberFxn -  Name of member function to handle the message.
  638. // Remarks:
  639. //     Use ON_COMMAND to map a single command to a member function if you don't need exact control that caused the event.
  640. //     Use ON_COMMAND_RANGE or ON_XTP_EXECUTE_RANGE to map a range of command ids to one member function.
  641. //     <p/>
  642. //     If you don't set *pResult = 1 then WM_COMMAND also will be sent for this event.
  643. // Example:
  644. //     Here is an example of how an application would process the CBN_XTP_EXECUTE
  645. //     message.
  646. // <code>
  647. // BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
  648. //     //{{AFX_MSG_MAP(CMainFrame)
  649. //     ON_XTP_EXECUTE(ID_TOOLS_TOOLITEM, OnToolsItem)
  650. //     //}}AFX_MSG_MAP
  651. // END_MESSAGE_MAP()
  652. //
  653. // void CMainFrame::OnToolsItem(NMHDR* pNMHDR, LRESULT* pResult)
  654. // {
  655. //      CXTPControl* pControl = ((NMXTPCONTROL*)pNMHDR)->pControl;
  656. //
  657. //      CToolRec* pTool = (CToolRec*)pControl->GetTag();
  658. //
  659. //      if (!pTool)
  660. //          return;
  661. //
  662. //      CString strArg = pTool->m_strArg;
  663. //      CString strDir = pTool->m_strDir;
  664. //
  665. //      // launch the process.
  666. //      ::ShellExecute(NULL, _T("open"), pTool->m_strCmd, strArg, strDir, SW_SHOW);
  667. //
  668. //      *pResult = 1;
  669. // }
  670. // </code>
  671. // See Also: CXTPControl, NMXTPCONTROL
  672. //-----------------------------------------------------------------------
  673. const UINT CBN_XTP_EXECUTE = 100;
  674. //<ALIAS CBN_XTP_EXECUTE>
  675. #define ON_XTP_EXECUTE(id, memberFxn)
  676. //{{AFX_CODEJOCK_PRIVATE
  677. #undef ON_XTP_EXECUTE
  678. #define ON_XTP_EXECUTE(id, memberFxn) 
  679. ON_NOTIFY(CBN_XTP_EXECUTE, id, memberFxn)
  680. //}}AFX_CODEJOCK_PRIVATE
  681. //<ALIAS CBN_XTP_EXECUTE>
  682. #define ON_XTP_EXECUTE_RANGE(id, idLast, memberFxn)
  683. //{{AFX_CODEJOCK_PRIVATE
  684. #undef ON_XTP_EXECUTE_RANGE
  685. #define ON_XTP_EXECUTE_RANGE(id, idLast, memberFxn) 
  686. ON_NOTIFY_EX_RANGE(CBN_XTP_EXECUTE, id, idLast, memberFxn)
  687. //}}AFX_CODEJOCK_PRIVATE
  688. //-------------------------------------------------------------------------
  689. // Summary:
  690. //     Create control structure.
  691. // Remarks:
  692. //     This structure contains extended information about CXTPControl object to be created.
  693. //     CXTPCommandBars sent XTP_COMMANDBARS_CREATECONTROL message to owner site when new CXTPControl object
  694. //     is about to become created.
  695. // See Also: WM_XTP_CREATECONTROL
  696. //-------------------------------------------------------------------------
  697. typedef struct
  698. {
  699. UINT nID;                       // Identifier of the control to be created.
  700. CXTPControl* pControl;          // Control to be created.
  701. BOOL bToolBar;                  // TRUE if control is toolbar located.
  702. int nIndex;                     // Index of the control to be created.
  703. CMenu* pMenu;                   // A Pointer to CMenu object.
  704. CXTPCommandBar* pCommandBar;    // Pointer to the parent command bar class.
  705. CString strCaption;             // Caption of the control to be created.
  706. XTPControlType controlType;     // Type of the control.
  707. XTPButtonStyle buttonStyle;     // Button Style of the control.
  708. }
  709. XTP_COMMANDBARS_CREATECONTROL, FAR* LPCREATECONTROLSTRUCT;
  710. //-----------------------------------------------------------------------
  711. // Summary:
  712. //     The WM_XTP_BEFORECREATECONTROL is sent to the CXTPCommandBars site when new CXTPControl object
  713. //     is created.
  714. // Parameters:
  715. //     lpCreateControl - Pointer to XTP_COMMANDBARS_CREATECONTROL structure with information about control to be created.
  716. // Returns:
  717. //     If an application processes this message, it should return TRUE.
  718. // Example:
  719. //     Here is an example of how an application would process the WM_XTP_BEFORECREATECONTROL
  720. //     message.
  721. // <code>
  722. // BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
  723. //     //{{AFX_MSG_MAP(CMainFrame)
  724. //     ON_XTP_CREATECONTROL()
  725. //     //}}AFX_MSG_MAP
  726. // END_MESSAGE_MAP()
  727. //
  728. // int CMainFrame::OnCreateControl(LPCREATECONTROLSTRUCT lpCreateControl)
  729. // {
  730. //      if (lpCreateControl->nID == ID_BDR_NONE)
  731. //      {
  732. //           lpCreateControl->controlType = xtpControlSplitButtonPopup;
  733. //           return TRUE;
  734. //      }
  735. //      return FALSE
  736. // }
  737. // </code>
  738. // See Also: XTP_COMMANDBARS_CREATECONTROL, CXTPControl, WM_XTP_AFTERCREATECONTROL
  739. //-----------------------------------------------------------------------
  740. const UINT WM_XTP_BEFORECREATECONTROL = (WM_XTP_COMMANDBARS_BASE + 10);
  741. //<ALIAS WM_XTP_BEFORECREATECONTROL>
  742. #define ON_XTP_CREATECONTROL()
  743. //{{AFX_CODEJOCK_PRIVATE
  744. #undef ON_XTP_CREATECONTROL
  745. #define ON_XTP_CREATECONTROL()
  746. { WM_XTP_BEFORECREATECONTROL, 0, 0, 0, AfxSig_is, 
  747. (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(LPCREATECONTROLSTRUCT))&OnCreateControl } ,
  748. //}}AFX_CODEJOCK_PRIVATE
  749. //-----------------------------------------------------------------------
  750. // Summary:
  751. //     The WM_XTP_AFTERCREATECONTROL is sent to the CXTPCommandBars site after new CXTPControl object
  752. //     is created.
  753. // Parameters:
  754. //     lpCreateControl - Pointer to XTP_COMMANDBARS_CREATECONTROL structure with information about control to be created.
  755. // Returns:
  756. //     If an application processes this message, it should return TRUE.
  757. // Example:
  758. //     Here is an example of how an application would process the WM_XTP_AFTERCREATECONTROL
  759. //     message.
  760. // <code>
  761. // BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
  762. //     //{{AFX_MSG_MAP(CMainFrame)
  763. //     ON_XTP_AFTERCREATECONTROL()
  764. //     //}}AFX_MSG_MAP
  765. // END_MESSAGE_MAP()
  766. //
  767. // void CMainFrame::OnAfterCreateControl(LPCREATECONTROLSTRUCT lpCreateControl)
  768. // {
  769. //      ASSERT(lpCreateControl->pControl);
  770. //
  771. //      if (lpCreateControl->nID == ID_BDR_NONE)
  772. //      {
  773. //           lpCreateControl->pControl->SetCaption(_T("None"));
  774. //           return;
  775. //      }
  776. // }
  777. // </code>
  778. // See Also: XTP_COMMANDBARS_CREATECONTROL, CXTPControl, WM_XTP_BEFORECREATECONTROL
  779. //-----------------------------------------------------------------------
  780. const UINT WM_XTP_AFTERCREATECONTROL = (WM_XTP_COMMANDBARS_BASE + 11);
  781. //<ALIAS WM_XTP_AFTERCREATECONTROL>
  782. #define ON_XTP_AFTERCREATECONTROL()
  783. //{{AFX_CODEJOCK_PRIVATE
  784. #undef ON_XTP_AFTERCREATECONTROL
  785. #define ON_XTP_AFTERCREATECONTROL()
  786. { WM_XTP_AFTERCREATECONTROL, 0, 0, 0, AfxSig_vs, 
  787. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(LPCREATECONTROLSTRUCT))&OnAfterCreateControl } ,
  788. //}}AFX_CODEJOCK_PRIVATE
  789. //-----------------------------------------------------------------------
  790. // Summary:
  791. //     The WM_XTP_GETTABICON message is sent to MDI child window to retrieve icon will be used for
  792. //     tabbed interface.
  793. // Remarks:
  794. //     If application returns 0, CDocument::GetTitle will be used.You can override
  795. //     CXTPTabClientWnd::GetItemIcon instead of process the message.
  796. // Returns:
  797. //     ICON handle to be used.
  798. // Example:
  799. //     Here is an example of how an application would process the WM_XTP_GETTABICON
  800. //     message.
  801. // <code>
  802. // BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd)
  803. //     //{{AFX_MSG_MAP(CChildFrame)
  804. //     ON_MESSAGE(WM_XTP_GETTABICON, OnGetTabIcon)
  805. //     //}}AFX_MSG_MAP
  806. // END_MESSAGE_MAP()
  807. //
  808. // LRESULT CChildFrame::OnGetTabIcon(WPARAM /*wParam*/, LPARAM /*lParam*/)
  809. // {
  810. //     HICON hIcon = m_bLoading ? m_hIconLoading : m_hIconNormal;
  811. //     return (LRESULT)hIcon;
  812. // }
  813. // </code>
  814. // See Also: CXTPTabClientWnd, WM_XTP_GETWINDOWTEXT, WM_XTP_GETWINDOWTOOLTIP
  815. //-----------------------------------------------------------------------
  816. const UINT WM_XTP_GETTABICON = (WM_XTP_COMMANDBARS_BASE + 12);
  817. //-------------------------------------------------------------------------
  818. // Summary:
  819. //     Create bar structure
  820. // Remarks:
  821. //     This structure contains extended information about bar to be created.
  822. //     CXTPCommandBars sent XTP_COMMANDBARS_CREATEBAR message to owner site when new CXTPCommandBar object
  823. //     is about to become created.
  824. // See Also: WM_XTP_CREATECOMMANDBAR
  825. //-------------------------------------------------------------------------
  826. typedef struct
  827. {
  828. CXTPCommandBar* pCommandBar;    // Created command bar.
  829. BOOL bPopup;                    // TRUE if it is a popup command bar,
  830. BOOL bExpandBar;                // TRUE if it is an expanded popup.
  831. BOOL bCustomBar;                // TRUE if it is a user defined toolbar.
  832. BOOL bTearOffBar;               // TRUE if it is a user tear-off popup.
  833. LPCTSTR lpcstrCaption;          // Caption of the command bar.
  834. UINT nID;                       // Identifier of the command bar.
  835. }
  836. XTP_COMMANDBARS_CREATEBAR, FAR* LPCREATEBARSTRUCT;
  837. //-----------------------------------------------------------------------
  838. // Summary:
  839. //     The WM_XTP_CREATECOMMANDBAR is sent to the CXTPCommandBars site when new CXTPCommandBars object
  840. //     is created.
  841. // Parameters:
  842. //     lpCreateBar - Pointer to XTP_COMMANDBARS_CREATEBAR structure with information about bar to be created.
  843. // Returns:
  844. //     If an application processes this message, it should return TRUE.
  845. // Example:
  846. //     Here is an example of how an application would process the WM_XTP_CREATECOMMANDBAR
  847. //     message.
  848. // <code>
  849. // BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
  850. //     //{{AFX_MSG_MAP(CMainFrame)
  851. //     ON_XTP_CREATECOMMANDBAR()
  852. //     //}}AFX_MSG_MAP
  853. // END_MESSAGE_MAP()
  854. //
  855. // int CMainFrame::OnCreateCommandBar(LPCREATEBARSTRUCT lpCreateBar)
  856. // {
  857. //     if (lpCreateBar->bPopup && _tcscmp(lpCreateBar->lpcstrCaption, _T("Find")) == 0)
  858. //     {
  859. //
  860. //         CXTPPopupBar* pPopupBar = CXTPPopupBar::CreatePopupBar(GetCommandBars());
  861. //         pPopupBar->SetTearOffPopup(_T("Find Bar"), 1000);
  862. //         lpCreateBar->pCommandBar = pPopupBar;
  863. //         return TRUE;
  864. //     }
  865. //     return FALSE
  866. // }
  867. // </code>
  868. // See Also: XTP_COMMANDBARS_CREATEBAR, CXTPCommandBar
  869. //-----------------------------------------------------------------------
  870. const UINT WM_XTP_CREATECOMMANDBAR = (WM_XTP_COMMANDBARS_BASE + 13);
  871. //<ALIAS WM_XTP_CREATECOMMANDBAR>
  872. #define ON_XTP_CREATECOMMANDBAR()
  873. //{{AFX_CODEJOCK_PRIVATE
  874. #undef ON_XTP_CREATECOMMANDBAR
  875. #define ON_XTP_CREATECOMMANDBAR()
  876. { WM_XTP_CREATECOMMANDBAR, 0, 0, 0, AfxSig_is, 
  877. (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(LPCREATEBARSTRUCT))&OnCreateCommandBar} ,
  878. //}}AFX_CODEJOCK_PRIVATE
  879. //-----------------------------------------------------------------------
  880. // Summary:
  881. //     This macro generates the C++ header code necessary for a CXTPControl-derived class that can be serialized.
  882. // Parameters:
  883. //     class_name - The actual name of the class (not enclosed in quotation marks).
  884. // Remarks:
  885. //     Use the DECLARE_XTP_CONTROL macro in a .H module, then include that module in all .CPP modules
  886. //     that need access to objects of this class.
  887. //     <p/>
  888. //     If DECLARE_XTP_CONTROL is included in the class declaration, then IMPLEMENT_XTP_CONTROL must be
  889. //     included in the class implementation.
  890. //     <p/>
  891. //     The DECLARE_XTP_CONTROL macro includes all the functionality of DECLARE_SERIAL, DECLARE_DYNAMIC and DECLARE_DYNCREATE.
  892. //
  893. // Example:
  894. // <code>
  895. // class CBitmapControl: public CXTPControl
  896. // {
  897. //     DECLARE_XTP_CONTROL(CBitmapControl)
  898. //
  899. // public:
  900. //     CBitmapControl();
  901. //
  902. // };
  903. // </code>
  904. // See Also: IMPLEMENT_XTP_CONTROL, DECLARE_XTP_COMMANDBAR
  905. //-----------------------------------------------------------------------
  906. #define DECLARE_XTP_CONTROL(class_name)
  907. //{{AFX_CODEJOCK_PRIVATE
  908. #undef DECLARE_XTP_CONTROL
  909. #define DECLARE_XTP_CONTROL(class_name) 
  910. DECLARE_SERIAL(class_name)
  911. virtual CXTPControl* Clone(BOOL bRecursive);
  912. //}}AFX_CODEJOCK_PRIVATE
  913. //-----------------------------------------------------------------------
  914. // Summary:
  915. //     This macro generates the C++ code necessary for a CXTPControl-derived class that can be serialized.
  916. // Parameters:
  917. //     class_name      - The actual name of the class (not enclosed in quotation marks).
  918. //     base_class_name - The name of the base class (not enclosed in quotation marks).
  919. // Remarks:
  920. //     Use the IMPLEMENT_XTP_CONTROL macro in a .CPP module; then link the resulting object code only once.
  921. // Example:
  922. // <code>
  923. // // BitmapControl.cpp
  924. // #include "stdafx.h"
  925. // #include "BitmapControl.h"
  926. //
  927. // IMPLEMENT_XTP_CONTROL(CBitmapControl, CXTPControl)
  928. // </code>
  929. // See Also: DECLARE_XTP_CONTROL, DECLARE_XTP_COMMANDBAR
  930. //-----------------------------------------------------------------------
  931. #define IMPLEMENT_XTP_CONTROL(class_name, base_class_name)
  932. //{{AFX_CODEJOCK_PRIVATE
  933. #undef IMPLEMENT_XTP_CONTROL
  934. #define IMPLEMENT_XTP_CONTROL(class_name, base_class_name) 
  935. IMPLEMENT_SERIAL(class_name, base_class_name, VERSIONABLE_SCHEMA | _XTP_SCHEMA_CURRENT)
  936. CXTPControl* class_name::Clone(BOOL bRecursive) {
  937. class_name* pButton = (class_name*)class_name::CreateObject();
  938. pButton->Copy(this, bRecursive);
  939. return pButton;
  940. }
  941. //}}AFX_CODEJOCK_PRIVATE
  942. //-----------------------------------------------------------------------
  943. // Summary:
  944. //     This macro generates the C++ header code necessary for a CXTPCommandBar-derived class that can be serialized.
  945. // Parameters:
  946. //     class_name - The actual name of the class (not enclosed in quotation marks).
  947. // Remarks:
  948. //     Use the DECLARE_XTP_COMMANDBAR macro in a .H module, then include that module in all .CPP modules
  949. //     that need access to objects of this class.
  950. //     <p/>
  951. //     If DECLARE_XTP_COMMANDBAR is included in the class declaration, then IMPLEMENT_XTP_COMMANDBAR must be
  952. //     included in the class implementation.
  953. //     <p/>
  954. //     The DECLARE_XTP_COMMANDBAR macro includes all the functionality of DECLARE_SERIAL, DECLARE_DYNAMIC and DECLARE_DYNCREATE.
  955. //
  956. // Example:
  957. // <code>
  958. // class CToolPopupBar: public CXTPPopupBar
  959. // {
  960. //     DECLARE_XTP_COMMANDBAR(CToolPopupBar)
  961. //
  962. // public:
  963. //     CToolPopupBar();
  964. //
  965. // };
  966. // </code>
  967. // See Also: IMPLEMENT_XTP_COMMANDBAR, DECLARE_XTP_CONTROL
  968. //-----------------------------------------------------------------------
  969. #define DECLARE_XTP_COMMANDBAR(class_name)
  970. //{{AFX_CODEJOCK_PRIVATE
  971. #undef DECLARE_XTP_COMMANDBAR
  972. #define DECLARE_XTP_COMMANDBAR(class_name) 
  973. DECLARE_SERIAL(class_name)
  974. virtual CXTPCommandBar* Clone(BOOL bRecursive);
  975. //}}AFX_CODEJOCK_PRIVATE
  976. //-----------------------------------------------------------------------
  977. // Summary:
  978. //     This macro generates the C++ code necessary for a CXTPCommandBar-derived class that can be serialized.
  979. // Parameters:
  980. //     class_name      - The actual name of the class (not enclosed in quotation marks).
  981. //     base_class_name - The name of the base class (not enclosed in quotation marks).
  982. // Remarks:
  983. //     Use the IMPLEMENT_XTP_COMMANDBAR macro in a .CPP module; then link the resulting object code only once.
  984. // Example:
  985. // <code>
  986. // // ToolPopupBar.cpp
  987. // #include "stdafx.h"
  988. // #include "ToolPopupBar.h"
  989. //
  990. // IMPLEMENT_XTP_COMMANDBAR(CToolPopupBar, CXTPPopupBar)
  991. // ...
  992. // pCommandBars->SetPopupBarClass(RUNTIME_CLASS(CToolPopupBar));
  993. // ...
  994. // </code>
  995. // See Also: DECLARE_XTP_COMMANDBAR, DECLARE_XTP_CONTROL
  996. //-----------------------------------------------------------------------
  997. #define IMPLEMENT_XTP_COMMANDBAR(class_name, base_class_name)
  998. //{{AFX_CODEJOCK_PRIVATE
  999. #undef IMPLEMENT_XTP_COMMANDBAR
  1000. #define IMPLEMENT_XTP_COMMANDBAR(class_name, base_class_name) 
  1001. IMPLEMENT_SERIAL(class_name, base_class_name, VERSIONABLE_SCHEMA | _XTP_SCHEMA_CURRENT)
  1002. CXTPCommandBar* class_name::Clone(BOOL bRecursive) {
  1003. class_name* pCommandBar = (class_name*)class_name::CreateObject();
  1004. pCommandBar->Copy(this, bRecursive);
  1005. return pCommandBar;
  1006. }
  1007. // Internal defines
  1008. #define TRUE_POPUP 2
  1009. #define TRUE_KEYBOARD 2
  1010. #define TRUE_KEYBOARD_NEXT 2
  1011. #define TRUE_KEYBOARD_PREV 3
  1012. #define TRUE_SPLITCOMMAND 4
  1013. #define TRUE_SPLITDROPDOWN 5
  1014. #define XTP_EDITSPIN_UP 4
  1015. #define XTP_EDITSPIN_DOWN 5
  1016. #define FALSE_EXIT 2
  1017. #define LM_HIDEWRAP 0x80
  1018. #define LM_POPUP 0x100
  1019. AFX_INLINE BOOL IsKeyboardSelected(BOOL bSelected) {
  1020. return bSelected == TRUE_KEYBOARD_NEXT || bSelected == TRUE_KEYBOARD_PREV;
  1021. }
  1022. AFX_INLINE BOOL IsControlCommandEnabled(BOOL bEnabled) {
  1023. return bEnabled && bEnabled != TRUE_SPLITDROPDOWN;
  1024. }
  1025. AFX_INLINE BOOL IsControlDropDownEnabled(BOOL bEnabled) {
  1026. return bEnabled && bEnabled != TRUE_SPLITCOMMAND;
  1027. }
  1028. // ActiveX commands
  1029. #define WM_XTP_COMMAND (WM_XTP_COMMANDBARS_BASE + 14)
  1030. #define WM_XTP_UPDATE_COMMAND (WM_XTP_COMMANDBARS_BASE + 15)
  1031. #define WM_XTP_CUSTOMIZATION_RESETTOOLBAR (WM_XTP_COMMANDBARS_BASE + 16)
  1032. #define WM_XTP_CUSTOMIZATION_ADDTOOLBAR (WM_XTP_COMMANDBARS_BASE + 17)
  1033. #define WM_XTP_CUSTOMIZATION_DELETETOOLBAR (WM_XTP_COMMANDBARS_BASE + 18)
  1034. #define WM_XTP_TEAROFFDONE (WM_XTP_COMMANDBARS_BASE + 19)
  1035. #define WM_XTP_DELAYEXECUTE (WM_XTP_COMMANDBARS_BASE + 20)
  1036. #ifndef TPM_RECURSE
  1037. #define TPM_RECURSE         0x0001L
  1038. #endif
  1039. //}}AFX_CODEJOCK_PRIVATE
  1040. #endif //#if !defined(__XTPCOMMANDBARDEFINES_H__)