Simon Hausmann
d0cdc462c7
Simplify Skia Renderer
...
Allocate the renderer's surface type in the constructor.
This also changes the C++ API to match this, which complicates some code
a little bit.
2023-05-11 10:42:09 +02:00
Simon Hausmann
77645d9908
C++: Warn when the return value of slint::Image::load_from_path
is not used
...
Somebody recently accidentally wrote this code:
```cpp
slint::Image image;
image.load_from_path(...);
```
and that should have produced a warning.
2023-05-10 11:46:00 +02:00
Simon Hausmann
c6c6564537
Fix C++ formatting
2023-04-24 18:02:55 +02:00
Simon Hausmann
0ba6ef1c24
Fix build against macOS deployment target 10.10
...
- std::optional<T>::value() is not available, use operator * instead
- alignment allocation is also only available in 10.14 or newer
2023-04-24 18:02:55 +02:00
Simon Hausmann
4d502a9f96
Add a C++ version of the Virtual Keyboard example
2023-04-14 11:39:02 +02:00
Olivier Goffart
a57c7eb6bc
Added TextInputInterface.text-input-focused
2023-04-12 14:49:08 +02:00
Olivier Goffart
fd3f974d7e
Don't use old syntax in docs
2023-04-06 17:06:46 +02:00
Simon Hausmann
e3800fd3c3
Fix incorrectly rendered C++ docs code fence
2023-03-24 20:39:27 +01:00
Tobias Hunger
da95051db1
docs: Fix dead links between docs
...
... and add in text that went missing in the Globals section of the rust
docs.
2023-03-23 11:22:51 +01:00
Olivier Goffart
c82bb1515e
C++ image: add some docs
...
Note: Don't use cbindgen to generate `operator==` for public types.
Because it doesn't have docs and the documentation show warnings
otherwise
2023-03-20 17:22:56 +01:00
Olivier Goffart
ef7fb6422a
C++ Image API: introduce the SharedPixelBuffer
2023-03-20 17:22:56 +01:00
Olivier Goffart
be47c8464c
C++: implement creation of image from raw data
...
Issue #616
2023-03-20 17:22:56 +01:00
Tobias Hunger
9af756bf3f
cpp: Do not produce warnings when using the UIntModel
2023-03-06 17:03:20 +01:00
Simon Hausmann
aba5797eaa
C++ docs: Elaborate a little on the argument to Window::set_rendering_notifier
2023-02-17 11:12:54 +01:00
Olivier Goffart
a19efc30db
Replace the MAX_BUFFER_AGE const generic with a runtime enum
...
Having a const generic for that didn't turn to be a good API.
Also made the C++ side more difficult
(Also renamed buffer_stride to pixel_stride)
Closes #2135
2023-02-08 14:44:01 +01:00
Olivier Goffart
eaa9db4911
C++: use size_t everywhere as index in our models
...
cc #2024
2023-02-07 15:25:44 +01:00
Olivier Goffart
63cc68ea0c
C++: Use concepts for the invokables
2023-01-26 11:35:16 +01:00
Olivier Goffart
a3ec320bfb
Remove some deprecated stuff
...
CC #2024
2023-01-26 11:19:21 +01:00
Simon Hausmann
629c7ed80e
Remove undocumented and dysfunctional PathLayout
...
This type is poorly implemented and not documented. Let's remove it for now.
It shall remain available in the git history in the event of a resurrection.
2023-01-21 13:10:19 +01:00
Florian Blasius
ac5eaf495f
move cpp StandardListViewItem from private to public namespace ( #2062 )
...
* move cpp StandardListViewItem to public namespace
* Fix missing C++ docs for StandardListViewItem
The struct is originally defined in Rust in model.rs and cbindgen creates the
compatible C++ declaration. For doxygen
to see it, it needs to be emitted into slint_generated_public.h.
* Improve the StandardListViewItem docs a little bit
* move cpp StandardListViewItem to public namespace
Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>
2023-01-16 09:06:36 +01:00
Simon Hausmann
96c80a2dd1
Fix crash when using an int model in a repeater with a negative value ( #2063 )
...
Make sure that we return an unsigned for row_count() in C++ and Rust by ensuring an unsigned int model at creation time.
For the interpreter this "worked" by chance as casting a negative floating
number to usize automatically caps at zero, and all values are stored as f64. For safety this patch
applies the same fix though, to be on the safe side.
2023-01-14 21:20:14 +01:00
Florian Blasius
f2aab576f4
Add StandardTableView widget ( #2032 )
...
* Text only StandardTableView with column and rows
* Text editing of cells
* Sort by column ascending and descending
* Variants of the TableView for native, fluent and material
2023-01-12 19:41:12 +01:00
Simon Hausmann
ad0aaa4759
Fix crash when using repeaters in C++ on 32-bit architectures
...
The abort in the repeated item traversal is represented as 64-bit unsigned value with all bits set, not just 32-bits.
Fixes #2039
2023-01-09 13:00:25 +01:00
Olivier Goffart
629a64ba89
C++ interpreter: do the renaming invoke_callback -> invoke
2023-01-02 23:55:47 +01:00
Simon Hausmann
8145d10b5b
janitor: adaptor -> adapter
2022-12-13 08:35:20 +01:00
Simon Hausmann
6a87a07e12
Add support for showing the renderer on macOS with AppKit
2022-12-12 17:02:11 +01:00
Olivier Goffart
fe0e881418
C++ wrapper for the Skia backend
2022-12-12 17:02:11 +01:00
Olivier Goffart
10d1595f3a
Janitor: cleanup C++ AbstractWindowAdapter
...
- virtual destructor can be = default
- rules of 3 for AbstractWindowAdapter
- Since WindowAdapter inherit AbstractWindowAdapter, it is already no-copy
2022-12-12 15:00:55 +01:00
Simon Hausmann
2d72781f9f
Fix warning about missing virtual destructor
2022-12-12 14:40:07 +01:00
Olivier Goffart
f1fb4e16bb
C++ platform API: remove the template parameter in Platform
2022-12-12 14:04:33 +01:00
Olivier Goffart
8d686637f4
Experimental platform API from C++
2022-12-12 12:54:31 +01:00
Olivier Goffart
ccf3e8e9e9
C++: Generate image texture data for software renderer
2022-12-09 09:25:48 +01:00
Simon Hausmann
1162ebbb79
Reduce the amount of re-creation of cells in repeaters when the model changes ( #1954 )
...
Re-use the cells but mark them as dirty, instead of re-creating them every time.
In the included test-case that provides behavior that's
more intuitive.
2022-12-06 18:43:55 +01:00
Simon Hausmann
907b58161c
Add support for invoking an init callback on component and element construction
...
This enables imperative code to be run. To be used sparingly :-)
2022-11-17 10:12:08 +01:00
Florian Blasius
61c39b5fa1
Add support for dispatching key events through the public platform API
...
This change adds `KeyPress` and `KeyRelease` variants to the
`WindowEvent` enum, along with the new `slint::Key` enum, that allows
encoding keys.
2022-11-15 10:34:17 +01:00
Simon Hausmann
e9db914fb1
Add is_visible to NodeJS and C++ Window types ( #1816 )
...
Amends commit 82278a5742
2022-11-04 16:24:24 +01:00
Simon Hausmann
41e3e27bff
doc: Fix rendering of slint::interpreter::ComponentInstance::set_global_callback
...
Don't use a preview for the Slint snippet that just shows a global. There's
nothing to render.
2022-11-02 09:51:12 +01:00
Simon Hausmann
fa8959c7bc
doc: Fix rendering of generated docs for restart()
...
The `--` was converted into a HTML entity, which was escaped again and shown raw.
2022-11-02 09:48:02 +01:00
Florian Blasius
a4313c3e32
API changes for SortModel and FilterModel (rust and cpp) ( #1768 )
...
* Rust SortModel: Rename parameter `S` to `F`
* Rust SortModel: Rename parameter `apply_sorting` to `reset`
* Rust FilterModel: Rename parameter `apply_filter` to `reset`
* C++ SortModel: Rename parameter `sort_fn` to `comp`
* C++ SortModel: Add pub reset function
* C++ FilterModel: Rename parameter `apply_filter` to `reset`
2022-10-26 11:16:12 +02:00
Olivier Goffart
6ee932883a
Rename stark-style to dark-color-scheme
...
That's the term used by CSS
2022-10-19 15:23:41 +02:00
Olivier Goffart
0ba468c236
Use a builtin function to access the dark-style
...
instead of a property on NativeStyleMetrics
2022-10-19 15:23:41 +02:00
Florian Blasius
129ee0acae
Florian/sort todo ( #1721 )
...
Implement `set_row_data` for `SortModel` and `FilterModel` (rust and cpp). Add sort and filter example to the todo example.
2022-10-11 18:58:00 +02:00
Simon Hausmann
6df60fa723
Add a C++ Sort Model class ( #1688 )
...
This allows automatically sorting a model.
2022-09-28 10:03:05 +02:00
Simon Hausmann
cfbdce735f
Add a C++ Map Model class ( #1687 )
...
* Add a C++ Map Model class
This matches the MapModel in the Rust API.
2022-09-27 16:03:56 +02:00
Simon Hausmann
388cf32770
C++ FilterModel: Fix mix of unique_ptr and shared_ptr
...
The inner is sorted in a shared_ptr and should be created using make_shared.
2022-09-27 14:15:38 +02:00
Simon Hausmann
56983482b9
Rename C++'s internal AbstractRepeaterView to ModelChangeListener
...
For consistency with the Rust model implementation.
2022-09-27 10:26:55 +02:00
Simon Hausmann
5b95466fa6
Add a C++ Filter Model class ( #1685 )
...
Add a C++ Filter Model class
This matches the FilterModel in the Rust API.
2022-09-27 10:24:47 +02:00
Tobias Hunger
e14fae45cd
c++: Turn (Logical|Physical)(Size|Position)` into structs
...
They used to declared by `using` before, so they were too easy to
convert into.
2022-09-13 18:17:56 +02:00
Tobias Hunger
53a3c72b57
api: Change logical/physical position and size on window ( #1620 )
...
* Add `RequestedSize` and `RequestedPosition` enum to enable asking for
logical or physical size/position.
* Rename `Window::size()` to `Window::physical_size()`
* Make `Window::set_size(...)` take an `Into<RequestedSize>`
* Rename `Window::position()` to `Window::physical_position()`
* Make `Window::set_position(...)` take an `Into<RequestedPosition>`
* Change `WindowAdapter` and related classes to be able to handle
requests being made in the either physical or logical units.
Implement this for C++, Rust and node.
2022-09-13 08:55:31 +02:00
Tobias Hunger
1e6ffeaa0f
API cleanup: Rename PlatformWindow to WindowAdapter
2022-08-29 16:53:47 +02:00