
Includes new Light Box dialog class, improved Property Grid and Tab state animation.
Features
- Added new Light Box dialog class (CBCGPLightBoxDialog).
- Ribbon Bar:
- Optimized Ribbon backstage view redrawing.
- New virtual method 'CBCGPRibbonBar::GetSystemIconSize' displays a custom-size system icon on the left-top corner of the Ribbon Bar.
- CBCGPRibbonCategory::IsHiddenInAppMode method is now virtual: you may override it to show/hide the Ribbon category (tab) under certain conditions.
- Toolbars and Menus:
- CBCGPDropDownToolbarButton: method SetDefaultCommand is virtual now.
- CBCGPExplorerToolBar: added optional "Home" button.
- Chart Control:
- Chart legend: Added ability to specify a legend cell text alignment. new SetTextAlignment and GetTextAlignment methods were added to CBCGPChartLegendCell class.
- Added ability to draw unsorted 'Pyramid' and 'Funnel' charts as sorted by default.
- Added order type for the legend entries.
- Visual Manager and Themes
- Office 2016-like Visual Theme: improved system buttons appearance.
- New virtual method CBCGPVisualManager::OnDrawLightBoxDialogCloseButton allows customizing LightBox dialog "Close" button appearance.
- Grid and Report Controls
- New virtual method CBCGPGridItem::OnAddComboBoxItem allows customizing adding cell combo box items.
- A new virtual method CBCGPGridCtrl::CanShowColumnInColumnChooser allows hiding some columns in a Column Chooser pane.
- Added ability to disable header highlighting when all items in a row are selected.
- New virtual method CBCGPGridCtrl::OnAfterTrackHeader is called after header item was resized by the user.
- New method CBCGPGridCtrl::IsWholeRowSelected checks whether all items in a row are selected.
- Property Grid Control
- New virtual method CBCGPProp::OnAddComboBoxItem allows customizing adding combo box items.
- CBCGPBitwiseProp constructor has a new, optional parameter 'parAllowedFlags' - array of values that can be displayed and selected.
- Added ability to enable/disable grid lines: EnableGridLines, HasHorizontalGridLines and HasVerticalGridLines methods were added to CBCGPPropList class.
- Implemented grid row vertical padding. Increasing a padding value makes the property grid control more touch-friendly. Call new method 'CBCGPPropList::SetRowPadding' to specify the row padding and 'CBCGPPropList:: GetRowPadding' to obtain a padding value.
- Added alternate rows support: call new method 'CBCGPPropList::SetAlternateRowColor" to enable/disable drawing odd/even grid rows using different colors. 'CBCGPPropList::IsAlternateRowColor' tells weather an alternate rows support is enabled or not.
- Controls
- CBCGPAnimCtrl::SetBitmap has a new, optional parameter 'bDPIAutoScale'. Set it to TRUE if you wish to scale animation frames list according to current DPI.
- Calendar bar allows keeping selection when user clicks some day from the previous or next month. If for some reason you need to keep a former behavior, set new global flag CBCGPCalendar::m_bSelectNextPrevMonthDate to FALSE.
- CBCGPComboBox: implemented vertical and horizontal item paddings. SetVerticalPadding, GetVerticalPadding, SetHorizontalPadding and GetHorizontalPadding methods were added.
- CBCGPHeaderCtrl: added support for HDS_CHECKBOXES and HDS_NOSIZING Windows styles.
- CBCGPHeaderCtrl: implemented multi-rows support. SetRows, GetRows and HasWordBreak methods were added to this class.
- CBCGPHeaderCtrl: implemented column's text color support. SetColumnTextColor and GetColumnTextColor methods were added.
- CBCGPInfoBoxRenderer: m_bFixedFrameWidth and m_bFixedFrameHeight flags were added. If these flags are TRUE, the info box frame will occupy the whole control area.
- Miscellaneous
- Implemented ability to use a parent window's font in all dialog controls.
- Implemented tab state animation ("busyness indicator"). The following methods were added to CBCGPTabWnd class:
- SetTabStateAnimationImages: specifies animation frames image list.
- StartTabStateAnimation: starts animation. The animation frames will be drawn instead of tab icon.
- StopTabStateAnimation: stops animation.
- IsTabStateAnimation: tells whether tab state animation is running now.
- ResetTabStateAnimationStep: makes first animation frame as current.
- OnDrawTabStateFrame: this new virtual method allows drawing your own tab animation.
- Added support for System DPI Aware (Windows 10 Creators update) in 'globalData.SetDPIAware' method.
- Examples and Samples
- New sample application LightBoxDemo demonstrates LightBox Dialog.
- BCGPControls: demonstrates Property Grid alternate rows and Animation control DPI auto-scaling.
- BCGPInternetExplorerDemo: shows how to add a state animation to MDI tabs.
- ComboBoxDemo: demonstrates how to specify combo box item vertical and horizontal paddings.
- ExplorerBarDemo: added explorer bar "Home" button demonstration.
- TabControl: demonstrates tab state animation.
Fixes
- CBCGPAnimationManager: fixed some issues in "legacy" (timer-based) animation. This fix improves animation process under Windows XP or earlier versions where Windows native animation is not available.
- CBCGPButton::OnPaint passes ODS_DISABLED flag to CBCGPButton::DoDrawItem if control is disabled.
- CBCGPColorDialog: fixed some problems with an idle processing in color picker mode.
- CBCGPGroup: invisible groups are not rendered anymore by the parent dialog now.
- CBCGPDockManager: control bars context menu is not displayed in the print-preview mode now.
- CBCGPMDIChildWnd: fixed bug with tracking system buttons on inactive MDI child frame.
- CBCGPListBox: corrected pin location when control has a horizontal scroll bar.
- CBCGPPropList: fixed bug with check box disappearing when property menu button is not enabled.
- CBCGPStatic: fixed some drawing problems when control has SS_ENDELLIPSIS or SS_LEFTNOWORDWRAP Windows styles.
- Charts: fixed problem with default tooltip in the 'Pyramid' and 'Funnel' charts.
- CBCGPInplaceToolTipCtrl: fixed bug with multiline tooltip appearance.
- CBCGPGridCtrl: fixed bug with sorting unsigned integers.
- CBCGPEditCtrl: fixed bug with highlighting markers on typing.
- CBCGPTreeCtrlEx::GetItem is working correctly now when TVIF_HANDLE is not specified in pItem->mask.