Converting to v22.1
The 22.1 version made several minor API changes in the SyntaxEditor Python Language Add-on. A new ToggleSwitch control (Shared Library) also resulted in renaming the existing ToggleSwitch (Gauge) as FlipSwitch to avoid ambiguity.
SyntaxEditor Drag and Drop Updates
The Drag and Drop functionality has been enhanced to provide more control over the experience.
Previously, any non-null
value assigned to the PasteDragDropEventArgs.Text property within a handler for the 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.DragEventArgs will be used to indicate Copy
, Move
, or None
operations. Refer to the Drag and Drop topic for details on customizing drag operations.
SyntaxEditor Tagging Updates
Previously, any ITaggerIDisposable
interface would be disposed when detached from an instance of the TagAggregatorBase
New ITaggerBase.NotifyTagAggregatorAttached and ITaggerBase.NotifyTagAggregatorDetached methods have been added for more granular control over the lifecycle of a tagger. Taggers which derive from TaggerBase
The following changes were made to tagging-related interfaces:
- New ITaggerBase interface added which is implemented by ITagger
. - The
Close
method,Closed
event, andTagsChanged
event were moved from ITaggerto ITaggerBase. - New ITagAggregatorBase interface added which is implemented by ITagAggregator
. - The
TagsChanged
event was moved from ITagAggregatorto ITagAggregatorBase.
SyntaxEditor Python Language Add-on Updates
The Python 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# parser grammar has been updated to support v8.0 syntax.
SyntaxEditor RegexCompletionItemMatcherBase Updates
The RegexCompletionItemMatcherBase.GetRegex method added an additional argument in v22.1.1 to indicate if the regular expression should include capture groups. Previously, all regular expressions included the capture groups, and this could impact matching performance when capture groups were unnecessary.
Any custom classes which derive from RegexCompletionItemMatcherBase will need to add the additional argument and update the logic to only use capture groups (i.e., parenthesis) in the pattern when requested.
ToggleSwitch Control (Gauge Library) Renamed to FlipSwitch
To avoid ambiguity with a new ToggleSwitch control (Shared Library), the existing Actipro Gauge ToggleSwitch
control has been renamed to FlipSwitch. The following related types and members have also been renamed:
ToggleSwitch.RenderToggleSwitch
method renamed to FlipSwitch.RenderFlipSwitch.ToggleSwitchType
enumeration renamed to FlipSwitchType.ToggleSwitchAutomationPeer
class renamed as FlipSwitchAutomationPeer.
PartEditBoxCommitTriggers Changes (Editors Library)
The PartEditBoxCommitTriggers enumeration determines the rules by which typed/changed values are committed to an edit box's 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 class has a new WindowChrome.CornerKind property that can be set to a 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.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.