All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- No Error message for Command Name with only 1 character, solves Issue#36.
- New functions for Gallery controls (InvalidateItemsSource() InvalidateCategories()).
- New function in the Ribbon class (IRibbonControl GetRibbonControlById(uint commandId)) to get an IRibbonControl by a CommandId.
- Remove deprecated .NET7 assembly
- Unlimited Ribbons for an application via Settings (Wrapper class name like Markup file instead of RibbonItems), solves Issue#18.
- RibbonRecentItems MaxCount calculation optimized. Init value of MaxCount is now -1. After first RibbonRecentItems ExecuteEvent one can get the designed value of MaxCount.
- Updated Errorhandling for Ribbon Properties ResourceName, ResourceIdentifier, ShortcutTableResourceName and associated embedded resources.
- Updated C# samples (Directory Samples\Updated-CS). Samples are build by RibbonTools and are using newer classes and functions from RibbonLib.
- Bugfix EventLogger for x64
- Changes for Errorhandling of Ribbon ResourceName.
- Newline (Line break) \n allowed for LabelTitle and TooltipTitle.
- Bugfix for Localize with special characters (eg. &).
- Destroy EventLogger.
- Hide Interface methods Execute, UpdateProperty, GetValue
- Update Ribbon Size for Designer
- New Name property (RibbonButton, RibbonComboBox, ...) for easier debugging. One can set the Name after instantiation the RibbonButton, ...
- Create method in GalleryItemEventArgs, ColorPickerEventArgs, FontControlEventArgs add a sender parameter for checking
- UIImage class new designed. This class can help for handling between Bitmap class and IUIImage interface
- Bitmap Alpha channel detection like Microsoft in the Icon class.
- Changes for Issue #12
- Update Size for the Ribbon Control.
- C# Sample "NewFunctions" updated with new sender parameter.
- Additional classes: AbstractPropertySet, QatCommandPropertySet, UICollection, SelectedItem, GalleryCommandProperties.
- RecentItemsEventArgs, GalleryItemEventArgs, ColorPickerEventArgs, FontControlEventArgs, HRESULT, PInvoke
- With usage of the additional classes the user don't need to handle Com interface IUICollection and the structs PropVariant and PropertyKey
- Gallery controls like RibbonComboBox, RibbonDropDownGallery, RibbonInRibbonGallery, RibbonSplitButtonGallery have easy to use new properties. GalleryCategories, GalleryItemItemsSource (for Item controls), GalleryCommandItemsSource (for Command controls) These new properties should be used instead of ItemsSource, Categories
- RibbonQuickAccessToolbar gets a new property: QatItemsSource. This should be used instead of ItemsSource
- DarkMode only for the Ribbon for newer Windows 10, Windows 11 versions (DarkModeRibbon property in the Ribbon class). But wait till Microsoft delivers DarkMode for WinForms
// Example code for the (Ribbon) Form to change DarkMode in TitleBar.
public unsafe void SetDarkModeTitleBar(bool enabled)
{
HRESULT hr;
int trueValue = 0x01, falseValue = 0x00;
HWND hwnd = new HWND(this.Handle);
if (enabled)
{
hr = PInvoke.DwmSetWindowAttribute(hwnd, DWMWINDOWATTRIBUTE.DWMWA_USE_IMMERSIVE_DARK_MODE, &trueValue, (uint)Marshal.SizeOf(typeof(int)));
PInvoke.SendMessage(hwnd, PInvoke.WM_NCACTIVATE, new WPARAM(0), new LPARAM());
PInvoke.UpdateWindow(hwnd);
}
else
{
hr = PInvoke.DwmSetWindowAttribute(hwnd, DWMWINDOWATTRIBUTE.DWMWA_USE_IMMERSIVE_DARK_MODE, &falseValue, (uint)Marshal.SizeOf(typeof(int)));
PInvoke.SendMessage(hwnd, PInvoke.WM_NCACTIVATE, new WPARAM(1), new LPARAM());
PInvoke.UpdateWindow(hwnd);
}
}
For PInvoke functions above see Microsoft.CsWin32 or Github page
- Bugfix in FontPropertyStore (DeltaSize is changed to a Nullable enum)
- In events for Spinner, ToggleButton, CheckBox one don't need to use ExecuteEventsArgs class.
- One can use for RibbonSpinner the property DecimalValue from this RibbonControl
- For RibbonToggleButton, RibbonCheckBox one can use property BooleanValue
- new C# Sample "NewFunctions" that shows the usage of new functions.
- Supported .NET Framework versions: 3.5 and 4.x. Supported .NET (Core) versions: 6.0, 7.0
- Tooltips for Qat CustomizeCommand ComboBox
- ResourceIdentifier savings
- Preview colorization design issue
- Bugfix RibbonDropDownColorPicker.StandardColors.
- Free unmanaged memory as soon as possible.
- Support for .NET7
- Correct usage of TActions
- delete unnecessary namespace in CodeBuilder for RibbonItems
- AssemblyVersion is now 1.0.0.0 for .NET Framework 3.5. This version is installed to the GAC. For all other (.NET Framework 4.0 and higher, .NET Core) the AssemblyVersion is 4.0.0.0. These changes are done for easier handling with different .Net versions, mainly for .NET Framework 4.x.
- Added functions (and small changes) to AlphaBitmap, NativeMethods
- Project files changes to the Ribbon with Assembly version 4.0.0.0
- So we don't need to activate the .NET Framework 3.5 in the Windows System
- Bugfixes: NullReferenceException with Empty Commands
- Command Images are now sorted when using Add, Add Range
- In SizeDefinitions ControlName is now optional.
- Now CommandName in Views shows only the CommandName. In the ComboBox list you get a Tooltip with the LabelTitle for the CommandName
- Some refactoring with ConvertImage
- Newline \n in TooltipDescription and LabelDescription allowed. In the markup xml file the \n is replaced with xml newline characters.
- DesignMode issue for .NET5, .NET6 (other naming for the Visual Studio Designer)
- Bugfixes: GalleryControls in AppMenuGroup and in other Groups
- Default TextPosition in GalleryControls
- RibbonToolsCore.sln only supports .NET6 (VS2022 required)
- Property Enabled of all Ribbon items returns true after application startup
- New: Image Converters with Bitmap V5 Header support
- Bugfix: Saving Bitmap files
- Methods added to class AlphaBitmap
- Big Views with better performance
- new Ribbon event ViewDestroy (Example: you can use it for saving the settings)
- new Properties (Tag, CommandType) for all Ribbon Controls (RibbonButton, ...)
- Interface IRibbonControl is now public
- some bugfixes
- Some Setting dialog text and tooltips modified.
- Bugfix: MiniToolbar add of controls not possible
- Bugfix: Issue with the WordPad template
- refactoring and new class AlphaBitmap
- Bugfix: RibbonSpinner with DecimalValue set by application
- Generating RibbonItems.Designer file: initialized removed.
- Bugfix: reading RibbonTabGroup.ContextAvailable throws Exception
- Update sample 14-ContextualTabs
- new Ribbon event: RibbonHeightChanged
- Help Tutorial is linked to the wiki
- using Ribbon.ResourceIdentifier for preview
- bugfix spinner DecimalValue
- Ribbon: comments for designtime properties
- new Ribbon property: ResourceIdentifier (normally leave it empty) Only neccessary if you use a not default (APPLICATION) name parameter with uicc.exe.
- .net core 3.1 project files
- Intellisense for ribbonitems.designer.cs(vb) props
- fix for comment in .h file
- fix color for log
- BugFix for QAT CustomizeCommandName
- Command in View lost when LabelTitle changed
- Issue with Add in View page
- other fixes and cleanups
- RibbonTools: Integration of Ribbon features they are available since Windows 8. More Qat Controls like ComboBox FontControl: IsGrowShrinkButtonGroupVisible DropDownGallery, SplitButtonGallery: IsMultipleHighlightingEnabled
- Documentation for RibbonTools, EventLogger
- Ribbon: more IntelliSense comments for the code behind.
- Ribbon: new EventLogger classes (since Windows 8) usage: from the Ribbon class you can get an instance of the EventLogger class (Property EventLogger). If you want use the EventLogger, you have to call EventLogger.Attach() and connect to the EventLogger.LogEvent. If you don't want the Logging anymore, then you have to call EventLogger.Detach().
- RibbonTools: Issues with xxGallery, DropDownButton, SplitButton, MenuGroups and Controls and other small fixes.
- RibbonTools: Settings added, faster Build
-
new application: RibbonTools. This is a tool for design, build and preview the Ribbon. This tool is
similar to the Delphi RibbonDesigner. One can call this tool also from commandline with option help (/h). RibbonGenerator and RibbonPreview functions are integrated in the new RibbonTools and therefore they are deprecated.
- Ribbon.dll: Calculation of Ribbon colors to / from HSB values as W3C describe. Calculation is not lossless. In Windows 10 Background and Highlight setting is a bit of strange.
- Ribbon.dll: new methods in Ribbon Control. SetBackgroundColor, SetHighlightColor, SetTextColor.
- RibbonPreview.exe: Single Color settings possible.
- CommandName can also have a Id which is not defined in the Commands.
- Update function for the Template.bat (Linker path)
- VBCodeBuilder as alpha version (not in RibbonGenerator included)
- Setup Icon for Ribbon Components (from ennerperez)
- RibbonPreview: Language selection for preview
- Build files for .Net Core 3.1
- Detection of latest Visual Studio Linker in RibbonGenerator for the Template.bat in LocalAppData folder RibbonGenerator.
- In Ribbon events with unhandled Exceptions the application exits now with Environment.FailFast(Stacktrace). Environment.FailFast write the information to the Windows application event logger. You can prevent this hard exit by using the new Ribbon event "RibbonEventException".
- Refactoring CodeBuilder, Parser, ... (RibbonGenerator, RibbonPreview)
- some Bugfixes
- ItemsSourceReady and CategoriesReady events now fires only once (Ribbon.dll)
- Template.bat is set to a new path for VS2019
- new RibbonPreview (Build the Ribbon and Preview).
- some refactoring and bugfixes
- In the file msi.zip are the Setups for Ribbon.msi, RibbonGenerator.msi, RibbonPreview.msi
- Uninstall older RibbonGenerator first !
- some Bugfixes
- Refactoring the CodeGenerator in RibbonGenerator.
- The Template.bat is now set to Visual Studio 2019 Community Edition
- In the file msi.zip are the Setups for Ribbon.msi and RibbonGenerator.msi
- see HowToUse.md
- file based RibbonMarkup.ribbon including localization
- C# Wrapper Code generated (RibbonItems.Designer.cs)
- new Sample
- Ribbon and RibbonGenerator work also in newer Visual Studio versions.
- We got a Setup for the components.
- HowToUse.md
- Project cleaning