BCGControlBar Professional Edition Version: 26.0. Released: 9/27/2017 A new Light Box dialog class (CBCGPLightBoxDialog) was added (see screenshot). We're assuming that most of you already used Light Boxes in the Web/Mobile applications - they are very popular today. But we strongly believe that this kind of UI can be successfully used in the desktop applications too, so we decided to implement them in our libraries. Please take a look at LightBoxDemo new sample application to see this feature in action. Hope, you'll like this modern UI style and you can easily add these dialogs to your applications and make your nice-looking programs even better! Ribbon Bar Optimized Ribbon backstage view redrawing. New virtual method 'CBCGPRibbonBar::GetSystemIconSize' allows to display a custom-size system icon on the left-top corner of the Ribbon Bar. CBCGPRibbonCategory::IsHiddenInAppMode method is virtual now: 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 (see screenshot). CBCGPExplorerToolBar::EnableNavigationButtons has a new optional parameter 'UINT nHomeID'. ExplorerBarDemo sample application demonstrates this new feature. 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. Please call 'EnableDataPointsSorting(FALSE)' method to draw chart data points in the order they were added. Added order type for the legend entries. Call new method 'CBCGPChartVisualObject::SetLegendOrder' to set the order. The possible values are: LO_SERIES - default value. Draw entries in the order they were added. LO_REVERS - always in reversed order. LO_CHARTTYPE - depends on the chart type. Visual Manager and Themes Office 2016-like Visual Theme: improved system buttons appearance (see screenshot). New virtual method CBCGPVisualManager::OnDrawLightBoxDialogCloseButton allows to customize LightBox dialog "Close" button appearance. Grid and Report Controls New virtual method CBCGPGridItem::OnAddComboBoxItem allows to customize cell combo box items adding. A new virtual method CBCGPGridCtrl::CanShowColumnInColumnChooser allows to hide some columns in a Column Chooser pane. Added ability to disable header highlighting when all items in row are selected. New methods SetDisableWholeSelHeaderHighlighting and IsDisableWholeSelHeaderHighlighting were added to CBCGPGridCtrl class. 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 to customize 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 (see screenshot): 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. To activate it, you've to set a new global attribute 'globalData.m_bUseDlgFontInControls' to TRUE. Implemented tab state animation ("busyness indicator" - see screenshot). 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. Please take a look at BCGPInternetExplorerDemo and TabControl samples to see this feature in action. Added support for System DPI Aware (Windows 10 Creators update) in 'globalData.SetDPIAware' method. Examples and Samples New sample application LightBoxDemo demonstrates LightBox Dialog (see screenshot). 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.