Olivier Goffart
16985a349d
Add dispatch_pointer_event to the public API
2022-08-17 18:28:12 +02:00
Olivier Goffart
a62a5cbd19
Rename MouseEvent pos
to position
2022-08-17 18:28:12 +02:00
Olivier Goffart
61739dcb81
Remove the Mouse
prefix from enum value of the MouseEvent
enum
2022-08-17 18:28:12 +02:00
Olivier Goffart
a1724602e6
Skia: Cache the Skia image in the core image cache
...
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
is basically the same information.
2022-08-16 11:22:11 +02:00
Simon Hausmann
151ea2bdd0
Revert "janitor: move code for backspace and delete key shortcut recognition"
...
This reverts commit 49ea24c44a
. This made
DeleteForward and DeleteBackward dead code because move_mod is always
true. Not worth the refactoring IMO.
2022-08-16 09:49:16 +02:00
Simon Hausmann
cca64bf29f
Fix build
2022-08-16 09:47:44 +02:00
Simon Hausmann
49ea24c44a
janitor: move code for backspace and delete key shortcut recognition
...
... into the section that checks move_mod, since the code now depends on it.
2022-08-16 09:35:57 +02:00
Simon Hausmann
81ca8f54c2
Add missing shortcuts for delete word forward and backwards ( #1483 )
...
* Add missing shortcuts for delete word forward and backwards
Fixes #1467
2022-08-16 08:24:56 +02:00
Simon Hausmann
686df50e9f
Revive support for rotation of elements
...
The rotation-angle/rotation-origin-x/y properties are lowered to an
injected Rotate element, that we already had.
This needs further fixes for transforming input events and an
implementation of rotation in Skia.
2022-08-11 10:34:41 +02:00
Simon Hausmann
b0697352a1
Fix no_std build
2022-08-10 13:07:07 +02:00
Simon Hausmann
351a1b6448
Move set_rendering_notifier from the (to be public) PlatformWindow to the (private) Renderer trait
2022-08-10 13:07:07 +02:00
Simon Hausmann
0ee361d994
winit: Remove unused existing_size field
...
This field duplicates the winit window's inner size. It is set on a
WindowEvent::Resized(), after which
`winit:🪟 :Window::inner_size()` returns the same value.
2022-08-09 13:16:52 +02:00
Simon Hausmann
fa956aca2d
janitor: Fix nightly doc warnings about unused parentheses
2022-08-05 09:25:31 +02:00
Simon Hausmann
086880f605
Speed up rendering of clipped children
...
When the renderer does not re-implement visit_clip, we call combine_clip.
Then we're missing out on an optimization the GL renderer does: When the resulting clip region
is empty, we do not need to recurse into children for rendering.
That itself reduces the property dependency chain and avoids unnecessary
updates when invisible (clipped) children change properties.
2022-08-02 11:07:46 +02:00
Olivier Goffart
f6072639d1
Sotfware renderer: Add support for ImageInner::EmbeddedImage
...
If we want to use the software renderer as a drop in replacement
for the GL renderer, we need to be able to render all images
without the compiler having to pre-render the textures
This was tested by hacking the compiler not to render the texture
with the mcu simulator
2022-07-27 08:31:37 +02:00
Simon Hausmann
27bf9348e6
Rename the backend-gl crate into backend-winit
2022-07-26 17:43:51 +02:00
Olivier Goffart
8c70cd7f57
Move the fonts out of the Backend trait ( #1438 )
...
and remove the `'static`
2022-07-26 16:45:54 +02:00
Olivier Goffart
793974ce9f
Make just one function to fire both timers and animations
...
Also simplify the Qt backend since only the paint event will
query the animated properties that should then cause a refresh
one frame later
2022-07-26 15:13:07 +02:00
Simon Hausmann
df99b95a0b
Don't export DEFAULT_FONT_SIZE into slint_internal.h
2022-07-26 11:21:40 +02:00
Simon Hausmann
fe3d4b7177
Bump MSRV to 1.60
2022-07-26 09:20:52 +02:00
Olivier Goffart
20d5cb72ed
Move the init_dirty_region dirrectly into the Renderer
...
This means we will query the size of the popup also for the GL backend
even if the backend don't need to be marked dirty, but that should be
alright.
2022-07-25 17:53:15 +02:00
Simon Hausmann
369f347b29
Move the clipboard back from the Window to the Backend trait
...
Found a way to connect the clipboard to the wayland display through the winit event loop target.
2022-07-25 15:41:51 +02:00
Olivier Goffart
8287ed4b9e
Some more simplifications of the PlatformWindow and Backend trait
2022-07-25 14:51:03 +02:00
Olivier Goffart
f7637b521f
More PlatformWindow trait simplification: Component registation optional
...
Forward the free graphics resource to the renderer by default
2022-07-25 12:04:34 +02:00
Olivier Goffart
74c041010e
Move the text functions out of the Window, into the Renderer trait
2022-07-25 12:04:34 +02:00
Simon Hausmann
f0faa8aaca
Simplify code reading properties from the Window item
...
Use the new getter in WindowInner.
2022-07-23 13:25:44 +02:00
Simon Hausmann
a5cd0a7173
Simplify window item interaction in the core library
...
Simlify the borrow_pin / downcast_pin dance a little by using VRcMapped.
2022-07-22 23:09:08 +02:00
Simon Hausmann
5f4923a6f0
Fix build with slint_int_coord
2022-07-22 23:09:08 +02:00
Simon Hausmann
0ab71ec503
Perform resolution of font properties against the window defaults in the core library
...
This simplifies the renderer handling - the FontRequest arriving there
will always be resolved.
And this reduces the amount of property dependencies: If a Text elements
specifies a font-family, no dependency to the window's
default-font-family is created.
2022-07-22 23:09:08 +02:00
Olivier Goffart
dd081758b0
Upgrade to lyon 1.0
2022-07-22 19:27:49 +02:00
Olivier Goffart
9794a4dfad
Simplification of the PlatformWindow trait
2022-07-22 18:12:00 +02:00
Olivier Goffart
6de5a42ab2
Use the public Window as a result of the create_popup function
2022-07-22 18:12:00 +02:00
Olivier Goffart
c2fe06d82d
Use the public api::Window for the interface of the software renderer
2022-07-22 18:12:00 +02:00
Olivier Goffart
29404e3f2c
Rename i_slint_core:
🪟 :Window into WindowInner
...
We already have `api::Window` and also the Window element (`WindowItem`),
So rename the inner part to avoid confusion
2022-07-22 18:12:00 +02:00
Simon Hausmann
f9791ea03a
Simplify text selection extraction code
2022-07-22 15:21:21 +02:00
Simon Hausmann
465da27270
janitor: simplify string slice creation
...
Co-authored-by: Olivier Goffart <olivier.goffart@slint-ui.com>
2022-07-22 15:21:21 +02:00
Simon Hausmann
c494861ddd
Change set_clipboard_set
to take a &str
instead of a String
...
Every backend will do something different with the string that needs to go into the clipboard.
Qt will convert it to a QString, copypasta to a String, in theory it could be written
directly to a socket.
Given that we don't know what the perfect representation on the backend side is, passing
a string slice avoids any immediate conversions.
2022-07-22 15:21:21 +02:00
Simon Hausmann
e5e7c61414
Simplify the rendering metrics collector API
...
Instead of a new() function and a start() and no stop() function, create the collector
when we want to measure and drop it when we're done.
This will also make it possible to move the collector into the renderer
in the future.
2022-07-22 15:18:13 +02:00
Simon Hausmann
26b3505542
Fix memory leak in rendering metrics collector
...
Avoid a cycling reference
2022-07-22 15:18:13 +02:00
Olivier Goffart
3639ba2644
Don't expose the KeyEventType to .slint
...
This enum is not used in any builtin things anyway, so it shouldn't be
used at all in .slint code.
2022-07-22 12:23:52 +02:00
Olivier Goffart
ac4f3e97ad
Change slint enum values to be PascalCase in rust
...
... while still being kebab-case in .slint
Some enums might become public API and we want to have them as
PascalCase to respect the rust conventions
2022-07-22 12:23:52 +02:00
Simon Hausmann
8a3ff06eb5
Move the clipboard handling from the Backend trait into PlatformWindow
...
Access to the clipboard implies access to the windowing system.
2022-07-22 08:10:44 +02:00
Simon Hausmann
8056836b1f
Fix failing i-slint-core tests
...
Fix the path to the test font.
2022-07-21 14:48:49 +02:00
Olivier Goffart
c28c527e0e
Split the properties.rs files in modules
2022-07-21 14:07:15 +02:00
Olivier Goffart
c41749fc12
Rename PropertyChangeHandler to PropertyDirtyHandler
...
The handler is called whenever the properties it depends on becomes dirty,
not when it changes.
This has caused confusion before, so rename it
2022-07-21 13:16:40 +02:00
Olivier Goffart
7ccd36f7f2
Simplify PopupWindow handling
...
When the popup is implemented as an overlay on the window, no need
for the backend to do anything
2022-07-21 12:36:53 +02:00
Simon Hausmann
650fd2c6ba
Simplify internal svg rendering API a little bit
...
Since there is only one call site now, we can also return the correct
type without inconveniencing any other code.
2022-07-20 12:57:37 +02:00
Olivier Goffart
847a532732
Move the SVG rendering to a buffer in core
2022-07-20 12:57:37 +02:00
Simon Hausmann
b4b7b27db8
Add bounds to the decoded image cache
...
This defaults to 5 MB right now and SVGs aren't counted properly.
2022-07-20 12:57:37 +02:00
Simon Hausmann
4b8432c5f5
Remove unused by_address dependency
2022-07-20 12:57:37 +02:00