Commit graph

881 commits

Author SHA1 Message Date
Olivier Goffart
cf19749943
Make a pass to remove the Expression::Return instruction
So it doesn't appear in the LLR and the C++ codegen can be simplified.
In particular, this removes the need to throw/catch exception to handle return
across generated lambdas
2023-09-06 14:10:26 +02:00
Olivier Goffart
a565ed53fd Upgrade MSRV to 1.70
Many of our dependencies already made the jump and require a cargo update hack, so make it official

Removed the MSRV from the README since it applies to master branch and people read the readme also for
the released version. There is enough documentation of the MSRV in other locations.
2023-09-06 12:09:03 +02:00
tronical
b8b9db4e42 Bump version number to 1.3.0 2023-09-05 15:46:36 +02:00
Simon Hausmann
c5135ab46c Fix esp-idf component upload
Bump component revision to 1 (from default zero)
2023-09-04 13:31:35 +02:00
Simon Hausmann
c92c554da9 Prepare esp-idf component for release
- Remove the alpha suffix
- Use Slint from the release tag not the branch.
  It would be awkward if the 1.2.0 esp-idf component would end up
  using Slint 1.3.0, so let's tie them together for now.
2023-09-04 10:24:50 +02:00
Simon Hausmann
2a486edd82 Mark the linuxkms backend as experimental 2023-08-31 11:30:51 +02:00
Olivier Goffart
8f16b519a2 use #repr(uX) instead of repr(C) for fieldless enums
Otherwise the ABI may differ between the C++ and the Rust
2023-08-31 10:22:03 +02:00
Simon Hausmann
9a94c8869e Release esp-idf component once more before 1.2 release
... to catch up with API changes that the platform.cpp required changes to.
2023-08-30 16:32:32 +02:00
Olivier Goffart
73ff86cf5a C++: Move the PhysicalRegion in the SofwtareRenderer 2023-08-30 14:59:41 +02:00
Olivier Goffart
932db7ac38 C++: make Platform::duration_since_start non-const and pure
When SLINT_FEATURE_FREESTANDING is set, it must be re-implemented
otherwise the time doesn't pass
2023-08-30 14:59:41 +02:00
Olivier Goffart
c47e6cd029 C++: Api changes in the WindowAdapter
- s/physical_size/size/ (consistant with the slint::Window API)
 - remove const of virtual function  (they don't need to be const and
   make implementation potentially easier)
 - Move the WindowProperties in it
2023-08-30 14:59:41 +02:00
Simon Hausmann
465fe20478 Fix external links from the C++ docs in markdown files
Recgonize the default schemes, otherwise
myst-parser thinks they're internal.
2023-08-30 14:58:31 +02:00
Olivier Goffart
fd60d08f7b Rename SLINT_TARGET_CARGO_FLAGS to SLINT_LIBRARY_CARGO_FLAGS 2023-08-30 13:44:19 +02:00
Olivier Goffart
e46704465b C++: DEPFILE is supported on most generator in recent cmake versions 2023-08-30 09:54:03 +02:00
Olivier Goffart
de0836d1a0 C++: Fix ninja always rebuilding the .slint file
two bugs:
 - If the .slint file did not contain any import, the depfile would have
   no dependencies, and as a result, ninja would consider that it is
   always dirty.
 - In case the binary dir is a sub directory, the dependencies were
   relative to the wrong directory. Thgis is because the behavior
   changed in some version of cmake (see https://cmake.org/cmake/help/latest/policy/CMP0116.html)
   to avoid any problem, use the absolute paths

Fixes #3261
2023-08-30 09:54:03 +02:00
Simon Hausmann
040019c7b6
doc: Fix link to set_physical_size 2023-08-29 07:02:31 +02:00
Simon Hausmann
d160eb7a31
Add support for set_position(), position(), and set_physical_size() to the C++ WindowAdapter (#3367)
Closes #3349
2023-08-28 18:43:04 +02:00
Simon Hausmann
42721c1853 Fix no_std build 2023-08-28 15:20:17 +02:00
Olivier Goffart
ded66231d1 C++: polish the clipboard patch
- make sure the Platform::Clipboard type is properly documented
 - Use the actual enum in the interface (even though it is
   #[non_exhaustive] so we need to slience a warning)

CC: #3265
2023-08-28 14:34:23 +02:00
Simon Hausmann
67423b288f Add documentation to the WindowAdapters to explain the basic message passing protocol
... and provide hints in there about implementing window close requests.

Note: The links to set_size() and set_position() are not resolved, as
these virtual functions are still missing from the WindowAdapter base
class.
2023-08-28 13:45:28 +02:00
Simon Hausmann
11128b3b7f Document show()/hide()'s behavior of the additional strong component reference 2023-08-28 13:45:28 +02:00
Ian McFarlane
1de7b1512c
Expose clipboard_text accessors to C++ (#3265) 2023-08-28 12:26:40 +02:00
Olivier Goffart
d23ba885ca
C++: add WindowAdaptor::update_window_properties 2023-08-25 13:58:55 +02:00
Simon Hausmann
e7a883348b Add links from Rust and C++ to the common platform backend docs
... and adjust the C++ platform backend docs a little to the current
state.

cc #3208
2023-08-25 13:22:06 +02:00
Olivier Goffart
5052aa8561 Remove clap dependency of cbindgen
we don't use it, and clap used by cbindgen is an old version resulting
in duplicate clap versions being built
2023-08-25 10:51:59 +02:00
Olivier Goffart
7904493e1c C++: dispatch close request and activation change 2023-08-24 17:27:04 +02:00
Olivier Goffart
725a259e3a
C++: move the window related stuff in its own header (#3339)
slint.h starts to be quite big, and lots of it is because of Window, so
move Window to its own header
2023-08-24 15:51:50 +02:00
Olivier Goffart
541e7137c6
Backends: don't resize the WindowItem in set_visible
We already query the size right after the call to set_visible in the
WindowInner::show()
2023-08-24 13:15:28 +02:00
Simon Hausmann
06fce57e8e First draft for new getting-started instructions for the ESP-IDF component 2023-08-24 08:59:46 +02:00
Simon Hausmann
abdf4eb169 Bump esp-idf component version
So I can test the instructions against what's public :)
2023-08-22 15:51:38 +02:00
Olivier Goffart
f611091470 C++ docs: don't use backtick for Class or method name
because otherwise doxygen don't make links

(also implements the `renderer()` funciton in the doc example)
2023-08-22 11:29:57 +02:00
Olivier Goffart
3e46680c16
C++: improve slint::platform docs (#3319) 2023-08-22 11:24:30 +02:00
Olivier Goffart
8a124cdcdd esp-idf: improve docs 2023-08-21 17:59:19 +02:00
Olivier Goffart
146ed520e8
C++: rename SLINT_FEATURE_STD in SLINT_FEATURE_FREESTANDING with the opposite meaning 2023-08-21 16:52:30 +02:00
Olivier Goffart
354208c123 esp-idf: Don't expose the platform: just a single function instead 2023-08-21 13:30:37 +02:00
Simon Hausmann
d918bc217b Fix C++ docs build
Pin sphinx to the previous release due to

    https://github.com/sphinx-doc/sphinx/issues/11605
2023-08-17 09:22:52 +02:00
Simon Hausmann
96d7bb132c reuse: remove glob for markdown files
Instead, place the copyright and license right into the source.

To satisfy reuse, this also removes the unnecessary MIT.txt
symlinks.
2023-08-17 08:55:28 +02:00
Olivier Goffart
fc64542221 C++: Use new name for cmake features 2023-08-16 21:19:48 +02:00
Olivier Goffart
b8fec12508 C++: re-order cmake feature
Prospective fix for compat features not having the right effect since
the std feature was not set
2023-08-16 21:19:35 +02:00
Tobias Hunger
09d3eaf00a Update license symlinks
run `cargo xtask check_reuse_compliance --fix-symlinks`
2023-08-16 11:46:15 +02:00
Simon Hausmann
12e064b07d
Improve the Slint esp-idf component README (#3278)
Provide a brief introduction into what the component provides and how to use it. This is very brief, but
hopefully a good starting point.

We should link to C++ platform docs once we have them, for example.

When the component includes an example, its README will be automatically rendered below this one.

Also make the esp_lcd_touch component a public dependency,
since it's included from `esp_slint.h`.
2023-08-16 08:52:45 +02:00
Simon Hausmann
3356cf508d Add the Slint version to the title of the C++ reference and Slint reference
The Rust docs already have it in their default, and this adds it to the other two.
2023-08-15 16:10:52 +02:00
Olivier Goffart
1288bb6848 C++ Rgb565Pixel: Invert red and blue 2023-08-15 14:45:33 +02:00
Simon Hausmann
bf7e7e7323 Move debugging techniques under advanced topics in the Slint reference 2023-08-15 10:43:49 +02:00
Simon Hausmann
904a840292 Bump esp-idf version 2023-08-15 09:26:28 +02:00
Simon Hausmann
951bad5e4c Add missing license symlinks
These are resolved at upload time to the actual files. The markdown source isn't quite perfect, but it's something. The component registry doesn't detect the
license correctly yet either.
2023-08-14 10:23:47 +02:00
Simon Hausmann
992ab706f6 Add some fields for the idf component registry 2023-08-14 09:45:27 +02:00
Simon Hausmann
036b1b044d esp-idf: upgrade to the latest esp-idf release
This allows removing compiler flags to silence the compiler about bogus
warnings.
2023-08-11 15:53:51 +02:00
Simon Hausmann
f9f16391d5 Make embedding for software renderer the default for the esp-idf component 2023-08-11 15:53:51 +02:00
Simon Hausmann
9bb402b1ad esp-idf: Fix esp_lcd_touch dependency on non-s3
esp_lcd_touch is an implicit dependency on the s3, but it needs to be explicit for the slint component.
2023-08-11 15:53:51 +02:00