
Improves Ribbon Quick Access Toolbar, Gauge and Visual Manager.
Features
- Ribbon Bar
- Improved Ribbon customization:
- Added the ability to move custom control between custom groups and move custom groups between custom tabs.
- Revised mechanism of saving/restoring custom groups.
- CBCGPRibbonButton::SetMenu has a new, optional parameter "bKeepMenuHandle" (FALSE by default). When this parameter is TRUE, the menu is not converted to sub-items list.
- Extended Ribbon Quick Access Toolbar (QAT) appearance customization:
- The QAT can now be hidden: call new method CBCGPRibbonBar::SetQuickAccessToolbarVisible to toggle QAT visibility.
- You can now display the QAT Ribbon controls with text labels: call new method CBCGPRibbonBar::SetQuickAccessToolbarLabels to show/hide these labels.
- You can now specify which QAT customization features are available for the user (in the QAT editing menu): call new method CBCGPRibbonBar::SetQuickAccessToolbarEditFlags with combination of the following flags: BCGPRIBBONBAR_QAT_HIDE_ALLOWED, BCGPRIBBONBAR_QAT_SHOW_LABELS_ALLOWED and BCGPRIBBONBAR_QAT_CHANGE_LOCATION_ALLOWED.
- The recent QAT state is now automatically saved in the application settings and will be restored on the next application run.
- Improved Ribbon customization:
- Toolbars and Menus
- CBCGPPopupMenu::HideRarelyUsedCommands method is now virtual.
- CBCGPKeyboardPage (keyboard shortcuts customization page): Added tooltips for the wide (partially visible) command names.
- Gauge Controls
- CBCGPAnalogClock has the following additions and improvements:
- EnableSecondHand method has a new, optional parameter bSmoothMovement. When this parameter is TRUE and seconds needle is enabled, the needle is smoothly moved between the seconds tick marks.
- Added a new virtual method OnGetClockTime which allows you to specify a custom time.
- CBCGPGaugeImpl: Added rounded corners support for several gauges. SetCornerRadius and GetCornerRadius methods have been added to this class. You can specify the rounded shapes in the following gauge types:
- CBCGPColorIndicatorImpl.
- CBCGPLinearGaugeImpl.
- CBCGPNumericIndicatorImpl.
- CBCGPNumericIndicatorImpl: Added digit type:
- BCGP_NUMERIC_DIGIT_SEGMENTS_7.
- BCGP_NUMERIC_DIGIT_SEGMENTS_7_DOTS.
- BCGP_NUMERIC_DIGIT_SEGMENTS_16.
- Call newly added SetDigitType method to specify this type and GetDigitType to obtain it.
- Added new CBCGPNumericDateTimeIndicatorImpl and CBCGPDigitalClock gauges which implement a digital date/time indicator and digital clock.
- CBCGPNumericIndicatorImpl: Added new indicator state BCGP_NUMERIC_INDICATOR_STATE_NOTREADY.
- CBCGPAnalogClock has the following additions and improvements:
- Visual Manager and Themes
- CBCGPMenuButton: Improved separator appearance (split mode) in the various visual themes. In the previous versions the separator was always drawn as etched line.
- Improved appearance of expand/collapse button in various visual themes (OnDrawExpandingBox method).
- The colors returned by CBCGPVisualManager::GetNumericIndicatorColors method are now more contrast.
- Improved appearance of the Ribbon check box and radio button on the customization list item.
- CBCGPSliderCtrl: A channel now has rounded corners in Microsoft Office 2022 visual theme.
- Improved system caption buttons appearance in visual themes with owner-draw captions such as Microsoft Visual Studio 2019 or Office 2022. The icons are the same as in Microsoft Windows 10/11, Visual Studio and Office applications, and buttons are wider.
- Controls
- CBCGPInfoBoxRenderer: Added info box printing.
- CBCGPButton: Added a new global flag m_bDontSetCapture (FALSE by default). When this flag is TRUE, SetCapture/ReleaseCapture are never called and mouse tracking will be used instead. This flag is useful for applications sensitive for the mouse/keyboard capturing changes.
- CBCGPListBox: Added new attribute AutoToolTips (SetAutoToolTips and GetAutoToolTips access methods). When this attribute is TRUE, tooltip will be automatically displayed near list box item with not fully-displayed (too wide) text.
- MSAA and CodedUI Tests
- CBCGPURLLinkButton now has a correct role (system link).
- Improved accessibility support for some Ribbon controls such as Ribbon Gallery, Ribbon Undo button, Ribbon Quick Steps and others.
- CBCGPGroup with check box or radio button now has correct default action and description.
- CBCGPCalculator: Control name is now "Calculator" and control value is the same as displayed formatted text.
- CBCGPInfoBoxCtrl returns the info box text as accessibility name.
- Improved accessibility support for Calendar (Planner) control.
- Edit Control
- Added the ability to toggle comments around selected text using single typed character (e.g. '/' in C++ language). In addition, the following new methods have been added to CBCGPEditCtrl class:
- IsCommentingSelectedTextEnabled.
- CommentSelectedText.
- CommentText.
- GetCommentChars.
- Added a new HasSelection method: this method tells whether some text is selected.
- Added the ability to toggle comments around selected text using single typed character (e.g. '/' in C++ language). In addition, the following new methods have been added to CBCGPEditCtrl class:
- Miscellaneous
- Stdafx.cpp/.h files have been renamed to BCGPStdAfx.cpp/.h (to avoid possible incorrect precompiled header files references in user application).
- CBCGPBaseVisualObject: Added a new virtual method OnSystemSettingChange which is called when parent window is receiving WM_SETTINGCHANGE message.
- CBCGPPropertyManager: LoadValuesFromRegistry method now has a new, optional parameter 'bNotifyChanges' (FALSE by default). If this parameter is TRUE and property value loaded from the registry is not default, OnPropertyChanged is called for this property.
- CBCGPLightBoxDialogOptions has a new member m_bDisableParentWindow (default value is FALSE). When this attribute is TRUE, the whole parent frame is disabled and grayed out, so user is not able to resize or move it.
- Added a new helper class CBCGPInfoBoxView which simplifies creating CView-derived class with embedded info box.
- Improved printing of the several controls:
- Calendar (Planner): Print content is now the same as view content.
- Grid and Edit controls: Improved font and layout used for the printing.
- CBCGPGridCtrl: the following new access methods have been added (for obtaining/changing default exporting flags):
- SetDefaultExportToHtmlFlags.
- GetDefaultExportToHtmlFlags.
- SetDefaultExportToCsvFlags.
- GetDefaultExportToCsvFlags.
- Examples and Samples
- BCGPControls: Added auto-repeat push button demonstration to "Push Buttons" view.
- BCGPGaugesDemo has the following additions and improvements:
- "Analog Clock" view demonstrates a seconds' needle smooth movement.
- Added a new view "Digital Clock" that demonstrates a new Digital Clock gauge.
- Added "Rounded Corners" option to some views.
- Digital Indicator view demonstrates new "Not Ready" state and Digit Types.
- "Car Dashboard" view: a numeric indicator has been replaced with a new digital clock gauge.
- MMStyleExample: A numeric indicator (used for displaying a current position in the played song) has been replaced with a new date/time digital indicator.
- BCGPVisualStudioGUIDemo: Added demonstration on how to comment a selected text in the edit control.
- BCGPGridExample: The user interface of this example has been fully redesigned:
- Toolbars/Menu UI has been replaced with Microsoft Excel-like Ribbon-based UI.
- Current view-specific options are located now on the Ribbon contextual tabs and some new options illustrating grid control features have been added.
- BCGPMSOfficeDemo: Added demonstration on how to use new customization features of the Ribbon QAT.
- LightBoxDemo: Added "Close Light Box by Clicking Outside" and "Disabled Parent Window" options demonstration.
- RibbonGadgets: All Ribbon bar existing and new options have been moved from the menu to new property grid.