Release notes: Embedded Wizard 8.10

Version 8.10 contains the following changes and improvements:

Documentation System

The entire Embedded Wizard documentation is still in the process of reworking and many different separated Embedded Wizard documents are now integrated into one all-embracing knowledge base. As a result, the entire documentation is accessible online, cross-linked, searchable and always up-to-date. Furthermore, the context sensitive help within Embedded Wizard Studio refers to this online documentation.

The documents 'Embedded Wizard User Manual', 'Chora Reference Manual', 'Mosaic Reference Manual', 'Tutorial - Mosaic 2.0' are meanwhile obsolete.

Partial Updates

The Mosaic framework and the Graphics Engine supports now an partial update of the screen. This means, that the entire update of the invalid areas of an UI application can be divided into a sequence of sub-areas. This makes it possible to reserve only a small scratch-pad buffer instead of a complete framebuffer. This approach reduces the memory footprint dramatically on MCU systems using only internal RAM but an external display controller with its own graphics memory (GRAM).

Mosaic Improvements

Automatic retargeting of cursor events added to all touch event handler. For this purpose the following properties are added: RetargetCondition, RetargetDelay and RetargetOffset. Additionally, the method Core::Root.RetargetCursorWithReason() is added. This automatic retargeting simplifies the management of different touch handler lying upon another.


Due to this modification we had to enhance the Mosaic method CursorHitTest by a fifth parameter aRetargetReason. If you have overridden the method CursorHitTest, you have to adapt your project now. In particular, if your implementation of CursorHitTest performs any super() calls, pass the new parameter aRetargetReason to those as their fifth parameter.

The interface between Mosaic and the target system for updating the screen has been extended by four new methods: Core::Root.BeginUpdate(), Core::Root.UpdateCanvas(), Core::Root.GetUpdateRegion(), Core::Root.EndUpdate(). These new methods allows the target system to optimize the screen update.

New condition added to detect operations executed from overridden Draw() methods. This avoids, that the states of UI components or members can be changed while they are drawn.

The class Graphics::AttrSet is extended to allow 10 colors, 10 bitmaps and 4 fonts per default. Originally the set was limited to 5 colors, 5 bitmaps and 2 fonts.

The Image and Group views are adapted to allow the user to disable the bi-linear filtering when scaling/stretching their content, similarly to Warp Image or Warp Group views.

The class Core::Outline is enhanced by a Visible property. This property affects the visibility of the views enclosed in the Outline.

The vertical list is enhanced by the convenience methods GetPaddingTopArea() and GetPaddingBottomArea() to get the top/bottom padding area of the list.

The horizontal list is enhanced by the convenience methods GetPaddingLeftArea() and GetPaddingRightArea() to get the left/right padding area.

The class Views::Line is enhanced by a Width property. This property controls the width of the entire Line.

Chora Improvements

New string( float aValue, int32 aCount ) instant constructor added to avoid float to string conversion errors if the precision parameter has been avoided.

Composer Improvements

The move selected members operation starts now after the user has dragged the mouse a few pixels. Th simple click within the selection area removes the selection and select the member just at the mouse position.

Just after selecting a member within the Composer, the status bar shows its position instead of showing the mouse position. After the user moves the mouse for a short distance the status bar displays the mouse position again.

Code Editor Improvements

Search/Replace: The currently selected text is automatically taken over to the search edit field.

Search/Replace: The replace button is enabled even if there is no found occurrence selected in the editor. In this case pressing the button will cause the next or previous occurrence by selected only. With the second click on the button the selected text is replaced as usual.

Bug Fixes

The following bugs have been solved:

Prototyper: Calculation errors in Prototyper with floating point values.

Code Editor: Missing update of edited text after search/replace operation.

Code Editor: Virtual whitespace suppressed to avoid crashes caused by the embedded editor.

Code Editor: Workaround for incorrect fonts used by the Code Editor. If the metrics of the specified font differs for the variants regular, bold, italic, the system falls back to the font Consolas or in the next step Courier New.

Code Editor: Bug-fix in assistant provider causing crash when the user enters 'Unit::Member['.

Code Editor: Assistants for entering the text attributes corrected to list the whole set of attributes.

Composer: Workaround for a crash caused by a not accurately comprehensible incoherence in the selection status of Composer.

Composer: The keyboard shortcuts for zoom-in/out fixed to work also with the Plus/Minus signs on the main keyboard.

Gallery Browser: Bug-fix for not working autoobject variant derivation with Gallery Browser window.

Fix for double usage of the CtrlShiftO shortcut. The new menu item Open example ... is now without shortcut.

Setups: Fix for failing setups when running on Windows systems with elevated privileges.

Graphics Engine: Win32 adapted to handle semitransparent background pixel in non-premultiplied configuration better. Usually, the alpha channel is ignored when running the application as native Win32. With non-premultiplied configuration semitransparent pixel appear with full intensity (the alpha channel is ignored). Now, the color channels are modulated with the alpha-channel if it is required. This adaptation doesn't affect the real target systems. So the problem with semitransparent pixel will persist with non-premultiplied configurations on targets other than Win32.

Mosaic: Missing typecast added to load slot method of Resources::ExternBitmap.