The Actipro Blog

All the latest UI control development news from Actipro

WPF, Silverlight, and WinRT/XAML v2014.1 Released

BlogPostBanner

The 2014.1 versions of our WPF, Silverlight, and WinRT/XAML controls have been released and are now available for download.

Major new features are described below.  See the announcement posts for the detailed list of enhancements and updates, including many items not listed below:

ProductHeadingWPFDocking

Metro themes have been dramatically refined and updated in this version, mostly in the area of Docking/MDI.  Updated UI includes subtle border lines, new auto-hide tab appearance, title bar gripper decorations, and more.

DockingMetro

Metro themes will now not show images on tabs by default, and have changed auto-hide tabs to require a click (instead of hover) to open.  These updates match Visual Studio 2013 behavior.

We've added new events for the auto-hide popup (flyout) that fire when it is opened or closed.  The popup is also now displayed using a faster default animation speed.

When the DockSite.AutoHidePopupOpensOnMouseHover property is false, clicks on auto-hide tabs are required to toggle the auto-hide popup opened and closed.

ProductHeadingWPFPropertyGrid

New built-in property editors for FontFamily, FontStretch, FontStyle, and FontWeight type properties have been added.

PropertyGridFontFamily

ProductHeadingWPFRibbon

New key tip specific theme resources have been added and key tips in Metro themes now render more like Office 2013.

CheckBox-based menu items now are capable of supporting tri-state display.

ProductHeadingGenericSyntaxEditor

Delimiter auto-completion logic for insertion and subsequent scope tracking has been greatly improved.  Delimiter indent provider can now optionally support square braces.

Added a new property that allows SyntaxEditor to measure itself based on text contents.  This works great for smaller documents in both multi-line and single-line modes.

SyntaxEditorAutoSize

Updated single-line mode to support word wrap, which is very useful when combined with the new view line measuring option.

SyntaxEditorSingleLineWrapped

Bookmark indicators now support an IsEnabled state.

LipsumGenerator class added to support generation of "lorem ipsum" placeholder text.

Changed block indent mode to retain whitespace after the caret when Enter is pressed.

.NET Languages Add-on

Numerous improvements to the VB language's handling of identifiers and variable declarations that don't include a type.

Web Languages Add-on

Added IntelliPrompt completion for keywords and symbols to the JavaScript language.

JavaScriptCompletion

Added a new advanced JSON language that can be used to view/edit JSON files, along with a new related QuickStart.

JsonLanguage

Updated JavaScript language to support multi-line strings via backslash continuation.

ProductHeadingWPFThemes

Many improvements to Metro themes (mostly in the Docking/MDI area described above), and improved WindowChrome (and RibbonWindow) rendering when maximized.

ProductHeadingGenericShared

WPF/Silverlight Only

Added the RadialSlider control, which is a circular slider that can be used to input any scalar value.

RadialSliderIntro

Added the RingSlice control, which renders a portion of a ring at designated angles and radius.

RingSliceProgressIndicator

Added the CircularThumb control, which is a thumb gripper with a circular shape and arrow adornment.

Added three samples for new Shared Library controls.

WinRT/XAML Only

Added the AppBarHint control, which is a visual hint to users that app bars exist on a page, and can be tapped to toggle them open. 

AppBarHint

Added a related QuickStart.

ProductHeadingMisc

Sample Browser (WPF/Silverlight only)

Added the ability to toggle description sidebar on some samples.

TaskDownload TaskLiveDemo TaskBuyNow

JSON Language Coming to SyntaxEditor

PostBannerSyntaxEditorDevNotes

We recently posted that the advanced JavaScript syntax language implementation in our SyntaxEditor Web Languages Add-on (WPF, Silverlight, and WinRT/XAML versions) is getting IntelliPrompt completion lists in the upcoming 2014.1 version.

In today's post, I'd like to announce that a brand new JSON syntax language is coming to the add-on as well!

Features

JSON is a lightweight data-interchange format that is a subset of JavaScript syntax, and is commonly used with many web technologies.  With the new syntax language, you'll be able to provide a great editor/viewer for JSON data.  Here's a screenshot:

JsonLanguage

The JSON syntax language has these features:

  • Syntax highlighting
  • Abstract syntax tree (AST) generation
  • Automatic code outlining based on AST structure
  • Reporting and automatic squiggle display of errors for invalid syntax
  • Mouse hover quick info for syntax errors
  • Smart indent
  • Code block selection
  • Delimiter (bracket) highlighting and auto-completion

Summary

This new syntax language will be available when the 2014.1 WPF, Silverlight, and WinRT/XAML versions are released in the next couple weeks.

TaskDownload TaskLiveDemo TaskBuyNow

SyntaxEditor JavaScript Completion

PostBannerSyntaxEditorDevNotes

Last year we added an advanced JavaScript language implementation to the SyntaxEditor Web Languages Add-on.  This language implementation (available in the WPF, Silverlight, and WinRT/XAML versions of the add-on) includes features like syntax highlighting, parsing with AST generation, syntax error reporting, code outlining, etc.

In today's post I'd like to announce that we have added a simplistic completion provider to the language that should help end user coding productivity.

Completion Provider

The new completion provider displays a completion list when Ctrl+Space is pressed:

JavaScriptCompletion

The concept is similar to completion lists found in other popular IDEs like Sublime, where the list includes JavaScript keywords and identifiers found throughout the document.  The list has been set up to accept acronym and shortcut item matchers, meaning that any loosely-matched text will select items.  The list also auto-shrinks to only show matching items.

Summary

These great new features will be available when the 2014.1 WPF, Silverlight, and WinRT/XAML versions are released in March.

TaskDownload TaskLiveDemo TaskBuyNow

SyntaxEditor Auto-Sizing

PostBannerSyntaxEditorDevNotes

One feature that several customers have asked for is the ability for SyntaxEditor to automatically resize itself based on its text contents.  We didn't originally have this feature since it can be time-consuming (relatively speaking) and when editing huge documents, we didn't want to add any performance hits.

That being said, in the upcoming 2014.1 version of SyntaxEditor for WPF, Silverlight, and WinRT/XAML, we have added a new SyntaxEditor.IsViewLineMeasureEnabled property that can be set to true to activate view line measure behavior.  This means that you now can use SyntaxEditor in a layout scenario where its measured size will have an effect on its arranged size.

Multi-Line Editing Example

Let's check out an example of this in action.  Here we have a SyntaxEditor that has an XML language loaded and the new view line measure features enabled.  It's resizing itself vertically according to the number of lines in it:

AutoSizeMultiLine1

Now if we press Enter a couple times, it auto-sizes to a larger height:

AutoSizeMultiLine2

You can see how this would be useful when SyntaxEditor is hosted in controls like a StackPanel.

Single-Line Editing Example

We've also enhanced our single-line edit mode with a neat new feature.  Now if you set word wrap mode on and also have the view line measure features enabled, the single line will grow to render on multiple lines but will still not allow Enter to be pressed or inserted via pastes, etc.

This sort of feature is useful for scenarios where you want to allow a single line snippet of text to be edited but for the entire text to be visible.  Let's have a look:

AutoSizeSingleLine1

Above we have a SyntaxEditor in single-line mode, with word wrap on, and view line measure enabled.  Let's type some more text:

AutoSizeSingleLine2

Even though the text is still a single line (no line feeds are allowed in single-line mode), the word wrap caused the editor to grow taller.

Summary

These great new features will be available when the 2014.1 WPF, Silverlight, and WinRT/XAML versions are released in March.

TaskDownload TaskLiveDemo TaskBuyNow

SyntaxEditor for WPF - ANTLR v4 Support?

PostBannerSyntaxEditorDevNotes

SyntaxEditor for WPF has a free add-on included with it that provides integration with ANTLR 3.4 parsers. The add-on is described in detail in this blog post from several years back.

What is ANTLR?

ANTLR, ANother Tool for Language Recognition, was created by Terence Parr and is one of the most widely-used parsing frameworks available.  ANTLR is a framework for constructing recognizers, interpreters, compilers, and translators from grammatical descriptions containing actions in a variety of target languages. ANTLR provides excellent support for tree construction, tree walking, translation, error recovery, and error reporting.

SyntaxEditor for WPF customers know that we also have our own LL(*) Parsing Framework that has a lot of benefits over ANTLR, but due to the general popularity of ANTLR, we are pleased to support it as well.

ANTLR v4

In the past few months, ANTLR v4 was released.  There is updated tooling for Visual Studio that allows ANTLR v4 parsers to generated.  The thing is that the entire infrastructure of ANTLR parsers has changed in v4, and with those breaking changes, it prevents our add-on from working.

In ANTLR v3, you could run the parser on the document text via our add-on (and in a worker thread so it doesn't block the main UI thread), and it would return the AST results of the parsing operation asynchronously when it completed.

In ANTLR v4, the parser is not the same as there is no automatic AST generation.  Parse results can be examined via the use of the visitor pattern or a parse tree walker.  If you wish to have your own AST, you have to roll your own and construct it using a visitor or walker.  This change negates a lot of the features our add-on provided since now, you basically must hand code an IParser service to install on your language.  SyntaxEditor is fully extensible for any custom parsers, so this can be added easily.  It's just that whatever code you need to do to generate an AST or other parse data by walking the parse tree must now be custom written.

What Do You Want?

We are writing this blog post to see what you, our customers, would like to see from us in terms of ANTLR support.  Do you still wish to have our add-on support ANTLR v3 as we move forward? 

The only piece that is really useful from our ANTLR add-on when used with the newer v4 design is the ICharStream implementation that allows the parser to directly read from our text storage facility.  Since it's only one class, do we just include it open source somewhere or make a separate v4 binary with it in there?

We'd love to hear your thoughts… Please comment below or email our support address!

TaskDownload TaskLiveDemo TaskBuyNow

Filed under: Actipro, In development, WPF

SyntaxEditor Delimiter Auto-Complete Improvements

PostBannerSyntaxEditorDevNotes

Earlier last year we added delimiter auto-complete features to SyntaxEditor.  Delimiter auto-complete is where the user types a start delimiter and a related end delimiter is auto-inserted after the caret.  This is especially helpful when working on mobile tablets like a Surface since it means less overall typing is required to output the same code.  Best of all, with SyntaxEditor, these features can be easily added to any custom language.

Today I'd like to announce that we have rewritten and made improvements to the internal logic used to track delimiter auto-completions.  This means that as an end user encounters an already-completed delimiter, SyntaxEditor is more intelligent about how to handle various text change operations.

Example 1

Lets check out some of the enhancements.  We'll type in some JavaScript:

DelimiterAutoComplete1

In the screenshot above, the ) character was auto-completed when the ( character was typed.  Now let's type in some parameters:

DelimiterAutoComplete4

Next we will type the ) character even though it already exists in the document.  SyntaxEditor intelligently knows that the ) was previously auto-completed so it moves the caret past it without entering a second ):

DelimiterAutoComplete2

This sort of functionality works in the current SyntaxEditor version however only if there was nothing typed between the delimiters.  In the above scenario with the current version, since we typed in some parameter names, a second ) would have been typed.  With the most recently logic updates, SyntaxEditor now handles real-world scenarios much better.

Example 2

Let's start over to show another nice feature.  Here we've again typed a function and some parameters.  Note that the end ) was auto-completed while typing out the text so it appears after the caret.

DelimiterAutoComplete4

If we Backspace over the text and get to the start ( character, upon Backspacing over that, the related end-delimiter is automatically removed too:

DelimiterAutoComplete5

This feature works in the current version as well but again, only if there was nothing typed between the delimiters.  With the code updates, SyntaxEditor handles many more scenarios of typing within delimiters, and even multiple nestings of delimiters!

Summary

These new features will be available in the 2014.1 version of SyntaxEditor, in the WPF, WinRT/XAML, and Silverlight platforms, and will also appear in the next version of our free Code Writer Windows 8 app.

TaskDownload TaskLiveDemo TaskBuyNow

WPF Controls 2013.2 Build 592 Released

WPFBlogPostBanner

WPF Controls 2013.2 build 592 has been released and is now available for download.  This build focuses on numerous enhancements and bug fixes.  While many updates were made, major ones are listed below.

See the announcement post for the detailed list of enhancements and updates.

ProductHeadingGenericCharts_thumb_thumb

  • Added the ability to alter the label positioning mode algorithm for a series.

ProductHeadingGenericDocking

  • Improved support for high DPI scenarios.
  • Improved support for highlighting tabs when interop controls get focus.

ProductHeadingGenericMicroCharts

  • Added support for the Metro Dark theme.

ProductHeadingGenericPropertyGrid

  • Added a new Property Dialog QuickStart that shows how to display a dialog from a property editor.

ProductHeadingGenericSyntaxEditor_thumb_thumb

  • Added the ability to edit multiple lines of text at the same time when block selection is active.
  • Added incremental search features.
  • Added the ability to highlight search match results within a view.
  • Added support for alpha-blended foreground/background style colors.
  • .NET Languages Add-on - Added a 'deprecated' quick info note on types/members flagged as Obsolete.

ProductHeadingGenericThemes

  • Improved WindowChrome (and RibbonWindow) rendering in various scenarios.

TaskDownload TaskLiveDemo TaskBuyNow

Filed under: Actipro, New features, WPF

WinRT XAML Controls 2013.2 Build 131 Released

WinRTBlogPostBanner

WinRT XAML Controls 2013.2 build 131 has been released and is now available for download.  This build focuses on numerous enhancements and bug fixes.  While many updates were made, major ones are listed below.

See the announcement post for the detailed list of enhancements and updates.

ProductHeadingGenericCharts_thumb

  • Added the ability to alter the label positioning mode algorithm for a series.

ProductHeadingGenericSyntaxEditor_thumb

  • Added the ability to edit multiple lines of text at the same time when block selection is active.
  • Added incremental search features.
  • Added the ability to highlight search match results within a view.
  • Added support for alpha-blended foreground/background style colors.
  • .NET Languages Add-on - Added a 'deprecated' quick info note on types/members flagged as Obsolete.

TaskDownload TaskLiveDemo TaskBuyNow

Filed under: Actipro, New features, WinRT, XAML

Silverlight Controls 2013.2 Build 162 Released

SilverlightBlogPostBanner

Silverlight Controls 2013.2 build 162 has been released and is now available for download.  This build focuses on numerous enhancements and bug fixes.  While many updates were made, major ones are listed below.

See the announcement post for the detailed list of enhancements and updates.

ProductHeadingGenericCharts

  • Added the ability to alter the label positioning mode algorithm for a series.

ProductHeadingGenericSyntaxEditor

  • Added the ability to edit multiple lines of text at the same time when block selection is active.
  • Added incremental search features.
  • Added the ability to highlight search match results within a view.
  • Added support for alpha-blended foreground/background style colors.
  • .NET Languages Add-on - Added a 'deprecated' quick info note on types/members flagged as Obsolete.

TaskDownload TaskLiveDemo TaskBuyNow

WinForms Controls 2013.1 Build 312 Released

BlogPostBanner

WinForms Controls 2013.1 build 312 has been released and is now available for download. Several enhancements and bug fixes are part of this build.

The most notable improvement is the SyntaxEditor ability to edit multiple lines of text at the same time via block selection, as described in this previous blog post.

BlockEditing

See the announcement post for the detailed list of enhancements and updates.

TaskDownload TaskBuyNow