Skip to content

Commit

Permalink
Merge branch 'release/v22.1.1' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
billhenn committed Mar 14, 2022
2 parents a8de511 + c67ef14 commit 2fcbc2d
Show file tree
Hide file tree
Showing 346 changed files with 7,988 additions and 2,443 deletions.
8 changes: 4 additions & 4 deletions Build/Build.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
using Nuke.Common.Tools.DotNet;
using Nuke.Common.Tools.MSBuild;
using Nuke.Common.Tools.NuGet;
using Serilog;
using System;
using System.Linq;
using static Nuke.Common.ControlFlow;
using static Nuke.Common.Tools.MSBuild.MSBuildTasks;

namespace ActiproSoftware.Tools.Builds {
Expand Down Expand Up @@ -68,10 +68,10 @@ static int Main() {
key.SetValue("LicenseKey", LicenseKey);
}
Logger.Normal("License key installed.");
Log.Debug("License key installed.");
}
else
Logger.Normal("No license key installed.");
Log.Debug("No license key installed.");
});

Expand All @@ -96,7 +96,7 @@ static int Main() {
.SetMaxCpuCount(Environment.ProcessorCount)
.SetProperty("BuildInParallel", "true")
);
Logger.Normal();
Log.Debug(string.Empty);
}
});
Expand Down
10 changes: 4 additions & 6 deletions Build/Build.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<TargetFramework>net6.0-windows</TargetFramework>
<RootNamespace>ActiproSoftware.Tools.Builds</RootNamespace>
<StartupObject>ActiproSoftware.Tools.Builds.Build</StartupObject>

Expand All @@ -11,14 +11,12 @@
<Title>Actipro WinForms Controls Open-Source Build</Title>
<Description>Actipro WinForms Controls Open-Source Build</Description>

<AssemblyVersion>21.1.0.0</AssemblyVersion>
<InformationalVersion>21.1.0.0</InformationalVersion>
<PackageVersion>21.1.0.0</PackageVersion>
<Version>22.1.1.0</Version>

<RootNamespace>ActiproSoftware.Tools.Builds</RootNamespace>
<Company>Actipro Software LLC</Company>
<Authors>Actipro Software LLC</Authors>
<Copyright>Copyright (c) 2020-2021 Actipro Software LLC. All rights reserved.</Copyright>
<Copyright>Copyright (c) 2020-2022 Actipro Software LLC. All rights reserved.</Copyright>

<GeneratePackageOnBuild>false</GeneratePackageOnBuild>

Expand All @@ -29,7 +27,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Nuke.Common" Version="5.3.0" />
<PackageReference Include="Nuke.Common" Version="6.0.1" />
</ItemGroup>

</Project>
2 changes: 1 addition & 1 deletion Build/Build.sln
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
# Visual Studio Version 17
VisualStudioVersion = 16.0.30804.86
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Build", "Build.csproj", "{B3DC4784-D50F-4B78-BF80-D150E2E58A31}"
Expand Down
7 changes: 0 additions & 7 deletions Build/global.json

This file was deleted.

16 changes: 13 additions & 3 deletions Documentation/docfx.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
"**.png",
"**.gif",
"**.jpg"
],
]
}
],
"overwrite": [
Expand All @@ -68,17 +68,27 @@
"_appTitle": "Actipro WinForms Controls Docs",
"_docsCompanyHref": "https://www.actiprosoftware.com/products/controls/windowsforms",
"_docsCompanyName": "Actipro Software LLC",
"_docsCopyrightYears": "1999-2021",
"_docsCopyrightYears": "1999-2022",
"_docsProductHref": "https://www.actiprosoftware.com/products/controls/windowsforms",
"_docsProductName": "WinForms Controls",
"_docsProductVersion": "21.1",
"_docsProductVersion": "22.1",
"_disableContribution": true,
"_enableNewTab": true,
"_gitContribute": {
"repo": "https://github.com/Actipro/WinForms-Controls",
"branch": "develop",
"path": "Documentation/topics",
"apiSpecFolder": "Documentation/topics/apidoc"
},
"_conditionalFlags": "winforms",
"_replaceTokens": {
"PlatformAssemblySuffix": "WinForms",
"PlatformName": "WinForms",
"PlatformTitle": "Windows Forms"
},
"_rootNamespaceAliases": {
"ActiproUIRoot": "ActiproSoftware.UI.WinForms",
"WindowsUIRoot": "System.Windows"
}
},
"globalMetadataFiles": [],
Expand Down
14 changes: 7 additions & 7 deletions Documentation/topics/bars/application-modes.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Application modes are a special feature found in the bar controls. An applicati

This is extremely useful in an IDE type of application. In an IDE like Visual Studio, there are modes like `Text Editor`, `Image Editor`, `WebBrowser`, etc. In each mode certain keyboard shortcuts and dockable toolbars are used that are not used in other modes.

The [BarManager](xref:ActiproSoftware.UI.WinForms.Controls.Bars.BarManager) provides functionality for automatically displaying and hiding certain dockable toolbars based on what the current application mode is. The [BarManager](xref:ActiproSoftware.UI.WinForms.Controls.Bars.BarManager) can also be set up to only recognize certain keyboard shortcuts while in specific modes.
The [BarManager](xref:@ActiproUIRoot.Controls.Bars.BarManager) provides functionality for automatically displaying and hiding certain dockable toolbars based on what the current application mode is. The [BarManager](xref:@ActiproUIRoot.Controls.Bars.BarManager) can also be set up to only recognize certain keyboard shortcuts while in specific modes.

## Global Mode

Expand All @@ -19,25 +19,25 @@ The global mode is selected by default until you set a different mode.

## Setting Up Modes

Application modes are simple strings, and each mode for your application should be added to the [Modes](xref:ActiproSoftware.UI.WinForms.Controls.Bars.BarManager.Modes) collection on the [BarManager](xref:ActiproSoftware.UI.WinForms.Controls.Bars.BarManager). You can do this at design-time.
Application modes are simple strings, and each mode for your application should be added to the [Modes](xref:@ActiproUIRoot.Controls.Bars.BarManager.Modes) collection on the [BarManager](xref:@ActiproUIRoot.Controls.Bars.BarManager). You can do this at design-time.

The global mode should never be added to this collection since it is natively available.

## Tracking the Selected Mode

The currently selected mode is accessible via the [SelectedMode](xref:ActiproSoftware.UI.WinForms.Controls.Bars.BarManager.SelectedMode) property on the [BarManager](xref:ActiproSoftware.UI.WinForms.Controls.Bars.BarManager). This property can be set to change the mode. Setting the value to `null` changes to the global mode.
The currently selected mode is accessible via the [SelectedMode](xref:@ActiproUIRoot.Controls.Bars.BarManager.SelectedMode) property on the [BarManager](xref:@ActiproUIRoot.Controls.Bars.BarManager). This property can be set to change the mode. Setting the value to `null` changes to the global mode.

The [SelectedModeChanged](xref:ActiproSoftware.UI.WinForms.Controls.Bars.BarManager.SelectedModeChanged) event is raised whenever the [SelectedMode](xref:ActiproSoftware.UI.WinForms.Controls.Bars.BarManager.SelectedMode) property value changes, allowing you to perform further updating.
The [SelectedModeChanged](xref:@ActiproUIRoot.Controls.Bars.BarManager.SelectedModeChanged) event is raised whenever the [SelectedMode](xref:@ActiproUIRoot.Controls.Bars.BarManager.SelectedMode) property value changes, allowing you to perform further updating.

## Showing/Hiding Dockable Toolbars Based on Mode

Dockable toolbars can be automatically displayed or hidden based on what mode is selected. By default, dockable toolbars do not show or hide. This is because their [Modes](xref:ActiproSoftware.UI.WinForms.Controls.Bars.DockableToolBar.Modes) collection is empty when created.
Dockable toolbars can be automatically displayed or hidden based on what mode is selected. By default, dockable toolbars do not show or hide. This is because their [Modes](xref:@ActiproUIRoot.Controls.Bars.DockableToolBar.Modes) collection is empty when created.

To enable this functionality, add the applicable modes to the [Modes](xref:ActiproSoftware.UI.WinForms.Controls.Bars.DockableToolBar.Modes) collection for which the dockable toolbar should be displayed. When any of those modes are selected in the [BarManager](xref:ActiproSoftware.UI.WinForms.Controls.Bars.BarManager), the dockable toolbar will display. When a different mode is selected, the dockable toolbar will hide.
To enable this functionality, add the applicable modes to the [Modes](xref:@ActiproUIRoot.Controls.Bars.DockableToolBar.Modes) collection for which the dockable toolbar should be displayed. When any of those modes are selected in the [BarManager](xref:@ActiproUIRoot.Controls.Bars.BarManager), the dockable toolbar will display. When a different mode is selected, the dockable toolbar will hide.

## Keyboard Shortcuts

Each [BarKeyboardShortcut](xref:ActiproSoftware.UI.WinForms.Controls.Bars.BarKeyboardShortcut) has a [Mode](xref:ActiproSoftware.UI.WinForms.Controls.Bars.BarKeyboardShortcut.Mode) property. If that value is `null`, then the shortcut applies to the global mode. If that value is populated, then the shortcut only applies to that specific mode.
Each [BarKeyboardShortcut](xref:@ActiproUIRoot.Controls.Bars.BarKeyboardShortcut) has a [Mode](xref:@ActiproUIRoot.Controls.Bars.BarKeyboardShortcut.Mode) property. If that value is `null`, then the shortcut applies to the global mode. If that value is populated, then the shortcut only applies to that specific mode.

For example, if a `Text Editor` mode is currently set, any keyboard shortcuts defined for the `Text Editor` mode will be recognized. If there is no keyboard shortcut defined in the mode for a key sequence that is pressed, a keyboard shortcut in the global mode is searched for. If one is found, then that keyboard shortcut is used.

Expand Down
28 changes: 14 additions & 14 deletions Documentation/topics/bars/checkable-buttons.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,50 +9,50 @@ Bars controls support several features to make it easy to work with checkable bu

## IBarCheckableCommand Interface

The [IBarCheckableCommand](xref:ActiproSoftware.UI.WinForms.Controls.Bars.IBarCheckableCommand) interface is used to define a checkable button. Both the [BarButtonCommand](xref:ActiproSoftware.UI.WinForms.Controls.Bars.BarButtonCommand) and [BarSplitButtonCommand](xref:ActiproSoftware.UI.WinForms.Controls.Bars.BarSplitButtonCommand) implement it and support checkable button features.
The [IBarCheckableCommand](xref:@ActiproUIRoot.Controls.Bars.IBarCheckableCommand) interface is used to define a checkable button. Both the [BarButtonCommand](xref:@ActiproUIRoot.Controls.Bars.BarButtonCommand) and [BarSplitButtonCommand](xref:@ActiproUIRoot.Controls.Bars.BarSplitButtonCommand) implement it and support checkable button features.

This table indicates the members of the [IBarCheckableCommand](xref:ActiproSoftware.UI.WinForms.Controls.Bars.IBarCheckableCommand) interface:
This table indicates the members of the [IBarCheckableCommand](xref:@ActiproUIRoot.Controls.Bars.IBarCheckableCommand) interface:

| Member | Description |
|-----|-----|
| [Checkable](xref:ActiproSoftware.UI.WinForms.Controls.Bars.IBarCheckableCommand.Checkable) Property | Gets or sets whether the button is checkable. |
| [Checked](xref:ActiproSoftware.UI.WinForms.Controls.Bars.IBarCheckableCommand.Checked) Property | Gets or sets whether the button is checked. |
| [CheckGroupName](xref:ActiproSoftware.UI.WinForms.Controls.Bars.IBarCheckableCommand.CheckGroupName) Property | Gets or sets the name of the check group. |
| [FullName](xref:ActiproSoftware.UI.WinForms.Controls.Bars.IBarCheckableCommand.FullName) Property | Gets the full name of the command, which is `Category.Name`. |
| [Checkable](xref:@ActiproUIRoot.Controls.Bars.IBarCheckableCommand.Checkable) Property | Gets or sets whether the button is checkable. |
| [Checked](xref:@ActiproUIRoot.Controls.Bars.IBarCheckableCommand.Checked) Property | Gets or sets whether the button is checked. |
| [CheckGroupName](xref:@ActiproUIRoot.Controls.Bars.IBarCheckableCommand.CheckGroupName) Property | Gets or sets the name of the check group. |
| [FullName](xref:@ActiproUIRoot.Controls.Bars.IBarCheckableCommand.FullName) Property | Gets the full name of the command, which is `Category.Name`. |

## Working with Checkable Buttons

A command must be flagged as [Checkable](xref:ActiproSoftware.UI.WinForms.Controls.Bars.IBarCheckableCommand.Checkable) before it can be checked. If the [Checkable](xref:ActiproSoftware.UI.WinForms.Controls.Bars.IBarCheckableCommand.Checkable) property is `false`, the command cannot be checked by the end user. If the [Checkable](xref:ActiproSoftware.UI.WinForms.Controls.Bars.IBarCheckableCommand.Checkable) property is `true`, the command's [Checked](xref:ActiproSoftware.UI.WinForms.Controls.Bars.IBarCheckableCommand.Checked) property value can be toggled by the end user.
A command must be flagged as [Checkable](xref:@ActiproUIRoot.Controls.Bars.IBarCheckableCommand.Checkable) before it can be checked. If the [Checkable](xref:@ActiproUIRoot.Controls.Bars.IBarCheckableCommand.Checkable) property is `false`, the command cannot be checked by the end user. If the [Checkable](xref:@ActiproUIRoot.Controls.Bars.IBarCheckableCommand.Checkable) property is `true`, the command's [Checked](xref:@ActiproUIRoot.Controls.Bars.IBarCheckableCommand.Checked) property value can be toggled by the end user.

The [Checked](xref:ActiproSoftware.UI.WinForms.Controls.Bars.IBarCheckableCommand.Checked) property value can be toggled programmatically as well.
The [Checked](xref:@ActiproUIRoot.Controls.Bars.IBarCheckableCommand.Checked) property value can be toggled programmatically as well.

```csharp
((IBarCheckableCommand)barManager.Commands["Format.TextAlignmentLeft"]).Checked = true;
```

If the [AutoUpdateChecks](xref:ActiproSoftware.UI.WinForms.Controls.Bars.BarManager.AutoUpdateChecks) property is set to `true`, any checkable buttons that are clicked by the end user will be automatically toggled. If that property is `false`, the checkable buttons can only have their [Checked](xref:ActiproSoftware.UI.WinForms.Controls.Bars.IBarCheckableCommand.Checked) state toggled programmatically.
If the [AutoUpdateChecks](xref:@ActiproUIRoot.Controls.Bars.BarManager.AutoUpdateChecks) property is set to `true`, any checkable buttons that are clicked by the end user will be automatically toggled. If that property is `false`, the checkable buttons can only have their [Checked](xref:@ActiproUIRoot.Controls.Bars.IBarCheckableCommand.Checked) state toggled programmatically.

## Working with Check Groups

Check groups are a powerful feature found in Bars. When working with checkable buttons, there are two scenarios. The first is where the checkable button provides an on/off toggle for a specific feature. This sort of checkable button stands alone. The second is where the checkable button is a toggle for a specific feature within a feature group. For instance, in a text editing application, there would be a check group for text alignment (left, center, right, and justify).

By specifying a [CheckGroupName](xref:ActiproSoftware.UI.WinForms.Controls.Bars.IBarCheckableCommand.CheckGroupName) for all the checkable buttons in a check group, Bars adds numerous features for easily working with check groups. In our above scenario, all the checkable buttons for the text alignment check group could have a [CheckGroupName](xref:ActiproSoftware.UI.WinForms.Controls.Bars.IBarCheckableCommand.CheckGroupName) value of `TextAlignment`.
By specifying a [CheckGroupName](xref:@ActiproUIRoot.Controls.Bars.IBarCheckableCommand.CheckGroupName) for all the checkable buttons in a check group, Bars adds numerous features for easily working with check groups. In our above scenario, all the checkable buttons for the text alignment check group could have a [CheckGroupName](xref:@ActiproUIRoot.Controls.Bars.IBarCheckableCommand.CheckGroupName) value of `TextAlignment`.

If the [AutoUpdateCheckGroups](xref:ActiproSoftware.UI.WinForms.Controls.Bars.BarManager.AutoUpdateCheckGroups) property is set to `true`, any checkable buttons in a check group that are clicked by the end user will be automatically checked and all other checkable buttons in the check group will be unchecked. If that property is `false`, the checkable buttons can only have their [Checked](xref:ActiproSoftware.UI.WinForms.Controls.Bars.IBarCheckableCommand.Checked) state toggled programmatically.
If the [AutoUpdateCheckGroups](xref:@ActiproUIRoot.Controls.Bars.BarManager.AutoUpdateCheckGroups) property is set to `true`, any checkable buttons in a check group that are clicked by the end user will be automatically checked and all other checkable buttons in the check group will be unchecked. If that property is `false`, the checkable buttons can only have their [Checked](xref:@ActiproUIRoot.Controls.Bars.IBarCheckableCommand.Checked) state toggled programmatically.

To return the [IBarCheckableCommand](xref:ActiproSoftware.UI.WinForms.Controls.Bars.IBarCheckableCommand) that is current checked in a check group, call the [BarManager](xref:ActiproSoftware.UI.WinForms.Controls.Bars.BarManager).[GetCheckGroupValue](xref:ActiproSoftware.UI.WinForms.Controls.Bars.BarManager.GetCheckGroupValue*) method and pass in the desired check group name. If the check group is not found, or no command is checked within the check group, `null` is returned.
To return the [IBarCheckableCommand](xref:@ActiproUIRoot.Controls.Bars.IBarCheckableCommand) that is current checked in a check group, call the [BarManager](xref:@ActiproUIRoot.Controls.Bars.BarManager).[GetCheckGroupValue](xref:@ActiproUIRoot.Controls.Bars.BarManager.GetCheckGroupValue*) method and pass in the desired check group name. If the check group is not found, or no command is checked within the check group, `null` is returned.

```csharp
IBarCheckableCommand checkableCommand = barManager.GetCheckGroupValue("TextAlignment");
```

To set the value of a check group, call the [SetCheckGroupValue](xref:ActiproSoftware.UI.WinForms.Controls.Bars.BarManager.SetCheckGroupValue*) method and pass in the check group name and the [IBarCheckableCommand](xref:ActiproSoftware.UI.WinForms.Controls.Bars.IBarCheckableCommand) that should be checked. Any other [IBarCheckableCommand](xref:ActiproSoftware.UI.WinForms.Controls.Bars.IBarCheckableCommand) in the group that was previously checked will automatically be unchecked.
To set the value of a check group, call the [SetCheckGroupValue](xref:@ActiproUIRoot.Controls.Bars.BarManager.SetCheckGroupValue*) method and pass in the check group name and the [IBarCheckableCommand](xref:@ActiproUIRoot.Controls.Bars.IBarCheckableCommand) that should be checked. Any other [IBarCheckableCommand](xref:@ActiproUIRoot.Controls.Bars.IBarCheckableCommand) in the group that was previously checked will automatically be unchecked.

```csharp
barManager.SetCheckGroupValue("TextAlignment", (IBarCheckableCommand)barManager.Commands["Format.TextAlignmentLeft"]);
```

To get an array of all the check group names being managed by the [BarManager](xref:ActiproSoftware.UI.WinForms.Controls.Bars.BarManager), call the [GetCheckGroupNames](xref:ActiproSoftware.UI.WinForms.Controls.Bars.BarManager.GetCheckGroupNames*) method.
To get an array of all the check group names being managed by the [BarManager](xref:@ActiproUIRoot.Controls.Bars.BarManager), call the [GetCheckGroupNames](xref:@ActiproUIRoot.Controls.Bars.BarManager.GetCheckGroupNames*) method.

```csharp
string[] checkGroupNames = barManager.GetCheckGroupNames();
Expand Down
Loading

0 comments on commit 2fcbc2d

Please sign in to comment.