This release contains several new features and fixes to the libraries, and the tool
Changelog
Fuse
- Simulator client app usability improvements
- Add option to reconnect when a connection is lost or can’t be established
- Pause preview when an exception goes unhandled, with options to ignore exception or restart
- Introduce “offline mode” showing the last successful version of the app
- Fixed a bug in the UX code completer, where types found in the root namespace were not suggested.
Fuse libraries
TransformOrigin
-
TransformOrigin
enum removed, replaced with singletons inTransformOrigins
implementingITransformOrigin
. - New modes
HorizontalBoxCenter
andVerticalBoxCenter
for 3D transforms -
Rotation
now supports XYZ values, these are treated as Euler angles (see Quaternion.FromEulerAngles). Shortcuts toDegreesX
DegreesY
andDegreesZ
are now provided. The previousDegrees
remains and is equivalent toDegreesZ
-
Rotation.Vector
renamedEulerAngle
to better reflect what it is and avoid confusion with rotation around a vector
Cameras
-
IWindow
now derives fromIViewport
, most fields move to base -
Frustum.PixelToWorldRay
has been removed. You must now use theIViewport
interfaceNode.Viewport
to get the world ray -
DefaultShading.Camera
is replaced withViewport
and it expects a viewport (defaults to DrawContext.Viewport) -
Perspective
removed fromIViewport
as it doesn’t belong there. Wrap your app in aVieport
and define thePerspective
property -
ICamera
is nowIFrustum
as it better defines the purpose of those classes -
OrthographicCamera
renamedOrthographicFrustum
Visibility
-
Node.IsVisible
changes meaning: true if the node and all of its parents are visible (this is now a non-virtual function) -
Node.IsLocalVisible
introduced to mean if the local node is marked as visible (this is a virtual function) -
Node.IsVisibleChanged
event raised wheneverIsVisible
may have changed
Layout Changes
-
InvaildateLayout
now takes aInvalidateLayoutReason
parameter, but a suitable default has been provided -
Element.IsLayoutInvalid
has been removed as it cannot provide meaningful information. -
Element.OnResized
has been removed, subscribe to thePlaced
event instead -
Element.OnPlaced
has been removed, subscribe to thePlaced
event instead -
PlacedArgs
fields simplified. Use theActualXXX
element properties for current data. -
ResizedArgs
removed, onlyPlacedArgs
is used now -
IActualSize
replaced withIActualPlacement
-
PlacedArgs
andPlacedHandler
now in theFuse
namespace -
INavigaionPanel.Placed
changed signature to match standardElement.Placed(object sender, PlacedArgs args)
-
INavigationPanel.ChildAdded/Removed
changed toEventHandle<Node>
, with signature(obejct sender, Node child)
Navigation naming
- Renamed
IPageProgress
toINavigation
-
INavigationContext
merged intoINavigation
-
IPageProgress.Count
renamedPageCount
, andPageCountChanged
event -
IPageProgress.Current
renamedPageProgress
andPageProgressChanged
event -
PageIndicator.PageProgress
is nowNavigation
-
StructuredNavigation.ProgressChanged
event removed, usePageProgressChanged
-
NavigationContext
property renamedNavigation.Navigation
-
{Page key}
binding will use the closer ofNavigation.Page
or the current page ofNavigation.Navigation
-
CurrentPageBinding
behavior removed, useNavigation.Page
orNaviation.Navigation
property on element instead
Uno
- Add support for marking projects and packages “Internal”
- Added
Uri.Parse
method - Android and IOS now use the ‘Mobile.Orientations’ project setting
- Added OSX and APPLE UXL conditions
- OSX now uses same http backend as ios and so no longer requires xli
- Add milliseconds support for
OffsetDateTimePattern
- Increased ticks accuracy in
Uno.Time
on Android