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

对话框与窗口

开发平台:

Visual C++

  1. // XTPCommandBar.h : interface for the CXTPCommandBar 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(__XTPCOMMANDBAR_H__)
  22. #define __XTPCOMMANDBAR_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER >= 1000
  25. #pragma once
  26. #endif // _MSC_VER >= 1000
  27. #include "Common/XTPSystemHelpers.h"
  28. #include "XTPCommandBarsDefines.h"
  29. #include "Common/XTPHookManager.h"
  30. class CXTPDockBar;
  31. class CXTPControls;
  32. class CXTPControl;
  33. class CXTPControlPopup;
  34. class CXTPCommandBars;
  35. class CXTPCommandBar;
  36. class CXTPCommandBarAnimation;
  37. class CXTPPaintManager;
  38. class CXTPImageManager;
  39. class CXTPPropExchange;
  40. struct XTP_COMMANDBARS_PROPEXCHANGE_PARAM;
  41. class CXTPToolTipContext;
  42. class CXTPCommandBarAnimation;
  43. class CXTPCommandBarKeyboardTip;
  44. //{{AFX_CODEJOCK_PRIVATE
  45. #define XTP_TID_HOVER    112223
  46. #define XTP_TID_EXPANDED_POPUP 112224
  47. #define XTP_BOOL_DEFAULT 2
  48. #define XTP_TID_SHOWKEYBOARDTIPS 0xCCCA
  49. //}}AFX_CODEJOCK_PRIVATE
  50. //===========================================================================
  51. // Summary:
  52. //     CXTPCommandBarList is a CList derived class. It is used as a collection
  53. //     of CXTPCommandBar classes.
  54. //===========================================================================
  55. class _XTP_EXT_CLASS CXTPCommandBarList : public CXTPCmdTarget
  56. {
  57. public:
  58. //-----------------------------------------------------------------------
  59. // Summary:
  60. //     Constructs a CXTPCommandBarList object
  61. // Parameters:
  62. //     pCommandBars - Parent CXTPCommandBars pointer
  63. //-----------------------------------------------------------------------
  64. CXTPCommandBarList(CXTPCommandBars* pCommandBars)
  65. {
  66. m_pCommandBars = pCommandBars;
  67. }
  68. //-----------------------------------------------------------------------
  69. // Summary:
  70. //     Destroys a CXTPCommandBarList object, handles cleanup and
  71. //     deallocation
  72. //-----------------------------------------------------------------------
  73. virtual ~CXTPCommandBarList();
  74. public:
  75. //-----------------------------------------------------------------------
  76. // Summary:
  77. //     Call this member to find the CommandBar with the specified
  78. //     identifier.
  79. // Parameters:
  80. //     nBarID - Identifier CommandBar to find.
  81. // Returns:
  82. //     A pointer to a CXTPCommandBar object.
  83. //-----------------------------------------------------------------------
  84. CXTPCommandBar* FindCommandBar(UINT nBarID) const;
  85. //-----------------------------------------------------------------------
  86. // Summary:
  87. //     Returns Commandbars object attached to list
  88. // Returns:
  89. //     Pointer to CXTPCommandBars parent object
  90. // See Also:
  91. //     CXTPCommandBars, CXTPCommandBar
  92. //-----------------------------------------------------------------------
  93. CXTPCommandBars* GetCommandBars() const { return m_pCommandBars; }
  94. //-----------------------------------------------------------------------
  95. // Summary:
  96. //     Returns CommandBar in list by its index
  97. // Parameters:
  98. //     nIndex - Index of the commandbar to return
  99. // Returns:
  100. //     CommandBar in list by its index
  101. // See Also: GetCount
  102. //-----------------------------------------------------------------------
  103. CXTPCommandBar* GetAt(int nIndex) const;
  104. //-----------------------------------------------------------------------
  105. // Summary:
  106. //     Return count of commanbars in list
  107. // Returns:
  108. //     Commanbars count
  109. // See Also: GetAt
  110. //-----------------------------------------------------------------------
  111. int GetCount() const;
  112. //-----------------------------------------------------------------------
  113. // Summary:
  114. //     Call this method to add new commandbar to the list
  115. // Parameters:
  116. //      pCommandBar - CommandBar to be added
  117. // Returns:
  118. //      Pointer to just added CommandBar
  119. // See Also: GetAt, GetCount
  120. //-----------------------------------------------------------------------
  121. virtual CXTPCommandBar* Add(CXTPCommandBar* pCommandBar);
  122. //-----------------------------------------------------------------------
  123. // Summary:
  124. //     Call this method to check if CommandBar exists in the list
  125. // Parameters:
  126. //      pCommandBar - CommandBar to test
  127. // Returns:
  128. //      TRUE if CommandBar exists in the list
  129. //-----------------------------------------------------------------------
  130. BOOL Lookup(CXTPCommandBar* pCommandBar) const;
  131. //-------------------------------------------------------------------------
  132. // Summary:
  133. //     Call this method to clean the list
  134. // See Also: Remove
  135. //-------------------------------------------------------------------------
  136. void RemoveAll();
  137. //-----------------------------------------------------------------------
  138. // Summary:
  139. //     Call this method to remove CommandBar from the list
  140. // Parameters:
  141. //     pCommandBar - CommandBar to be removed
  142. // See Also: RemoveAll
  143. //-----------------------------------------------------------------------
  144. void Remove(CXTPCommandBar* pCommandBar);
  145. protected:
  146. CXTPCommandBars* m_pCommandBars;            // Parent CXTPCommandBars object
  147. CArray<CXTPCommandBar*, CXTPCommandBar*> m_arrBars;         // Array of CommandBars
  148. };
  149. //===========================================================================
  150. // Summary:
  151. //     CXTPCommandBar is a CWnd derived class. It represents the parent
  152. //     class for command bars.
  153. //===========================================================================
  154. class _XTP_EXT_CLASS CXTPCommandBar : public CWnd, public CXTPHookManagerHookAble, public CXTPAccessible
  155. {
  156. protected:
  157. //-----------------------------------------------------------------------
  158. // Summary:
  159. //     Constructs a CXTPCommandBar object
  160. //-----------------------------------------------------------------------
  161. CXTPCommandBar();
  162. //-----------------------------------------------------------------------
  163. // Summary:
  164. //     Destroys a CXTPCommandBar object, handles cleanup and deallocation
  165. //-----------------------------------------------------------------------
  166. virtual ~CXTPCommandBar();
  167. public:
  168. //-----------------------------------------------------------------------
  169. // Summary:
  170. //     Call this member to get the tracking state.
  171. // Returns:
  172. //     TRUE if the command bar is in the tracking mode.
  173. //-----------------------------------------------------------------------
  174. int IsTrackingMode() const;
  175. //-----------------------------------------------------------------------
  176. // Summary:
  177. //     Call this member to get the controls collection.
  178. // Returns:
  179. //     A CXTPControls pointer.
  180. //-----------------------------------------------------------------------
  181. CXTPControls* GetControls() const;
  182. //-----------------------------------------------------------------------
  183. // Summary:
  184. //     This method called to set controls collection to commandbar
  185. // Parameters:
  186. //     pControls - New controls to be set
  187. // See Also: GetControls
  188. //-----------------------------------------------------------------------
  189. void SetControls(CXTPControls* pControls);
  190. //-----------------------------------------------------------------------
  191. // Summary:
  192. //     Call this member to get the type of the command bar.
  193. // Returns:
  194. //     The type of the command bar. It can be one of the following:
  195. //     * <b>xtpBarTypeMenuBar</b> Indicates the command bar is menu bar (CXTPMenuBar)
  196. //     * <b>xtpBarTypeNormal</b> Indicates the command bar is simple toolbar (CXTPToolBar)
  197. //     * <b>xtpBarTypePopup</b> Indicates the command bar is popupbar (CXTPPopupBar)
  198. // See Also: XTPBarType, GetPosition
  199. //-----------------------------------------------------------------------
  200. XTPBarType GetType() const;
  201. //-----------------------------------------------------------------------
  202. // Summary:
  203. //     Call this member to get the position of the command bar.
  204. // Returns:
  205. //     The position of the command bar.
  206. // See Also: XTPBarPosition, GetType
  207. //-----------------------------------------------------------------------
  208. XTPBarPosition GetPosition() const;
  209. //-----------------------------------------------------------------------
  210. // Summary:
  211. //     Call this member to recalculate the layout.
  212. //-----------------------------------------------------------------------
  213. void DelayLayout();
  214. //-----------------------------------------------------------------------
  215. // Summary:
  216. //     Call this member to redraw the command bar.
  217. //-----------------------------------------------------------------------
  218. virtual void DelayRedraw();
  219. //-----------------------------------------------------------------------
  220. // Summary:
  221. //     Call this member to change the tracking state.
  222. // Parameters:
  223. //     bMode        - TRUE to set the tracking mode; otherwise FALSE.
  224. //     bSelectFirst - TRUE to select the first item.
  225. //     bKeyboard    - TRUE if the item is popped by the keyboard.
  226. // Returns:
  227. //     TRUE if the method was successful.
  228. // See Also: IsTrackingMode.
  229. //-----------------------------------------------------------------------
  230. virtual BOOL SetTrackingMode(int bMode, BOOL bSelectFirst = TRUE, BOOL bKeyboard = FALSE);
  231. //-----------------------------------------------------------------------
  232. // Summary:
  233. //     Call this member to convert menu items to command bar controls.
  234. // Parameters:
  235. //     pMenu           - Menu to be converted.
  236. //     bRemoveControls - TRUE to remove all controls first.
  237. // Returns:
  238. //     TRUE if the method was successful; otherwise FALSE.
  239. //-----------------------------------------------------------------------
  240. virtual BOOL LoadMenu(CMenu* pMenu, BOOL bRemoveControls = TRUE);
  241. //-----------------------------------------------------------------------
  242. // Summary:
  243. //     Call this member to return the control at the specified index.
  244. // Parameters:
  245. //     nIndex - An integer index.
  246. // Returns:
  247. //     The CXTPControl pointer currently at this index.
  248. // See also: GetControls, CXTPControls::GetAt
  249. //-----------------------------------------------------------------------
  250. CXTPControl* GetControl(int nIndex) const;
  251. //-----------------------------------------------------------------------
  252. // Summary:
  253. //     Call this member to get the count of the controls
  254. // Returns:
  255. //     The count of the controls.
  256. //-----------------------------------------------------------------------
  257. int GetControlCount() const;
  258. //-----------------------------------------------------------------------
  259. // Summary:
  260. //     Call this member to select the specified control.
  261. // Parameters:
  262. //     nSelected - An integer index of the item to be selected.
  263. //     bKeyboard - TRUE if the item was selected using the keyboard.
  264. // Returns:
  265. //     TRUE if the method was successful; otherwise FALSE.
  266. //-----------------------------------------------------------------------
  267. virtual BOOL SetSelected(int nSelected, BOOL bKeyboard = FALSE);
  268. CXTPControl* GetSelected() const;
  269. //-----------------------------------------------------------------------
  270. // Summary:
  271. //     Call this member to popup the specified control.
  272. // Parameters:
  273. //     nPopuped  - An integer index of the item to be popped.
  274. //     bKeyboard - TRUE if the item is popped by the keyboard.
  275. // Returns:
  276. //     TRUE if the method was successful; otherwise FALSE.
  277. //-----------------------------------------------------------------------
  278. BOOL SetPopuped(int nPopuped, BOOL bKeyboard = FALSE);
  279. //-----------------------------------------------------------------------
  280. // Summary:
  281. //     Call this member to set a title for this command bar.
  282. // Parameters:
  283. //     lpszTitle - Title to be set.
  284. //-----------------------------------------------------------------------
  285. void SetTitle(LPCTSTR lpszTitle);
  286. //-----------------------------------------------------------------------
  287. // Summary:
  288. //     Call this member to get a title for this command bar.
  289. // Returns:
  290. //     The title of the command bar.
  291. //-----------------------------------------------------------------------
  292. CString GetTitle() const;
  293. //-----------------------------------------------------------------------
  294. // Summary:
  295. //     Call this member to get the command bar's object.
  296. // Returns:
  297. //     A CXTPCommandBars pointer (can be NULL).
  298. //-----------------------------------------------------------------------
  299. CXTPCommandBars* GetCommandBars() const;
  300. //-----------------------------------------------------------------------
  301. // Summary:
  302. //     Call this member to set the command bar's object.
  303. // Parameters:
  304. //     pCommandBars - CXTPCommandBars to be set.
  305. //-----------------------------------------------------------------------
  306. void SetCommandBars(CXTPCommandBars* pCommandBars);
  307. //-----------------------------------------------------------------------
  308. // Summary:
  309. //     Call this member to get the command bar's site.
  310. // Returns:
  311. //     Command bar's site (cannot be NULL).
  312. //-----------------------------------------------------------------------
  313. CWnd* GetSite() const;
  314. //-----------------------------------------------------------------------
  315. // Summary:
  316. //     Call this member to get the command bar's site as CFrameWnd.
  317. // Returns:
  318. //     The command bar's site (can be NULL).
  319. //-----------------------------------------------------------------------
  320. CFrameWnd* GetFrameSite() const;
  321. //-----------------------------------------------------------------------
  322. // Summary:
  323. //     Call this member to set the command bar's flags.
  324. // Parameters:
  325. //     dwFlagsAdd    - Flags to be added.
  326. //     dwFlagsRemove - Flags to be removed.
  327. // Remarks:
  328. //     dwFlagsAdd and dwFlagsRemove can be combination of XTPToolBarFlags and XTPMenuBarFlags<p/>
  329. //     Use the bitwise-OR (|) operator to combine the flags.<p/>
  330. //     * <b>xtpFlagAlignTop</b> -  Allows docking at the top of the client area.
  331. //     * <b>xtpFlagAlignBottom</b> -  Allows docking at the bottom of the client area.
  332. //     * <b>xtpFlagAlignLeft</b> -  Allows docking on the left side of the client area.
  333. //     * <b>xtpFlagAlignRight</b> -  Allows docking on the left side of the client area.
  334. //     * <b>xtpFlagAlignAny</b> -  Allows docking on any side of the client area.
  335. //     * <b>xtpFlagFloating</b> -  Allows floating.
  336. //     * <b>xtpFlagHideWrap</b> -  Allow to hide wrapped controls.
  337. //     * <b>xtpFlagStretched</b> -  Bar is stretched.
  338. //     * <b>xtpFlagStretchedShared</b> -  Bar is stretched, but not fill whole row
  339. //     * <b>xtpFlagSmartLayout</b> -  Smart layout is enabled
  340. //
  341. //     * <b>xtpFlagHideMinimizeBox</b> - To hide minimize box.
  342. //     * <b>xtpFlagHideMaximizeBox</b> - To hide maximize box.
  343. //     * <b>xtpFlagIgnoreSetMenuMessage</b> - To ignore MDI menus.
  344. //     * <b>xtpFlagHideClose</b> - To hide close button.
  345. //     * <b>xtpFlagHideMDIButtons</b> - Specifies to hide all MDI buttons displayed on the Command Bar.
  346. //     * <b>xtpFlagAddMDISysPopup</b> - 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.
  347. //
  348. // See Also: XTPMenuBarFlags, XTPToolBarFlags
  349. //-----------------------------------------------------------------------
  350. void SetFlags(DWORD dwFlagsAdd, DWORD dwFlagsRemove = 0);
  351. //-----------------------------------------------------------------------
  352. // Summary:
  353. //     Call this member to set the controls from the button array.
  354. // Parameters:
  355. //     pButtons - Pointer to an array of command Ids. It cannot be NULL.
  356. //     nCount   - Number of elements in the array pointed to by pButtons.
  357. // Returns:
  358. //     Nonzero if successful; otherwise 0.
  359. // See Also: LoadToolBar, LoadMenu.
  360. //-----------------------------------------------------------------------
  361. BOOL SetButtons(UINT* pButtons, int nCount);
  362. //-----------------------------------------------------------------------
  363. // Summary:
  364. //     Call this member function to load the toolbar specified by nIDResource.
  365. // Parameters:
  366. //     nIDResource - Resource ID of the toolbar to be loaded.
  367. //     bLoadIcons  - TRUE if the toolbar icons are to be used by CXTPImageManager.
  368. // Returns:
  369. //     Nonzero if successful; otherwise 0.
  370. // See Also: LoadMenu, SetButtons.
  371. //-----------------------------------------------------------------------
  372. virtual BOOL LoadToolBar(UINT nIDResource, BOOL bLoadIcons = TRUE);
  373. //-----------------------------------------------------------------------
  374. // Summary:
  375. //     Call this function to set the size of the actual bitmapped
  376. //     images to be added to a toolbar.
  377. // Parameters:
  378. //     size - Width and height, in pixels, of the toolbar's icons.
  379. //-----------------------------------------------------------------------
  380. void SetIconSize(CSize size);
  381. //-----------------------------------------------------------------------
  382. // Summary:
  383. //     Call this member function to get the size of a toolbar icon.
  384. // See Also:
  385. //     GetLargeIconSize
  386. //-----------------------------------------------------------------------
  387. virtual CSize GetIconSize() const;
  388. //-----------------------------------------------------------------------
  389. // Summary:
  390. //     Call this method to get Large icon size of toolbar
  391. // Parameters:
  392. //     bAutoSize - TRUE to adjust size using current DPI mode.
  393. // Returns:
  394. //     CSize value contained size of large toolbar icons.
  395. // See Also: GetIconSize
  396. //-----------------------------------------------------------------------
  397. CSize GetLargeIconSize(BOOL bAutoSize) const;
  398. //-----------------------------------------------------------------------
  399. // Summary:
  400. //     Sets the size of the buttons in the command bar.
  401. // Parameters:
  402. //     size - Width and height, in pixels, of the buttons.
  403. // Remarks:
  404. //     The button size must always be at least as large as the bitmap
  405. //     size it encloses. This function must be called only before adding
  406. //     any bitmaps to the command bar. If the application does not explicitly
  407. //     set the button size, it is set to the default size.
  408. //-----------------------------------------------------------------------
  409. void SetButtonSize(CSize size);
  410. //-----------------------------------------------------------------------
  411. // Summary:
  412. //     Call this function to get the size of the command bar button.
  413. // Returns:
  414. //     The width and height values of the command bar button.
  415. //-----------------------------------------------------------------------
  416. virtual CSize GetButtonSize() const;
  417. //-----------------------------------------------------------------------
  418. // Summary:
  419. //     Call this member to show the caption below control's icon.
  420. // Parameters:
  421. //     bTextBelow - TRUE to show the caption below the icon.
  422. //-----------------------------------------------------------------------
  423. void ShowTextBelowIcons(BOOL bTextBelow = TRUE);
  424. //-----------------------------------------------------------------------
  425. // Summary:
  426. //     Returns a Boolean value that indicates whether the caption is
  427. //     below the control's icon.
  428. // Returns:
  429. //     TRUE if successful, otherwise returns FALSE
  430. //-----------------------------------------------------------------------
  431. BOOL IsTextBelowIcons() const;
  432. //-----------------------------------------------------------------------
  433. // Summary:
  434. //     This method is called to popup the command bar.
  435. // Parameters:
  436. //     pControlPopup - Points to a CXTPControlPopup object.
  437. //     bSelectFirst  - TRUE to select the first item.
  438. // Returns:
  439. //     TRUE if successful, otherwise returns FALSE.
  440. //-----------------------------------------------------------------------
  441. virtual BOOL Popup(CXTPControlPopup* pControlPopup, BOOL bSelectFirst = FALSE);
  442. //-----------------------------------------------------------------------
  443. // Summary:
  444. //     Call this method to retrieve the current focused control.
  445. // Returns:
  446. //     Window handle of the focused control.
  447. //-----------------------------------------------------------------------
  448. HWND GetTrackFocus() const;
  449. //-----------------------------------------------------------------------
  450. // Summary:
  451. //     Call this method to set focus to the window.
  452. // Parameters:
  453. //     hwnd - Window handle of the focused control
  454. //-----------------------------------------------------------------------
  455. void SetTrackFocus(HWND hwnd);
  456. //-----------------------------------------------------------------------
  457. // Summary:
  458. //     Call this method to set the visibility state of the control.
  459. // Parameters:
  460. //     bVisible - TRUE to set control visible.
  461. //-----------------------------------------------------------------------
  462. virtual void SetVisible(BOOL bVisible);
  463. //-----------------------------------------------------------------------
  464. // Summary:
  465. //     Returns a Boolean value that indicates whether the command bar
  466. //     is visible or hidden
  467. // Returns:
  468. //     TRUE if successful; otherwise returns FALSE
  469. //-----------------------------------------------------------------------
  470. virtual BOOL IsVisible() const;
  471. //-----------------------------------------------------------------------
  472. // Summary:
  473. //     Call this member function to set the position of the command bar
  474. // Parameters:
  475. //     barPosition - Position of the command bar
  476. // Returns:
  477. //     TRUE if successful; otherwise returns FALSE
  478. //-----------------------------------------------------------------------
  479. virtual BOOL SetPosition(XTPBarPosition barPosition);
  480. //-----------------------------------------------------------------------
  481. // Summary:
  482. //     Call this method to get the index of control with specified
  483. //     accelerator character.
  484. // Parameters:
  485. //     chAccel - Character to find.
  486. // Returns:
  487. //     Index of the control contained  character as accelerator.
  488. //-----------------------------------------------------------------------
  489. int FindAccel(TCHAR chAccel) const;
  490. //-----------------------------------------------------------------------
  491. // Summary:
  492. //     Call this method to get the index of the control with specified
  493. //     accelerator character.
  494. // Parameters:
  495. //     chAccel     - Character to find
  496. //     bSelectOnly - TRUE to select only.
  497. // Returns:
  498. //     Index of the control contained character as accelerator.
  499. //-----------------------------------------------------------------------
  500. int FindAccelEx(UINT chAccel, BOOL& bSelectOnly) const;
  501. //-----------------------------------------------------------------------
  502. // Summary:
  503. //     Call this method to retrieve the customize mode of the command
  504. //     bars.
  505. // Returns:
  506. //     TRUE if command bars are in customized mode; otherwise returns
  507. //     FALSE
  508. //-----------------------------------------------------------------------
  509. BOOL IsCustomizeMode() const;
  510. //-----------------------------------------------------------------------
  511. // Summary:
  512. //     This member is called when a control is entered into the
  513. //     command bar.
  514. // Parameters:
  515. //     pDataObject - Points to a CXTPControl object
  516. //     point       - Point to test.
  517. // Returns:
  518. //     DROPEFFECT enumerator.
  519. //-----------------------------------------------------------------------
  520. virtual DROPEFFECT OnCustomizeDragEnter(CXTPControl* pDataObject, CPoint point);
  521. //-----------------------------------------------------------------------
  522. // Summary:
  523. //     This method is called when a control leaves the command bar.
  524. //-----------------------------------------------------------------------
  525. virtual void OnCustomizeDragLeave();
  526. //-----------------------------------------------------------------------
  527. // Summary:
  528. //     This member is called when control is over the command bar.
  529. // Parameters:
  530. //     pDataObject - Points to a CXTPControl object
  531. //     point       - Point to test
  532. // Returns:
  533. //     DROPEFFECT enumerator.
  534. //-----------------------------------------------------------------------
  535. virtual DROPEFFECT OnCustomizeDragOver(CXTPControl* pDataObject, CPoint point);
  536. //-----------------------------------------------------------------------
  537. // Summary:
  538. //     This method is called when control is dropped to the command bar.
  539. // Parameters:
  540. //     pDataObject - Points to a CXTPControl object
  541. //     dropEffect  - DROPEFFECT enumerator.
  542. //     ptDrop      - Point where user drops the control.
  543. //     ptDrag      - Point where user starts drag the control.
  544. //-----------------------------------------------------------------------
  545. virtual void OnCustomizeDrop(CXTPControl* pDataObject, DROPEFFECT& dropEffect, CPoint ptDrop, CPoint ptDrag);
  546. //-----------------------------------------------------------------------
  547. // Summary:
  548. //     Call this method to retrieve the customizable property of the
  549. //     command bar.
  550. // Returns:
  551. //     TRUE if the command bar is customizable; otherwise returns FALSE
  552. //-----------------------------------------------------------------------
  553. virtual BOOL IsCustomizable() const;
  554. //-----------------------------------------------------------------------
  555. // Summary:
  556. //     Call this method to enable/disable customization of the command bar.
  557. // Parameters:
  558. //     bEnable - TRUE to enable customization.
  559. //-----------------------------------------------------------------------
  560. void EnableCustomization(BOOL bEnable = TRUE);
  561. //-----------------------------------------------------------------------
  562. // Summary:
  563. //     This method is called to recalculate command bar layout.
  564. //-----------------------------------------------------------------------
  565. virtual void OnRecalcLayout();
  566. //-----------------------------------------------------------------------
  567. // Summary:
  568. //     Call this method to remove the tracking state of the command bar.
  569. //-----------------------------------------------------------------------
  570. virtual void OnTrackLost();
  571. //-----------------------------------------------------------------------
  572. // Summary:
  573. //     Call this method to track the command bar.
  574. //-----------------------------------------------------------------------
  575. virtual void OnTrackEnter();
  576. //-----------------------------------------------------------------------
  577. // Summary:
  578. //     Call this method to retrieve the owner window of the command bar.
  579. // Returns:
  580. //     A pointer to a CWnd object
  581. //-----------------------------------------------------------------------
  582. CWnd* GetOwnerSite() const;
  583. //-----------------------------------------------------------------------
  584. // Summary:
  585. //     Call this method to redraw all parent command bars.
  586. //-----------------------------------------------------------------------
  587. void InvalidateParents();
  588. //-----------------------------------------------------------------------
  589. // Summary:
  590. //     Call this method to retrieve the current behavior modification
  591. //     flags of the command bar.
  592. // Returns:
  593. //     Flags of the command bar that are currently in effect.
  594. //-----------------------------------------------------------------------
  595. DWORD GetFlags() const;
  596. //-----------------------------------------------------------------------
  597. // Summary:
  598. //     Call this method to retrieve the identifier of the command bar.
  599. // Returns:
  600. //     Identifier of the command bar.
  601. //-----------------------------------------------------------------------
  602. UINT GetBarID() const;
  603. //-----------------------------------------------------------------------
  604. // Summary:
  605. //     Call this method to set the identifier.
  606. // Parameters:
  607. //     nID - Identifier to set.
  608. //-----------------------------------------------------------------------
  609. void SetBarID(UINT nID);
  610. //-----------------------------------------------------------------------
  611. // Summary:
  612. //     This method is called when a child control becomes selected.
  613. // Parameters:
  614. //     bSelected - TRUE when control becomes selected.
  615. //     pControl  - Points to a CXTPControl object
  616. //-----------------------------------------------------------------------
  617. virtual void OnControlSelected(BOOL bSelected, CXTPControl* pControl);
  618. //-----------------------------------------------------------------------
  619. // Summary:
  620. //     This method is called to set the description context.
  621. // Parameters:
  622. //     strDescription - Description string.
  623. // Returns:
  624. //     TRUE if successful; otherwise returns FALSE
  625. //-----------------------------------------------------------------------
  626. BOOL SetStatusText(const CString& strDescription);
  627. //-----------------------------------------------------------------------
  628. // Summary:
  629. //     This method sets the 32-bit value associated with the command bar.
  630. // Parameters:
  631. //     dwData - Contains the new value to associate with the command bar.
  632. // See Also: GetCommandBarData
  633. //-----------------------------------------------------------------------
  634. void SetCommandBarData(DWORD_PTR dwData);
  635. //-----------------------------------------------------------------------
  636. // Summary:
  637. //     This method retrieves the application-supplied 32-bit value
  638. //     associated with the command bar.
  639. // Returns:
  640. //     The 32-bit value associated with the command bar.
  641. // See Also: SetCommandBarData
  642. //-----------------------------------------------------------------------
  643. DWORD_PTR GetCommandBarData() const;
  644. //-----------------------------------------------------------------------
  645. // Summary:
  646. //     This method retrieves the parent command bar.
  647. // Returns:
  648. //     A pointer to a CXTPCommandBar object
  649. //-----------------------------------------------------------------------
  650. virtual CXTPCommandBar* GetParentCommandBar() const;
  651. //-----------------------------------------------------------------------
  652. // Summary:
  653. //     Call this method to retrieve the top-level parent command bar.
  654. // Returns:
  655. //     A pointer to the top-level CXTPCommandBar object
  656. //-----------------------------------------------------------------------
  657. CXTPCommandBar* GetRootParent() const;
  658. //-----------------------------------------------------------------------
  659. // Summary:
  660. //     Call this method to retrieve the paint manager.
  661. // Returns:
  662. //     A pointer to a CXTPPaintManager object
  663. //-----------------------------------------------------------------------
  664. CXTPPaintManager* GetPaintManager() const;
  665. //-----------------------------------------------------------------------
  666. // Summary:
  667. //     Call this method to retrieve the image manager
  668. // Returns:
  669. //     A pointer to a CXTPImageManager object
  670. //-----------------------------------------------------------------------
  671. CXTPImageManager* GetImageManager() const;
  672. //-----------------------------------------------------------------------
  673. // Summary:
  674. //     Call this member to set the width of the floated or popup toolbar.
  675. // Parameters:
  676. //     nWidth - Width of the floated or popuped toolbar.
  677. //-----------------------------------------------------------------------
  678. void SetWidth(int nWidth);
  679. //-----------------------------------------------------------------------
  680. // Summary:
  681. //     Call this member to get the width of the floated or popup toolbar.
  682. // Returns:
  683. //     The width, in pixels, of the floated or popup toolbar.
  684. //-----------------------------------------------------------------------
  685. int GetWidth() const;
  686. //-----------------------------------------------------------------------
  687. // Summary:
  688. //     Call this member to set the specified paint manager
  689. // Parameters:
  690. //     pPaintManager - Points to a CXTPPaintManager object  to be set
  691. //-----------------------------------------------------------------------
  692. void SetPaintManager(CXTPPaintManager* pPaintManager);
  693. //-----------------------------------------------------------------------
  694. // Summary:
  695. //     Call this member to set the specified image manager
  696. // Parameters:
  697. //     pImageManager - Points to a CXTPImageManager object to be set
  698. //-----------------------------------------------------------------------
  699. void SetImageManager(CXTPImageManager* pImageManager);
  700. //-----------------------------------------------------------------------
  701. // Summary:
  702. //     Call this member function to determine if the CommandBar layout
  703. //     is Right-to-Left (RTL).
  704. // Returns:
  705. //     Returns TRUE if the Commandbar layout is RTL, otherwise FALSE.
  706. //-----------------------------------------------------------------------
  707. BOOL IsLayoutRTL() const;
  708. //-----------------------------------------------------------------------
  709. // Summary:
  710. //     Call this member function to determine if the CommandBar is a
  711. //     CXTPDialogBar.
  712. // Returns:
  713. //     Returns TRUE if the CommandBar is a CXTPDialogBar, otherwise FALSE
  714. // See Also: CXTPToolBar, CXTPDialogBar
  715. //-----------------------------------------------------------------------
  716. virtual BOOL IsDialogBar() const;
  717. //-----------------------------------------------------------------------
  718. // Summary:
  719. //     Call this member function to determine if the CommandBar is a
  720. //     CXTPRibbonBar.
  721. // Returns:
  722. //     Returns TRUE if the CommandBar is a CXTPRibbonBar, otherwise FALSE
  723. // See Also: CXTPCommandBar, CXTPRibbonBar
  724. //-----------------------------------------------------------------------
  725. virtual BOOL IsRibbonBar() const;
  726. //-----------------------------------------------------------------------
  727. // Summary:
  728. //     Call this member function to determine if the CommandBar is a
  729. //     CXTPPopupBar.
  730. // Returns:
  731. //     Returns TRUE if the CommandBar is a CXTPPopupBar, otherwise FALSE
  732. // See Also: CXTPCommandBar, CXTPPopupBar
  733. //-----------------------------------------------------------------------
  734. virtual BOOL IsPopupBar() const;
  735. //-----------------------------------------------------------------------
  736. // Summary:
  737. //     Reads or writes this object from or to an archive.
  738. // Parameters:
  739. //     pPX - A CXTPPropExchange object to serialize to or from.
  740. //----------------------------------------------------------------------
  741. virtual void DoPropExchange(CXTPPropExchange* pPX);
  742. //-----------------------------------------------------------------------
  743. // Summary:
  744. //     Determines if underlines is visible in command bar control.
  745. // Return:
  746. //     Returns TRUE if underlines is visible; otherwise FALSE;
  747. //-----------------------------------------------------------------------
  748. virtual BOOL IsKeyboardCuesVisible() const;
  749. //-----------------------------------------------------------------------
  750. // Summary:
  751. //     This method is called internally to prevent command bar to grab edit focus.
  752. // Parameters:
  753. //     bGrabFocus - FALSE to prevent grab focus.
  754. //-----------------------------------------------------------------------
  755. void SetGrabFocus(BOOL bGrabFocus);
  756. //-------------------------------------------------------------------------
  757. // Summary:
  758. //     The framework calls this member function to redraw the CommandBars.
  759. // Parameters:
  760. //     lpRect - The rectangular area of the bar that is invalid.
  761. //     bAnimate - TRUE to animate changes in bounding rectangle.
  762. //-------------------------------------------------------------------------
  763. virtual void Redraw(LPCRECT lpRect = 0, BOOL bAnimate = TRUE);
  764. //-----------------------------------------------------------------------
  765. // Summary:
  766. //     This method is called to draw the command bar in the given context.
  767. // Parameters:
  768. //     pDC - Pointer to a valid device context
  769. //     rcClipBox - The rectangular area of the control that is invalid
  770. //-----------------------------------------------------------------------
  771. virtual void DrawCommandBar(CDC* pDC, CRect rcClipBox);
  772. //-----------------------------------------------------------------------
  773. // Summary:
  774. //     Call this method to enable animation for CommandBar
  775. // Parameters:
  776. //     bEnable - TRUE to enable animation; FALSE to disable
  777. //-----------------------------------------------------------------------
  778. void EnableAnimation(BOOL bEnable = TRUE);
  779. //-----------------------------------------------------------------------
  780. // Summary:
  781. //     Call this method to enable double buffer for toolbar drawing
  782. // Parameters:
  783. //     bEnable - True to enable double buffer for drawing.
  784. // See Also: EnableAnimation
  785. //-----------------------------------------------------------------------
  786. void EnableDoubleBuffer(BOOL bEnable = TRUE);
  787. //-----------------------------------------------------------------------
  788. // Summary:
  789. //     Determines if animation is enabled for specified command bar
  790. // Returns:
  791. //     TRUE if animation is enabled
  792. // See Also: EnableAnimation
  793. //-----------------------------------------------------------------------
  794. BOOL IsAnimationEnabled() const;
  795. //-----------------------------------------------------------------------
  796. // Summary:
  797. //     This member function is called by WindowProc, or is called during
  798. //     message reflection.
  799. // Parameters:
  800. //     hWnd     - Window handle message belongs to.
  801. //     nMessage - Specifies the message to be sent.
  802. //     wParam   - Specifies additional message-dependent information.
  803. //     lParam   - Specifies additional message-dependent information.
  804. //     lResult  - The return value of WindowProc. Depends on the message;
  805. //                may be NULL.
  806. //-----------------------------------------------------------------------
  807. virtual int OnHookMessage(HWND hWnd, UINT nMessage, WPARAM& wParam, LPARAM& lParam, LRESULT& lResult);
  808. //-----------------------------------------------------------------------
  809. // Summary:
  810. //     Call this method to be sure control is visible on toolbar
  811. // Parameters:
  812. //     pControl - CXTPControl child that need to check
  813. //-----------------------------------------------------------------------
  814. virtual void EnsureVisible(CXTPControl* pControl);
  815. //-----------------------------------------------------------------------
  816. // Summary:
  817. //     Call this method to retrieve default style of buttons of the commanbar
  818. // Returns:
  819. //     XTPButtonStyle represents default style of buttons
  820. // See Also: SetDefaultButtonStyle
  821. //-----------------------------------------------------------------------
  822. XTPButtonStyle GetDefaultButtonStyle() const;
  823. //-----------------------------------------------------------------------
  824. // Summary:
  825. //     Call this method to set default style for commanbar buttons.
  826. // Parameters:
  827. //     buttonStyle - Button style to set
  828. // See Also: GetDefaultButtonStyle
  829. //-----------------------------------------------------------------------
  830. void SetDefaultButtonStyle(XTPButtonStyle buttonStyle);
  831. //-------------------------------------------------------------------------
  832. // Summary:
  833. //     Call this method to freeze redrawing until UnlockRedraw call
  834. // See Also: UnlockRedraw
  835. //-------------------------------------------------------------------------
  836. void LockRedraw();
  837. //-------------------------------------------------------------------------
  838. // Summary:
  839. //     Call this method to unfreeze redrawing.
  840. // See Also: LockRedraw
  841. //-------------------------------------------------------------------------
  842. void UnlockRedraw();
  843. //-----------------------------------------------------------------------
  844. // Summary:
  845. //     Call this method to show gripper for the commandbar
  846. // Parameters:
  847. //     bShow - TRUE to show; FALSE to hide
  848. // See Also: GetShowGripper
  849. //-----------------------------------------------------------------------
  850. void SetShowGripper(BOOL bShow);
  851. //-----------------------------------------------------------------------
  852. // Summary:
  853. //     Determines if gripper is visible for the commandbar
  854. // Returns:
  855. //     TRUE if gripper is visible
  856. // See Also: SetShowGripper
  857. //-----------------------------------------------------------------------
  858. BOOL GetShowGripper() const;
  859. //-----------------------------------------------------------------------
  860. // Summary:
  861. //     This method is called to get borders margins of commandbar
  862. // Returns:
  863. //     Rectangle contains border margins
  864. //-----------------------------------------------------------------------
  865. virtual CRect GetBorders();
  866. //-----------------------------------------------------------------------
  867. // Summary:
  868. //     This method is called to draw background of command bar
  869. // Parameters:
  870. //     pDC - POinter to device context to draw
  871. // See Also: DrawCommandBar
  872. //-----------------------------------------------------------------------
  873. virtual void FillCommandBarEntry(CDC* pDC);
  874. virtual BOOL IsResizable() const;
  875. public:
  876. //-----------------------------------------------------------------------
  877. // Summary:
  878. //     Call this method to check if keyboard tips are visible for the commandbar
  879. // Returns:
  880. //     TRUE if keyboard tips are visible
  881. // See Also: CreateKeyboardTips
  882. //-----------------------------------------------------------------------
  883. BOOL IsKeyboardTipsVisible() const;
  884. //-------------------------------------------------------------------------
  885. // Summary:
  886. //     This method is called to create keyboard tips collection for commandbar
  887. // See Also: IsKeyboardTipsVisible
  888. //-------------------------------------------------------------------------
  889. virtual void CreateKeyboardTips();
  890. //-----------------------------------------------------------------------
  891. // Summary:
  892. //     This method is called when user press key while keyboard tips are visible
  893. // Parameters:
  894. //     chAccel - Virtual key
  895. // See Also: OnKeyboardTip
  896. //-----------------------------------------------------------------------
  897. void OnKeyboardTipChar(UINT chAccel);
  898. //-----------------------------------------------------------------------
  899. // Summary:
  900. //     This method is called when keyboard tip was found for the commandbar
  901. // Parameters:
  902. //     pTip - Keyboard tip was found for commandbar
  903. // See Also: OnKeyboardTipChar
  904. //-----------------------------------------------------------------------
  905. virtual void OnKeyboardTip(CXTPCommandBarKeyboardTip* pTip);
  906. //-------------------------------------------------------------------------
  907. // Summary:
  908. //     Call this method to hide
  909. // See Also: IsKeyboardTipsVisible
  910. //-------------------------------------------------------------------------
  911. void HideKeyboardTips();
  912. protected:
  913. //-----------------------------------------------------------------------
  914. // Summary:
  915. //     The framework calls this member function when a non-system key
  916. //     is pressed.
  917. // Parameters:
  918. //     nChar - Specifies the virtual key code of the given key.
  919. //     lParam   - Specifies additional message-dependent information.
  920. // Returns:
  921. //     TRUE if key handled, otherwise returns FALSE
  922. //-----------------------------------------------------------------------
  923. virtual BOOL OnHookKeyDown(UINT nChar, LPARAM lParam);
  924. //-----------------------------------------------------------------------
  925. // Summary:
  926. //     This method is called to get the size of the command bar.
  927. // Parameters:
  928. //      nLength - The requested dimension of the control bar, either horizontal or vertical, depending on dwMode.
  929. //      dwMode - see CControlBar::CalcDynamicLayout for list of supported flags.
  930. // Returns:
  931. //     Size of the command bar.
  932. //-----------------------------------------------------------------------
  933. virtual CSize CalcDynamicLayout(int nLength, DWORD dwMode);
  934. //-----------------------------------------------------------------------
  935. // Summary:
  936. //     This method is called to process special keys.
  937. // Parameters:
  938. //     key - Special keys enumerator. Can be any of the values listed in the Remarks section.
  939. // Remarks:
  940. //     CXTPCommandBar maps key passed as parameter of OnKeyDown to XTPSpecialKey enumerator and call ProcessSpecialKey.<p/>
  941. //     key parameter can be one of the following:
  942. //         * <b>xtpKeyNext</b> Indicates the RIGHT or DOWN key was pressed  Next control must be selected
  943. //         * <b>xtpKeyPrev</b> Indicates the LEFT or UP key was pressed. Previous control must be selected.
  944. //         * <b>xtpKeyBack</b> Indicates the LEFT key was pressed for popup bar. Current submenu must be closed
  945. //         * <b>xtpKeyPopup</b> Indicates the RIGHT key was pressed for popup bar. Submenu must be opened.
  946. //         * <b>xtpKeyEscape</b> Indicates the ESCAPE key was pressed.
  947. //         * <b>xtpKeyReturn</b> Indicates the RETURN key was pressed
  948. //         * <b>xtpKeyHome</b> Indicates the HOME key was pressed. First control must be selected.
  949. //         * <b>xtpKeyEnd</b> Indicates the END key was pressed. Last control must be selected.
  950. // Returns:
  951. //     TRUE if key handled, otherwise returns FALSE
  952. //-----------------------------------------------------------------------
  953. virtual BOOL ProcessSpecialKey(XTPSpecialKey key);
  954. //-----------------------------------------------------------------------
  955. // Summary:
  956. //     This method is called when the controls array is changed.
  957. //-----------------------------------------------------------------------
  958. virtual void OnControlsChanged();
  959. //-----------------------------------------------------------------------
  960. // Summary:
  961. //     This method makes a copy of the command bar.
  962. // Parameters:
  963. //     pCommandBar - Command bar needed to be copied.
  964. //     bRecursive - TRUE to copy recursively.
  965. //-----------------------------------------------------------------------
  966. virtual void Copy(CXTPCommandBar* pCommandBar, BOOL bRecursive = FALSE);
  967. //-----------------------------------------------------------------------
  968. // Summary:
  969. //     This method is called to determine mouse hit code
  970. // Parameters:
  971. //     pt - Position to test
  972. // Returns:
  973. //     HTCLIENT if pointer belongs client area; HTNOWHERE otherwise.
  974. //-----------------------------------------------------------------------
  975. virtual int OnMouseHitTest(CPoint pt);
  976. //-----------------------------------------------------------------------
  977. // Summary:
  978. //     Updates the control's shortcuts.
  979. //-----------------------------------------------------------------------
  980. virtual void UpdateShortcuts();
  981. protected:
  982. //-----------------------------------------------------------------------
  983. // Summary:
  984. //     Retrieves active MDI document template
  985. // Remarks:
  986. //     This method call CXTPCommandBars::GetActiveDocTemplate.
  987. // Returns:
  988. //     Active document template identifier.
  989. // See Also: CXTPCommandBars::GetActiveDocTemplate
  990. //-----------------------------------------------------------------------
  991. UINT GetActiveDocTemplate() const;
  992. protected:
  993. //-----------------------------------------------------------------------
  994. // Summary:
  995. //     This method is called to assign self identifiers for serialization process.
  996. // Parameters:
  997. //     nID             - Identifier to assign
  998. //     pCommandBarList - List of CommandBars.
  999. //     pParam          - Address of a XTP_COMMANDBARS_PROPEXCHANGE_PARAM structure.
  1000. //-----------------------------------------------------------------------
  1001. virtual void GenerateCommandBarList(DWORD& nID, CXTPCommandBarList* pCommandBarList, XTP_COMMANDBARS_PROPEXCHANGE_PARAM* pParam);
  1002. //-----------------------------------------------------------------------
  1003. // Summary:
  1004. //     This method is called in serialization process.to restore popups from list of command bars.
  1005. // Parameters:
  1006. //     pCommandBarList - List of CommandBars.
  1007. //-----------------------------------------------------------------------
  1008. virtual void RestoreCommandBarList(CXTPCommandBarList* pCommandBarList);
  1009. //-----------------------------------------------------------------------
  1010. // Summary:
  1011. //     Determines if parent frame in help mode
  1012. //-----------------------------------------------------------------------
  1013. BOOL IsHelpMode() const;
  1014. //-----------------------------------------------------------------------
  1015. // Summary:
  1016. //     This method is called then toolbar removed from commandbars collection
  1017. //-----------------------------------------------------------------------
  1018. virtual void OnRemoved();
  1019. protected:
  1020. //{{AFX_CODEJOCK_PRIVATE
  1021. void CustomizeFindDropIndex(CXTPControl* pDataObject, const CPoint& point, CRect& rcMarker, int& nDropIndex, BOOL& bDropAfter);
  1022. void CustomizeDrawMarker(CDC* pDC);
  1023. void UpdateDocTemplateControls();
  1024. BOOL IsMouseLocked() const;
  1025. CSize GetAutoIconSize(BOOL bLarge) const;
  1026. //}}AFX_CODEJOCK_PRIVATE
  1027. protected:
  1028. //{{AFX_CODEJOCK_PRIVATE
  1029. // System accessibility support.
  1030. virtual HRESULT GetAccessibleParent(IDispatch** ppdispParent);
  1031. virtual HRESULT GetAccessibleChildCount(long* pcountChildren);
  1032. virtual HRESULT GetAccessibleChild(VARIANT varChild, IDispatch** ppdispChild);
  1033. virtual HRESULT GetAccessibleName(VARIANT varChild, BSTR* pszName);
  1034. virtual HRESULT GetAccessibleRole(VARIANT varChild, VARIANT* pvarRole);
  1035. virtual HRESULT AccessibleLocation(long *pxLeft, long *pyTop, long *pcxWidth, long* pcyHeight, VARIANT varChild);
  1036. virtual HRESULT AccessibleHitTest(long xLeft, long yTop, VARIANT* pvarChild);
  1037. virtual HRESULT GetAccessibleState(VARIANT varChild, VARIANT* pvarState);
  1038. virtual CCmdTarget* GetAccessible();
  1039. //}}AFX_CODEJOCK_PRIVATE
  1040. protected:
  1041. //{{AFX_CODEJOCK_PRIVATE
  1042. //{{AFX_VIRTUAL(CXTPCommandBar)
  1043. public:
  1044. virtual void OnFinalRelease();
  1045. virtual INT_PTR OnToolHitTest(CPoint point, TOOLINFO* pTI) const;
  1046. BOOL OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult);
  1047. virtual LRESULT OnIdleUpdateCmdUI(WPARAM wParam, LPARAM);
  1048. void FilterToolTipMessage(UINT message, WPARAM wParam, LPARAM lParam);
  1049. virtual BOOL PreviewAccel(UINT chAccel);
  1050. //}}AFX_VIRTUAL
  1051. //{{AFX_MSG(CXTPCommandBar)
  1052. afx_msg void OnUpdateCmdUI();
  1053. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  1054. afx_msg void OnInitialUpdate();
  1055. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  1056. afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
  1057. virtual void OnPopupRButtonUp(CXTPCommandBar* pCommandBar, CPoint point);
  1058. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  1059. afx_msg void OnMouseLeave();
  1060. afx_msg void OnPaint();
  1061. afx_msg LRESULT OnPrintClient(WPARAM wParam, LPARAM);
  1062. afx_msg void OnTimer(UINT_PTR nIDEvent);
  1063. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  1064. afx_msg void OnNcMouseMove(UINT nHitTest, CPoint point);
  1065. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  1066. afx_msg void OnDestroy();
  1067. afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
  1068. afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
  1069. afx_msg LRESULT OnHelpHitTest(WPARAM, LPARAM lParam);
  1070. afx_msg LRESULT OnNcHitTest(CPoint point);
  1071. afx_msg void OnNcLButtonDown(UINT nHitTest, CPoint point);
  1072. afx_msg LRESULT OnGetObject(WPARAM wParam, LPARAM lParam);
  1073. //}}AFX_MSG
  1074. //}}AFX_CODEJOCK_PRIVATE
  1075. public:
  1076. int              m_nStateFlags;         // State of the command bars.
  1077. static int       s_nHoverDelay;         // Hover delay time
  1078. static int       s_nExpandDelay;        // Expand delay time
  1079. static int       s_nExpandHoverDelay;   // Expand hover delay
  1080. BOOL             m_bComboBar;           // TRUE if it is combo box list
  1081. BOOL             m_bTrackOnHover;       // TRUE to select item if mouse stay over control
  1082. protected:
  1083. BOOL             m_bGrabFocus;          // TRUE to grab current focus.
  1084. int              m_nMRUWidth;           // Recent width.
  1085. int              m_nSelected;           // Selected control index.
  1086. int              m_nPopuped;            // Popuped control index.
  1087. HWND             m_hwndFocus;           // The handle of the window that currently has focus.
  1088. UINT             m_nBarID;              // Command bar's identifier.
  1089. BOOL             m_bVisible;            // TRUE if the command bar is visible.
  1090. BOOL             m_bTracking;           // TRUE if the command bar is in tracking mode.
  1091. CWnd*            m_pSite;               // Command bar's site.
  1092. DWORD            m_nIdleFlags;          // Idle flags.
  1093. DWORD            m_dwFlags;             // Command bar's flags.
  1094. DWORD            m_dwStyle;             // Command bar's styles.
  1095. CString          m_strTitle;            // Command bar's caption.
  1096. XTPBarType       m_barType;             // Type of the command bar.
  1097. CXTPControls*    m_pControls;           // A pointer to controls collection.
  1098. XTPBarPosition   m_barPosition;         // Position of the command bar.
  1099. CXTPCommandBars* m_pCommandBars;        // parent command bars class.
  1100. CWnd*            m_pOwner;              // Owner window.
  1101. CSize            m_szIcons;             // Size of the command bar's icons.
  1102. CSize            m_szButtons;           // Size of the command bar's icons.
  1103. BOOL             m_bTextBelow;          // TRUE if text is shown below the CommandBar buttons.
  1104. BOOL             m_bExecOnRButton;      // TRUE if the control button is executed on a right-click
  1105. BOOL             m_bIgnoreUpdateHandler;// TRUE to skip update handler for all child controls
  1106. BOOL             m_bRecursePopup;       // TRUE if popup bar was opened recursively. See TPM_RECURSE flag description.
  1107. int              m_nLockRecurse;        // TRUE if another popup bar is opened recursively.
  1108. BOOL             m_bKeyboardSelect;     // TRUE if last item was selected by keyboard.
  1109. BOOL             m_bCloseable;          // TRUE if the CommandBar can be closed andor Hidden
  1110. BOOL             m_bCustomizable;       // TRUE if command bar is customizable.
  1111. CRect            m_rcMarker;            // Marker position.
  1112. BOOL             m_bVerticalMarker;     // TRUE to draw marker vertically.
  1113. DWORD_PTR        m_dwData;              // The 32-bit value associated with the command bar.
  1114. UINT*            m_pReturnCmd;          // Return command holder.
  1115. BOOL             m_bCustomizeDialogPresent; // TRUE if the command bar is present in Customize dialog.
  1116. BOOL             m_bAnimatePopup;       // TRUE to animate popup bar.
  1117. BOOL             m_nLockRedraw;         // TRUE if all drawing routines skipped
  1118. CXTPPaintManager* m_pPaintManager;      // Selected paint manager for command bar
  1119. CXTPImageManager* m_pImageManager;      // Selected image manager for command bar
  1120. BOOL             m_bMultiLine;          // True if multi line commandbar
  1121. XTPButtonStyle   m_buttonStyle;         // Default button Style
  1122. CXTPToolTipContext* m_pToolTipContext;  // Tool tip Context.
  1123. CXTPCommandBarAnimation* m_pAnimation;  // Animation context
  1124. int              m_nWrapMargin;
  1125. private:
  1126. int m_nClickedControl;
  1127. //{{AFX_CODEJOCK_PRIVATE
  1128. DECLARE_MESSAGE_MAP()
  1129. DECLARE_XTP_COMMANDBAR(CXTPCommandBar)
  1130. class CCommandBarCmdUI;
  1131. DECLARE_INTERFACE_MAP()
  1132. friend class CXTPCommandBars;
  1133. friend class CXTPDockBar;
  1134. friend class CCommandBarCmdUI;
  1135. friend class CXTPControl;
  1136. friend class CXTPControls;
  1137. friend class CXTPControlPopup;
  1138. friend class CXTPToolBar;
  1139. friend class CXTPMouseManager;
  1140. friend class CXTPPopupBar;
  1141. friend class CXTPCustomizeSheet;
  1142. friend class CXTPPaintManager;
  1143. friend class CXTPMiniToolBar;
  1144. //}}AFX_CODEJOCK_PRIVATE
  1145. };
  1146. //////////////////////////////////////////////////////////////////////////
  1147. AFX_INLINE int CXTPCommandBar::IsTrackingMode() const{
  1148. return m_bTracking;
  1149. }
  1150. AFX_INLINE CXTPControls* CXTPCommandBar::GetControls() const {
  1151. return m_pControls;
  1152. }
  1153. AFX_INLINE XTPBarType CXTPCommandBar::GetType() const {
  1154. return m_barType;
  1155. }
  1156. AFX_INLINE XTPBarPosition CXTPCommandBar::GetPosition() const {
  1157. return m_barPosition;
  1158. }
  1159. AFX_INLINE void CXTPCommandBar::DelayLayout() {
  1160. m_nIdleFlags |= xtpIdleLayout;
  1161. }
  1162. AFX_INLINE void CXTPCommandBar::DelayRedraw() {
  1163. m_nIdleFlags |= xtpIdleRedraw;
  1164. }
  1165. AFX_INLINE void CXTPCommandBar::SetTitle(LPCTSTR lpszTitle) {
  1166. m_strTitle = lpszTitle;
  1167. Redraw();
  1168. }
  1169. AFX_INLINE CString CXTPCommandBar::GetTitle() const {
  1170. return m_strTitle;
  1171. }
  1172. AFX_INLINE void CXTPCommandBar::SetCommandBars(CXTPCommandBars* pCommandBars){
  1173. m_pCommandBars = pCommandBars;
  1174. }
  1175. AFX_INLINE HWND CXTPCommandBar::GetTrackFocus() const {
  1176. return m_hwndFocus;
  1177. }
  1178. AFX_INLINE void CXTPCommandBar::SetTrackFocus(HWND hwnd) {
  1179. m_hwndFocus = hwnd;
  1180. }
  1181. AFX_INLINE void CXTPCommandBar::SetVisible(BOOL /*bVisible*/) {
  1182. }
  1183. AFX_INLINE BOOL CXTPCommandBar::IsVisible() const {
  1184. return FALSE;
  1185. }
  1186. AFX_INLINE BOOL CXTPCommandBar::SetPosition(XTPBarPosition /*barPosition*/) {
  1187. return FALSE;
  1188. }
  1189. AFX_INLINE CSize CXTPCommandBar::CalcDynamicLayout(int, DWORD /*nMode*/) {
  1190. return CSize(0, 0);
  1191. }
  1192. AFX_INLINE CXTPCommandBar* CXTPCommandBar::GetParentCommandBar() const {
  1193. return NULL;
  1194. }
  1195. AFX_INLINE void CXTPCommandBar::OnRecalcLayout() {
  1196. }
  1197. AFX_INLINE BOOL CXTPCommandBar::IsCustomizable() const{
  1198. return m_bCustomizable;
  1199. }
  1200. AFX_INLINE BOOL CXTPCommandBar::IsDialogBar() const {
  1201. return FALSE;
  1202. }
  1203. AFX_INLINE void CXTPCommandBar::EnableCustomization(BOOL bEnable) {
  1204. if (!IsDialogBar()) m_bCustomizable = bEnable;
  1205. }
  1206. AFX_INLINE void CXTPCommandBar::SetIconSize(CSize size) {
  1207. m_szIcons = size;
  1208. }
  1209. AFX_INLINE void CXTPCommandBar::SetButtonSize(CSize size) {
  1210. m_szButtons = size;
  1211. }
  1212. AFX_INLINE DWORD CXTPCommandBar::GetFlags() const {
  1213. return m_dwFlags;
  1214. }
  1215. AFX_INLINE UINT CXTPCommandBar::GetBarID() const {
  1216. return m_nBarID;
  1217. }
  1218. AFX_INLINE void CXTPCommandBar::SetCommandBarData(DWORD_PTR dwData) {
  1219. m_dwData = dwData;
  1220. }
  1221. AFX_INLINE DWORD_PTR CXTPCommandBar::GetCommandBarData() const {
  1222. return m_dwData;
  1223. }
  1224. AFX_INLINE void CXTPCommandBar::LockRedraw() {
  1225. m_nLockRedraw ++;
  1226. }
  1227. AFX_INLINE void CXTPCommandBar::UnlockRedraw() {
  1228. m_nLockRedraw --;
  1229. if (m_nLockRedraw == 0 && (m_nIdleFlags & xtpIdleRedraw))
  1230. Redraw();
  1231. }
  1232. AFX_INLINE void CXTPCommandBar::SetGrabFocus(BOOL bGrabFocus) {
  1233. m_bGrabFocus = bGrabFocus;
  1234. }
  1235. AFX_INLINE BOOL CXTPCommandBar::PreviewAccel(UINT) {
  1236. return FALSE;
  1237. }
  1238. AFX_INLINE BOOL CXTPCommandBar::IsRibbonBar() const {
  1239. return FALSE;
  1240. }
  1241. AFX_INLINE BOOL CXTPCommandBar::IsPopupBar() const {
  1242. return FALSE;
  1243. }
  1244. AFX_INLINE void CXTPCommandBar::SetBarID(UINT nID) {
  1245. m_nBarID = nID;
  1246. }
  1247. AFX_INLINE XTPButtonStyle CXTPCommandBar::GetDefaultButtonStyle() const {
  1248. return m_buttonStyle;
  1249. }
  1250. AFX_INLINE void CXTPCommandBar::SetDefaultButtonStyle(XTPButtonStyle buttonStyle) {
  1251. m_buttonStyle = buttonStyle;
  1252. }
  1253. AFX_INLINE BOOL CXTPCommandBar::IsResizable() const {
  1254. return FALSE;
  1255. }
  1256. AFX_INLINE void CXTPCommandBar::OnPopupRButtonUp(CXTPCommandBar* /*pCommandBar*/, CPoint /*point*/) {
  1257. }
  1258. AFX_INLINE CXTPControl* CXTPCommandBar::GetSelected() const {
  1259. return GetControl(m_nSelected);
  1260. }
  1261. #endif //#if !defined(__XTPCOMMANDBAR_H__)