Simon Hausmann
0f54b9599b
Add support for manually closing PopupWindows
...
This patch adds a `close()` function that can be called to close a popup
window, and a `close-to-click` boolean that can be set to false to
disable the default behavior.
2023-06-02 18:07:49 +02:00
Olivier Goffart
0c64312383
qt: fix rendering layers with a scale factor
2023-06-02 13:10:19 +02:00
Olivier Goffart
dafdc664bc
Qt: make sure to apply antialiasing also when creating layers
2023-06-02 12:30:15 +02:00
Simon Hausmann
3cf1b38a48
Add basic support for italic font face selection to Text
and TextInput
...
This is implemented for FemtoVG, Skia, and Qt.
2023-05-31 18:47:39 +02:00
Florian Blasius
b4472b9118
Added switch widget ( #2798 )
...
* Add material Switch
* Add fluent switch
* Add native Switch and cleanup
* Rebase fix
* Update internal/compiler/widgets/fluent-base/std-widgets-impl.slint
Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>
* Code review
* Update docs/language/src/builtins/widgets.md
Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>
* Update docs/language/src/builtins/widgets.md
Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>
* Code review
* Update docs/language/src/builtins/widgets.md
Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>
* Update examples/gallery/ui/pages/controls_page.slint
Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>
* Code review tweak on gallery layout
* Code review tweak on gallery layout
---------
Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>
2023-05-31 14:57:23 +02:00
Florian Blasius
9e267bcc94
Add ProgressIndicator widgets ( #2792 )
...
* Add material ProgressIndicator and documentation
* Add fluent ProgressIndicator
* Add native ProgressIndicator
* Update docs/language/src/builtins/widgets.md
Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>
* Update docs/language/src/builtins/widgets.md
Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>
* Update docs/language/src/builtins/widgets.md
Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>
* Update docs/language/src/builtins/widgets.md
Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>
* Code review
* Update internal/compiler/widgets/fluent-base/std-widgets-base.slint
Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>
* Update changelog
---------
Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>
2023-05-31 09:57:12 +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
Olivier Goffart
a68df6eb70
WindowAdaptor: change the 3 ime call into one single ime request enum ( #2747 )
2023-05-17 17:50:19 +02:00
Olivier Goffart
e3ecb5979c
Simplify the way the window properties are applied
2023-05-17 10:22:54 +02:00
Simon Hausmann
8a2b40ca7d
Simplify core Renderer trait for easier implementation
...
Make text_input_byte_offset_for_position and text_input_cursor_rect_for_byte_offset
low-level in the API, where the implementation becomes easier. Two
helper functions in TextInput in turn collect the necessary parameters
and thus also reduce the amount of duplicated code.
This also decouples the renderer further from the window.
2023-05-17 09:01:02 +02:00
Simon Hausmann
7f45d180a9
Clean up internal RenderingMetricsCollector API
...
Don't require passing a dyn WindowAdapter. This was only used for
calling request_redraw(), which a proper window adapter should do anyway
if has_active_animations() is true.
2023-05-17 09:01:02 +02:00
Olivier Goffart
66342f67e3
qt: be consistant in rejecting items smaller than one pixel bix
2023-05-05 19:53:57 +02:00
Olivier Goffart
37e70c302e
Refactoring: Pass the size to to the render function
...
So that we don't need to query the geometry multiple time, and this pave
the way to not have the geometry in the items
Part of #1932
As a drive by, fix the clipping of the Path element which incorrectly
offseted the clip by (x,y).
Similar fixes happen in the Clip element in some renderer, but that
didn't have effect because x and y are always 0 for the Clip element
2023-05-05 19:53:57 +02:00
Olivier Goffart
9e60eceb76
Qt: Fix translucent windows
2023-05-03 19:29:51 +02:00
Simon Hausmann
85da840603
Fold TextVisualRepresentation::apply_password_character_substitution into the TextInput's visual_representation() function
...
That way the call doesn't need to be duplicated on all call sites.
2023-04-26 17:48:46 +02:00
Simon Hausmann
baba08baeb
Move the default password character into corelib
...
And only let Qt customize it
2023-04-26 17:48:46 +02:00
Simon Hausmann
d757456c5a
Centralize all password character substitution in corelib
...
Use TextVisualRepresentation also in text_input_byte_offset_for_position
2023-04-26 17:48:46 +02:00
Simon Hausmann
fd9a2638b7
Use the common TextInputVisualization::apply_password_character_substitution also for the Qt renderer
2023-04-26 17:48:46 +02:00
ogoffart
dfd5fc38b3
Bump version number to 1.0.3
2023-04-26 14:04:08 +00:00
ogoffart
53cce5bf44
Bump version number to 1.0.2
2023-04-26 11:33:16 +02:00
ogoffart
bd63218412
Bump version number to 1.0.1
2023-04-18 14:56:40 +00:00
Simon Hausmann
f9e561e21f
Prospective fix for panic when running material style under Wayland/Gnome
...
When for example only a maximum height is set, but no maximum width,
avoid passing -1 or 0 to winit for the width. Instead use the same large
value was for Qt.
cc #2562
2023-04-18 08:57:01 +02:00
Cole Lawrence
af30896e4a
Add always-on-top
property to Window element
2023-04-15 13:58:47 +02:00
Simon Hausmann
81d3b4a930
Qt: Fix missing support for horizontal alignment in TextInput
...
Apply horizontal alignment to the text lines created by QTextLayout.
Fixes #2524
2023-04-11 14:21:01 +02:00
Simon Hausmann
d6c9ddd27a
Qt: Avoid setting 0x0 as maximum size on a window
...
Centralize the code to ensure that we only set a maximum size if > 0 into corelib.
2023-03-30 08:43:48 +02:00
Simon Hausmann
2872c13fff
Fix using the software renderer with the native style
...
Provide access to the window inner also from within the software
renderer, so that the native style rendering can query the active state.
Fixes #2404
2023-03-24 16:29:21 +01:00
Simon Hausmann
8ffb5131c7
Introduce error handling in the FemtoVG and Skia renderers ( #2402 )
...
Avoid unwrap() and expect() and instead propagate errors all the way
down to run_event_loop(), show(), and hide() in the Slint AIP.
2023-03-24 14:18:11 +01:00
Tobias Hunger
28c35279e4
accessibility: Do not freeze trying to find items at position
...
Fix the code to always return a direct child widget or nullptr. The
documentation says to return a direct or indirect child, but the
implementation expects a direct child.
Fixes : #2195
2023-03-20 15:29:40 +01:00
Tobias Hunger
3ac01c3f07
clippy: Fix clippy warnings
2023-03-09 09:35:29 +01:00
Olivier Goffart
ca7b2e0bb8
Harmonize style properties
2023-02-10 16:49:25 +01:00
Olivier Goffart
6889dfa5f5
Rust: Make new(), run() and show() report errors from the backend
...
Fixes #2198
2023-02-10 05:00:03 +01:00
ogoffart
e7f48512ee
Bump version number to 1.0.0
2023-02-03 11:07:15 +01:00
Olivier Goffart
8e0a8ca5cf
Qt: use the double click interval from the platform
2023-02-03 08:48:49 +01:00
Olivier Goffart
f34b1bda2e
Add primary keyboard support on unix (selection copy, middle click paste)
...
Closes #2146
2023-01-31 16:39:22 +01:00
Simon Hausmann
32d2ba70ca
Change WindowEvent::KeyPressed/Released to use a SharedString instead of a char ( #2148 )
...
Also, `WindowEvent` is not `Copy` anymore.
Closes #1749
2023-01-31 15:44:54 +01:00
Florian Blasius
d84de623b4
TextEdit select text with double and dribble click ( #2088 )
...
* Select word in `TextEdit` by double click
* Select paragraph in `TextEdit` by dribble click
2023-01-31 15:04:19 +01:00
Simon Hausmann
8c807cb1da
Remove slint::Image::stride() ( #2147 )
...
cc #2138
2023-01-30 13:59:31 +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
0aeb4d2aec
Qt: fix clipping of itemview when not using the Qt backend
...
In that case, the clip is null which means no clip (as opposed as "clip
everything")
2023-01-23 16:26:49 +01:00
Olivier Goffart
66b848227b
StandardTableView resizable columns
2023-01-23 16:26:49 +01:00
Olivier Goffart
fabebaa009
Adjust the look of the native StandatdTableView
...
- The header should be within the frame
- Use the NativeStandardListViewItem so we have the right alternative
row coloring and hover
2023-01-23 16:26:49 +01:00
Simon Hausmann
5ff0278185
Simplify path event extraction
...
Return the path events for rendering as an Option, so that if the path is empty,
we simply return.
This avoids a double property dependency in the (likely) event the path is not empty.
2023-01-21 13:10:19 +01:00
Simon Hausmann
b6b2a0e555
Fix rendering of #1988 's testcase with Qt
...
Don't rely on the pen not being set when drawing the background of a rectangle
with transparent border. On my machine with the test case the pen has some other
color from previous drawing (or Qt internal?).
2023-01-18 18:05:53 +01:00
Olivier Goffart
4bc7571506
Qt backend: Fix drawing of the border rectangle with non-opaque borders ( #2079 )
...
Also fix the border radius to be the outer radius of the rectangle
Qt renderer part of #1988 (minus clipping)
2023-01-18 14:05:12 +01:00
Olivier Goffart
dab95b4220
Native button: highlight on mouse over
2023-01-16 03:12:35 -08: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
09659eaa42
Improve Qt input event handling
...
As suggested by @wengxt, we should always clear the preedit when instructed by the IME (via
an empty preedit string). We do that with winit, too.
Relates to #1925
2022-12-22 10:31:01 +01:00
Olivier Goffart
5cd38adb14
Move the colorize property to the Image item
...
Instead of the ClippedImage. Because we use the colorize property more
often than the source property, and these are soon going to be even more
expensive
2022-12-20 08:42:47 -08:00
ogoffart
ce07d078ce
Bump version number to 0.3.4
2022-12-16 09:36:15 +00:00
Simon Hausmann
b2ebac63c2
Remove component_destroyed from winit's internal renderer interface
...
The default impl of unregister_component in WindowAdapterSealed would call free_graphics_resources
on the rendere. Any re-implementation would have to do the same,
which the winit backend forwarded through
the winit backend specific internal renderer interface.
Instead, the original call site for unregister_component now calls
free_graphics_resources and unregister_component (for accessibility tree dirty notification).
2022-12-09 09:03:27 +01:00