Olivier Goffart
dd3fa1c221
Make the BindingMap hold RefCell of the BindingExpression
...
This will allow later to be able to operate on the binding despite the
element is borrowed.
Since the Binding itself is in a RefCell, the analysis don't need to
be anymore.
To do this change, a small change in the binding_analysis logic was required
which means that we will now detect binding loop if a binding was causing
two binding loop. (before, only one binding loop was detected)
2021-11-11 11:14:59 +01:00
Olivier Goffart
5f07678478
Make the layout pass work on non-inlined tree
2021-10-28 15:52:29 +02:00
Simon Hausmann
a318df522b
Prepare for optional inlining
...
Even if we make inlining optional, there are *some* situations where we just
need to do the inlining anyway to avoid
needless complexity.
2021-10-28 15:52:29 +02:00
Olivier Goffart
ae3e1b4680
Allow normal Element to be in the Dialog's button row with dialog-button-role
2021-10-05 09:46:20 +02:00
Simon Hausmann
d3dfd43bdc
Tweak dialog error messages
...
Replace "should" with "must"/"can only" to emphasize that this is an error.
2021-09-30 11:27:50 +02:00
Olivier Goffart
7db9f3dfa9
Dialog: automatically add clicked callback for the standard button
...
And make the viewer listen to them and set them to automatically close dialogs
2021-09-30 10:21:13 +02:00
Olivier Goffart
7f05bfa309
Add the Dialog element
2021-09-29 16:25:44 +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
Tobias Hunger
ce30f9b989
Janitor: Fix clippy::extra_unused_lifetimes
2021-08-09 13:19:34 +02:00
Tobias Hunger
52869170c1
Janitor: Fix clippy::identity_op
2021-08-09 13:19:34 +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
f7f5a33c67
Janitor: Fix clippy::useless_format
2021-07-30 09:27:48 +02:00
Simon Hausmann
2b5badcae2
Fix cargo fmt
2021-07-28 17:08:27 +02:00
Simon Hausmann
be05b54fa1
Tweak error message for conditionals/for in grid
...
Will adapt the tests in the next commit
Co-authored-by: Olivier Goffart <ogoffart@sixtyfps.io>
2021-07-28 17:08:27 +02:00
Simon Hausmann
e8727e98c5
Produce an error message when using if or for in grid layouts
...
An early error is better than a build error at compile time of generated code.
2021-07-28 17:08:27 +02:00
Tobias Hunger
2cdc5848a2
Janitor: Replace float comparison dance with approx_eq from euclid
...
Sixtyfps uses euclid already, so let's use euclid for float comparisons
as well.
I changed the code to decide whether a number is a positive integer to
make do without a comparison along the way.
2021-07-23 13:48:52 +02:00
Tobias Hunger
63bc31aa44
Janitor: Remove unnecessary closure
2021-07-08 20:43:38 +02:00
Tobias Hunger
e5bdeaa804
Janitor: Remove unnecessary &
2021-07-07 08:42:28 +02:00
Olivier Goffart
13bd828b96
Update license date
2021-07-02 15:55:54 +02:00
Tobias Hunger
13d7f5e7bd
Janitor: Fix typos in comments and user-facing strings
...
Also adapt tests for error messages containing the fixed strings.
No behavior change is intended!
2021-06-28 08:32:25 +02:00
Olivier Goffart
9b4bcab926
Better error message when overriding a layout property
...
As suggested by Simon
2021-06-23 17:15:49 +02:00
Olivier Goffart
e721a4cf1e
Report error when the 'x' or 'y' property is set for elements in layout
2021-06-23 16:53:45 +02:00
Olivier Goffart
962dc0075c
Layout: Make the default padding and spacing 0
...
and add Box widgets that have proper defaults
Closes #200
2021-06-21 14:29:53 +02:00
Olivier Goffart
19cef07d96
Properly detect loop in layout
...
cc #257
2021-06-18 20:30:14 +02:00
Olivier Goffart
deaa0fddb0
WIP layout: split vertical and horizontal cache
...
Split the vertical and horizontal pass into different property cache
This will allow to implement "height for with"
This patch does not port the Rust or C++ binding yet
2021-06-16 15:14:07 +02:00
Olivier Goffart
ee00c9eb92
Rename maximum- and minimum- properties to max- and min-
...
Issue #259
2021-06-14 10:28:30 +02:00
Olivier Goffart
73c396ed7a
Report binding loops for layouts
2021-05-18 12:25:19 +02:00
Olivier Goffart
fbdbe69fe7
Window: make hight and width fixed size, preferred-* property set the initial size
...
Issue #227
2021-05-18 10:23:06 +02:00
Olivier Goffart
6530518dd6
Some fixups after review
2021-05-11 14:59:57 +02:00
Olivier Goffart
ba1aff84d0
Layout refactoring: C++ part
2021-05-11 14:59:57 +02:00
Olivier Goffart
f99d7de5ad
Fixup layout in rust
2021-05-11 14:59:57 +02:00
Olivier Goffart
8da6c8cdb3
Lower PathLayout
...
As part of the layout refactoring, most of the path layout lowering
was gone. Add it back
2021-05-11 14:59:57 +02:00
Olivier Goffart
a990e01cd8
Apply the layout restrictions to the parent element
2021-05-11 14:59:57 +02:00
Olivier Goffart
f06bf8d5a7
Fix repeater in box layout
2021-05-11 14:59:57 +02:00
Olivier Goffart
b463e3cca4
WIP refactor layout
...
This commit add support for the box layout
2021-05-11 14:59:57 +02:00
Olivier Goffart
21a80f4562
WIP: Layout refactoring
...
Instead of using a solve_layout function in the component, use property to hold
a layout cache.
This commit only implement the GridLayout and only the interpreter part
2021-05-11 14:59:57 +02:00
Olivier Goffart
96ee9ea7a0
GridLayout: Element outside of a Row should go in a new row
2021-04-08 11:46:24 +02:00
Olivier Goffart
730b1ccff2
Refactor diagnostic: Merge BuildDiagnostic and FileDiagnostic
2021-03-12 19:32:50 +01:00
Olivier Goffart
7c48bcdd4c
Add the source file getter to the Spanned trait, and remove SpannedWithSourceFile
2021-03-11 14:09:55 +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
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
e09fa06226
Fix nested for layouts
...
Fixes #149
2021-02-01 12:38:56 +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
7f78bea8b5
Fix a bunch of cargo clippy warnings in the compiler
2020-12-07 12:54:38 +01:00
Olivier Goffart
ac3ce779e9
Make child_of_layout actually mean what it is named after
2020-12-02 18:36:23 +01:00
Olivier Goffart
957867d72a
More work on popup
2020-11-30 15:20:51 +01:00
Olivier Goffart
dec29e6d98
Allow to export structs
2020-11-17 12:22:10 +01:00
Simon Hausmann
9df18a3747
Apply default layout spacing and padding from the style
...
Extract the StyleMetrics from the style and pass it to the layout
lowering pass for application.
The tests were adjusted to explicitly specify the padding/spacing to
override the ugly style default.
2020-11-04 15:20:43 +01:00
Olivier Goffart
f855b18fb0
Implement min/max size restriction on the window
...
(Implemented in the interpreter only for now)
2020-10-29 19:08:52 +01:00
Olivier Goffart
a4671502ab
Allow to speccify a fixed width/height in the layout by setting the height or width
2020-10-26 19:09:01 +01:00