Fuse (beta) release 0.9.9

Fuse 0.9.9 is out!

Just to avoid any false expectations: The fact that this is release 0.9.9 does not mean the next release will be 1.0! :slight_smile:

GraphicsView

  • Fuse.Controls.GraphicsView.Background has been renamed to Fuse.Controls.GraphicsView.BackgroundColor to better reflect that it’s a color, and prevent shadowing Fuse.Controls.Control.Background

Circular layout and behaviour

  • Fuse.Controls.Graphics.LinearSliderBehavior renamed to Fuse.Gestures.LinearRangeBehavior to make it more accessible.

  • the Node.PointDensity shortcut to Viewport.PointDensity has been removed as it caused an unresolvable loop in the code. Just use Viewport.PointDensity as there should always be a viewport on rooted nodes.

  • CircleLayout can be used to arrange children around a circle, or partial circle

  • RangeControl2D is a 2d semantic range control (there is no standard visual implementation of this)

  • CircularRangeBehavior can be used for range controls to create a circular, or arc, based control

  • Element.IsInteracting moved to Node.IsInteracting to support general interactions on nodes

  • InteractionCompleted indicates the user is done interacting with an element (counterpart to WhileInteracting)

  • ElasticForce.CreateRadians renamed CreateAngle, CreateDegrees removed and the adapters AngularAdapter and AdapterMultiplier added. Avoid using these directly though, use only DestinationSimulatorFactor.Create.

  • DestinationSimulationType.ElasticForceRadians changed to DestinationSimulationType.ElasticForceAngle This is to change the type into a flags type and be more generic.

Uno language

  • Added @(Macro) and @keyword
string projectName = @(Project.Name);
string @enum = "this strings name is a keyword";

@(Macro) expressions allows you to access settings from your Uno project, UXL or the command-line. The return value is always string.

Uno supports built-in macros which will return different values based on context.

<table>
    <thead>
        <tr> <th>Built-in macro</th> <th>Returns</th> </tr>
    </thead>
    <tbody>
        <tr> <td><code>@(FILE)</code></td> <td>Path to the current source file.</td> </tr>
        <tr> <td><code>@(LINE)</code></td> <td>Number of the current line.</td> </tr>
        <tr> <td><code>@(DIRNAME)</code></td> <td>Path to the parent directory of <code>@(FILE)</code>.</td> </tr>
        <tr> <td><code>@(PACKAGE)</code></td> <td>Name of the package containing <code>@(FILE)</code>.</td> </tr>
        <tr> <td><code>@(PACKAGE_DIR)</code></td> <td>Root directory of <code>@(PACKAGE)</code>.</td> </tr>
        <tr> <td><code>@(PACKAGE_VERSION)</code></td> <td>Version of <code>@(PACKAGE)</code>.</td> </tr>
    </tbody>
</table>

  • Added [Attribute] on enum literals
enum Foo
{
    [Bar]
    Baz = 1
}

Bugfixes

  • A bug was introduced in 0.9.8 where Fuse would ignore Android icons set in .unoprojs. This has been fixed.
  • A problem where Android NDK could not be used from a path with spaces has been fixed.
  • Fixed a regression introduced in 0.9.8 where a new build folder was used for each preview instance, when exporting to Android or iOS. The effect caused preview build to use a lot more time.