Commit graph

450 commits

Author SHA1 Message Date
Simon Hausmann
05a8bbad8f Work around css-color-parser2 bug 2021-04-01 10:03:39 +02:00
Simon Hausmann
477729da52 Improve brush property test coverage
Test that assigning colors works:

* Test the implicit `Brush(const Color &)` C++ constructor
* Add derive_more::From to allow convenient conversion in Rust
* When assigning to brush properties in JavaScript, try at least to see if it's a color string (could be extended in the future)
2021-04-01 08:27:10 +02:00
Simon Hausmann
cf22548586 Add a test case for instantiating brush properties
Amends commit e6d165dfbb
2021-04-01 08:16:32 +02:00
Olivier Goffart
f4ed0e333b Remove useless message in an assert
The goal was probably to do an assert_eq, because passing 1 as a message don't make sense
2021-03-25 18:54:00 +01:00
Simon Hausmann
4a9cd954b8 Rework the Rust entry point API for the interpreter
Switch to the stateful `ComponentCompiler` concept that we discussed for the C++ API.
2021-03-18 18:20:50 +01:00
Olivier Goffart
0e351de1a6 Create a new crate to expose the C++ 2021-03-16 16:34:02 +01:00
Simon Hausmann
79aefcb303 Fix compilation of tests 2021-03-15 20:02:31 +01:00
Olivier Goffart
4ab3802eee Fix the documentation tests 2021-03-15 19:51:04 +01:00
Olivier Goffart
fef4a10ebd Use the new API for the interpreter in wasm
Improve the ComponenetDefinition::from_source
2021-03-15 17:57:46 +01:00
Olivier Goffart
48333370a6 Use the new interpreter API in things that depends on it 2021-03-15 17:29:27 +01:00
Simon Hausmann
8372d3f6d8 Rename call_* to invoke_* for callbacks
Fixes #187
2021-03-15 17:01:05 +01:00
Simon Hausmann
70ff7baa85 Fix compilation after diagnostics API changes 2021-03-15 10:43:26 +01:00
Olivier Goffart
c840b046ae Rename the "resource" type to "image" 2021-03-10 17:24:31 +01:00
Simon Hausmann
b591f7de2c Add Window.default-font-size
This allows getting rid of the `DemoText` element in the printer demo
2021-03-02 13:33:43 +01:00
Simon Hausmann
27bdb4d481 Added Window.default-font-family
One step towards getting rid of `DemoText` in the printer demo
2021-03-02 13:25:21 +01:00
Simon Hausmann
3d7eb6ac70 Fix brightening function name in .60
An earlier revision of the patch called it `lighter` and it was renamed
to `brighter`, as bright is the opposite of dark. But the function name
in .60 wasn't changed yet.

Amends commit 391d0152f0
2021-02-24 13:40:27 +01:00
Simon Hausmann
391d0152f0 Add Color::brighter/darker functions
These are exposed in .60 as well as in Rust and C++ and implemented by
converting to HSV color space and adjusting the brightness (value).
2021-02-24 10:49:27 +01:00
Olivier Goffart
5727a4cf02 implement square root 2021-02-20 08:53:08 +01:00
Olivier Goffart
b34a34cea0 C++ Make sure that the layout is properly updated when the model of a for or if changes
The problem is that the backend is using the `meta_property_listener` to know
if the layout must be updated, but the C++ code would not register a dependency

NOTE about the test: The test doesn't really test that it works because
the test backend don't have a meta_property_listener and apply the layout
inconditionally in sixtyfps_send_mouse_click
2021-02-18 09:40:12 +01:00
Simon Hausmann
8b28c4d792 Fix compilation with empty image urls when resource embedding is enabled
`@image-url("")` should translate to `Resource::None` instead of
`Resource::AbsolutePath` to avoid that the rust compiler tries to
include a directory when embedding images.
2021-02-17 16:01:54 +01:00
Olivier Goffart
09ea6572e4 Rust: Fix if in box layouts 2021-02-17 09:22:39 +01:00
Olivier Goffart
92f9402a39 Fix C++ compilation if using condition between 0 and a unit type 2021-02-16 18:40:32 +01:00
Olivier Goffart
26c04c3550 Add test for previous commit 2021-02-16 15:22:06 +01:00
Olivier Goffart
b580736caf Fix error in the generated rust code with laoyut in for 2021-02-15 15:00:52 +01:00
Olivier Goffart
1f318f2d10 Use the new mouse event API for the flickable
Issue #166
2021-02-13 16:58:04 +01:00
Olivier Goffart
7088d30038 Don't use rust assert in C++ 2021-02-12 21:59:33 +01:00
Olivier Goffart
edd1a321dc Add JS test for previous patch 2021-02-12 21:47:10 +01:00
Olivier Goffart
861e76b0ef Fix vinding when two native property are linked
Fixes #161 again
2021-02-12 21:40:34 +01:00
Simon Hausmann
500919745e Add an internal Rotate element
This is just a starting point, to be turned into a real Transform
element later, along with syntactic sugar to turn rotation, etc.  into a
transform matrix in the generated output.
2021-02-12 17:31:06 +01:00
Olivier Goffart
1af6d1e187 Fix test from previous patch 2021-02-12 10:36:23 +01:00
Olivier Goffart
68de483f30 Ensure that the repeater are updated when we compute the layouts
Fixes #167
2021-02-12 10:07:33 +01:00
Olivier Goffart
096f55e365 Change behavior of percent sice within the layout
So that size with percentages don't affect the maximum/minimum size

Fixes #117
2021-02-11 20:32:26 +01:00
Olivier Goffart
0174db3679 Delay the percentage size conversion to after the layouting phase
So we can see inthe layouting phase if the size was in percent
2021-02-11 15:08:24 +01:00
Simon Hausmann
2dd5ea61bb Add support for Path.fill-rule
For some reason it's not working with the Qt renderer though
2021-02-10 14:08:32 +01:00
Olivier Goffart
f7a76dc352 Add ImageFit::cover, and fix ImageFit::contain 2021-02-09 10:52:04 +01:00
Olivier Goffart
0f251a7b82 Fix merge of two way binding
collext the set of all binding mapping to the same property, and only keep
the binding with the highest priority

Fixes #161
2021-02-08 18:58:23 +01:00
Olivier Goffart
f1300a7f2d Fix propagation of mouse event.
Process the event in the post visit if the children did not intercept the event
2021-02-08 14:08:14 +01:00
Olivier Goffart
431ce88326 sin/cos/tan and asin/acos/atan 2021-02-08 12:23:31 +01:00
Olivier Goffart
d30f5138b8 Box layout: ensure max size is >= min
Fixes #160
2021-02-05 19:18:09 +01:00
Olivier Goffart
55726cc10d fix two way binding when they are declared twice
Fix the galery's disable button not disabling most widgets
2021-02-05 18:33:28 +01:00
Olivier Goffart
49c7300907 Support for if else in statements 2021-02-05 13:53:37 +01:00
Olivier Goffart
a0fe10906c Fix rust compilation of return value from callback
... if the rust type is not exactly right
2021-02-05 13:53:37 +01:00
Olivier Goffart
0e2471f76b Image::colorize support
(Qt only)
2021-02-04 17:44:01 +01:00
Olivier Goffart
b75e135459 Support complex product of units
Fixes #68
2021-02-04 12:56:14 +01:00
Simon Hausmann
66df71a3ca Convert Path to support brushes
* Rename `fill-color` to `fill`
* Rename `stroke-colo` to `stroke`
* Support using a brush for both properties
2021-02-03 15:45:33 +01:00
Simon Hausmann
89c3423ec3 Fix some deprecation warnings in the tests 2021-02-03 15:09:41 +01:00
Simon Hausmann
1d54947de9 Fix compilation of @linear-gradient with brush properties in C++ 2021-02-03 13:22:44 +01:00
Simon Hausmann
7982325da4 Change Rectangle::background's type to be a brush
This also introduces the brush type in the compiler and generators. At the
moment only conversion from Color is implemented.
2021-02-03 12:49:44 +01:00
Olivier Goffart
4fd3eaf9d1 Add a SIXTYFPS_TEST_FILTER macro to be able to limit the tests we compile in
Quite usefull to quicly compile some tests for the rust backend which is slow to compile
2021-02-03 10:41:19 +01:00
Olivier Goffart
a143656dc9 Test driver: move some common code in the lib 2021-02-03 10:32:25 +01:00