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
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
2edf247023
Rust: fix compilation when using bindings in global
2021-02-16 15:16:01 +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
68de483f30
Ensure that the repeater are updated when we compute the layouts
...
Fixes #167
2021-02-12 10:07:33 +01:00
Olivier Goffart
81b63c3b3f
Small reformating fix
2021-02-12 09:56:37 +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
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
Simon Hausmann
2ce672bd68
Reduce dependencies
...
Use only specific lyon packages instead of pulling all of them in.
This slightly speeds up compilation as well as for example lyon_tesselation
doesn't need to be compiled anymore.
2021-02-09 17:22:01 +01:00
Olivier Goffart
431ce88326
sin/cos/tan and asin/acos/atan
2021-02-08 12:23:31 +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
Simon Hausmann
50d9211e0a
Fix failing default_color.60 test
...
Allow converting a brush to a color. In the case of a gradient, the color of the first stop is returned.
For the C++ generator this requires adding the extra case of explicitly
calling the `Brush(const Color &)` constructor, despite it being implicit,
in order to generate the correct code when we have IR that casts twice:
```
Expression::Cast {
from: Expression::Cast {
from: Expression::Cast {
from: Expression::NumberLiteral(...),
to: Type::Color,
}
to: Type::Brush,
},
to: Type::Color,
}
```
2021-02-04 13:44:10 +01:00
Olivier Goffart
4643706409
Make sure linear gradiant always have all its stops
2021-02-03 15:42:35 +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
c5ab214f55
Generate linear gradients in rust.rs
2021-02-03 09:52:38 +01:00
Simon Hausmann
1f091cb1c0
Rename Rectangle.color to Rectangle.background
...
Add support for built-in property aliases and rename `color` to
`background` - in preparation for it also changing to type brush.
Right now the alias is silent, a deprecation and overall change
will come in a subsequent change.
2021-02-02 17:01:12 +01:00
Olivier Goffart
ad1e18764a
Make angle its own type
2021-02-01 14:49:25 +01:00
Olivier Goffart
2d12e118ac
Resolve linear gradients
2021-02-01 14:25:27 +01:00
Olivier Goffart
e2db0e49dc
Fix explicit size in box layouts using for
...
Fixes #147
2021-01-29 16:35:59 +01:00
Olivier Goffart
c099ac98da
Fix some invalid identation
2021-01-26 17:25:55 +01:00
Olivier Goffart
e0e3a1aaad
Fix parent_item()
...
We need to skip over the DynamicItem
2021-01-26 17:05:30 +01:00
Olivier Goffart
a4abb86782
Don't return the ItemWeak by value
...
It is not working in C++ because ItemWeak has a destructor
2021-01-26 13:17:24 +01:00
Olivier Goffart
c2982d9ab3
Add ability to get the parent item from the vtable
...
(still untested)
2021-01-26 10:36:37 +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
Olivier Goffart
c2dc0cef2c
Finish return statement handling
2021-01-25 15:32:00 +01:00
Simon Hausmann
b22bbb1c0f
WIP: Implement the return statement
2021-01-25 15:32:00 +01:00
Simon Hausmann
f7ea2a9dce
Forward focus() calls on items that have initial-focus
defined
...
This also makes the focus() method available as a member function on any
item, but the resolve_element_reference_in_set_focus_calls() pass will
check if the elements are valid.
The check for `has-focus` to determine a focusable item was replaced
with an annotation on the built-in elements, so that `has-focus` can
later be implemented as a built-in function through the run-time,
without the need for a boolean property.
2021-01-20 14:31:01 +01:00
Simon Hausmann
5f265ffc09
Split up ComponentWindow::run() into show(), hide() and sixtyfps::run_event_loop()
...
This allows creating multiple windows for example, and it will allow for
showing windows in those tests that require a mapped window.
As a bonus, the run() function on generated components is not consuming
anymore.
2021-01-19 09:50:22 +01:00
Simon Hausmann
58768bf70a
Add default bindings for width/height for Image and Text to their implicit size
2021-01-15 17:58:32 +01:00
Olivier Goffart
16f5a03c14
Run cargo fmt
2020-12-18 10:29:15 +01:00
Olivier Goffart
dfa25b96f7
Rename SharedArray to SharedVector
2020-12-18 10:26:07 +01:00
Olivier Goffart
0d2d48be4f
Rename "signal" to "callback"
2020-12-18 09:51:01 +01:00
Olivier Goffart
7f78bea8b5
Fix a bunch of cargo clippy warnings in the compiler
2020-12-07 12:54:38 +01:00
Olivier Goffart
2a751fcdc8
Remove debug output
2020-12-07 11:39:27 +01:00
Olivier Goffart
f9dc2af9f1
Small style change
2020-12-05 17:48:02 +01:00
Olivier Goffart
d81145e436
Fix native global component
...
Make sure the native style is tested on the CI
2020-12-05 17:00:38 +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
d6291a83b8
Fix warnings about case naming
...
Do not generate a public interfaces for internal components
2020-12-03 09:50:25 +01:00
Simon Hausmann
de603635db
Silcene warning about dead code
...
It's okay of the public as_ref() function isn't used in the imported/inline
app code
2020-12-03 09:49:17 +01:00
Simon Hausmann
bfa2078ea2
Clean up internal component naming in the Rust generator
...
Use InnerFoo for the struct that's pinned and Foo for the public
type that wraps the VRc<InnerFoo>.
2020-12-03 09:35:37 +01:00
Simon Hausmann
47152eee89
Remove the sixtyfps::Component trait
...
It is not needed anymore
2020-12-03 09:16:20 +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
83191c82cc
Remove ComponentHandle and ComponentWeakHandle
2020-12-03 08:13:40 +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
e83c50e6e4
Use the new API also for internally created components
2020-12-03 08:13:15 +01:00
Simon Hausmann
dd64226dc1
Implement sixtyfps::Weak
...
This is the counter-part to the strongly referencing type the compiler
generates for components.
2020-12-03 08:13:15 +01:00
Simon Hausmann
ff1d752bc6
First step towards a wrapping public component API without ComponentHandle
...
For now the compiler also generates FooRc next to Foo, which wraps a
strong reference (VRc) to Foo.
This is an intermediate step and at the end of the series FooRc should
replace Foo and sixtyfps::ComponentHandle.
2020-12-03 08:13:15 +01:00
Olivier Goffart
bff55d4f1b
Return value for signal
2020-12-01 18:52:51 +01:00