Skip to content

Commit

Permalink
Merge branch 'release/v23.1.0' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
billhenn committed Feb 7, 2023
2 parents 0cf4292 + b471291 commit ae88453
Show file tree
Hide file tree
Showing 399 changed files with 17,234 additions and 12,587 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/integration-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,19 @@ jobs:

env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
LICENSEKEY: ${{ secrets.ACTIPRO_CONTROLS_WINFORMS_V22_1_LICENSEKEY }}
LICENSEKEY: ${{ secrets.ACTIPRO_CONTROLS_WINFORMS_V23_1_LICENSEKEY }}

steps:
- name: Cancel duplicate runs
uses: fkirc/skip-duplicate-actions@master
uses: fkirc/skip-duplicate-actions@v5
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Run build project
run: dotnet run --project ./Build/Build.csproj -- --target IntegrationBuild --licensekey "$env:LICENSEKEY"
- name: Notify Slack
if: always()
uses: act10ns/slack@v1
uses: act10ns/slack@v2
with:
status: ${{ job.status }}
2 changes: 1 addition & 1 deletion Build/Build.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<RootNamespace>ActiproSoftware.Tools.Builds</RootNamespace>
<Company>Actipro Software LLC</Company>
<Authors>Actipro Software LLC</Authors>
<Copyright>Copyright (c) 2020-2022 Actipro Software LLC. All rights reserved.</Copyright>
<Copyright>Copyright (c) 2020-2023 Actipro Software LLC. All rights reserved.</Copyright>

<GeneratePackageOnBuild>false</GeneratePackageOnBuild>

Expand Down
38 changes: 19 additions & 19 deletions Documentation/docfx.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,23 @@
{
"src": "../../Source/bin/Release",
"files": [
"net40/ActiproSoftware.Shared.WinForms.dll",
"net40/ActiproSoftware.Bars.WinForms.dll",
"net40/ActiproSoftware.Docking.WinForms.dll",
"net40/ActiproSoftware.Navigation.WinForms.dll",
"net40/ActiproSoftware.SyntaxEditor.Addons.DotNet.WinForms.dll",
"net40/ActiproSoftware.SyntaxEditor.Addons.JavaScript.WinForms.dll",
"net40/ActiproSoftware.SyntaxEditor.Addons.Python.WinForms.dll",
"net40/ActiproSoftware.SyntaxEditor.Addons.Xml.WinForms.dll",
"net40/ActiproSoftware.SyntaxEditor.WinForms.dll",
"net40/ActiproSoftware.Text.Addons.DotNet.WinForms.dll",
"net40/ActiproSoftware.Text.Addons.DotNet.Roslyn.WinForms.dll",
"net40/ActiproSoftware.Text.Addons.JavaScript.WinForms.dll",
"net40/ActiproSoftware.Text.Addons.Python.WinForms.dll",
"net40/ActiproSoftware.Text.Addons.Xml.WinForms.dll",
"net40/ActiproSoftware.Text.LLParser.WinForms.dll",
"net40/ActiproSoftware.Text.WinForms.dll",
"net40/ActiproSoftware.Wizard.WinForms.dll"
"net462/ActiproSoftware.Shared.WinForms.dll",
"net462/ActiproSoftware.Bars.WinForms.dll",
"net462/ActiproSoftware.Docking.WinForms.dll",
"net462/ActiproSoftware.Navigation.WinForms.dll",
"net462/ActiproSoftware.SyntaxEditor.Addons.DotNet.WinForms.dll",
"net462/ActiproSoftware.SyntaxEditor.Addons.JavaScript.WinForms.dll",
"net462/ActiproSoftware.SyntaxEditor.Addons.Python.WinForms.dll",
"net462/ActiproSoftware.SyntaxEditor.Addons.Xml.WinForms.dll",
"net462/ActiproSoftware.SyntaxEditor.WinForms.dll",
"net462/ActiproSoftware.Text.Addons.DotNet.WinForms.dll",
"net462/ActiproSoftware.Text.Addons.DotNet.Roslyn.WinForms.dll",
"net462/ActiproSoftware.Text.Addons.JavaScript.WinForms.dll",
"net462/ActiproSoftware.Text.Addons.Python.WinForms.dll",
"net462/ActiproSoftware.Text.Addons.Xml.WinForms.dll",
"net462/ActiproSoftware.Text.LLParser.WinForms.dll",
"net462/ActiproSoftware.Text.WinForms.dll",
"net462/ActiproSoftware.Wizard.WinForms.dll"
// "**.csproj"
]
}
Expand Down Expand Up @@ -68,10 +68,10 @@
"_appTitle": "Actipro WinForms Controls Docs",
"_docsCompanyHref": "https://www.actiprosoftware.com/products/controls/windowsforms",
"_docsCompanyName": "Actipro Software LLC",
"_docsCopyrightYears": "1999-2022",
"_docsCopyrightYears": "1999-2023",
"_docsProductHref": "https://www.actiprosoftware.com/products/controls/windowsforms",
"_docsProductName": "WinForms Controls",
"_docsProductVersion": "22.1",
"_docsProductVersion": "23.1",
"_disableContribution": true,
"_enableNewTab": true,
"_gitContribute": {
Expand Down
3 changes: 2 additions & 1 deletion Documentation/topics/bars/extensible-rendering.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ Bars includes these built-in renderers, which support Metro Light, Office 2007/2

| Renderer | Description |
|-----|-----|
| [MetroLightBarRenderer](xref:@ActiproUIRoot.Controls.Bars.MetroLightBarRenderer) | Capable of drawing Metro Light bar controls. |
| [MetroBarRenderer](xref:@ActiproUIRoot.Controls.Bars.MetroBarRenderer) | Capable of drawing Metro styles (Light and Dark) for bar controls. To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Bars.MetroBarRenderer.BaseColorSchemeType). |
| [MetroStatusBarRenderer](xref:@ActiproUIRoot.Controls.Bars.MetroStatusBarRenderer) | Capable of drawing Metro styles (Light and Dark) for statusbar controls. To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Bars.MetroStatusBarRenderer.BaseColorSchemeType). |
| [Office2003BarRenderer](xref:@ActiproUIRoot.Controls.Bars.Office2003BarRenderer) | Capable of drawing all Office 2007 styles (Blue, Silver, Black), Office 2003 styles (Blue, Olive, Silver, Royale, and Windows Classic), as well as the Visual Studio 2005 style for bar controls. To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Bars.Office2003BarRenderer.BaseColorSchemeType). |
| [Office2003StatusBarRenderer](xref:@ActiproUIRoot.Controls.Bars.Office2003StatusBarRenderer) | Capable of drawing all Office styles for statusbar controls. |
| [VisualStudio2002BarRenderer](xref:@ActiproUIRoot.Controls.Bars.VisualStudio2002BarRenderer) | Capable of drawing Visual Studio 2002 bar controls. |
Expand Down
2 changes: 1 addition & 1 deletion Documentation/topics/conversion/.toc-generator.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
title: "Conversion Notes"
order: 24
order: 25
60 changes: 60 additions & 0 deletions Documentation/topics/conversion/converting-to-v23-1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
title: "Converting to v23.1"
page-title: "Converting to v23.1 - Conversion Notes"
order: 7
---
# Converting to v23.1

All of the breaking changes are detailed or linked below.

## New Targets

Control assemblies for .NET have been updated to target .NET 6 (previously .NET 5) since .NET 5 is no longer supported. Any applications that target .NET 5 will still be supported using our .NET Core 3.1 targets.

Control assemblies for .NET Framework have been updated to target .NET Framework 4.6.2 (previously .NET Framework 4.0) since it is the most recent supported version. Any applications that reference our controls that were also on an older version of .NET Framework will need to update their targets to at least 4.6.2. Users who cannot update to .NET Framework 4.6.2 should not update to this release and continue using prior versions of these controls.

## High DPI Updates

This release has improved high DPI support across all products. Aside from possible breaking changes noted below, no changes are necessary for components used in an application that is not DPI aware as those applications will continue to emulate 96 dpi (100%). For applications that will support system or per-monitor DPI awareness, Actipro controls will measure and render differently based on the DPI context, so applications should be retested to verify components still behave as expected within your supported environments.

All built-in renderers have been updated for DPI awareness. Any custom renderer implementations with their own logic for measuring and/or drawing will need to be updated to adjust to the DPI scale. The [DpiHelper](xref:@ActiproUIRoot.Drawing.DpiHelper) class contains many helper methods to assist with scaling common values. The current DPI scale factor can be determined by examining the [IDpiAwareElement](xref:@ActiproUIRoot.Controls.IDpiAwareElement).[DpiScaleFactor](xref:@ActiproUIRoot.Controls.IDpiAwareElement.DpiScaleFactor) property of the related element being drawn.

The following breaking changes were necessary to properly handle per-monitor DPI awareness:

- The [IUIElement](xref:@ActiproUIRoot.Controls.IUIElement) and [IBarControl](xref:@ActiproUIRoot.Controls.Bars.IBarControl) interfaces now implement [IDpiAwareElement](xref:@ActiproUIRoot.Controls.IDpiAwareElement). This change will not impact most users, but any custom classes built using these interfaces that don't derive from one of our default implementations will need to implement the additional interface.

- The [IBarRenderer](xref:@ActiproUIRoot.Controls.Bars.IBarRenderer).[DrawMenuSeparator](xref:@ActiproUIRoot.Controls.Bars.IBarRenderer.DrawMenuSeparator*) and [IBarRenderer](xref:@ActiproUIRoot.Controls.Bars.IBarRenderer).[DrawToolBarSeparator](xref:@ActiproUIRoot.Controls.Bars.IBarRenderer.DrawToolBarSeparator*) methods added an [IBarControl](xref:@ActiproUIRoot.Controls.Bars.IBarControl) argument to indicate the element where the separator is being drawn. Any custom renderers that want to support high DPI can use the [IDpiAwareElement](xref:@ActiproUIRoot.Controls.IDpiAwareElement).[DpiScaleFactor](xref:@ActiproUIRoot.Controls.IDpiAwareElement.DpiScaleFactor) property available through the `IBarControl` to render the separator appropriately based on DPI scale.

- The [IBarRenderer](xref:@ActiproUIRoot.Controls.Bars.IBarRenderer).[DrawCommandInCustomizeList](xref:@ActiproUIRoot.Controls.Bars.IBarRenderer.DrawCommandInCustomizeList*) added a `scaleFactor` argument to indicate the DPI scale of the `ListBox` where the command is being drawn. Any custom renderers that want to support high DPI can use the `scaleFactor` argument to render the command appropriately based on DPI scale.

## Dark Color Scheme

This release includes a new [WindowsColorSchemeType](xref:@ActiproUIRoot.Drawing.WindowsColorSchemeType).[MetroDark](xref:@ActiproUIRoot.Drawing.WindowsColorSchemeType.MetroDark) color scheme. To properly support a dark color scheme, the [WindowsColorScheme](xref:@ActiproUIRoot.Drawing.WindowsColorScheme) class was enhanced to define new color properties and enable new capabilities. For increased flexibility, a new [IWindowsColorScheme](xref:@ActiproUIRoot.Drawing.IWindowsColorScheme) interface was added to replace references to [WindowsColorScheme](xref:@ActiproUIRoot.Drawing.WindowsColorScheme) in public API's.

Windows Forms, in general, relies heavily on the use of `SystemColors` to define the color to be used for common UI elements like text foreground and window backgrounds. Text foreground, for instance, is typically the color `Black`. While this works in light themes, `Black` text cannot be used effectively with dark backgrounds. Instead of working directly with `SystemColors`, all colors should be queried using [IWindowsColorScheme](xref:@ActiproUIRoot.Drawing.IWindowsColorScheme).[GetKnownColor](xref:@ActiproUIRoot.Drawing.IWindowsColorScheme.GetKnownColor*). This method allows most color schemes to return the native `SystemColor` directly, but a theme with dark intent can return a different color that is more appropriate for that color scheme. A color scheme with dark intent, for instance, might return a shade of `White` for text that will be legible when rendered on a dark background.

The following breaking changes were necessary to properly handle dark color schemes:

- The [IUIRenderer](xref:@ActiproUIRoot.Controls.IUIRenderer).[ColorScheme](xref:@ActiproUIRoot.Controls.IUIRenderer.ColorScheme) property was added to ensure all renderer implementations have access to a color scheme that can be used to resolve known colors. Any custom renderers that do not derive from a built-in renderer will need to implement the new property.

- Any custom rendering that needs to support multiple color schemes should replace `SystemColor` usage with [IWindowsColorScheme](xref:@ActiproUIRoot.Drawing.IWindowsColorScheme).[GetKnownColor](xref:@ActiproUIRoot.Drawing.IWindowsColorScheme.GetKnownColor*). For example, replace `SystemColors.WindowText` with `colorScheme.GetKnownColor(KnownColor.WindowText)`.

- The [IWizardRenderer](xref:@ActiproUIRoot.Controls.Wizard.IWizardRenderer) interface now implements the [IUIRenderer](xref:@ActiproUIRoot.Controls.IUIRenderer) interface. Any custom implementations of `IWizardRenderer` will need to be updated to support the additional requirements of `IUIRenderer`.

## ContextMenu to ContextMenuStrip (.NET Framework only)

For .NET Framework targets only, all usages of `ContextMenu` have been replaced by `ContextMenuStrip`. The `ContextMenuStrip` implementation is newer and supported cross-platform by .NET Core+. Not only does this unify our code base around a single solution, `ContextMenuStrip` also provides greater support for custom themes and high DPI awareness that are important features for this release.

The [TabbedMdiWindowContextMenuEventArgs](xref:@ActiproUIRoot.Controls.Docking.TabbedMdiWindowContextMenuEventArgs).[DefaultContextMenu](xref:@ActiproUIRoot.Controls.Docking.TabbedMdiWindowContextMenuEventArgs.DefaultContextMenu) property has changed from `ContextMenu` to `ContextMenuStrip`. These arguments are used by [DockManager](xref:@ActiproUIRoot.Controls.Docking.DockManager).[ActiveFilesContextMenu](xref:@ActiproUIRoot.Controls.Docking.DockManager.ActiveFilesContextMenu) and [DockManager](xref:@ActiproUIRoot.Controls.Docking.DockManager).[WindowContextMenu](xref:@ActiproUIRoot.Controls.Docking.DockManager.WindowContextMenu) events. Any code that uses these events to customize or replace the default context menu will need to be refactored to work with `ContextMenuStrip` and `ToolStripMenuItem` types.

## Modern DockGuides

Docking support for [DockGuideStyle](xref:@ActiproUIRoot.Controls.Docking.DockGuideStyle).[Sunken](xref:@ActiproUIRoot.Controls.Docking.DockGuideStyle.Sunken) (previous default) and [DockGuideStyle](xref:@ActiproUIRoot.Controls.Docking.DockGuideStyle).[Raised](xref:@ActiproUIRoot.Controls.Docking.DockGuideStyle.Raised) (old Windows XP-era style) has been removed and replaced by [DockGuideStyle](xref:@ActiproUIRoot.Controls.Docking.DockGuideStyle).[Modern](xref:@ActiproUIRoot.Controls.Docking.DockGuideStyle.Modern) (new default). The old values are still defined but have been marked as obsolete and will use the `Modern` style when used. No changes are necessary at this time, but any references to the old values should be replaced with `Modern` to avoid IDE warnings and eventual breaking changes when the obsolete values are removed in a future release.

The `Sunken` and `Raised` styles were based on image resources that could be customized using `ActiproSoftware.Products.Docking.AssemblyInfo.Instance.ImageProviderFunc`. Since the `Modern` guides are built dynamically at run-time, there are no images to customize and the `ImageProviderFunc` property has been removed. The colors used for `Modern` guides can be customized using various properties on [IWindowsColorScheme](xref:@ActiproUIRoot.Drawing.IWindowsColorScheme) (e.g., [IWindowsColorScheme](xref:@ActiproUIRoot.Drawing.IWindowsColorScheme).[DockGuideArrowBack](xref:@ActiproUIRoot.Drawing.IWindowsColorScheme.DockGuideArrowBack) changes the background color of the arrow). See the [Extensible Rendering](../docking/extensible-rendering.md) topic for more details on customizing a color scheme.

## All Assemblies Code-Signed

All product assemblies are now code-signed so that their authenticity can be verified.

We previously only shipped non-code-signed assemblies, and the installer had an option for whether to install code-signed variations of .NET Framework assemblies. That installer option has been removed since all assemblies are now code-signed, including all assemblies in the NuGet packages.
2 changes: 2 additions & 0 deletions Documentation/topics/conversion/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ Occasionally during large updates to a product, some breaking changes are necess

Read the following topics that are appropriate for your scenario if you are converting from an older version to the latest version.

- [Converting to v23.1](converting-to-v23-1.md)

- [Converting to v22.1](converting-to-v22-1.md)

- [Converting to v21.1](converting-to-v21-1.md)
Expand Down
2 changes: 1 addition & 1 deletion Documentation/topics/docking/extensible-rendering.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Dock includes these built-in renderers, which support Metro Light, Office 2007/2

| Renderer | Description |
|-----|-----|
| [MetroLightDockRenderer](xref:@ActiproUIRoot.Controls.Docking.MetroLightDockRenderer) | Capable of drawing Metro Light dock controls. |
| [MetroDockRenderer](xref:@ActiproUIRoot.Controls.Docking.MetroDockRenderer) | Capable of drawing Metro styles (Light and Dark) for dock controls. To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Docking.MetroDockRenderer.BaseColorSchemeType). |
| [Office2003DockRenderer](xref:@ActiproUIRoot.Controls.Docking.Office2003DockRenderer) | Capable of drawing all Office 2007 styles (Blue, Silver, Black) and Office 2003 styles (Blue, Olive, Silver, Royale, and Windows Classic). To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Navigation.Office2003NavigationBarRenderer.BaseColorSchemeType). |
| [VisualStudio2002DockRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudio2002DockRenderer) | Capable of drawing Visual Studio 2002 dock controls. |
| [VisualStudio2005DockRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudio2005DockRenderer) | Capable of drawing Visual Studio 2005 dock controls. |
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions Documentation/topics/docking/tabstrip/extensible-rendering.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ Dock includes these built-in renderers:

| Renderer | Description |
|-----|-----|
| [MetroLightToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.MetroLightToolWindowTabStripRenderer) | Capable of drawing a Metro Light tool window. |
| [MetroLightDocumentWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.MetroLightDocumentWindowTabStripRenderer) | Capable of drawing a Metro Light document window. |
| [MetroToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.MetroToolWindowTabStripRenderer) | Capable of drawing a Metro styles (Light and Dark) for a tool window. To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Docking.MetroToolWindowTabStripRenderer.BaseColorSchemeType). |
| [MetroDocumentWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.MetroDocumentWindowTabStripRenderer) | Capable of drawing a Metro styles (Light and Dark) for document window. To change to a different style, change the [BaseColorSchemeType](xref:@ActiproUIRoot.Controls.Docking.MetroDocumentWindowTabStripRenderer.BaseColorSchemeType). |
| [VisualStudio2005ToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudio2005ToolWindowTabStripRenderer) | Capable of drawing a Visual Studio 2005 tool window. |
| [VisualStudio2005DocumentWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudio2005DocumentWindowTabStripRenderer) | Capable of drawing a Visual Studio 2005 document window. |
| [VisualStudio2005Beta2ToolWindowTabStripRenderer](xref:@ActiproUIRoot.Controls.Docking.VisualStudio2005Beta2ToolWindowTabStripRenderer) | Capable of drawing a Visual Studio 2005 Beta 2 tool window. |
Expand Down
Loading

0 comments on commit ae88453

Please sign in to comment.