Release Notes BCGControlBar Professional Edition Version: 34.1. Released: 02/27/2024 Added a new class, CBCGPWebView2View, that encapsulates CBCGPWebView2Ctrl. This class offers an easy and efficient method for utilizing CBCGPWebView2Ctrl within the document/view application. Its interface closely resembles that of CHtmlView, minimizing the need for significant effort when upgrading your code to WebView2. Implemented Windows 10/11 Font Icons support. The latest Windows versions (10 and 11) provide a rich set of built-in font icons (which can be found in Windows 10's Segoe MDL2 Assets and Windows 11's Segoe Fluent Icons fonts). In this version, we have implemented an easy and efficient way to use these icons in your application. First, you can use our Ribbon Designer to add these font icons and customize their appearance in a few clicks (see screenshot). Alternatively, you can create the font icon with the help of the new method CBCGPSVGImage::CreateIconFromFont and then use this SVG icon or add the Font Icon to the image list using the CBCGPToolBarImages::AddSVGIconFromFont new method. Note: BCGSoft does not collect, save, or distribute these icons and is not responsible for their appearance and content. You can only use these icons on client machines running Windows 10 or 11. Ribbon Bar We have implemented the ability to specify the appearance of Ribbon icons in dark themes: A new method in CBCGPRibbonBar, SetImagesLuminosityInDarkThemes, allows you to specify the luminosity of Ribbon icons and the appearance of gallery icons in dark themes. CBCGPRibbonBar::SetImagesLuminosity now includes an optional parameter, galleryIconsLook, which can take values such as 'original', 'default', 'inverted', or 'simplified'. If the parameter dblRatio of CBCGPRibbonBar methods SetImagesLuminosity and SetImagesLuminosityInDarkThemes is set to 0, the Ribbon icons will be simplified (refer to the RibbonSimplifiedMode sample application: screenshot). Please refer to the BCGPMSOfficeDemo example to observe this new feature in action. The new method CBCGPRibbonBar::IsTouchMode indicates whether the Ribbon bar touch mode is currently activated. Ribbon Designer improvements: Ribbon Designer now supports Font Icons, allowing easy assignment of icons from the 'Segoe Fluent Icons' font (for Windows 11) or the 'Segoe MDL2 Assets' font (for Windows 10) to your Ribbon controls (see screenshot) New properties 'Images Luminosity' and 'Gallery Icons Look' have been added for the Ribbon Bar. A new 'Icons Style' property has been introduced for the Status Bar. Dialogs and Forms CBCGPTaskDialog: Added support for the TDF_SIZE_TO_CONTENT flag (refer to the TaskDialogDemo sample). Background Image Support Improvements: CBCGPDialog and CBCGPPropertyPage classes now include a new, optional parameter, bScaleByDPI, in the SetBackgroundImage method. When set to TRUE, this parameter scales the background image according to the current DPI. CBCGPFormView class now supports background images with the addition of the SetBackgroundImage method. Enhanced appearance of background images in scrollable dialogs (CBCGPScrollDialog). CBCGPDialog: Improved appearance of expandable dialogs with background images (see screenshot). CBCGPEditBrushOptions: Added a new member, m_bNoGradients (default is FALSE). When set to TRUE, this member allows the brush to be empty or a solid color only. MDI Windows and Tabs BCGPGLOBAL_DATA: Added a new member, m_bMFCV1BackwardCompatibility (default is FALSE). When set to TRUE, the pre-last item in the MDI menu is treated as the "Windows" menu, replicating MFC 2.0 or earlier behavior. CBCGPMDIFrameWnd: Introduced a new virtual method, GetMDITabColor. Override this method to specify the tab background color for specific MDI child windows. Please refer to the MDITabsDemo sample to observe this new feature in action. CBCGPMDIFrameWnd: Added a new method, ResetMDITabColors, which resets all MDI tab background colors to their default values. Gauge Controls Circular and linear gauges: improved built-in color themes such as Blue or Silver (see screenshot). CBCGPCircularGaugeImpl and CBCGPLinearGaugeImpl: a new method GetColorTheme returns a currently selected built-in theme id or (-1) if the gauge uses either a custom or visual manager-based theme. CBCGPCircularGaugeImpl: a new virtual method OnAfterSetColorTheme is called by the framework after setting the standard color theme. Override this method to change the standard theme colors. Visual Container and Visual Designer CBCGPVisualEffect: added a new enumeration BCGP_VISUAL_SOURCE: BCGP_VISUAL_SOURCE_DEFAULT - depends on the effect BCGP_VISUAL_SOURCE_COLOR - color and alpha channel BCGP_VISUAL_SOURCE_ALPHA - alpha channel Visual Designer improvements: Added a new 'Themes' property for circular and linear gauges (see screenshot). Added a new 'Effects' property for circular, linear, color indicator, text, and image gauges (see screenshot). CBCGPVisualContainer: a new method EnableVisualEffects allows you to temporarily enable or disable visual effects for all objects. AreVisualEffectsEnabled method tells whether the visual effects are enabled. Visual Manager and Themes CBCGPVisualManager: a new method OnDrawSwitchWithColor allows you to draw switch control with specified On/Off colors. CBCGPVisualManager: the following new Planner drawing methods were added: CanFillDayNonWorkingItem: tells whether non-working days should be filled with a special background. OnFillPlannerDurationBar: called by the framework for filling the planner duration bar. GetPlannerViewBackgroundColor: returns the planner view background color. OnDrawPlannerHeaderAllDayItemBorder: called by the framework for drawing "All day" header border. CBCGPVisualManager: a new method IsRibbonBarDark tells whether the Ribbon bar has a dark background. CBCGPVisualManager: improved foreground color of the tab control with custom tab colors. CBCGPVisualManagerVS2012 (and newer visual themes): improved appearance of the active, colored tab (3D style). A new appearance is similar to Visual Studio 2022 MDI colored tabs, where the active tab is completely filled with a specified color and other tabs have color bars (see screenshot). Grid and Report Controls BCGP_GRID_COLOR_DATA: a new method InitColors simplifies colors initialization to the default values. CBCGPGridCheckItem: a new method SetSwitchColors allows you to specify switch custom colors (see screenshot). Our example, BCGPGridExample, demonstrates this addition. CBCGPGridCtrl: a new method SetContentFullClear specifies the behavior of CBCGPGridItem::ClearContent method. If you are calling this method with the parameter TRUE, all grid item data will be deleted when CBCGPGridItem::ClearContent method is called; otherwise, only the grid item value is cleared. By default, the full clearing of the content is disabled. In addition, a new method, IsContentFullClear, tells whether the full clearing of the content is enabled. CBCGPGridCtrl: implemented the ability to specify the hierarchy line color. Call the new method SetTreeLineColor to change the line color, and call GetTreeLineColor to obtain the line color. CBCGPGridCtrl: a new method SetTextColor sets the text color of the control. If the color value is -1, the default text color will be used. Calendar and Planner Improved the planner/scheduler appearance in the Office 2022 themes (see screenshot). CBCGPPlannerManagerCtrl: implemented the ability to enable or disable the 'move' cursor when the mouse pointer is located in the move area of the appointment. Call the new method EnableAppointmentMoveCursor to enable or disable this. Controls CBCGPListBox: a new virtual method OnBeforeFillItem allows you to customize the appearance of certain list box items. Please take a look at BCGPControls example ("List box" view) to see this new feature in action (see screenshot). CBCGPBaseTabWnd: a new method ResetColors resets all tabs background and foreground colors to their default values. CBCGPTreeCtrlEx: the following CTreeCtrl-like methods were added to this control: GetIndent SetIndent SetBkColor GetItemHeight SetItemHeight GetLineColor SetLineColor EndEditLabelNow CBCGPWebView2Ctrl: the new virtual method OnWebViewCreated is called when the WebViiew2 controller is ready. Shell Management CBCGPShellBreadcrumb: added the ability to automatically expand environment strings (such as %APPDATA%) typed in the control edit box. Call the new method, EnableExpandEnvironmentStrings, to enable this feature. CBCGPFileDialogEx: file name edit box and path breadcrumb have auto-expanding environment strings (such as %APPDATA%) now. Miscellaneous CBCGPWinUIBaseObject: added a new virtual method OnDPIChanged; override this method if you need to perform some custom actions upon DPI changing. CBCGPWorkspace: Implemented the ability to prevent the loading of keyboard accelerators from the registry. If your application does not include keyboard customization (as part of the Ribbon or toolbar customization dialogs), please call the new method EnableLoadKeyboardAccelerators with the parameter bEnable set to FALSE in your application class constructor. This ensures that newly added keyboard accelerators will always be available. CBCGPXmlNode: added support for reading and writing the UNICODE strings in MBCS applications; new methods GetTextW and SetTextW were added to this class. CBCGPGraphicsManager: a new method ExportSymbolToBitmap allows you to create a bitmap containing a symbol (using special fonts like "Segoe Fluent Icons" for Windows 11 or "Segoe MDL2 Assets" for Windows 10). Please take a look at our GraphicsManagerDemo sample ("Texts" view) to see this addition in action (see screenshot). CBCGPToolBarImages: the following new methods were added to this class for the Font Icons support: AddSVGIconFromFont SetSVGFontIconColor GetSVGFontIconColor Application Wizard additions and improvements: Added the new option "Use Font Icons" (for Ribbon-based applications with SVG icons). When this option is checked, the application will be created with Windows 10/11 Font Icons (see screenshot). Added "Auto light icons in the dark themes" option (Ribbon-based application only). When this option is checked, the Ribbon icons will be automatically adapted for the dark themes. The new option "Fixed Menu Bar" allows you to create a toolbar/menu bar-based application with a fixed (that cannot be moved) menu bar located on top. A new class, CBCGPWebView2View, was added to the generated view list. CBCGPSVGImage: method ExportToBitmap has a new, optional parameter, 'bOptimizedConvertion' (FALSE by default). When this parameter is TRUE, a new optimized (single-pass) rendering will be used. The optimized conversion is always used for the font icons export. CBCGPToolbarComboBoxButton: a new global flag 'm_bFullHeight' specifies whether the height of the combo box is the same as the height of other toolbar buttons. By default, this flag is FALSE. Examples and Samples BCGPControls: added List Box custom colors and Tree Control custom indent demonstrations. BCGPGridExample: added grid switch custom colors demonstration. BCGPMSOfficeDemo, BCGPPaint, and RibbonSimplifiedMode: added demonstration how to specify the Ribbon icons in the dark themes. MDITabsDemo: added MDI tabs custom colors demonstration. ExpandDialogDemo: added custom background image demonstration. GraphicsManagerDemo: added font icons demonstration. TaskDialogDemo: added BCGP_TDF_SIZE_TO_CONTENT flag demonstration and example of usage of the custom textured background. ToolbarImages: added a demonstration of how to add the font icons to toolbar images (see screenshot). Fixes Addressed the issue with incorrect icon (such as menu images) color in the dark contrast themes. CBCGPInfoBoxCtrl: addressed the issue with incorrect tooltips when the link occupies more than one row. CBCGPTaskDialog: addressed some issues with incorrect dialog width. CBCGPTasksPane: fixed bug with incorrectly selected or highlighted items after removing task pane groups or items at runtime. CBCGPButton: addressed the issue with incorrect check box left margin when the control has "left text" style. CBCGPDialog: addressed the issue with unnecessary rounded corners when the dialog is maximized. CBCGPPopupWindow: addressed the issue with incorrect popup window height when the popup does not have both a caption and a gripper (for example, the information tip). CBCGPRibbonBackstageViewPanel: the panel vertical scrolling will be reset upon backstage view changing. CBCGPGridCtrl: addressed some MSAA issues with bounding rectangles of horizontally scrolled grid rows. CBCGPGridCtrl: addressed the issue with an unnecessary in-place tooltip when the grid child window (such as grid cell edit box) is active. CBCGPGridCtrl: fixed bug with incorrect highlighted item after removing grid items. CBCGPPlannerManagerCtrl: addressed the issue with displaying planner with multi-resource storage when the resource list is empty. Image processing: addressed possible alpha channel overflow inside BCGPModifyBitmapLuminosity method. Gauges and diagrams: addressed the issues with drawing shadows for the objects with an empty background or outline brush. CBCGPTasksPane: addressed the issue with possible incorrect image height in case of calling SetIconsList with SVG icons list.