Skip to content

Commit

Permalink
Merge branch 'release/v23.1.4' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
billhenn committed Dec 5, 2023
2 parents aa0d7a1 + 49a7108 commit 3c3c875
Show file tree
Hide file tree
Showing 26 changed files with 147 additions and 42 deletions.
4 changes: 4 additions & 0 deletions Documentation/topics/bars/controls/combobox.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,10 @@ Placeholder text is a way to prompt the end user for the type of value that shou

Placeholder text is faintly rendered when there is no value in the control, and can be designated via the [PlaceholderText](xref:@ActiproUIRoot.Controls.Bars.BarComboBox.PlaceholderText) property.

### Maximum Popup Height

The maximum height of the popup is dynamically calculated to be a majority of the current screen's height. The maximum popup height may be further restricted by setting the [MaxPopupHeight](xref:@ActiproUIRoot.Controls.Bars.BarComboBox.MaxPopupHeight) property, which is similar to the `MaxDropDownHeight` property on a native `ComboBox` control.

## Editability and Read-Only State

The [IsEditable](xref:@ActiproUIRoot.Controls.Bars.BarComboBox.IsEditable) property determines if the combobox supports typing when it has focus. This property is `false` by default, which means that clicking on the text portion of the combobox will display the popup. When the property is `true`, any text value can be typed that may or may not match a combobox item. See the "Unmatched Text" section below for more information on handling unmatched text values.
Expand Down
2 changes: 1 addition & 1 deletion Documentation/topics/bars/localization.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ order: 405

Many controls utilize built-in strings as part of their presentation, and these strings are defined as resources which can be customized. For example, the [Ribbon Options Button](ribbon-features/options-button.md) displays several commands whose labels are based on string resources.

Bars string resources are customized using the [ActiproSoftware.Products.Bars.SR](xref:ActiproSoftware.Products.Bars.SR) class and an enumeration of available resource names is available using [ActiproSoftware.Products.Bars.SRName](xref:ActiproSoftware.Products.Bars.SRName).
Bars string resources are customized using the `ActiproSoftware.Products.Bars.SR` class and an enumeration of available resource names is available using `ActiproSoftware.Products.Bars.SRName`.

> [!NOTE]
> For those working with [MVVM](mvvm-support.md), additional string resources for that library can be customized using the `ActiproSoftware.Products.Bars.Mvvm.SR` class and `ActiproSoftware.Products.Bars.MVVM.SRName` enumeration.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,10 @@ The toolbar can host all [Bars controls](../controls/index.md) that are meant fo

*A standalone toolbar with a gallery open*

Most controls define a `ToolBarItemVariantBehavior` property (e.g., [BarButton](xref:@ActiproUIRoot.Controls.Bars.BarButton).[ToolBarItemVariantBehavior](xref:@ActiproUIRoot.Controls.Bars.BarButton.ToolBarItemVariantBehavior)) that determines the allowed variant sizes of a control when it is displayed in a toolbar. The property defaults to `AlwaysSmall`, causing controls to display in a `Small` variant, which often means icon only.

Since the standalone toolbar doesn't dynamically adjust child control variants as space decreases like a ribbon in `Simplified` layout mode does, it only uses each child's `ToolBarItemVariantBehavior` property as a guideline for what single variant size to support for that child. Therefore as an example, to display an icon and label for a particular button, set the [BarButton](xref:@ActiproUIRoot.Controls.Bars.BarButton).[ToolBarItemVariantBehavior](xref:@ActiproUIRoot.Controls.Bars.BarButton.ToolBarItemVariantBehavior) property to `AlwaysMedium`.

## Key Tips

Key tips in child controls are supported, but are not active by default and must be enabled by setting the attached [BarControlService](xref:@ActiproUIRoot.Controls.Bars.KeyTipService.IsRootKeyTipScopeProperty) property to `true`.
Expand Down
2 changes: 1 addition & 1 deletion Documentation/topics/licensing.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ The contents of a *licenses.licx* file are pretty simple. It needs a single lin
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:

```
ActiproSoftware.Products.ActiproLicenseToken, ActiproSoftware.Shared.Wpf, Version=23.1.3.0, Culture=neutral, PublicKeyToken=36ff2196ab5654b9
ActiproSoftware.Products.ActiproLicenseToken, ActiproSoftware.Shared.Wpf, Version=23.1.4.0, Culture=neutral, PublicKeyToken=36ff2196ab5654b9
```

### Notes on Build Machines When Using Licenses.licx Files
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,18 @@ while (!reader.IsAtSnapshotEnd) {
}
```

### Setting the Post-Change Selection

After a text change is applied, an editor view's selection will by default be collapsed to the offset location after the last operation. This is accurate for many scenarios, however in some cases, the exact selection needs to be set to something else.

This can be done by setting the [ITextChange](xref:ActiproSoftware.Text.ITextChange).[PostSelectionPositionRanges](xref:ActiproSoftware.Text.ITextChange.PostSelectionPositionRanges) property to an [ITextPositionRangeCollection](xref:ActiproSoftware.Text.ITextPositionRangeCollection) instance. The static [TextPositionRange](xref:ActiproSoftware.Text.TextPositionRange).[CreateCollection](xref:ActiproSoftware.Text.TextPositionRange.CreateCollection*) method can create an [ITextPositionRangeCollection](xref:ActiproSoftware.Text.ITextPositionRangeCollection) instance. The first overload for that method is most commonly used. It takes a single [TextPositionRange](xref:ActiproSoftware.Text.TextPositionRange) and indicates if it should be a block or continuous stream selection. The second overload is for supporting multiple selection ranges.

This code uses a [TextPositionRange](xref:ActiproSoftware.Text.TextPositionRange) value in variable `selectionPositionRange` to indicate what the final editor view selection should become after the text change is applied:

```csharp
change.PostSelectionPositionRanges = TextPositionRange.CreateCollection(selectionPositionRange, isBlock: false)
```

### Applying the Text Change

Finally, when you have completely constructed the text change, call its [Apply](xref:ActiproSoftware.Text.ITextChange.Apply*) method to perform the text change on the document.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ To prevent these keys (or any other key combination) from reaching the `SyntaxEd
@if (winforms) {

> [!TIP]
> The [OverlayPaneBase](xref:@ActiproUIRoot.Controls.SyntaxEditor.OverlayPaneBase) control has built-in support for handling key presses. By default, <kbd>Esc</kbd> will be handled and used to close the overlay pane but can be disabled by setting [AllowEscKeyToClose](xref:@ActiproUIRoot.Controls.SyntaxEditor.OverlayPaneBase.AllowEscKeyToClose) = `false`.
> The [OverlayPaneBase](xref:@ActiproUIRoot.Controls.SyntaxEditor.Implementation.OverlayPaneBase) control has built-in support for handling key presses. By default, <kbd>Esc</kbd> will be handled and used to close the overlay pane but can be disabled by setting [AllowEscKeyToClose](xref:@ActiproUIRoot.Controls.SyntaxEditor.Implementation.OverlayPaneBase.AllowEscKeyToClose) = `false`.
>
>To customize the handling of additional keys, override the [ProcessKeyDown](xref:@ActiproUIRoot.Controls.SyntaxEditor.OverlayPaneBase.ProcessKeyDown) method and return `true` for any keys that were handled by the overlay pane. For example, the <kbd>Tab</kbd> and <kbd>Shift</kbd>+<kbd>Tab</kbd> keys can optionally be handled to keep keyboard focus within the pane.
>To customize the handling of additional keys, override the [ProcessKeyDown](xref:@ActiproUIRoot.Controls.SyntaxEditor.Implementation.OverlayPaneBase.ProcessKeyDown*) method and return `true` for any keys that were handled by the overlay pane. For example, the <kbd>Tab</kbd> and <kbd>Shift</kbd>+<kbd>Tab</kbd> keys can optionally be handled to keep keyboard focus within the pane.
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,5 @@ When that property is set to `false`, these properties are also automatically ad
- [IsOutliningMarginVisible](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditor.IsOutliningMarginVisible) is set to `false`.
- [IsSelectionMarginVisible](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditor.IsSelectionMarginVisible) is set to `false`.
@if (winrt wpf) {
- [InactiveSelectedTextBackground](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditor.InactiveSelectedTextBackground) is set to null.
- [InactiveSelectedTextBackground](xref:@ActiproUIRoot.Controls.SyntaxEditor.SyntaxEditor.InactiveSelectedTextBackground) is set to `null`.
}
2 changes: 1 addition & 1 deletion Documentation/topics/themes/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Also included in Actipro Themes are optional styles and templates for all native
- Over 30 professionally designed themes, including numerous modern themes, Office themes, and Metro themes.
- An entire themes management framework that makes it simple to register themes and swap them in and out at run-time.
- Consolidated and centralized collection of assets, such as brushes, that are used across all our WPF products.
- Easily build a completely custom theme or tweak individual aspects of existing themes without having re-style or re-template controls.
- Easily build a completely custom theme or tweak individual aspects of existing themes without having to re-style or re-template controls.
- Define custom resources that will be loaded based on the current theme.
- Quickly integrate custom controls into the theme management framework.
- Reusable styles/templates for common controls such as embedded buttons.
Expand Down
4 changes: 2 additions & 2 deletions Samples/PrismIntegration/PrismIntegration.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

<ApplicationIcon>Actipro.ico</ApplicationIcon>

<Version>23.1.3.0</Version>
<Version>23.1.4.0</Version>

<RootNamespace>ActiproSoftware.Windows.PrismIntegration</RootNamespace>
<Company>Actipro Software LLC</Company>
Expand All @@ -32,7 +32,7 @@
</ItemGroup>

<ItemGroup Label="Actipro References">
<PackageReference Include="ActiproSoftware.Controls.WPF.Docking" Version="23.1.3" />
<PackageReference Include="ActiproSoftware.Controls.WPF.Docking" Version="23.1.4" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,7 @@ private void RegisterControlViewModels() {

viewModels.Register(BarControlKeys.FlowDirection, key
=> new BarButtonViewModel(key, FlowDirectionCommand) {
KeyTipText = "D",
Description = "Toggles flow direction of the control so that you can see how right-to-left mode operates.",
});

Expand Down Expand Up @@ -383,7 +384,7 @@ private void RegisterControlViewModels() {
=> new BarButtonViewModel(key, NotImplementedCommand) { Description = "Save this document." });

viewModels.Register(BarControlKeys.SearchForText, key
=> new BarTextBoxViewModel(key, "Search", SearchForTextCommand) {
=> new BarTextBoxViewModel(key, "Search", "H", SearchForTextCommand) {
Description = "Search for text in the document.",
RequestedWidth = 100,
PlaceholderText = "(search text)",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@
background, and other margins can be modified. Brushes are also
available to alter how the caret and selection render.
Use the brush pickers at the top to alter the brushes used in
this sample.
Use the brush pickers displayed in the Sample Options to alter
the brushes used in this sample.
By tweaking the brushes used to render SyntaxEditor, you can
give your application a truly unique style.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@
</StackPanel>

<!-- SyntaxEditor -->
<editor:SyntaxEditor x:Name="editor" Grid.Row="1" WordWrapMode="Word" IsLineNumberMarginVisible="True" IsCurrentLineHighlightingEnabled="True">
<editor:SyntaxEditor x:Name="editor" Grid.Row="1" WordWrapMode="Word" IsLineNumberMarginVisible="True" IsCurrentLineHighlightingEnabled="True"
ActiveViewChanged="OnEditorActiveViewChanged">
<editor:EditorDocument x:Name="document" xml:space="preserve"><![CDATA[/*
SyntaxEditor can automatically highlight text that will be searched for
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,25 @@ public MainControl() {
// Refresh highlights
this.RefreshHighlights();
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
// NON-PUBLIC PROCEDURES
/////////////////////////////////////////////////////////////////////////////////////////////////////


/// <summary>
/// Occurs when the active view in the editor is changed.
/// </summary>
/// <param name="sender">The sender of the event.</param>
/// <param name="e">A <see cref="EditorViewChangedEventArgs"/> that contains the event data.</param>
private void OnEditorActiveViewChanged(object sender, EditorViewChangedEventArgs e) {
// Clear search options from the inactive view
if (e.OldValue != null)
e.OldValue.HighlightedResultSearchOptions = null;

// Apply highlights to the newly active view
RefreshHighlights();
}

/// <summary>
/// Occurs when the control receives focus.
/// </summary>
Expand Down Expand Up @@ -64,7 +78,7 @@ private void RefreshHighlights() {
options.FindText = findWhatTextBox.Text;
editor.ActiveView.HighlightedResultSearchOptions = options;
}

}

}
4 changes: 2 additions & 2 deletions Samples/SampleBrowser/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,5 +64,5 @@
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("23.1.3.0")]
[assembly: AssemblyInformationalVersion("23.1.3.0 - 20230614")]
[assembly: AssemblyVersion("23.1.4.0")]
[assembly: AssemblyInformationalVersion("23.1.4.0 - 20230911")]
2 changes: 1 addition & 1 deletion Samples/SampleBrowser/Properties/Licenses.licx
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ActiproSoftware.Products.ActiproLicenseToken, ActiproSoftware.Shared.Wpf, Version=23.1.3.0, Culture=neutral, PublicKeyToken=36ff2196ab5654b9
ActiproSoftware.Products.ActiproLicenseToken, ActiproSoftware.Shared.Wpf, Version=23.1.4.0, Culture=neutral, PublicKeyToken=36ff2196ab5654b9
18 changes: 9 additions & 9 deletions Samples/SampleBrowser/SampleBrowser.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<ApplicationIcon>Images\Icons\Actipro.ico</ApplicationIcon>
<ApplicationManifest>Properties\app.manifest</ApplicationManifest>

<Version>23.1.3.0</Version>
<Version>23.1.4.0</Version>

<RootNamespace>ActiproSoftware</RootNamespace>

Expand Down Expand Up @@ -69,14 +69,14 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="ActiproSoftware.Controls.WPF" Version="23.1.3" />
<PackageReference Include="ActiproSoftware.Controls.WPF.Bars.Mvvm" Version="23.1.3" />
<PackageReference Include="ActiproSoftware.Controls.WPF.DataGrid.Contrib" Version="23.1.3" />
<PackageReference Include="ActiproSoftware.Controls.WPF.SyntaxEditor.Addons.DotNet" Version="23.1.3" />
<PackageReference Include="ActiproSoftware.Controls.WPF.SyntaxEditor.Addons.JavaScript" Version="23.1.3" />
<PackageReference Include="ActiproSoftware.Controls.WPF.SyntaxEditor.Addons.Python" Version="23.1.3" />
<PackageReference Include="ActiproSoftware.Controls.WPF.SyntaxEditor.Addons.XML" Version="23.1.3" />
<PackageReference Include="ActiproSoftware.Controls.WPF.Themes.Aero" Version="23.1.3" />
<PackageReference Include="ActiproSoftware.Controls.WPF" Version="23.1.4" />
<PackageReference Include="ActiproSoftware.Controls.WPF.Bars.Mvvm" Version="23.1.4" />
<PackageReference Include="ActiproSoftware.Controls.WPF.DataGrid.Contrib" Version="23.1.4" />
<PackageReference Include="ActiproSoftware.Controls.WPF.SyntaxEditor.Addons.DotNet" Version="23.1.4" />
<PackageReference Include="ActiproSoftware.Controls.WPF.SyntaxEditor.Addons.JavaScript" Version="23.1.4" />
<PackageReference Include="ActiproSoftware.Controls.WPF.SyntaxEditor.Addons.Python" Version="23.1.4" />
<PackageReference Include="ActiproSoftware.Controls.WPF.SyntaxEditor.Addons.XML" Version="23.1.4" />
<PackageReference Include="ActiproSoftware.Controls.WPF.Themes.Aero" Version="23.1.4" />
</ItemGroup>

</Project>
Loading

0 comments on commit 3c3c875

Please sign in to comment.