Skip to content

Releases: NuiCpp/Nui

Updated Emscripten Dropped Ubuntu 20

13 Mar 08:50
39b0757
Compare
Choose a tag to compare

Updated emscripten to 4.0.4, removed some no longer necessary fixup tools running on windows, because it now works out of the box.
Dropped support for Ubuntu 20

v0.18.5 Added missing header

29 Jan 22:17
a1e1bea
Compare
Choose a tag to compare

libc++ reduced transitive includes in C++23.
Added missing header.

v0.18.4 Compatibility with Boost 1.87.0

16 Jan 09:43
af0bd42
Compare
Choose a tag to compare
Merge pull request #130 from NuiCpp/feat/boost-1_87-updates

Updated roar revision.

v0.18.3 Update Dependencies

04 Dec 16:27
418ac2c
Compare
Choose a tag to compare

Update underlying dependencies to work with newer boost versions.

v0.18.2 Made some tidy improvements and fixed / improved ScopeExit utility class

01 Dec 00:48
132fbb8
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.18.1...v0.18.2

v0.18.1 Fixed CMake Build Order Dependencies

23 Nov 23:59
f7141ff
Compare
Choose a tag to compare
Merge pull request #126 from NuiCpp/fix/better-parcel-target

Changed parcel target to custom command.

v0.18.0 Rendering Optimization Rework

02 Aug 09:00
d85e29e
Compare
Choose a tag to compare

This is a big one!

Observed vectors and deques rendering is now optimized as originally intended.

  • Modifications only ever cause render changes to affected elements.
  • Erasures only erase affected elements and dont cause rerenders of existing elements.
  • Inserts only insert at given positions and dont cause other elements to be rerendered.

Also added a feature where elements can be created into an element, that is not somewhere in the Nui DOM.
This allows the user to create Elements from C++ and hand them to javascript libraries.

Beware now that indices in the range render function can make the view go out of sync, because indices are not updating due to this important optimization. If you render indices you need to bypass the optimization by calling observed.modify(); // or observed.modifyNow()

v0.17.1 Fixed bug with Custom Event Context

18 Jul 14:29
7034674
Compare
Choose a tag to compare

The Observed(EventContext* ctx) constructor could be selected too easily by accident.
This now requires passing an extra parameter.

Added deferred tags

18 Jul 08:50
992eff2
Compare
Choose a tag to compare

It is sometimes necessary to do things on the element AFTER it was inserted into the dom.

This is now possible with deferred attributes/properties.
Syntax still needs some improvement.

div {
  reference.onMaterialize(/*...*/).defer(true)
  // or !(class_ = "asdf")
}()

This will become this in an upcoming PR:

div {
  !class_ = "asdf"
}()

v0.16.0 listen function added

15 Jul 13:46
f8a8c69
Compare
Choose a tag to compare

You can now also listen to events on Observed<>

#include <nui/event_system/listen.hpp>

Observed<int> obs;
listen(obs, [](int const& i) {
   // ...  
});

obs = 7;
Nui::globalEventContext.executeActiveEventsImmediately();

Also observed now accept other (user) event contexts.
Which is useful to decouple app events von UI events.

#include <nui/event_system/listen.hpp>

Nui::EventContext userContext;
Observed<int> obs{userContext};
listen(userContext, obs, [](int const& i) {
   // ...
});

obs = 7;
userContext.executeActiveEventsImmediately();