Release notes: Embedded Wizard 7.00

Version 7.00 contains the following changes and improvements:

New Widget set ‘XFlat’

A new set of ready-to-use modern looking widgets is available now. You will find the widgets in the Gallery folder XFlat. Simply drag the desired widget to your GUI component, arrange it and configure its properties. The following image shows some of the new widgets in action:

You can use these widgets in your Embedded Wizard projects without any license limitations.

New Widget set ‘Flat’

A new set of ready-to-use modern looking widgets is available now. You will find the widgets in the Gallery folder Flat. Simply drag the desired widget to your GUI component, arrange it and configure its properties. The following image shows some of the new widgets in action:

You can use these widgets in your Embedded Wizard projects without any license limitations.

New Widget set ‘Charts’

A new set of ready-to-use chart specific widgets is available now. You will find the widgets in the Gallery folder Charts. Simply drag the desired widget to your GUI component, arrange it and configure its properties. Of course you will also need to specify the data to show within the chart diagrams.The following images show some of the new widgets in action:

You can use these widgets in your Embedded Wizard projects without any license limitations.

Annotations

With annotations you are able now to add additional description to the content you are editing in the Composer. This should allow you to simply document your implementation. On the other hand the annotations are a new tool we intend to use in order to describe examples, project templates, and much more.

There are three different annotation types: annotation legend, annotation group and annotation arrow. With the annotation legend you can simply leave some description within the Composer area. With annotation group you can visually group together and name project members. With annotation arrow you can simply point to something. Annotations are project members and part of the Chora language. Anyway they have no function in the resulting application. You can add as many annotations as you want to every Composer you are editing your application members. If you are using templates or examples you can also select and delete the provided annotations without worrying to loose any application function.

Creation of New Projects

We redesigned completely the parts of Embedded Wizard affecting the new project creation. The entire task is covered within a single Create new project dialog.

In the dialog the user can select the desired project type from a list of prepared project templates. The dialog provides also a convenient way to enter the new project name and the location where to create the project. Please note, new projects are created consequently within individual subdirectories now. You will need to explicitly confirm the creation of a project within an already existing folder. This should avoid multiple projects to be stored within the same directory.

Target Device Integration

To simplify the integration of Embedded Wizard designed GUI applications with the underlying system, the Gallery provides now a new set of prepared templates. They can be found within the Gallery folder Device. With these templates you can add to your project new components to act as interfaces to the target device, to receive system generated events and more.

Please have a look to the article Device Class and Device Driver for more details.

Composer Improvements

The following improvements have been implemented within the Composer:

When new members are added to the Composer (e.g. by dragging them from the Gallery or simply by Copy/Paste) Embedded Wizard Studio evaluates these members and if necessary completes automatically the project with units required due to dependencies caused by the new members.

Copy/Paste of views together with some related methods or variables have been improved. The target class is reloaded automatically in such case to avoid eventual confusing error messages because of incomplete class definition.

Gallery Improvements

The Gallery has been redesigned in order to show for every template a short description row. The description appears in the second text row of the template.

Tooltip functionality has been added to the Gallery in order to show more detailed description of a template when the user remains for a while with the mouse pointer over it.

The Rename template dialog has been redesigned. The new version allows the user to enter besides its name also the description for the template. In this manner the user can document its own created templates.

All templates in the Gallery are reworked and usefully adapted. Some templates are inline documented by the new feature annotations. Description in every template should help you to understand better for what the template does exist. The description appears in a tooltip when you remain with the mouse pointer over the template for a while.

The sorting order of Gallery folders and templates are adapted to better group similar items together. Previously all items were sorted by their name. It should help you to find templates much faster.

The original set of steel widget component templates has been removed from the Gallery. The corresponding components are now stored directly within a 'Steel' unit. Instead of component templates, the Gallery contains one ready-to-use widget for every Steel widget. With this modification you can simply drag these widgets from the Gallery to your GUI component, arrange it and configure its properties.

Inspector Improvements

All ‘file open’ and ‘select folder’ InspectorInspector Assistants are adapted to use now the actual (Explorer-like) Windows file dialogs. This simplifies significantly the access to the user own directory.

The ‘object selection’ Inspector Assistant has been adapted to show also all objects embedded within autoobjects. This is just convenient when you use autoobjects a lot.

When new members are added to the Inspector (e.g. by dragging them from the Gallery or simply by Copy/Paste) Embedded Wizard evaluates these members and if necessary completes automatically the project with units required due to dependencies caused by the new members.

Copy/Paste of views together with some related methods or variables have been improved. The target class is reloaded automatically in such case to avoid eventual confusing error messages because of incomplete class definition.

Chora Improvements

The default behavior of the statements postsignal and idlesignal has been changed. Now when the signal is delivered, the parameter sender refers to the object, which has requested the signal delivery as the last one.

The statements signal, postsignal and idlesignal has been extended by an additional, optional sender parameter. This allows you to specify explicitly the value to pass as the sender to the target slot method.

The set of Chora instant data types has been extended by the type any. any is used exclusively to build typeless references to properties regardless of the property actual data type definition.

Mosaic Improvements

New class Core::TaskQueue and Core::Task added. These classes provide functionality to enqueue short jobs (task) to be executed accordingly their queue order (FIFO queue).

New class Core::SystemEvent added. An object of this class represents a system event source – this means the source of events generated by the target device.

New class Core::SystemEventHandler added. Objects of this class serve as handler for system related events. You can simply place the handler wherever you want in your project and connect it with an object of the class Core::SystemEvent.

New class Core::PropertyObserver added. Objects of this class react to notifications generated when a property is modified. You can simply place the observer wherever you want in your project and connect it to the desired property.

The unit Resources has been cleaned up. All image resources needed by the Steel widget component templates have been moved to a separate 'Steel' unit. Old projects using such resources will be updated automatically to use the Steel unit when such project is opened in Embedded Wizard 7.0.

Other Improvements

The ‘project open’ dialog has been adapted to use now the actual (Explorer-like) Windows open file dialog. This simplifies significantly the access to the user own directory.

Bug Fixes

The following bugs have been solved:

Composer: In seldom cases resizing or moving views within the canvas area of the Composer could cause Embedded Wizard Studio to crash.

Composer: Breakpoints set in very frequently executed Chora code lines (e.g. within a long running for-loop) could cause Embedded Wizard to crash when the code was executed in context of the Composer.

Composer: Editing a component (or switching between Composers) while the Prototyper window is opened and lot of animations are executed in the Prototyper could cause strange error message to appear in the log (e.g. ‘Internal error in Graphics Engine …’). In seldom cases Embedded Wizard crashed.

Composer: The functionality to select a member at the clicked position within the Composer has been corrected. Now the user can select lines much simpler.

Gallery: After creating a new project or opening an existing one the Gallery window showed randomly one of its template folders. Now the Gallery shows always the first folder (with Chora templates) when you open a project.

Gallery: When the user tried to create a copy of a template within one of the preinstalled template folders (e.g. Chora), the new template was incorrectly named causing name conflicts with the existing, preinstalled templates.

Inspector: The short info in the lower area of the Inspector has been corrected to not show the special sign ‘@’. The sign ‘@’ is relevant for the documentation generation only.

All dialogs are corrected to allow the CtrlA shortcuts for the selection of text when the dialog contains a text edit field.

The Pause function to break an application running in an endless loop worked unreliable. In particular when a lot of animations were running in the Prototyper it was difficult to close the Prototyper window. Thereupon we decided to completely redesign this function. The Pause function remains now disabled for the first 3.5 seconds of continuous running code. After this time is elapsed, the simple clicking on title bar of one of Embedded Wizard windows or double clicking within one of the windows causes the current executed Chora code to pause. So you can recover the control over your application in a very simple manner. Once paused you can investigate the reason for the long code execution.