
Includes SVG image support, GDI+ graphics manager and enhanced planner control.
Features
- Added SVG image support. All library internal images were converted to SVG format and Application Wizards include a new option: create a project with SVG icons.
The following new classes were added to the product:- CBCGPSVGImage: implements an SVG image loading and rendering.
- CBCGPSVGImageList: implements a list of SVG images ("sprite").
- Ribbon Bar
- CBCGPRibbonMainButton::SetImage and CBCGPRibbonMainButton::SetScenicImage methods have a new, optional parameter 'bDPIAutoScale'. Set it to TRUE if you wish to scale application button's image according to current DPI.
- Ribbon Bar controls key tip is no longer limited by 2 characters.
- New method CBCGPRibbonBar::SetTabButtonIcons allows specifying icons for controls located on the right side of the tabs area.
- New virtual method CBCGPRibbonBar::PrepareCustomLabel allows changing the command label appearing on the customization dialogs. The default appearance is " (custom)".
- CBCGPRibbonBar: added SVG icons support.
- Ribbon Designer supports SVG images now.
- Optimized backstage view header redrawing.
- Docking Panes
- CBCGPOutlookWnd: added SVG icons support.
- CBCGPTasksPane: added SVG icons support.
- CBCGPToolBar: added SVG icons support.
- Visual Manager and Themes
- CBCGPVisualManager2016: improved non-client colors in Office2016 Black theme.
- CBCGPVisualManager2016: improved appearance of Outlook bar page buttons.
- Improved appearance of checked Ribbon buttons in Office 2013/2016 themes.
- Added new global member CBCGPVisualManager::m_strStylePath that allows specifying style DLLs location.
- Grid and Report Controls
- New message BCGM_GRID_HEADER_CHANGED is called on any changes on grid header, when columns are inserted, deleted or column position, size or visibility are changed.
- Added new virtual method IsReportCtrl().
- Grid control: fixed print preview issue. Now the selected printer font is consistent in print preview mode and the print output.
- Calendar and Planner
- Implemented new view type: BCGP_PLANNER_TYPE_WEEK_DAYS. This view can be used instead of the standard week-view to show the week in multi-column mode (like work-week view).
- CBCGPPlannerManagerCtrl: added new attribute "Schedule Time Delta Day". Setting it to TRUE allows to display more appointments on the screen without scrolling the planner view. Call new method CBCGPPlannerManagerCtrl::SetScheduleTimeDeltaDay to set "day" scale instead of the standard "time" scale (60, 30, 20, ... minutes).
- Schedule View columns are now automatically stretched to occupy all free space.
- Implemented ability to display an item's tooltip in bounds of the whole appointment: SetToolTipWholeArea and IsToolTipWholeArea methods were added to CBCGPPlannerManagerCtrl class.
- Controls
- Added new method CBCGPBaseTabWnd::SetImageAutoScale. Call this method before CBCGPBaseTabWnd::SetImageList to automatically scale tab icons according to current DPI.
- CBCGPButton: added SVG image support.
- CBCGPDateTimeCtrl: implemented "read-only" mode. Call new method SetReadOnly to enable/disable this mode or IsReadOnly to check the mode.
- CBCGPEdit: added button's tooltip. Call new method SetBrowseButtonToolTip to specify the tooltip.
- CBCGPHeaderCtrl: implemented ability to align header item text on top. SetColumnTextVertTopAlign and IsColumnTextVertTopAlign methods were added.
- CBCGPComboBox: improved appearance of icons in the disabled control.
- CBCGPTreeCtrlEx: optimized control items adding performance.
- CBCGPComboBox: added ability to use a custom edit control - override new virtual method GetEditCtrl and return a reference to CBCGPEdit-derived object.
- CBCGPStatic: added a picture support. Call new method CBCGPStatic::SetPicture to display BMP, PNG or SVG image inside the control.
- Graphics Manager
- Added new class CBCGPGeometryGroup: implements a group of the geometries.
- CBCGPBrush: added gradient stops support (D2D and GDI+ only). SetLinearGradientStops, SetRadialGradientStops and GetGradientStops methods were added.
- CBCGPBrush: added color transformation methods:
- AddaptColors: translates brush color(s).
- InvertColors: inverts brush color(s).
- ConvertToGrayScale: converts brush color(s) to gray scale.
- Simplify: simplifies brush color(s) - all "non-empty" colors are converted to white.
- CBCGPStrokeStyle: implemented custom dashes support; SetDashes method was added.
- Implemented GDI+ graphics manager - CBCGPGraphicsManagerGdiPlus. This class will be automatically used when your application is launched on system where D2D is not available, e.g. Windows XP. If you need to force GDI+ manager usage, please specify BCGP_GRAPHICS_MANAGER_GDI_PLUS in CBCGPGraphicsManager::CreateInstance method.
- Miscellaneous
- libpng (used for PNG images rendering) was upgraded to version 1.6.34.
- Added new method BCGPGLOBAL_DATA::GetCommonIcon: this method returns an Office-style icon such as Warning, Question, Error or Info. These icons can be used in Message Boxes or user's application.
- CBCGPMessageBox: added Office-style icons. If you wish to use native Windows icons, simply set CBCGPMessageBox::m_bUseNativeIcons to TRUE.
- CBCGPPngImage class doesn't use ATL's CImage class by default anymore: libpng is used in all Visual Studio versions. If for some reason you don't want to use libpng, please uncomment BCGP_USE_CIMAGE_FOR_PNG in BCGCBProConfig.h and rebuild the library.
- CBCGPToolBarImages supports SVG images now (in the previous product versions only BMP and PNG formats were supported).
- Toolbar Editor now supports SVG images.
- Added new definition BCGP_USE_EXTERNAL_ZLIB to BCGCBProConfig.h: uncomment it if you're using external ZLIB in your project.
- BCGPGLOBAL_DATA::SetDPIAware method was adapted to Windows 10 Creators Update (Build 1709) changes.
Fixes
- Fixed some problems with compilation in Microsoft Visual Studio 2017 with /permissive- compiler option.
- CBCGPPropertyPage: fixed problem with a default button appearance on the themed wizard page in "aero" mode.
- Dialogs: fixed info tip positions after changing controls layout.
- CBCGPListBox: fixed problem with WM_COMPAREITEM message processing in CBCGPListBox-derived classes.
- CBCGPPropList: improved appearance of read-only date/time property.
- CBCGPRadialMenuObject: fixed bug with radial menu size after animation in high-DPI systems.
- CBCGPRibbonEdit: fixed bug with setting read-only mode after installing latest Windows 10 updates.
- CBCGPTasksPane: fixed bug with incorrect MSAA behavior when task pane's embedded toolbar is re-created.
- CBCGPToolBarImages: improved image pre-processing mechanism. GetPixel/SetPixel methods are no longer called for 24 or 32 bpp images. If you're still using 16 or 256 colors images, please consider upgrading them to a higher resolution to prevent application loading time problems under Windows 10 with latest updates.
- CBCGPTasksPane: fixed bug with task label vertical alignment is some visual themes.
- CBCGPWinUITiles: fixed bug with tiles layout after deleting all tiles in group.
- CBCGPGridCtrl: fixed color issues in report control with theme colors specified by m_ColorData.
- CBCGPGridCtrl: fixed drawing bug in multiline header: the merged header items with FreezeColumns feature and horizontal scrolling.
- CBCGPHeaderCtrl correctly draws center/right-aligned icons now.
- CBCGPRibbonBar: fixed bug with a caption redrawing after backstage horizontal scrolling in some visual themes.
- CBCGPGridCtrl: fixed some problems with a grid scrolling during selection by mouse.
- CBCGPScrollBar: fixed some issues with using control in the touch-screen environment.