SyntaxEditor vNext Multiple Caret/Selection Progress

by Avatar Bill Henning (Actipro) - 3 comments
Wednesday, July 18, 2018 at 3:56pm

BlogPostBanner-SyntaxEditor-DevNotes

As mentioned in a previous post, we have been working on refactoring the core internal implementation of our SyntaxEditor code editor control on the WPF, UWP, and WinForms platforms.  This effort is being made to bring all three platforms onto the same codebase for easier updating moving forward, and to enhance features wherever possible.

We are continuing development on our SyntaxEditor control, adding many modern features under a unified API design.  One enormous feature area getting added is multiple carets/selections.  We briefly proposed adding this feature several months ago in this blog post to gather feedback.

Now that we've had time to iterate on development of it, I wanted to share a demo so you can see how it works.

Multiple Carets/Selections Demo

In this screen capture animation, we show how SyntaxEditor vNext will support multiple carets/selections.

2018-07-18_11-41-52

I first select a word using my mouse and click/dragging like normal.  Then I select text under it while holding the Ctrl key and click/dragging.  Afterward I notice I accidentally selected too many characters.  I hold Ctrl and click the second selection to collapse it.  Then I hold Ctrl and click/drag to make the correct selection.

Next I hold Ctrl and click in another word to add a third caret.  I remove that same third caret by Ctrl+clicking on it again.  This is a nice feature for when you accidentally add a caret/selection you didn't mean to add.

Finally, edit actions like typing will affect all selections.  You can see in the animation how typing "Foo" affects the two selections.  Pressing Ctrl+Z for undo applies to all the selections.

Summary

Adding multiple caret/selection support is a massive feature area that touches many portions of the product.  While it's taken a while to implement, we're very pleased with the progress thus far and think it will really be exciting for end users.

Let us know what you think of this feature area in the comments.

ShellListView Layout Modes Added

by Avatar Bill Henning (Actipro)
Friday, June 15, 2018 at 5:17pm

BlogPostBanner.Shell.DevNotes

Earlier this week, we published a WPF Controls 2018.1 build 671 maintenance release that added some major new features for our WPF Shell controls.  It also made some minor updates and bug fixes in other WPF controls, so it is a highly recommended update.

Actipro's WPF Shell controls allow for easy folder and file browsing. While the product comes packed with a pre-built implementation for the Windows shell that mimics Windows Explorer, the controls are fully customizable, allowing you to filter or change the folders/files presented. Or build your own shell service to support other files systems, such the remote side for a FTP client.

ShellListView Layout Modes

The initial 2018.1 release of the Shell controls first introduced the ShellTreeListBox control (presents a shell folder hierarchy in a tree structure) and the ShellListView control (shows the contents of a selected folder).  This first build only supported the Details layout mode in ShellListView, which is the one most commonly-used, and has multiple columns of shell object information display. 

In this latest maintenance release, we've added multiple new layout mode options:  List, Small Icons, Medium Icons, Large Icons, and Extra Large Icons.  Let's see a comparison of the new modes.

List

ShellListView-List

Small Icons

ShellListView-SmallIcons

Medium Icons

ShellListView-MediumIcons

Large Icons

ShellListView-LargeIcons

Extra Large Icons

ShellListView-ExtraLargeIcons

Details (default)

ShellListView-Details

Thumbnails

This latest maintenance release also can display thumbnails that represent shell object content in place of the standard file type icons in several of the new layout modes.

Let's take a look at a folder that has the thumbnails feature off:

ShellListView-NoThumbnails

You can see that the folders don't show any content and the images display a standard icon.  Now let's compare the same folder with the new thumbnails feature on:

ShellListView-Thumbnails

That's quite an improvement and really helps users get a feel for the content.  The thumbnails displayed are provided by the system, so the thumbnails should support generation from any shell extension that supports thumbnails.

Summary

The features described above are available today.  Please download our latest WPF controls build to get them.

The next feature we're working on for ShellListView is adding a virtualizing panel for these new layout modes that will allow folders with many shell objects to display quicker.  If you'd like to help us beta test new features like the virtualizing panel, please write our support address.  And "Chat With Us" about our shell controls on Slack.

TaskDownload TaskBuyNow TaskWideChatWithUs

WPF, UWP, and Silverlight Controls 2018.1 Released

by Avatar Bill Henning (Actipro)
Tuesday, May 22, 2018 at 2:54pm

BlogPostBanner-18.1

We're happy to announce that the 2018.1 versions of our WPF, Universal Windows, and Silverlight controls have been released.  These versions include a new WPF Shell product, new features, and a lot of minor updates and bug fixes throughout the control sets.

See all the details on the 2018.1 releases in the various announcement posts:

TaskDownload TaskBuyNow

Introducing Shell Controls (WPF only)

The 2018.1 version of the WPF Controls introduces a beta of a new Shell controls product that we've been developing the past several months.

Actipro Shell controls allow for easy folder and file browsing. While the product comes packed with a pre-built implementation for the Windows shell that mimics Windows Explorer, the controls are fully customizable, allowing you to filter or change the folders/files presented. Or build your own shell service to support other files systems, such the remote side for a FTP client.

ShellControls

The ShellTreeListBox control presents a shell folder hierarchy in a tree structure. It is often paired with a ShellListView control, which shows the contents of a selected folder using column-based property display. Both controls support customizable tool tips, context menus, multiple image sizes that account for high-DPI scenarios, and in-line renaming.

All of the UI found in the Shell controls is native WPF, even the context menus. Unlike competitive products with interop-based user interfaces, the Actipro Shell controls don't have any airspace or focus issues, and every bit of UI can be fully-themed or even customized with XAML data templates.

Although these controls are still in beta, they should be stable for usage in production.  If you would like to submit suggestions for improvement, please post them in our Shell discussion forum or join our Slack workspace.  We've done a lot of planning with beta testers in the Slack #uicontrols channel.

TaskLearnMore TaskWideChatWithUs

March WPF, UWP, and Silverlight v2017.2 Maintenance Releases

by Avatar Bill Henning (Actipro)
Sunday, April 22, 2018 at 6:18am

BlogPostBanner-2017.2-Maint

Our v2017.2 WPF, Universal Windows, and Silverlight controls have all been updated with new maintenance releases that are now ready for download. 

Let's take a quick look at some of the more notable features that were added.

Charts

Bar Customization

The series style selector's method for picking each bar's style in a bar chart has been updated to be passed bar index and count, allowing for individual bars to be customized.

Docking/MDI

UIA Updates for Better Coded UI Test Support

The docking window container UIA hierarchy has been updated to better support Coded UI Test.  These changes should now allow Coded UI Tests for controls in docking windows to record and play back successfully.

Keeping Auto-Hide Popups Open For Dialogs

There is now a property that can be set temporarily to prevent an auto-hide popup from closing when WPF keyboard focus is lost from it, which can happen if a dialog window is opened from a button on the docking window.  In this scenario in the past, the button could be clicked and the auto-hide popup might slide back.  The new option allows the popup to remain open when the dialog is open.

Improved Dragging Over Nested Linked Dock Sites

Updated docking window logic now shows dock guides by default for linked dock sites at the same nesting level, when there are multiple dock sites nested.  If there are multiple linked dock sites covering the same drag location, the Shift key can be held to switch dock guides to an alternate dock site.

Editors

MaskedTextBox Input Improvements

Logic has been updated to block some input that would trigger a shorter match.

NaN and Infinity Support Added to Multiple Edit Boxes

The CornerRadiusEditBox, PointEditBox, RectEditBox, SizeEditBox, ThicknessEditBox, and VectorEditBox controls now all have properties that can be set to allow NaN and infinity component values.

Gauge

Improved Digital Gauge Segment Rendering

DigitalGauge

The distance between digital gauge segments for the 7-segment (normal) and 14-segment (normal) character sets has been reduced, making the digital gauges easier to read at certain sizes, and more like most real readouts.

SyntaxEditor

Free Sample C#/VB Syntax Language Updates

The free language definition files now support C# 6 and VB 14 enhancements.

XML Start Tag Self-Closing

The XML auto-completion logic in the Web Languages Add-on will self-close start tags if a '/' is typed.

Summary

There were also a large number of smaller improvements made throughout the products.  See the announcement posts for the detailed list of enhancements and updates:

TaskDownload TaskBuyNow

Interest in SyntaxEditor Multiple Caret/Selection Features?

by Avatar Bill Henning (Actipro) - 9 comments
Tuesday, February 20, 2018 at 4:02pm

BlogPostBanner-SyntaxEditor-DevNotes

As mentioned in a previous post, we have been working on refactoring the core internal implementation of our SyntaxEditor code editor control on the WPF, UWP, and WinForms platforms.  This effort is being made to bring all three platforms onto the same codebase for easier updating moving forward, and to enhance features wherever possible.

As we continue development of SyntaxEditor vNext, we are getting into porting in the caret/selection feature area.  We've seen a couple newer editors support the concept of multiple carets/selections and would like to get some feedback on if this is a desired feature by our customers.  This is different than the rectangular box selection feature we currently already support.

Rectangular Box Selection

Rectangular box selection is already supported in SyntaxEditor and looks like this:

SyntaxEditorBoxSelection

When this selection is active, you can type and it will enter text at the same column on each line.  You can also copy box-selected text and when it's pasted, it will retain the box layout.  This is a very handy and powerful feature.

Multiple Carets/Selections

Now what happens if you want to make multiple updates but not necessarily in the same column.  Let's take a look at a scenario:

SyntaxEditorMultiScenario

In the screenshot above, the caret is next to a Write method call.  Let's say we want to update all the Write method calls to be WriteLine instead.  We could change it once and copy/paste it to the other locations.  But if we had multiple caret support, you could throw a caret at the end of each of the four Write method calls (in various columns) and simply type Line to update all of them.

One implementation of this I saw used Alt+Click to add carets.  I don't personally like this because Alt is used as a system menu accelerator and causes issues like underlines to appear in menus if you Alt+Click

Another implementation of this used Ctrl+Click to add carets.  That seems better since it won't run into the system menu accelerator issue.  The downside is that Ctrl+Click is currently used in SyntaxEditor (and Visual Studio's code editor) to do quick word selection.  Thus we'd need to rework some of our existing keyboard shortcuts to accommodate new features.

Both these implementations also use Ctrl+U as a way to undo the last selection change, whereas SyntaxEditor and VS currently tie that keyboard shortcut to making selected text lowercase.

Summary

Let's hear from you… is the multiple caret/selection feature something you'd like to see?  How would you prefer to see the keyboard shortcuts adjusted to accommodate new features?