Simon Hausmann
f15bc6147e
Simplify FemtoVG and Skia renderer APIs: remove resize()
...
We can convey the new physical window size from the run-time
through the private renderer API
when a window resize event is dispatched.
2023-07-25 19:33:26 +02:00
Olivier Goffart
69a11f7dbc
C++: Platform::register_platform -> platform::set_platform
2023-07-25 17:38:20 +02:00
Olivier Goffart
42bb2bf705
C++: some changes to the Platform API
2023-07-25 17:38:20 +02:00
Simon Hausmann
7d136b6568
Remove the window parameter from the render() function of all the renderers
...
This makes for a slimmer API and instead we can create the renderer <-> window association
behind the scenes ourselves,
in set_component.
2023-07-25 17:28:08 +02:00
Simon Hausmann
507428b03e
Simplify FemtoVG and Skia renderer API ( #3153 )
...
Fold show() into the first time render() is invoked,
and hide() into the Drop implementation.
2023-07-25 17:17:40 +02:00
Olivier Goffart
2a56e25788
C++: rename PlatformEvent to Platform::Task
2023-07-25 16:15:35 +02:00
Simon Hausmann
7893ec3fd4
C++: Improve type-safety of NativeWindowHandle API on macOS
...
Replace void* with forward-declared NSView/NSWindow in NativeWindowHandle::from_appkit
2023-07-25 15:19:56 +02:00
Olivier Goffart
3a2359f107
C++ Pointer dispatch API
2023-07-25 14:03:40 +02:00
Florian Blasius
8ce2620aaa
Added cpp ReverseModel ( #3132 )
2023-07-24 11:32:45 +02:00
Olivier Goffart
81bb6e2c70
C++ platform: duration_until_next_timer_update and change return type of duration_since_start
2023-07-20 10:58:33 +02:00
Olivier Goffart
de532d372a
C++ experimental platform event loop
2023-07-20 10:26:09 +02:00
Olivier Goffart
7cffad2c3f
C++: add a STD feature enabled by default
2023-07-18 12:44:20 +02:00
Simon Hausmann
06cb0e8703
Make in (theoretically) possible to run the qt platform example against a wayland compositor
...
This compiles but fails at run-time with
xdg_surface@24: error 3: xdg_surface has never been configured
2023-07-14 15:33:03 +02:00
Simon Hausmann
648680da6e
Fix qt platform example on X11
...
The "screen" native resource returns a xcb_screen_t pointer while the raw_window_handle's
XcbDisplayHandle::screen field is the screen number.
2023-07-14 15:33:03 +02:00
Simon Hausmann
3565023a15
Improve error handling in C++ Skia Renderer API
...
- Don't try to create a GLX context when we only have an XCB window handle,
XLib is required for that.
- Make it possible to create a NativeWindowHandle from Xlib data types.
Fixes #2978
2023-07-14 15:33:03 +02:00
Aurindam Jana
5a4a7fee63
Update royalty free license to 1.1 ( #2994 )
2023-07-10 10:12:11 +02:00
Simon Hausmann
6c5f6da473
janitor: the C++ window tests depends on the interpreter
2023-06-28 13:25:52 +02:00
Simon Hausmann
83ccd07a88
C++: Add slint::Window::scale_factor() getter ( #3004 )
...
Fixes #3003
2023-06-28 13:24:40 +02:00
Olivier Goffart
11dea135f7
Domain: slint-ui.com -> slint.dev
2023-06-16 10:55:08 +02:00
Tobias Hunger
04d1229685
Fix licnese information using xtask
2023-06-16 09:14:20 +02:00
Aurindam Jana
039e54a5de
Add royalty free license to files except examples and docs ( #2888 )
2023-06-15 11:20:50 +02:00
Simon Hausmann
29aea9a04c
Remove workaround for running tests on Linux
...
With the latest Corrosion update test binaries don’t depend on libslint_cpp.so with path anymore that contains a slash. Therefore rpath kicks in and this workaround should not be needed anymore.
Plus, this gives us test coverage for rpath.
2023-06-03 15:48:51 +02:00
Simon Hausmann
599d86e4e1
Simplify Skia renderer API
...
Remove the size argument from render().
2023-05-26 10:46:59 +02:00
Simon Hausmann
dd61890e23
Fix rendering of the Qt platform example with high-dpi
...
- Provide a C++ platform event for the scale factor change and send it
- Report the correct logical and physical sizes to Slint
2023-05-25 05:29:52 +02:00
Simon Hausmann
ef4074b041
Further simplify renderer storage in C++ platform API
...
Using an std::optional is even simpler and avoids a malloc.
2023-05-21 14:40:43 +02:00
Simon Hausmann
baba30370a
Simplify C++ WindowAdapter <> Renderer interface further
...
Instead of the WindowAdapter being a template for a concept, let's just
use an abstract base class for the renderer. Since we provide the
renderers, this simplifies two things:
- Ownership becomes clear to the user by creating the renderer instance
in a field of theirs.
- All template use goes away on the user side.
2023-05-21 14:40:43 +02:00
Simon Hausmann
fe4a434ce4
Remove the WindowAdapter from the renderer constructor
...
This allows disentangling the native window creation from the renderer
creation, which is rather ugly and complicated on the C++ side.
2023-05-21 14:40:43 +02:00
Olivier Goffart
dd5ef9993f
Platform: Add a Resized event and use that to convey the changes in size ( #2759 )
2023-05-21 12:12:30 +02:00
Simon Hausmann
3db5b97790
Fix the Qt native platform example
...
Fix regression introduced with commit d0cdc462c7
:
The window surface must exists before querying for the window handles.
2023-05-17 14:59:16 +02:00
Simon Hausmann
b27163954a
Fix build of experimental C++ platform API on Linux
2023-05-17 12:41:37 +02:00
Olivier Goffart
422bcc3a4a
C++: optimize SharedVector's iterator constructor
...
Don't detach for every element.
Closes #2737
2023-05-17 09:23:17 +02:00
Simon Hausmann
3340c31249
Clean up C++ experimental native window handle API
...
- Use explicit constructor functions
- Box the implementation
2023-05-11 10:42:09 +02:00
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
Olivier Goffart
f9e5559eeb
C++ test with an example of using the Windows API directly to create a slint platform
2023-05-05 19:53:37 +02:00
Olivier Goffart
4076df928d
Fix panic when getting the line, column of diagnostic with invalid span
...
Introduced in cbc0c790a3
2023-04-19 12:35:17 +02: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
Olivier Goffart
81cb89d374
C++: fix including the generated file in several translation units
2023-02-17 16:42:40 +01:00
Olivier Goffart
e57627d535
Use the new syntax in more tests
...
That are failing otherwise as there would be a warning
2023-02-14 12:38:39 +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
ae20ec59c8
Rename PointerEventButton::None to PointerEventButton::Other
...
And mark the enum non_exhaustive
closes #1903
2023-01-26 13:36:54 +01:00
Olivier Goffart
8967deef56
C++: add a manual test to test the platform API using Qt
2023-01-17 10:21:11 +01:00
Olivier Goffart
8d0cdc6ec2
C++: cmake: move the build instruction for the tests in the tests dir
2023-01-17 10:21:11 +01:00
Olivier Goffart
629a64ba89
C++ interpreter: do the renaming invoke_callback -> invoke
2023-01-02 23:55:47 +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
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
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