Olivier Goffart
d7b86cd0c4
Polishing of the interpreter API after review
2021-03-15 14:43:55 +01:00
Simon Hausmann
c2c3e00cd7
Remove ModelPtr
from the interpreter
...
Instead stick a straight `Rc<dyn ...>` into the `Value` enum
2021-03-15 14:43:01 +01:00
Simon Hausmann
c9ef9c93d8
Hide Value::PathData/EasingCurve/EnumerationValue
...
As discussed, these are not yet for public API
2021-03-15 12:58:00 +01:00
Simon Hausmann
a4c196df60
Use api::Struct
in Value::Struct
, replacing Value::Object
2021-03-15 12:55:39 +01:00
Olivier Goffart
8074f74d67
Implement From instead of TryFrom for Value
...
Since all the TryFrom are actually infaillible
2021-03-15 12:39:40 +01:00
Olivier Goffart
41f52f9ad4
Remove Value::Color
2021-03-15 12:33:47 +01:00
Olivier Goffart
34632206e6
Add some comments in the interpreter API
2021-03-15 12:13:41 +01:00
Olivier Goffart
5a416d0fc7
Make the Value non_exhaustive
2021-03-15 12:07:52 +01:00
Olivier Goffart
5c79f2dbe1
Expose the Diagnostic as the return type in the interpreter API
2021-03-15 11:56:30 +01:00
Simon Hausmann
2ae5b8413a
Fix wasm build
...
Re-add the compiler configuration internal API. When `from_string` is complete then we can switch to the new public
compiler config API.
And use diagnostics accessor functions.
2021-03-15 11:25:48 +01:00
Simon Hausmann
41f77b2a27
Use SharedVector
for Value::Array
instead of Vec
...
That will make it more efficient to pass data into the interpreter in the future,
especially from C++.
2021-03-15 10:19:35 +01:00
Simon Hausmann
fdeca052cb
Provide the same CompilerConfiguration wrapper in the interpreter API as in the Rust build API
2021-03-15 10:05:56 +01:00
Olivier Goffart
730b1ccff2
Refactor diagnostic: Merge BuildDiagnostic and FileDiagnostic
2021-03-12 19:32:50 +01:00
Olivier Goffart
436d113b1e
Rename ResourceReference
to ImageReference
in the compiler
2021-03-11 10:29:05 +01:00
Olivier Goffart
933c1bbf59
Rename Value::Resource
to Value::Image
2021-03-11 10:15:53 +01:00
Olivier Goffart
6f88d78303
Rename Resource
to ImageReference
in the runtime
2021-03-11 10:06:23 +01:00
Olivier Goffart
c840b046ae
Rename the "resource" type to "image"
2021-03-10 17:24:31 +01:00
Olivier Goffart
03d9938f8b
More WIP work into the interpreter API
2021-03-10 11:46:20 +01:00
Olivier Goffart
7584b571ea
Interpreter: refactor in preparation to expose a public API
2021-03-10 09:08:25 +01:00
Olivier Goffart
6154736910
Some work toward a public interpreter API
2021-03-09 19:31:29 +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
Simon Hausmann
2f3c280ebe
Fix cargo fmt --check
...
Not sure what happened but I guess the new release made it stricter
2021-02-18 13:45:42 +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
Simon Hausmann
3ba92bdc6d
Add API to the wasm interpreter to download and register fonts
2021-02-17 15:21:30 +01:00
Simon Hausmann
445ddd58d5
API cleanup
...
Remove the `application` infix from `register_application_font`, to
reduce the changes that it might be interpreted to be a function that
also changes the default font in all text elements.
2021-02-17 14:37:31 +01:00
Simon Hausmann
45fe6c3e8d
Add the ability to load application fonts by path
...
The viewer command line tool also gains the ability to specify them via `--app-font=/path/to/font.ttf` , which can be specified multiple times.
2021-02-17 14:16:52 +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
68de483f30
Ensure that the repeater are updated when we compute the layouts
...
Fixes #167
2021-02-12 10:07:33 +01:00
Olivier Goffart
9eac131ae5
Add the logo in the docs
2021-02-12 08:24:42 +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
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
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
Olivier Goffart
e4a1f50a9a
Brush support in the interpreter
2021-02-03 09:28:33 +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
fea2478859
Update version number everywhere
2021-01-28 16:34:13 +01:00
Simon Hausmann
6a4f2aa572
Added the two missing path sub-elements for quadratic and cubic curves
2021-01-28 14:14:24 +01:00
Simon Hausmann
a6fbc4c05d
Add missing MoveTo
sub-element for Path
2021-01-28 13:16:25 +01:00
Olivier Goffart
647f7effcd
Add TextWrap and TextOverflow enum and corresponding property in Text
...
Although they ar enot working yet
2021-01-27 11:40:09 +01:00
Olivier Goffart
9de5af75ce
Allow FocusScope to reject the events
2021-01-26 17:05:31 +01:00
Olivier Goffart
2e23b5bbdd
Handle native callbacks with return value
2021-01-26 17:05:30 +01:00