Skip to content

Commit

Permalink
Merge branch 'release/v22.1.0' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
billhenn committed Dec 13, 2021
2 parents 634c56e + 7a20f3c commit cdf9794
Show file tree
Hide file tree
Showing 187 changed files with 6,157 additions and 1,009 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/integration-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:

env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
LICENSEKEY: ${{ secrets.ACTIPRO_CONTROLS_WPF_V21_1_LICENSEKEY }}
LICENSEKEY: ${{ secrets.ACTIPRO_CONTROLS_WPF_V22_1_LICENSEKEY }}

steps:
- name: Cancel duplicate runs
Expand Down
9 changes: 8 additions & 1 deletion .nuke/build.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,13 @@
"GitHubActions",
"GitLab",
"Jenkins",
"Rider",
"SpaceAutomation",
"TeamCity",
"Terminal",
"TravisCI"
"TravisCI",
"VisualStudio",
"VSCode"
]
},
"LibrariesSolution": {
Expand All @@ -52,6 +55,10 @@
"type": "boolean",
"description": "Disables displaying the NUKE logo"
},
"Partition": {
"type": "string",
"description": "Partition to use on CI"
},
"Plan": {
"type": "boolean",
"description": "Shows the execution plan (HTML)"
Expand Down
3 changes: 2 additions & 1 deletion Build/Build.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,11 @@
<NoWarn>CS0649;CS0169</NoWarn>
<NukeRootDirectory></NukeRootDirectory>
<NukeScriptDirectory></NukeScriptDirectory>
<NukeTelemetryVersion>1</NukeTelemetryVersion>
</PropertyGroup>

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

</Project>
7 changes: 7 additions & 0 deletions Build/global.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"sdk": {
"allowPrerelease": false,
"version": "5.0.100",
"rollForward": "latestFeature"
}
}
98 changes: 9 additions & 89 deletions Documentation/topics/charts/xy-chart-features/data-aggregation.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,92 +27,12 @@ The `PrimaryAggregationKind` is typically used for the Y values, but for vertica

The following table lists the supported aggregation kinds:

<table>
<thead>

<tr>
<th>Aggregation Kind</th>
<th>Description</th>
</tr>


</thead>
<tbody>

<tr>
<td>

`Average`

</td>
<td>

![Screenshot](../images/data-aggregation-average10.png)

Averages all the values in the group and uses that as the aggregated value.

</td>
</tr>

<tr>
<td>

`First`

</td>
<td>

![Screenshot](../images/data-aggregation-first10.png)

Uses the first value in the group as the aggregated value.

</td>
</tr>

<tr>
<td>

`Last`

</td>
<td>

![Screenshot](../images/data-aggregation-last10.png)

Uses the last value in the group as the aggregated value.

</td>
</tr>

<tr>
<td>

`Maximum`

</td>
<td>

![Screenshot](../images/data-aggregation-maximum10.png)

Uses the maximum value in the group as the aggregated value.

</td>
</tr>

<tr>
<td>

`Minimum`

</td>
<td>

![Screenshot](../images/data-aggregation-minimum10.png)

Uses the minimum value in the group as the aggregated value.

</td>
</tr>

</tbody>
</table>
| Aggregation Kind | Description |
|-----|-----|
| `Average` | Averages all the values in the group and uses that as the aggregated value. |
| `First` | Uses the first value in the group as the aggregated value. |
| `Last` | Uses the last value in the group as the aggregated value. |
| `Maximum` | Uses the maximum value in the group as the aggregated value. |
| `Minimum` | Uses the minimum value in the group as the aggregated value. |
| `SignedMaximum` | Uses the value with the maximum absolute value in the group as the aggregated value. For example, `4` is greater than `-5`, but `-5` has a greater absolute value. |
| `SignedMinimum` | Uses the value with the minimum absolute value in the group as the aggregated value. For example, `-4` is less than `3`, but `3` has a lesser absolute value. |
63 changes: 63 additions & 0 deletions Documentation/topics/conversion/converting-to-v22-1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
title: "Converting to v22.1"
page-title: "Converting to v22.1 - Conversion Notes"
order: 87
---
# Converting to v22.1

The 22.1 version made several minor API changes in the SyntaxEditor Python Language Add-on. A new [ToggleSwitch](../shared/windows-controls/toggle-switch.md) control (Shared Library) also resulted in renaming the existing ToggleSwitch (Guage) as [FlipSwitch](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch) to avoid ambiguity.

## SyntaxEditor Drag and Drop Updates

The [Drag and Drop](../syntaxeditor/user-interface/input-output/drag-drop.md) functionality has been enhanced to provide more control over the experience.

Previously, any non-`null` value assigned to the [PasteDragDropEventArgs](xref:ActiproSoftware.Windows.Controls.SyntaxEditor.PasteDragDropEventArgs).[Text](xref:ActiproSoftware.Windows.Controls.SyntaxEditor.PasteDragDropEventArgs.Text) property within a handler for the [SyntaxEditor](xref:ActiproSoftware.Windows.Controls.SyntaxEditor.SyntaxEditor).[PasteDragDrop](xref:ActiproSoftware.Windows.Controls.SyntaxEditor.SyntaxEditor.PasteDragDrop) event would indicate that drag-and-drop was allowed, but this limited advanced scenarios such as drag-and-drop with custom objects or dropping onto read-only documents. Going forward, the accepted operation assigned through [PasteDragDropEventArgs](xref:ActiproSoftware.Windows.Controls.SyntaxEditor.PasteDragDropEventArgs).[DragEventArgs](xref:ActiproSoftware.Windows.Controls.SyntaxEditor.PasteDragDropEventArgs.DragEventArgs) will be used to indicate `Copy`, `Move`, or `None` operations. Refer to the [Drag and Drop](../syntaxeditor/user-interface/input-output/drag-drop.md) topic for details on customizing drag operations.

## SyntaxEditor Tagging Updates

Previously, any [ITagger<T>](xref:ActiproSoftware.Text.Tagging.ITagger`1) which implemented the `IDisposable` interface would be disposed when detached from an instance of the [TagAggregatorBase<T>](xref:ActiproSoftware.Text.Tagging.TagAggregatorBase`1) class. Since taggers are frequently reused, this could lead to issues if the tagger was accessed after it was disposed.

New [ITaggerBase](xref:ActiproSoftware.Text.Tagging.ITaggerBase).[NotifyTagAggregatorAttached](xref:ActiproSoftware.Text.Tagging.ITaggerBase.NotifyTagAggregatorAttached*) and [ITaggerBase](xref:ActiproSoftware.Text.Tagging.ITaggerBase).[NotifyTagAggregatorDetached](xref:ActiproSoftware.Text.Tagging.ITaggerBase.NotifyTagAggregatorDetached*) methods have been added for more granular control over the lifecycle of a tagger. Taggers which derive from [TaggerBase<T>](xref:ActiproSoftware.Text.Tagging.Implementation.TaggerBase`1) can override the [OnTagAggregatorAttached](xref:ActiproSoftware.Text.Tagging.Implementation.TaggerBase`1.OnTagAggregatorAttached*) and [OnTagAggregatorDetached](xref:ActiproSoftware.Text.Tagging.Implementation.TaggerBase`1.OnTagAggregatorDetached*) methods to respond to these notifications and more accurately determine if/when a tagger should be disposed.

The following changes were made to tagging-related interfaces:

- New [ITaggerBase](xref:ActiproSoftware.Text.Tagging.ITaggerBase) interface added which is implemented by [ITagger<T>](xref:ActiproSoftware.Text.Tagging.ITagger`1).
- The `Close` method, `Closed` event, and `TagsChanged` event were moved from [ITagger<T>](xref:ActiproSoftware.Text.Tagging.ITagger`1) to [ITaggerBase](xref:ActiproSoftware.Text.Tagging.ITaggerBase).
- New [ITagAggregatorBase](xref:ActiproSoftware.Text.Tagging.ITagAggregatorBase) interface added which is implemented by [ITagAggregator<T>](xref:ActiproSoftware.Text.Tagging.ITagAggregator`1).
- The `TagsChanged` event was moved from [ITagAggregator<T>](xref:ActiproSoftware.Text.Tagging.ITagAggregator`1) to [ITagAggregatorBase](xref:ActiproSoftware.Text.Tagging.ITagAggregatorBase).

## SyntaxEditor Python Language Add-on Updates

The [Python](../syntaxeditor/python-language-addon/python/index.md) parser grammar has been updated to support v3.9.5 syntax.

Python v2.x has been officially end of life for some time now, so we removed support for it. The `PythonVersion` enum was removed, and all APIs that had a `PythonVersion` parameter have had that parameter removed.

## SyntaxEditor .NET Languages Add-on Updates

The [C#](../syntaxeditor/dotnet-languages-addon/csharp/index.md) parser grammar has been updated to support v8.0 syntax.

## ToggleSwitch Control (Guage Library) Renamed to FlipSwitch

To avoid ambiguity with a new [ToggleSwitch](../shared/windows-controls/toggle-switch.md) control (Shared Library), the existing Actipro Gauge `ToggleSwitch` control has been renamed to [FlipSwitch](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch). The following related types and members have also been renamed:

- `ToggleSwitch.RenderToggleSwitch` method renamed to [FlipSwitch](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch).[RenderFlipSwitch](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch.RenderFlipSwitch*).
- `ToggleSwitchType` enumeration renamed to [FlipSwitchType](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitchType).
- `ToggleSwitchAutomationPeer` class renamed as [FlipSwitchAutomationPeer](xref:ActiproSoftware.Windows.Controls.Gauge.Automation.Peers.FlipSwitchAutomationPeer).

## PartEditBoxCommitTriggers Changes (Editors Library)

The [PartEditBoxCommitTriggers](xref:ActiproSoftware.Windows.Controls.Editors.PartEditBoxCommitTriggers) enumeration determines the rules by which typed/changed values are committed to an edit box's [Value](xref:ActiproSoftware.Windows.Controls.Editors.Primitives.PartEditBoxBase`1.Value) property. By default, it commits on focus loss, spinner change, and `Enter` key press.

Commit on focus loss didn't used to be an option and always occurred. For this version, we've added an explicit `LostFocus` option to the enumeration for customers who might not want a commit to occur unless the end user pressed `Enter`. The `Default` and `All` values include the `LostFocus` option so that they behave the same as before. However if any other custom values were previously used, you must now include the `LostFocus` value to retain the same behavior.

As part of these changes, the former `None` option has been renamed to `Manual`. Usage of the old `None` option should be replaced with the new `LostFocus` option to retain the same behavior as before.

## Windows 11 WindowChrome Corner Kind

The [WindowChrome](../themes/windowchrome.md) class has a new [WindowChrome](xref:ActiproSoftware.Windows.Themes.WindowChrome).[CornerKind](xref:ActiproSoftware.Windows.Themes.WindowChrome.CornerKind) property that can be set to a [WindowChromeCornerKind](xref:ActiproSoftware.Windows.Themes.WindowChromeCornerKind) value.

This default `Rounded` value will use the system to render rounded borders on Windows 11 windows, matching how non-chromed windows appear. Windows in Windows 10 or earlier will continue to render with square borders as before.

## ThemeManager.CurrentTheme Validation

The [ThemeManager](xref:ActiproSoftware.Windows.Themes.ThemeManager).[CurrentTheme](xref:ActiproSoftware.Windows.Themes.ThemeManager.CurrentTheme) property setter will now throw an exception if the specified theme name is not for a predefined theme or a registered custom theme, thereby warning you that you have not registered a custom theme properly before attempting to use it.
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 v22.1](converting-to-v22-1.md)

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

- [Converting to v20.1](converting-to-v20-1.md)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
title: "FlipSwitch Features"
order: 8
21 changes: 21 additions & 0 deletions Documentation/topics/gauge/flip-switch-features/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
title: "Overview"
page-title: "FlipSwitch Features"
order: 1
---
# Overview

The [FlipSwitch](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch) control can be broken down into separate areas, which are described below. Additional topics are provided for areas that require more detailed explanations.

## Frames

[FlipSwitch](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch) supports the same frame features as [CircularGauge](xref:ActiproSoftware.Windows.Controls.Gauge.CircularGauge), for more information see the [CircularGauge Frames](../circular-gauge-features/frames.md) topic.

> [!NOTE]
> The `FlipSwitch` control defaults the [BackgroundType](xref:ActiproSoftware.Windows.Controls.Gauge.Primitives.CircularGaugeBase.BackgroundType) to [None](xref:ActiproSoftware.Windows.Controls.Gauge.CircularBackgroundType.None), which differs from the `CircularGauge`.
## Switch

[FlipSwitch](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch) supports two or three check states, and includes several options for customizing the look of the switch.

See the [Switch](switch.md) topic for more information.
55 changes: 55 additions & 0 deletions Documentation/topics/gauge/flip-switch-features/switch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
title: "Switch"
page-title: "Switch - FlipSwitch Features"
order: 2
---
# Switch

[FlipSwitch](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch) supports two or three check states, and includes several options for customizing the look of the switch.

## Checked State

The `FlipSwitch` mimics most of the functionality found in the native WPF `ToggleButton`, such as the [IsChecked](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch.IsChecked) and [IsThreeState](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch.IsThreeState) properties.

The [IsChecked](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch.IsChecked) property determines the position of the switch (up for `true`, down for `false`, or in the middle for `null`). By default, only `true` and `false` are supported, but if [IsThreeState](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch.IsThreeState) is set to `true` then `null` (or indeterminate) is also supported.

![Screenshot](../images/flip-switch-flat-on.png)![Screenshot](../images/flip-switch-flat-off.png)

*Two FlipSwitch controls with one checked (left) and one unchecked (right)*

When animating from one state to another, the [SwitchInterval](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch.SwitchInterval) determines how long it takes the switch to travel to the new location.

## Appearance

### Switch Type

There are two switch types supported (circular and flat), which can be specified using the [SwitchType](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch.SwitchType) property.

![Screenshot](../images/flip-switch-flat-on.png)![Screenshot](../images/flip-switch-circular-on.png)

*Two FlipSwitch controls with a flat switch (left) and one with a circular switch (right)*

### Switch Size

The size of the switch is control by the [SwitchRadiusRatio](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch.SwitchRadiusRatio) property, which is defined as a percentage of the [Radius](xref:ActiproSoftware.Windows.Controls.Gauge.Primitives.CircularGaugeBase.Radius).

### Brush and Effect

The switch can be broken down into two different parts; the base of the switch and then the switch itself. The brushed used for each part can be customized independenty.

The base color can be customized by setting the [BaseBackground](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch.BaseBackground) property. Additionally, the accent color (the octagon) can be customized by setting the [BaseAccentBrush](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch.BaseAccentBrush) property.

![Screenshot](../images/flip-switch-circular-on-base.png)

*FlipSwitch with the base in red and the base accent in blue*

The actual switch is made up of a ball, shaft, and a tip. The colors from these elements can be customized using [BallBrush](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch.BallBrush), [ShaftBrush](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch.ShaftBrush), and [TipBrush](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch.TipBrush) respectively.

![Screenshot](../images/flip-switch-circular-on-switch.png)![Screenshot](../images/flip-switch-flat-on-switch.png)

*Two FlipSwitch control, one circular and one flat, with a green ball, yellow shaft, and blue tip*

The switch includes an effect that can be disabled by setting [IsSwitchEffectEnabled](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch.IsSwitchEffectEnabled) to `false`.

> [!NOTE]
> The led effect is only supported when [IsSwitchEffectEnabled](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch.IsSwitchEffectEnabled) is set to `true`**and** the associated brush is set to a `SolidColorBrush`.
6 changes: 3 additions & 3 deletions Documentation/topics/gauge/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,15 +87,15 @@ xmlns:gauge="http://schemas.actiprosoftware.com/winfx/xaml/gauge"
</gauge:LinearGauge>
```

## Getting Started with ToggleSwitch
## Getting Started with FlipSwitch

This code shows the base XAML that you can use to create a simple [ToggleSwitch](xref:ActiproSoftware.Windows.Controls.Gauge.ToggleSwitch):
This code shows the base XAML that you can use to create a simple [FlipSwitch](xref:ActiproSoftware.Windows.Controls.Gauge.FlipSwitch):

```xaml
xmlns:gauge="http://schemas.actiprosoftware.com/winfx/xaml/gauge"
...

<gauge:ToggleSwitch Width="100" Height="100" IsChecked="true" />
<gauge:FlipSwitch Width="100" Height="100" IsChecked="true" />
```

## Further Study
Expand Down
10 changes: 5 additions & 5 deletions Documentation/topics/gauge/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ order: 1
---
# Overview

Actipro Gauge provides circular, linear, and digital gauge controls, as well as led and toggle switch controls, all natively written for the Windows Presentation Foundation framework. Use these controls in your applications to more effectively present various data.
Actipro Gauge provides circular, linear, and digital gauge controls, as well as led and flip switch controls, all natively written for the Windows Presentation Foundation framework. Use these controls in your applications to more effectively present various data.

![Screenshot](images/gauge-teaser.gif)

Expand All @@ -19,7 +19,7 @@ DigitalGauge is a control that presents any string value using 7 or 14 segment d

Led is a control that mimics an led light, which can be turned on or off, or can be set to blink. The control supports color customization and animation, as well as several shapes. Examples of led lights include power buttons on computers and monitors.

ToggleSwitch is a control that mimics a light switch, which can be turned on or off, or can be set to indeterminate. The control supports color customization and animation, and includes a circular and a flat look. Examples of toggle switches include every day light switches.
FlipSwitch is a control that mimics a light switch, which can be turned on or off, or can be set to indeterminate. The control supports color customization and animation, and includes a circular and a flat look. Examples of flip switches include every day light switches.

## What is a Gauge?

Expand Down Expand Up @@ -94,10 +94,10 @@ The most common example of gauges is seen in the dashboard of a car, which indic
- Ability to include any number of [ranges](linear-gauge-features/ranges.md), which can highlight areas of interest.
- [Refresh rate](linear-gauge-features/pointers.md) can be used to limit the number of updates made to a pointer, which gives the user enough time to see the updated values.

### ToggleSwitch Features
### FlipSwitch Features

- Includes several built-in [frame rims and backgrounds](circular-gauge-features/frames.md), each with a unique effect.
- Supports two [switch](toggle-switch-features/switch.md) types and customizable colors.
- Allows for two or three [checked states](toggle-switch-features/switch.md), with smooth animations used when transitioning between states.
- Supports two [switch](flip-switch-features/switch.md) types and customizable colors.
- Allows for two or three [checked states](flip-switch-features/switch.md), with smooth animations used when transitioning between states.

*This product is written in 100% pure C#, and includes detailed documentation and samples.*
Loading

0 comments on commit cdf9794

Please sign in to comment.