Tobias Hunger
1e30bea812
Janitor: Fix typo in thread-local variable name
...
No behavior change is intended here!
2021-06-28 08:32:00 +02:00
Olivier Goffart
9b4bcab926
Better error message when overriding a layout property
...
As suggested by Simon
2021-06-23 17:15:49 +02:00
Olivier Goffart
e721a4cf1e
Report error when the 'x' or 'y' property is set for elements in layout
2021-06-23 16:53:45 +02:00
Olivier Goffart
40a6e1ecb8
Fix warning
2021-06-23 13:10:24 +02:00
Olivier Goffart
9d2bd11098
Error when having an animation in a transition on a property which is not part of the state
...
Fixes #255
2021-06-23 13:05:25 +02:00
Olivier Goffart
7cc4272d89
Fix debug build
...
check_invariant will borrow the named_references so we cannot keep it borrowed
2021-06-23 11:05:43 +02:00
Olivier Goffart
5889ad5741
Optimize NamedReference::new
2021-06-23 10:24:32 +02:00
Olivier Goffart
725543108f
Fix tests regarding to constant propagation
2021-06-22 14:59:07 +02:00
Olivier Goffart
cb75d44acc
Fix setting model properties to aliased properties
2021-06-22 13:31:27 +02:00
Olivier Goffart
7a1ba1a1d5
Forgot to add the test for previous commit
2021-06-22 13:28:15 +02:00
Olivier Goffart
4d79bb61f8
Test invalid Path command
...
Closes #262
Closes #266
2021-06-22 11:31:09 +02:00
Olivier Goffart
dcbbd0cd7d
Update dependencies
2021-06-22 11:15:20 +02:00
Simon Hausmann
66299437f0
Fix C++ build
...
The path types are now all in the private_api namespace
2021-06-21 15:50:58 +02:00
Simon Hausmann
fe59fb3ec3
C++: Hide sixtyfps::PathData from the public API
2021-06-21 15:50:58 +02:00
Simon Hausmann
51bc21c9a5
C++: Hide AbstractRepeaterView, Repeater and ModelPeer
...
These are not public API.
2021-06-21 15:50:58 +02:00
Simon Hausmann
7f8f1b3105
Hide Property<T> and PropertyTracker<T> from the public C++ API
...
Move those two classes into the private_api namespace, which is excluded
from the API reference documentation.
For generate code the explicit qualification of Property<T> is changed,
for the cbindgen generated item types the private_api namespace is
pulled into the cbindgen_private namespace.
2021-06-21 15:50:58 +02:00
Olivier Goffart
8f4a1c9221
Apply suggestions from code review
...
Co-authored-by: Simon Hausmann <simon.hausmann@sixtyfps.io>
2021-06-21 14:29:53 +02:00
Olivier Goffart
962dc0075c
Layout: Make the default padding and spacing 0
...
and add Box widgets that have proper defaults
Closes #200
2021-06-21 14:29:53 +02:00
Olivier Goffart
fb7050e3e6
Properly detect layout loop involving images
2021-06-21 12:33:15 +02:00
Olivier Goffart
1ba333c284
make_default_aspect_ratio_preserving_binding: use the image size rather than the preferred size
...
because the preferred size might itself depends on the size when image support
height for width
2021-06-21 11:45:30 +02:00
Olivier Goffart
99c140ae08
Allow accessing the width and height of the image in .60
...
Closes #208
2021-06-21 11:22:50 +02:00
Olivier Goffart
a97bcd5ae1
Use BTreeMap unstead of HashMap to store the bindings
...
Because the order is important to keep deterministic error and output
2021-06-18 21:47:00 +02:00
Olivier Goffart
19cef07d96
Properly detect loop in layout
...
cc #257
2021-06-18 20:30:14 +02:00
Olivier Goffart
42c25248a8
Allow to give a name to for
and if
2021-06-18 16:40:40 +02:00
Olivier Goffart
52e85933ed
Fix unit tests
...
Code was moved, so the test need to be adapted to that
2021-06-18 15:46:45 +02:00
Olivier Goffart
0b6bd7b219
Fix accessing elided property
...
Fixes #177
2021-06-18 15:08:30 +02:00
Olivier Goffart
a0bea36e43
Fix preferred size of the Window with a layout
...
A few problem:
- the horizontal and vertical property were swapped
- The implementation of the "preferred_xxx" property was not materialized properly
because the `bindings` were borrowed in the materialize_fake_properties pass
- Since the Window has a stretch factor of 0., the preferred size of the inner layout
was not taken into account when merging the LayoutInfo. I believe taking the
maximum preferred size is the right solution when merging them.
2021-06-18 13:51:25 +02:00
Olivier Goffart
d758102f26
Make the orientation a static parameter to BuiltinFunction::ImplicitLayoutInfo
2021-06-16 15:14:07 +02:00
Olivier Goffart
cfc04bb4ab
C++: adapt to the layout horizontal/vertical split
2021-06-16 15:14:07 +02:00
Olivier Goffart
7aba0f2a0b
Layout split of horizontal/vertical
...
Rust part
2021-06-16 15:14:07 +02:00
Olivier Goffart
deaa0fddb0
WIP layout: split vertical and horizontal cache
...
Split the vertical and horizontal pass into different property cache
This will allow to implement "height for with"
This patch does not port the Rust or C++ binding yet
2021-06-16 15:14:07 +02:00
Olivier Goffart
2438f27200
Keep the old long names property as deprecated
2021-06-14 10:28:30 +02:00
Olivier Goffart
ee00c9eb92
Rename maximum- and minimum- properties to max- and min-
...
Issue #259
2021-06-14 10:28:30 +02:00
Olivier Goffart
2483425d57
Add abs()
2021-06-11 14:17:47 +02:00
Olivier Goffart
fb214a8246
Make sure that the with and height of the inserted Window are not maked as constant
...
We need to do the ensure_window pass before the binding_analysis
otherwise the with and height property of the root element
will be considered as constant and will not adapt to the window size.
Unfortunately we can't really test that now because our test system
doesn't really test the Window, but here is a testcase:
```
MainWindow := Rectangle {
preferred-width: 400px;
preferred-height: 400px;
background: yellow;
VerticalLayout {
Rectangle {
background: red;
Text { text: root.width / 1px; }
}
}
}
```
(we should see the red rectangle)
2021-06-11 13:22:24 +02:00
Olivier Goffart
6c1aa9bd8f
Add a pass to always have the top level as a Window
2021-06-09 11:02:55 +02:00
Olivier Goffart
a75d777f70
Fix PopupWindow positioning
...
We need to account for all parent element.
Previously we skipped layouts because they did not have a x/y property,
but now they are lowered as Rectangle so they should have one
2021-06-09 08:08:42 +02:00
Olivier Goffart
522e78915f
Fix the tests
2021-06-07 20:40:36 +02:00
Olivier Goffart
ce34ff87d0
Finish support for callback aliases
...
cc #111
2021-06-07 20:40:36 +02:00
Olivier Goffart
3ddc3c6ce5
Don't re-use Type::Void for inferred type
...
Make it explicit that it is inferred, and differentiate callback and property
2021-06-07 20:40:36 +02:00
Olivier Goffart
7384d334c1
WIP: parse callback aliases
2021-06-07 20:40:36 +02:00
Olivier Goffart
6a4cd0087f
Apply suggestions from code review
...
Co-authored-by: Simon Hausmann <simon.hausmann@sixtyfps.io>
2021-06-07 10:48:09 +02:00
Olivier Goffart
715d38903f
Allow to omit the type of aliases
2021-06-07 10:48:09 +02:00
Olivier Goffart
01c00251b0
Move parsing code for elements to its own modules
2021-06-07 10:48:09 +02:00
Olivier Goffart
0d09f69fb9
Upgrade lyon_path version since the PR in lyon_path was merged.
...
This should help for #253
2021-06-06 09:37:32 +02:00
Simon Hausmann
96aeffa092
Accept .otf files
...
ttf_parser (used by rustybuzz and femtovg) supports them, and Qt supports them, too.
2021-06-03 10:55:58 +02:00
Olivier Goffart
045f6cbc70
Fix C++ tests
...
The local variable name need to be unique
2021-06-01 14:38:30 +02:00
Olivier Goffart
0598b3f095
The debug()
function can now take several args, and debug more types
2021-06-01 14:10:25 +02:00
Olivier Goffart
77b8bb615f
Move some code in a new module
2021-06-01 12:50:29 +02:00
Olivier Goffart
142a8dc185
Rename ImageReference to ImageInner and make Immage.0 private
2021-05-28 17:05:16 +02:00