Release Notes BCGControlBar Professional Edition Version: 30.5. Released: 06/01/2020 Ribbon Bar CBCGPRibbonSlider: control width is scaled now according to the current DPI. CBCGPRibbonBar: GetItemIDsList has a new, optional parameter 'bIncludePrintPreview'. If this parameter is FALSE, controls from "Print Preview" category are not included to the items list. A new virtual method CBCGPRibbonComboBox::OnCompareStrings allows to customize the Ribbon combo box items sorting. A new class CBCGPRibbonFontSizeComboBox allows to choose a size for specific font (see screenshot). In addition, a Ribbon Font Size combo-box was added to the Ribbon Designer. Please take a look at BCGPMSOfficeDemo example to see this control in action. Added context menu customization for the Ribbon-based applications (see screenshot). A new class CBCGPRibbonCustomizeContextMenuPage implements a context menu customization page; please take a look at BCGPMSOfficeDemo example to see this feature in action. Toolbars and Menus Toolbars customization: if user-defined image list is SVG, image editing is not allowed anymore. CBCGPReBar: added visual themes support (see screenshot). A new method EnableVisualManagerStyle was added to CBCGPReBar class. Please take a look at RebarDemo sample to see this feature in action. CBCGPToolbarButton: SetRect method is a virtual now. CBCGPToolBar: SVG image list can be used as "disabled" icons list now. CBCGPUserTool: added large icons support. If user adds a tool to toolbar and "Large icons" mode is active, the large (32x32 in 100% DPI) icon will be displayed on corresponding toolbar button (see screenshot). A new virtual method SetToolLargeIcon allows to specify a custom icon. Added a new class CBCGPToolbarDateTimeCtrl2 (derived from CBCGPToolbarDateTimeCtrl). This class has outlined COleDateTime member, so you don't have "1970-2038" limitation as CBCGPToolbarDateTimeCtrl has (it is based on CTime). Please run ToolbarDateTimePicker sample to see this component in action. Docking Panes CBCGPBaseControlBar::IsVisible returns FALSE now if window is not created yet. CBCGPDockingControlBar: added ability to hide the pane in Windows Navigator (invoked by Ctrl+Tab). Override a new virtual method IsVisibleInWindowsNavigator and return FALSE if you wish to hide the pane. MDI Windows and Tabs CBCGPMDIFrameWnd: a new method IsWindowsNavigatorActive tells whether a windows navigator (invoked by Ctrl+Tab) is active. CBCGPMDIFrameWnd: EnableWindowsDialog method has a new, optional parameter bStorePlacement. If this parameter is TRUE, "Windows" dialog will appear on the recent location with a recent size. Tasks Pane and Toolbox CBCGPToolBoxEx: implemented keyboard navigation support. CBCGPToolBox and CBCGPToolBoxEx: toolbox items can be disabled now (see screenshot). New methods Enable and IsEnabled were added to CBCGPToolBoxButton class. You may specify whether disabled items are visible or hidden by calling new methods CBCGPToolBoxEx::SetShowDisabledItems or CBCGPToolBox:: SetShowDisabledItems.All items located on specific toolbox page can be enabled/disabled by calling new method CBCGPToolBoxPage::Enable New method CBCGPToolBoxPage::SetEmptyPagePrompt allows to specify information displayed on the empty toolbox page (see screenshot). Chart Control Polar charts: CW and CCW direction of the polar X axis (CW by default). Starting angle for the polar X axis 0, 90, 180, 270 (90 by default). CBCGPChartLongSeries (huge average data): new X values filtering algorithm for long series ("Minimum", "Maximum", "Min\Max Mean" by default, "Average"). Call "CBCGPChartLongSeries::SetFilterMode" to set the filtration mode. Multiple pies and nested charts: blank spaces in multiple pie or nested doughnut charts. Call "CBCGPChartVisualObject::SetIgnoreInvisibleMultipleSeries" method to remove the blank spaces. Percentage series (Pie, Funnel, Pyramid): always show the tile caption (series name) for the percentage series (FALSE by default). Call new method 'CBCGPChartPercentSeries::SetAlwaysShowTileCaption' to show/hide captions. Gauge Controls Circular and Linear gauges: improved interactive mode. User can move now different data pointers located on the same gauge scale. Please take a look at new "Other Interactive Gauges" view in BCGPGaugesDemo example to see this feature in action. CBCGPNumericIndicatorImpl: implemented gauge interactive mode. CBCGPGaugeTrackingData has a new member m_nPointer. This member specifies an index of the gauge pointer that was clicked and dragged by user. Calendar and Planer CBCGPCalendar: added a new registered message BCGM_CALENDAR_ON_MONTHCHANGED. This message will be sent to the owner window upon first month changing. Handle this message if you wish to add some actions after months changing. CBCGPPlannerManagerCtrl and CBCGPPlannerView: a planner control and all views are touch-friendly now; the control content is scrolled vertically upon gesture pan event. CBCGPRecurrenceBaseRule: CreateCopy method is virtual now. Controls CBCGPListCtrl: added ability to disable column sorting on clicking a header item - new methods EnableSorting and IsSortingEnabled were added to this class. CBCGPGroup: DoDraw method is virtual now. CBCGPStatic: SetPicture method has a new, optional parameter 'bDisable3DColorsMapping'. When this parameter is FALSE, the system 3D colors are not mapped to the active visual theme colors. CBCGPTreeCtrlEx: added TVM_GETEDITCONTROL message processing. CBCGPTreeCtrlEx: added support for TVN_BEGINDRAG, TVN_BEGINLABELEDIT and TVN_ENDLABELEDIT notifications. Graphics Manager A new class CBCGPGraphicsManagerHelper provides easy and efficient way to use graphics manager in any CWnd-derived class: simply derive your class from CBCGPGraphicsManagerHelper (multiple inheritance), override OnGraphicsManagerDraw method and call DoGraphicsManagerDraw from OnPaint or OnDraw. Please take a look at our samples AnimationManagerDemo, GraphicsManagerDemo, TaskBarDemo or SVGViewDemo to see how to use this class. Added new shape geometries (new GraphicsManagerDemo demonstrates them): CBCGPShapeGeometry CBCGPShapeBasicGeometry CBCGPShapePolygonGeometry CBCGPShapeStarGeometry Please take a look at new sample GraphicsManagerDemo to see these shapes. CBCGPGradientPoint: added CompareWith method and '=' operator. MSAA and CodedUI Tests CBCGPEdit: if edit box is empty and control has a prompt, the prompt is returned now as accessibility value. CBCGPGaugeImpl::get_accValue returns a list of pointer values (separated by space) if gauge has multiple data pointers. CBCGPToolBoxEx and CBCGPTasksPane: significantly improved MSAA support for these components. Gantt Chart CBCGPGanttControl: added a new optional parameter to SetStartDateColumnIndex and SetFinishDateColumnIndex methods. A new parameter nFlags specifies date time format for "Start Date" and "Finish Date" columns. You may set Date, Time, or Date and Time combination. CBCGPGanttControl: added new methods GetStartDateFormatFlags, GetFinishDateFormatFlags that retrieve the date time format for "Start Date" and "Finish Date" columns. Miscellaneous Improved high-contrast mode support: application colors are correctly specified now in case of custom high contrast colors in Windows 10. In addition, many high-contrast issues were addressed in this release. BCGPGLOBAL_DATA::GetLinkIcon and BCGPGLOBAL_DATA::GetToolIcon(BOOL bLarge) methods have new, optional parameter 'BOOL bLarge'. If this parameter is TRUE, a large icon will be returned. Addressed all issues with compiling library with /permissive- flag and C++ 17. CBCGPImageEditDlg: image preview area is DPI-aware now. CBCGPSplitterWnd: if parent window doesn't have a visual manager support (not themed), the control is painted using standard Windows colors. CBCGPEditView: implemented standard ID_EDIT_REPEAT command processing. CBCGPTabWnd: implemented minimal width of tabs - new methods SetTabMinWidth and GetTabMinWidth were added. CBCGPSVGImage: added "display" style attribute processing. CBCGPToolBarImages: new method SetDisable3DColorsMapping allows to fully disable 3D system colors mapping. Improved appearance of dialogs special background areas (such as dialog background image, message box buttons area, expandable area, progress dialog header or "About" box top-located logo): these areas are also rendered on the dialog edges now (see screenshot). In addition, you can call new CBCGPDialog method from WM_NCPAINT message handler and add a new registered message BCGM_ONDRAWNCSPECIALAREA handler to draw your custom areas - see DlgBars sample. Improved new Application Wizard (for Visual Studio 2017/2019). The most significant improvements are: Better source code generated by the wizard (improved code formatting, unnecessary resource files are not included in the generated project anymore). Implemented ability to add "Ribbon Display Options" button (Office 2016/2019-like). Improved Windows Explorer-style application generated by the wizard (added command handlers for navigation buttons and breadcrumb demo items). A new method CBCGPDiagramImageObject::SetImageOpacity sets the opacity of the image diagram object. Set the opacity 0 for transparent images, set 1.0 for opaque images. CBCGPGridCtrl: a new method MoveRow allows to move grid row by specified offset. Examples and Samples BCGPGaugesDemo: added interactive circular and linear gauges demonstration (see screenshot). BCGPMSOfficeDemo: added Ribbon Font Size combo box and Context Menu property page demonstrations. WordPad: added Ribbon Font Size combo box demonstration. AnimationManagerDemo: CCanvasWnd demonstrates how to use a new class CBCGPGraphicsManagerHelper. DiagramEditor: added image opacity demonstration. DlgBars: added demonstration of how to draw pane edges on the dialog non-client area using new DoDrawSpecialAreaOnNC method and new registered message BCGM_ONDRAWNCSPECIALAREA (see screenshot). GraphicsManagerDemo: this new sample application illustrates usage of CBCGPGraphicsManager class (see screenshot). ProgressDialogDemo: a custom progress control is using now a new class CBCGPGraphicsManagerHelper. RebarDemo: demonstrates themed (visual manager-based) rebar (see screenshot). RibbonDialogBar: added CBCGPRibbonFontSizeComboBox demonstration. RibbonGadgets: added CBCGPRibbonFontSizeComboBox demonstration. SVGViewDemo: demonstrates a new class CBCGPGraphicsManagerHelper. ToolbarDateTimePicker: demonstrates usage of a new class CBCGPToolbarDateTimeCtrl2. ToolBoxDemo: demonstrates new ToolBox features such as keyboard navigation, adding toolbox pages, empty page prompt and resetting toolbox content. BCGPChartExample: added demonstration of CW and CCW direction and starting angle of the polar X axis ("Polar Charts" view) and new filtering algorithm in "Huge average data" view. Fixes Ribbon Bar QAT customization dialog: separator always appears now on top of the source list. CBCGPPropList: addressed issue with filter box height when toolbar large icon mode is activated. CBCGPPrintPreviewToolBar: toolbar doesn't appear in toolbars customization dialog anymore. CBCGPOutlookWnd: addressed some border drawing issues in certain visual themes. CBCGPPropertySheet: addressed issue of incorrect scaling of SVG tab icons in high-DPI mode. CBCGPPropertySheet: addressed issue with page transition if OnWizardNext or OnWizardBack (overridden in the property page) return a custom value (page index). CBCGPToolBarImages::CopyImageToClipboard: SVG icon is correctly copied to the clipboard (as bitmap) in high-DPI mode. CBCGPFrameWnd: addressed issue with main application frame popup (temporary visible) menu activation when the menu is activated from the torn-off frame. CBCGPRibbonBar: the Ribbon controls state is updated immediately after closing backstage view. CBCGPMainClientAreaWnd: addressed issue with incorrect tab window border size after creating a new MDI tab group. CBCGPExplorerToolBar: addressed issue with address bar (breadcrumb) location and Z-order. CBCGPExplorerToolBar: navigation buttons have a contrast color in all dark visual themes now. Addressed some issues with frame non-client area when user switches to the high contrast mode or back. CBCGPRibbonEdit: addressed issue with control's vertical alignment when control is located on the frame caption bar. Tasks Pane and Toolbox: addressed various MSAA issues. CBCGPDialog: addressed issue with incorrect border after resizing a maximized dialog box in some visual themes. Bubble Chart: addressed issue with an invalid label value when the X component is not specified. Planner control: addressed issue with incorrect insertion of appointments into the planner after pasting. Ribbon Backstage View: addressed issue with slider zoom button flickering when the view is being resized. Ribbon Bar: removed unnecessary system icon on Backstage View (in Office 2013-style Visual Manager). CBCGPEditCtrl: addressed issue with displaying hyperlink with custom color. CBCGPGridCtrl: addressed issue with dragging non-selected grid rows. CBCGPEditCtrl: addressed issue with displaying hyperlink with "https" prefix. CBCGPGraphicsManagerGDI and CBCGPGraphicsManagerGdiPlus: addressed some issues with a text drawing.