Slint UI Library
We've begun working on the low-level public API for a platform abstraction, to make it possible to embed Slint into MCU environments. These tend to be very customized to boards and use-cases, so we want to make it easy to drive your own super loop and with a few function calls delegate your UI to Slint.
Add missing shortcuts for delete word forward and backwards (#1483)
Workaround for issue
Some binding can't be express with the current data structures because they reference properties within inner elements within a component.
The fix is a bit involved and the best is to have an error instead of a panic, for now.
Fix the image cache with rust generated code and debug builds (#1492)
constfor the embedded data, which doesn't guarantee a fixed location in memory.
For the image cache when embedding (encoded) image data, we rely on a fixed address.
I observed that in debug builds of the slide puzzle, the embedded data is not always reported to be at the same address, presumably due to inlining. This makes the theme switching a bit slower and the cache less efficient.
This patch fixes that by using static instead of const, to guarantee a fixed location in memory.
(This was not observed in release builds, but in theory it could happen there as well?)
swrenderer: Remove the DirtyRegion from the API (#1501)
Instead, put the dirty buffer handling from the previous frame directly in the SoftwareRenderer
Skia: Cache the Skia image in the core image cache (#1487)
Because re-generating the Skia image is slow and there is no point storing both the image buffer and the SkiaImage in the cache as it's basically the same information.
This speeds up the switching to the berlin theme in the slide_puzzle CC #1445
separate text deletion code with move_mod (#1486)
alternative to 49ea24
Make the property to element lowering a little less magic (#1484)
Instead of automatically mapping property bindings if the initial property has a
-infix, supply the list of all properties as a parameter.
Some API cleanups in
Invert and simplify Window and PlatformWindow ownership (#1500)
This inverts the ownership model between the internal Window (sometimes dubbed runtime window) and the PlatformWindow impl.
The objective is to reduce complexity, remove an intermediate Rc and make it easier to implement PlatformWindows.
The old model was:
Component -> Rc<WindowInner> -> Rc<dyn PlatformWindow>
and the PlatformWindow impl has a Weak to itself and back.
With the new model:
Component -> Rc<dyn PlatformWindow> -> has slint::Window, which wraps WindowInner
- Window: refactor the way the backend sets the size (#1498)
Add Window::dispatch_pointer_event and slint::PointerEvent to the public
Also do some renaming in the MouseEvent.
- Minor cleanups in the pico code (#1496)
MCU: port the PICO code to use the Backend trait directly (#1495)
Backend will end up in the public API, and having a port to the current trait helps to see what the public API looks like.
Note that what is lost in this port is the perf counter. It would be nice to find a way to have the perf counter in core, somehow.
- Format C++ code, and enforce it in the CI (#1491)
Online editor: Cleanup TS setup (#1482)
Reformat the code and config files, set up linting, update typescript version, set up TS to find all the modules, enable
strictmode in TS, fix all issues reported by tsc in strict mode, have a npm script to run
tsc --noemitas recommended by vite.
59 patches committed in 17 pull requests by 4 authors.