Skip to content

Releases: NuiCpp/Nui

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();

v0.15.4 Inline Injector Takes a Hint

12 Jul 00:41
6cfb6e3
Compare
Choose a tag to compare

Inline injections can now be moved anywhere in the head.
injection scripts can also (all or none) get the defer tag conditionally set by CMake option.

v0.15.3 More CMake Improvements

07 Jul 22:52
8f09398
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.15.2...v0.15.3

CMake Improvements and Dependency Updates

07 Jul 03:22
718f252
Compare
Choose a tag to compare
  • Updated nlohmann_json to newer revision.
  • Some small CMake improvements.