Commit graph

65 commits

Author SHA1 Message Date
Olivier Goffart
7939d834d4 Fix panic in the interpreter if there are properties that are aliased to struct 2021-10-06 18:33:27 +02:00
Olivier Goffart
4aeb9bcd08 Interpreter: fix comparison of enums
We need to normalize native enum to use dashes
2021-09-06 12:22:24 +02:00
Tobias Hunger
aea4ecca99 Apply pre-commit hooks to all files 2021-08-17 22:38:16 +02:00
Olivier Goffart
c25538c982 Normalize identifiers to - instead of _
As a result
 - The error messages will now show the error with `-` instead of `_`
 - The LSP will auto-complete with -
 - The interpreter's list of properties will list the property with '-'
   (but we made the change so that set_property, get_property, and so on
   work also if passed a '-')
2021-08-10 22:21:01 +02:00
Simon Hausmann
341387c8d0 Provide sixtyfps::Window by reference in the generated C++ API 2021-08-03 10:32:04 +02:00
Simon Hausmann
23da97bc75 minor cleanup
Rename window_ to window_rc for the private window member in the generated C++ struct.
2021-08-03 10:32:04 +02:00
Simon Hausmann
66891a299c Start a new sixtyfps::Window API for Rust, C++, the interpreters and JS
The generated component now provides access to a Window type
via the window() accessor function.

This is part of #333
2021-08-03 10:32:04 +02:00
Olivier Goffart
7f611d21e3 Fix Angles conversion 2021-07-26 17:36:02 +02:00
Olivier Goffart
19ad14b6f2 C++: Fix assigning a @linear-gradient to a color property 2021-07-22 14:38:58 +02:00
Olivier Goffart
0a46b367e2 C++: fix creating a gradient from a const reference to a color 2021-07-22 14:38:58 +02:00
Olivier Goffart
c2433d0f0b Fix panic when parsing linear-gradient with a trailing coma 2021-07-22 14:38:58 +02:00
Olivier Goffart
722ae70284 Test: Don't use rust syntax to initialize C++ struct
I wonder why it worked with gcc, this is not even the C++20 syntax
2021-07-15 18:35:44 +02:00
Olivier Goffart
e633ee825d Fix error with struct that are only referenced by callbacks
We would have a compilation error in rust or C++ because the
collect_struct visitor would not visit these type and not produce
them correctly
2021-07-15 14:06:49 +02:00
Olivier Goffart
7193cbeec1 Revert "C++ Fix struct with a field that has the same name as the struct itself"
This reverts commit 9e70e009a2.

This turns out to break CI

Changed the test not to use the same name for a field and the struct
2021-07-09 15:52:28 +02:00
Olivier Goffart
9e70e009a2 C++ Fix struct with a field that has the same name as the struct itself 2021-07-09 14:37:42 +02:00
Olivier Goffart
6ed5044940 Fix rust compilation when using keywords in struct 2021-07-09 13:33:09 +02:00
Olivier Goffart
13bd828b96 Update license date 2021-07-02 15:55:54 +02:00
Olivier Goffart
c0d813424d Add C++/Rust/JS test for accessing image dimensions 2021-06-21 12:00:57 +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
304699e6bc Fix C++ tests on windows 2021-05-11 11:40:26 +02:00
Olivier Goffart
8ac0fe78ad Test for the interpreter 2021-04-21 17:15:19 +02:00
Olivier Goffart
14772a9b58 Handle reduction of logical lenght when the units are more complex 2021-04-21 17:15:19 +02:00
Olivier Goffart
91ed04a72c Make length (still the default for all property) be the logical length
And a new `physical_length` is now the physical_length unit

Note: this does not change the runtime part yet
2021-04-21 17:15:19 +02:00
Olivier Goffart
380b421507 Fix warning in test 2021-04-12 15:42:58 +02:00
Olivier Goffart
e67deebc76 Make rgb() and rgba() a macro that can take 3 or 4 arguments
and that accept both percent or integer

Closes #139
2021-04-12 15:19:15 +02:00
Olivier Goffart
ca64a540c4 Continue support for rgb() function
Fixup of previous commit which was part of https://github.com/sixtyfpsui/sixtyfps/pull/139
2021-04-12 15:18:25 +02:00
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
8372d3f6d8 Rename call_* to invoke_* for callbacks
Fixes #187
2021-03-15 17:01:05 +01:00
Olivier Goffart
c840b046ae Rename the "resource" type to "image" 2021-03-10 17:24:31 +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
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
Olivier Goffart
b75e135459 Support complex product of units
Fixes #68
2021-02-04 12:56:14 +01:00
Simon Hausmann
1d54947de9 Fix compilation of @linear-gradient with brush properties in C++ 2021-02-03 13:22:44 +01:00
Olivier Goffart
294cf9bbe3 Convert from literal 0 to any unit-like types
cc #68
2021-02-02 15:38:07 +01:00
Olivier Goffart
5a21f1bd81 Rename emit_ to call_ for callback
Signal was renamed to Callback, but one does not emit a callback, one calls it
2021-01-25 15:59:10 +01:00
Simon Hausmann
f502be9299 Fix nested structures
When the nested structure was only referenced indirectly, we weren't collecting it for code generation.
2021-01-25 14:12:24 +01:00
Olivier Goffart
f454c5cd8e C++: properly escape non-printable characters 2021-01-20 09:53:55 +01:00
Olivier Goffart
ba6ff5736c String Escaping 2021-01-18 13:36:23 +01:00
Olivier Goffart
0d2d48be4f Rename "signal" to "callback" 2020-12-18 09:51:01 +01:00
Olivier Goffart
a37a287a17 Limit the conversion from percentage to lenght for the width and height property 2020-12-04 11:20:09 +01:00
Simon Hausmann
4670854500 Remove as_ref from the public API of the generated Rust component
This was only needed in our tests.
2020-12-03 13:31:58 +01:00
Simon Hausmann
866ad62ef2 Cleanup in the rust generator
Have only one implementation of the public property/signal interface
again
2020-12-03 09:05:23 +01:00
Simon Hausmann
7047856d4e Replace FooRc with Foo and without ComponentHandle in examples and tests 2020-12-03 08:13:24 +01:00
Simon Hausmann
133823ca4c Apply the object literal type merging also to the binary comparison operator 2020-12-01 10:57:47 +01:00
Simon Hausmann
798b08f2b1 Use smarter common-type determination code also for conditional expressions
This requires two changes to the function:

    (1) When we can't convert to one type to the other, try the reverse.
    (2) When merging fields, apply the algorithm recursively for common fields.
2020-12-01 10:57:47 +01:00
Simon Hausmann
9360fc3c5a Don't silently drop fields in object literals inside arrays
This patch tries to improve the ability to convert different kinds of
object literals in an array into a common type. We used to take the
first entry as the "shape" of all elements, which meant that if the
first element was missing a field it would be silently dropped from all
future fields.

Instead, this patch merges the fields.
2020-12-01 10:57:47 +01:00
Olivier Goffart
8a64f10e84 Remove ComponentVtable::input_event
And the custom handling of the mouse grabber
2020-11-24 16:23:37 +01:00