Skip to content

Commit 14bc407

Browse files
committed
Merge branch 'release/v25.1.1' into main
2 parents e753c97 + 3666213 commit 14bc407

File tree

44 files changed

+400
-100
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+400
-100
lines changed

Documentation/topics/bars/menu-features/main-menu.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,9 @@ Those [BarMenuItem](xref:@ActiproUIRoot.Controls.Bars.BarMenuItem) children can
8181

8282
## Key Tips
8383

84-
[Key Tips](../ribbon-features/key-tips.md) are not supported within a main menu.
84+
Key tips in child controls are supported since [BarMainMenu](xref:@ActiproUIRoot.Controls.Bars.BarMainMenu) is a root key tip scope. Pressing keys like <kbd>Alt</kbd> will activate key tip mode the same as with a ribbon.
85+
86+
See the [Key Tips](../ribbon-features/key-tips.md) topic for more information on key tips.
8587

8688
## Screen Tips
8789

Documentation/topics/bars/ribbon-features/control-hierarchy.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ The following sample demonstrates how a `ContentControl` might be configured wit
4040
</actipro:RibbonContainerPanel>
4141

4242
</actipro:RibbonWindow>
43-
```
43+
```
4444
}
4545
@if (wpf) {
4646
```xaml
@@ -57,8 +57,8 @@ The following sample demonstrates how a `ContentControl` might be configured wit
5757
</bars:RibbonContainerPanel>
5858

5959
</bars:RibbonWindow>
60-
```
61-
}
60+
```
61+
}
6262

6363
In the code-behind, the `ribbonContent.Content` should be assigned an instance of `Ribbon`.
6464

Documentation/topics/bars/toolbar-features/dockable-toolbars.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -258,9 +258,7 @@ The [DockableToolBar](xref:@ActiproUIRoot.Controls.Bars.DockableToolBar).[HasOpt
258258

259259
## Key Tips
260260

261-
Key tips in child controls are supported since [BarMainMenu](xref:@ActiproUIRoot.Controls.Bars.BarMainMenu) is a root key tip scope. Pressing keys like <kbd>Alt</kbd> will activate key tip mode the same as with a ribbon.
262-
263-
See the [Key Tips](../ribbon-features/key-tips.md) topic for more information on key tips.
261+
[Key Tips](../ribbon-features/key-tips.md) are not supported within dockable toolbars.
264262

265263
## Screen Tips
266264

Documentation/topics/bars/toolbar-features/standalone-toolbars.md

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,25 +26,13 @@ The toolbar's `Background`, `BorderBrush`, `BorderThickness`, `CornerRadius`, [H
2626
The toolbar's `Background`, `BorderBrush`, `BorderThickness`, [CornerRadius](xref:@ActiproUIRoot.Controls.Bars.StandaloneToolBar.CornerRadius), [HasShadow](xref:@ActiproUIRoot.Controls.Bars.StandaloneToolBar.HasShadow), `ItemSpacing`, `Padding`, and [UserInterfaceDensity](xref:@ActiproUIRoot.Controls.Bars.StandaloneToolBar.UserInterfaceDensity) properties can be set to achieve an appearance like above.
2727
}
2828

29-
@if (avalonia) {
30-
### Secondary Toolbar
31-
32-
[StandaloneToolBar](xref:@ActiproUIRoot.Controls.Bars.StandaloneToolBar) also works great out-of-the-box as a toolbar that can be placed in another container, such as within a panel.
33-
34-
![Screenshot](../images/standalone-toolbar-toolwindow.png)
35-
36-
*A standalone toolbar in a panel*
37-
}
38-
39-
@if (wpf) {
4029
### Tool Window Toolbar
4130

4231
[StandaloneToolBar](xref:@ActiproUIRoot.Controls.Bars.StandaloneToolBar) also works great out-of-the-box as a toolbar that can be placed in another container, such as within a tool window from the [Actipro Docking/MDI product](../../docking/index.md).
4332

4433
![Screenshot](../images/standalone-toolbar-toolwindow.png)
4534

4635
*A standalone toolbar in a tool window*
47-
}
4836

4937
In this usage scenario, it's generally better to use the default appearance that is more compact.
5038

Documentation/topics/conversion/converting-to-v25-1.md

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,27 @@ No application logic updates should be required for this change, but user docume
6565

6666
This version enhances the [Intra-Text Adornments](../syntaxeditor/user-interface/adornment/intra-text-adornments.md) feature with the ability to position the intra-text adornment after the tagged text range instead of before. This option is handy for scenarios such as when AI suggestions should be displayed at the end of a line, after the last character.
6767

68-
The [IsSpacerBefore](xref:ActiproSoftware.Text.Tagging.IIntraTextSpacerTag.IsSpacerBefore) property was added to the [IIntraTextSpacerTag](xref:ActiproSoftware.Text.Tagging.IIntraTextSpacerTag) interface to support this new option. Any classes implementing this interface should return `true` for this property to retain prior version functionality where the adornment appears before the tagged range.
68+
The [IsSpacerBefore](xref:ActiproSoftware.Text.Tagging.IIntraTextSpacerTag.IsSpacerBefore) property was added to the [IIntraTextSpacerTag](xref:ActiproSoftware.Text.Tagging.IIntraTextSpacerTag) interface to support this new option. Any classes implementing this interface should return `true` for this property to retain prior version functionality where the adornment appears before the tagged range.
69+
70+
## Shared Library String Resource Updates
71+
72+
These existing string resources were updated to include underscore characters so that menu item accelerators are available:
73+
74+
- `SRName.UICommandCloseWindowText`
75+
- `SRName.UICommandMaximizeWindowText`
76+
- `SRName.UICommandMinimizeWindowText`
77+
- `SRName.UICommandMoveWindowText`
78+
- `SRName.UICommandRestoreWindowText`
79+
- `SRName.UICommandSizeWindowText`
80+
81+
Since some controls like window title bar buttons previously used the above string resources, new resources have been added that do not have underscores. Use these new string resources in non-menu item contexts:
82+
83+
- `SRName.UICloseButtonToolTip`
84+
- `SRName.UIMaximizeButtonToolTip`
85+
- `SRName.UIMinimizeButtonToolTip`
86+
- `SRName.UIMoveButtonToolTip`
87+
- `SRName.UIRestoreButtonToolTip`
88+
- `SRName.UISizeButtonToolTip`
89+
90+
> [!TIP]
91+
> If you have previously localized the original string resources, you should also localize the new set of string resources.

Documentation/topics/grids/tree-control-features/inline-editing.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ By specifying a `ContentTemplate` on the content control, you can surround the b
4545

4646
```xaml
4747
<DataTemplate>
48-
<StackPanel Orientation="Horizontal">
48+
<StackPanel Orientation="Horizontal">
4949
<Image Width="16" Height="16" Source="{Binding ImageSource}" Stretch="None" VerticalAlignment="Center" />
5050
<shared:EditableContentControl Margin="2,0,0,0" Content="{Binding Name, Mode=TwoWay}" IsEditing="{Binding IsEditing, Mode=TwoWay}">
5151
<shared:EditableContentControl.ContentTemplate>
@@ -58,7 +58,7 @@ By specifying a `ContentTemplate` on the content control, you can surround the b
5858
</DataTemplate>
5959
</shared:EditableContentControl.ContentTemplate>
6060
</shared:EditableContentControl>
61-
</StackPanel>
61+
</StackPanel>
6262
</DataTemplate>
6363
```
6464

Documentation/topics/licensing.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,24 @@ public partial class App : Application {
8585
> [!WARNING]
8686
> When using this licensing option, *do not* include any Actipro entries in your application's *licenses.licx* file.
8787
88+
### Notes on Unit Tests
89+
90+
If your application build job runs any unit tests that create Actipro UI controls, the `ActiproLicenseManager.RegisterLicense` method must be called before the Actipro UI controls are created to avoid any licensing-related prompts or exceptions.
91+
92+
```csharp
93+
using ActiproSoftware.Products;
94+
...
95+
public void OnTestActiproControl() {
96+
// NOTE: Set "licensee" and "licenseKey" variables to your license information
97+
ActiproLicenseManager.RegisterLicense(licensee, licenseKey);
98+
99+
// Unit test logic here that creates an Actipro control
100+
...
101+
}
102+
```
103+
104+
The license registration could alternatively be placed in a more centralized location, such as in the unit test class constructor. The important thing is that it is called before Actipro UI controls are created.
105+
88106
## Licensing Via a Licenses.licx File
89107

90108
This legacy licensing option is only available for applications that target the classic .NET Framework and is what Actipro exclusively used prior to v20.1.
@@ -152,7 +170,7 @@ The contents of a *licenses.licx* file are pretty simple. It needs a single lin
152170
This single line (update the version to match the one you use) should be added to the *licenses.licx* file in any project that uses Actipro @@PlatformName control or SyntaxEditor add-on products:
153171

154172
```
155-
ActiproSoftware.Products.ActiproLicenseToken, ActiproSoftware.Shared.Wpf, Version=25.1.0.0, Culture=neutral, PublicKeyToken=36ff2196ab5654b9
173+
ActiproSoftware.Products.ActiproLicenseToken, ActiproSoftware.Shared.Wpf, Version=25.1.1.0, Culture=neutral, PublicKeyToken=36ff2196ab5654b9
156174
```
157175

158176
> [!IMPORTANT]

Documentation/topics/ribbon/controls/ribbonwindow.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -56,26 +56,26 @@ Properties like [TitleBarRightContentTemplate](xref:@ActiproUIRoot.Themes.Window
5656

5757
```xaml
5858
<ribbon:RibbonWindow.Resources>
59-
<DataTemplate x:Key="TitleBarRightContent">
60-
<TextBlock>This is the right content</TextBlock>
61-
</DataTemplate>
59+
<DataTemplate x:Key="TitleBarRightContent">
60+
<TextBlock>This is the right content</TextBlock>
61+
</DataTemplate>
6262
</ribbon:RibbonWindow.Resources>
6363
```
6464

6565
This template can then be applied to the `WindowChrome` of the `RibbonWindow` in the code-behind file as shown in the following sample:
6666

6767
```csharp
6868
public MainWindow() {
69-
' Allow component initialization to complete first
70-
InitializeComponent();
71-
72-
' Attempt to locate the DataTemplate defined as a resource (make sure the key matches the resource)
73-
var template = TryFindResource("TitleBarRightContent") as DataTemplate;
74-
if (template != null) {
75-
' Get the WindowChrome pre-installed by this RibbonWindow
76-
var chrome = WindowChrome.GetChrome(this);
77-
' Assign the template
78-
chrome.TitleBarRightContentTemplate = template;
79-
}
69+
' Allow component initialization to complete first
70+
InitializeComponent();
71+
72+
' Attempt to locate the DataTemplate defined as a resource (make sure the key matches the resource)
73+
var template = TryFindResource("TitleBarRightContent") as DataTemplate;
74+
if (template != null) {
75+
' Get the WindowChrome pre-installed by this RibbonWindow
76+
var chrome = WindowChrome.GetChrome(this);
77+
' Assign the template
78+
chrome.TitleBarRightContentTemplate = template;
79+
}
8080
}
8181
```

Documentation/topics/shared/windows-controls/user-prompt/builder-pattern.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ The following example demonstrates how a global callback can be registered to cu
5555
```csharp
5656
UserPromptBuilder.RegisterGlobalConfigureCallback(_ => _
5757
.WithHeaderFontSize(16)
58-
.WithHeaderForeground(new SolidColorBrush(Colors.Blue))
58+
.WithHeaderForeground(new SolidColorBrush(Colors.Blue))
5959
);
6060
```
6161
}

Documentation/topics/syntaxeditor/ll-parser-framework/parser-infrastructure.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -116,19 +116,19 @@ In this example code, we will create and return a [MergableTokenReader](xref:Act
116116
/// </summary>
117117
public class SimpleParser : LLParserBase {
118118

119-
/// <summary>
120-
/// Initializes a new instance of the <c>SimpleParser</c> class.
121-
/// </summary>
122-
public SimpleParser() : base(new SimpleGrammar()) {}
123-
124-
/// <summary>
125-
/// Creates an <see cref="ITokenReader"/> that is used by the parser to read through tokens.
126-
/// </summary>
127-
/// <param name="reader">The <see cref="ITextBufferReader"/> that provides access to the text buffer.</param>
128-
/// <returns>An <see cref="ITokenReader"/> that is used by the parser to read through tokens.</returns>
129-
public override ITokenReader CreateTokenReader(ITextBufferReader reader) {
130-
return new MergableTokenReader(reader, new SimpleLexer(new SimpleClassificationTypeProvider()));
131-
}
119+
/// <summary>
120+
/// Initializes a new instance of the <c>SimpleParser</c> class.
121+
/// </summary>
122+
public SimpleParser() : base(new SimpleGrammar()) {}
123+
124+
/// <summary>
125+
/// Creates an <see cref="ITokenReader"/> that is used by the parser to read through tokens.
126+
/// </summary>
127+
/// <param name="reader">The <see cref="ITextBufferReader"/> that provides access to the text buffer.</param>
128+
/// <returns>An <see cref="ITokenReader"/> that is used by the parser to read through tokens.</returns>
129+
public override ITokenReader CreateTokenReader(ITextBufferReader reader) {
130+
return new MergableTokenReader(reader, new SimpleLexer(new SimpleClassificationTypeProvider()));
131+
}
132132
}
133133
```
134134

@@ -151,7 +151,7 @@ protected virtual IParseData CreateParseData(IParseRequest request, IParserState
151151
SimpleParseData parseData = new SimpleParseData();
152152
this.InitializeParseData(parseData, state);
153153

154-
// Add custom parse data to the parseData object
154+
// Add custom parse data to the parseData object
155155
156156
return parseData;
157157
}

0 commit comments

Comments
 (0)