Commit graph

1597 commits

Author SHA1 Message Date
Olivier Goffart
b6137ecbc4 Error when trying to use internal builtin items 2021-08-09 17:43:22 +02:00
Tobias Hunger
c3ce321429 Janitor: Fix clippy::ptr_arg 2021-08-09 13:19:34 +02:00
Tobias Hunger
bac4d895ce Janitor: Fix clippy::while_let_on_iterator 2021-08-09 13:19:34 +02:00
Tobias Hunger
ce30f9b989 Janitor: Fix clippy::extra_unused_lifetimes 2021-08-09 13:19:34 +02:00
Tobias Hunger
58fa485b56 Janitor: Fix clippy::into_iter_on_ref 2021-08-09 13:19:34 +02:00
Tobias Hunger
52869170c1 Janitor: Fix clippy::identity_op 2021-08-09 13:19:34 +02:00
Olivier Goffart
a0a8cc3bc9 Mark the TabWidget as internal and re-export it from the style 2021-08-09 12:41:03 +02:00
Olivier Goffart
8728052578 Fix panic when typing into the line edit in the gallery
The problem was that the item array's parent was not properly
computed. Leading to corrupted item when getting the parent of the
focus item.
2021-08-09 12:00:17 +02:00
Olivier Goffart
d2e2eecf0d Allow parent element to contain contraints and still be able to set the height or width 2021-08-07 14:05:05 +02:00
Olivier Goffart
339ca0dc55 Tiny adjustment to the fluent style 2021-08-07 13:28:30 +02:00
Olivier Goffart
d03c9e3e5d Flient style: small fixup so that cargo-ui can compile with it 2021-08-07 10:17:22 +02:00
Olivier Goffart
84fb18d6cf Add a fluent style 2021-08-06 23:23:26 +02:00
Olivier Goffart
fa770ec262 Fix panic when one of the two branch of a condition is Type::Void
Throw a proper compilation error.
Note that there may be a bit too many error now when the two
branch of a condition are not the same, but it's better than a panic
2021-08-06 19:44:05 +02:00
Olivier Goffart
a89d83e58f Apply suggestions from code review
Co-authored-by: Simon Hausmann <simon.hausmann@sixtyfps.io>
2021-08-06 15:58:13 +02:00
Olivier Goffart
63db0959f9 Fix the TabWidget's ugly style size constraints 2021-08-06 15:58:13 +02:00
Olivier Goffart
b5f34fd1d7 Make it an error to use dynamic tabs in the TabWidget 2021-08-06 15:58:13 +02:00
Olivier Goffart
d41839abe3 Compiler pass for the TabWidget
it will lower the TabWidget into a TabWidgetImpl and the tabs into TabImpl
2021-08-06 15:58:13 +02:00
Olivier Goffart
29e0ae913c TabBar: implement something in the ugly style
and change the TabImpl API
2021-08-06 15:58:13 +02:00
Olivier Goffart
18572fbaa3 WIP: More TabWidget work in progress 2021-08-06 15:58:13 +02:00
Olivier Goffart
9d40779d69 WIP work for TabWidget 2021-08-06 15:58:13 +02:00
Tobias Hunger
61af35afe1 Janitor: Fix clippy::needless_update
This leaves some of these issues in, which may be triggered depending on
selected features. `#[allow(needless_update)]` is used to silence those.
2021-08-05 23:41:56 +02:00
Tobias Hunger
ff76aa8953 Janitor: Fix clippy::blocks_in_if_conditions 2021-08-05 23:41:56 +02:00
Tobias Hunger
9c12421c18 Janitor: Fix clippy::option_map_unit_fn 2021-08-05 23:41:56 +02:00
Tobias Hunger
24a2021226 Janitor: Fix clippy::needless_borrow 2021-08-04 22:50:35 +02:00
Tobias Hunger
ce4727b2e8 Janitor: Fix clippy::single_char_pattern 2021-08-04 22:50:35 +02:00
Tobias Hunger
89a93db6c7 Janitor: Fix clippy::many_single_char_names 2021-08-04 22:50:35 +02:00
Simon Hausmann
38cf156bf9 Fix regression of two-way binding on default geom'ed properties causing binding loop
Commit 064c39d625 introduced the regression that
if a two-way binding was set on a property that we'd also set a default geometry
on, we'd end up applying that on the two-way binding, causing a binding loop.

set_binding_if_not_set needs to only set the binding if... there's really none yet.

Fixes #385
2021-08-03 23:24:49 +02:00
Olivier Goffart
1dab4c35d9 For embedded data, store the extension in the binary
This is usefull for the detection of SVG
2021-08-03 16:15:31 +02:00
Simon Hausmann
b55931e601 Make the new window() accessor in generated C++ code const 2021-08-03 10:32:04 +02:00
Simon Hausmann
e97ecea480 Fix constness in generated C++ API
run(), show() and hide() should not be const, as well as the window() accessor.
2021-08-03 10:32:04 +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
29f5853332 Provide sixtyfps::Window by reference in the Rust API
This also removes Clone from the Window again, to avoid having to face
the question: Does cloning a window duplicate it on the screen?
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
Simon Hausmann
ee80d2e1bb Fix Image::load_from_path calls in generated Rust code
* Call unwrap() on the Result() returned by `load_from_path` to avoid `error[E0605]: non-primitive cast: `Result<Image, LoadImageError>` as `Image``

Tested manually with resource embedding disabled and compiling the memory game.
2021-08-02 18:39:23 +02:00
Olivier Goffart
2a74603bfa Another fixup 2021-08-02 18:31:46 +02:00
Olivier Goffart
1146cd1ae2 Another fixup 2021-08-02 18:29:03 +02:00
Olivier Goffart
9a07102345 Fixup previous commit 2021-08-02 18:27:16 +02:00
Simon Hausmann
53757331c7 Fix compilation of generated Rust code when not embedding images
We must construct a Path for `load_from_path`, not a SharedString.
2021-08-02 16:52:39 +02:00
Simon Hausmann
a6f3d91778 cleanup: Fix wording in the comment in the Rust code generator regarding the special return handling
Co-authored-by: Olivier Goffart <ogoffart@sixtyfps.io>
2021-08-02 16:32:33 +02:00
Simon Hausmann
fbf3c5fbd0 Minor reduction in generated Rust code (llvm lines)
When setting a constant, we only need to use a closure for the
expression if it contains a return statement.

This saves about ~14000 llvm lines for a debug build of the printer
demo.
2021-08-02 16:32:33 +02:00
Simon Hausmann
064c39d625 Fix disappearing elements with implicit width/height
When an element gets its width and height from the parent through an implicit 100% binding,
those bindings were missing when an animation was pre-defined.

The provided new-type wrapper offers a function to deal with replacing just
binding expression, instead of the
expression *and* the animation.

Fixes #376
2021-08-02 16:31:10 +02:00
Simon Hausmann
f91864f827 Minor cleanup: remove stray dbg! 2021-08-02 15:51:29 +02:00
Simon Hausmann
52aee8d366 Another minor reduction in generated code
Further build on b3529d1b75 and move the
strong/weak reference dance into the API crate out of the generated
code.

Saves ~21k llvm lines on the printer demo (debug).

It's also possible to move the as_pin_ref() bit, but that didn't
really give any savings overall.
2021-08-01 09:34:36 +02:00
Olivier Goffart
90cdb5ab5d Add a changed callback to Slider
Closes #125
2021-07-31 15:14:03 +02:00
Tobias Hunger
85f7c93c87 Janitor: Use approx_eq when checking for integer
Use approx_eq when comparing the value.trunc() to value. We want to
allow these values to be calculated, so they might end up slightly off.
2021-07-30 09:27:48 +02:00
Tobias Hunger
f3171a87e1 Janitor: Fix clippy::map_entry 2021-07-30 09:27:48 +02:00
Tobias Hunger
ec7b7f751b Janitor: Fix clippy::or_fun_call 2021-07-30 09:27:48 +02:00
Tobias Hunger
e5bb7762b9 Janitor: Fix clippy::useless_conversion 2021-07-30 09:27:48 +02:00
Tobias Hunger
f7f5a33c67 Janitor: Fix clippy::useless_format 2021-07-30 09:27:48 +02:00