Olivier Goffart
84e394a006
Fix regression when overriding the with of a Component that specifies limits
...
We were comparing the priorities of different component, which does
not make sense
This is a regression found with the crater run
2021-11-24 10:21:00 +01:00
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
Simon Hausmann
7b4bdfc9ca
Fix binding loop syntax tests failing
...
The parent commit accidentally removed the case of the generation for
the implicit layout info call where the layout info property is
available on a component (i.e. it is in a layout).
Amends commit ae25dd3d07
2021-10-29 08:15:20 +02:00
Simon Hausmann
ae25dd3d07
Fix calls to BuiltinFunction::ImplicitLayoutInfo for sub-components in C++
...
Provide a layout_info implementation for sub-components and call it. This
disables the lowering the implicit_layout_info call again,
also to ensure that when this
is installed from the use-site of the sub-component, the self can be used to obtain
the info (by calling the new generated function).
2021-10-28 21:49:07 +02:00
Olivier Goffart
8622dcb910
Do the default_geometry pass without inlining
2021-10-28 15:52:29 +02:00
Olivier Goffart
5f07678478
Make the layout pass work on non-inlined tree
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
Olivier Goffart
7f05bfa309
Add the Dialog element
2021-09-29 16:25:44 +02:00
Olivier Goffart
131d14058b
Fix C++ generated code when the numbers are too big
2021-09-05 09:29:00 +02:00
Olivier Goffart
a883ca0569
Optimize away Rectangle that serve no purpose
...
Rectangles which do not draw anything and have no x or y don't need to be in
the item tree, we can just remove them.
2021-09-05 09:29:00 +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
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
Tobias Hunger
9c12421c18
Janitor: Fix clippy::option_map_unit_fn
2021-08-05 23:41:56 +02:00
Tobias Hunger
aeebbb1d96
Janitor: Fix remaining clippy::option_map_unit_fn
2021-07-21 19:44:57 +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
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
7aba0f2a0b
Layout split of horizontal/vertical
...
Rust part
2021-06-16 15:14:07 +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
b01884f3b9
Layout refactor: do the rust part
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
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
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
7ae850d564
Rename Type::Length -> Type::PhysicalLength
2021-04-21 17:15:19 +02:00
Olivier Goffart
3f3a4c4ec9
Store the actual property declaration node
...
so that the goto definition can go to the right location
2021-04-18 14:19:38 +02:00
Olivier Goffart
aeff269bd4
Fix another panic caused by some NamedReference of the layout not being visited
2021-04-14 17:23:33 +02:00
Simon Hausmann
c448003e2f
Add test case for preferred size in boxes bug
...
Amends commit 7c1738eeea
This also adds the preferred-width/height fake properties to allow overriding.
2021-04-08 16:13:53 +02:00
Olivier Goffart
85986c39bd
Layouting: make the materialize fake layout property have an actual value
...
So that when we query it from the code, it has a value
2021-04-08 14:35:16 +02:00
Olivier Goffart
5dfa2549c8
Put the named reference in a Rc so it will be easier to compute the use count and suck
2021-03-29 15:16:41 +02: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
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
e2db0e49dc
Fix explicit size in box layouts using for
...
Fixes #147
2021-01-29 16:35:59 +01:00
Olivier Goffart
8e8c6ab690
Avoid self-references in the created layout properties
...
Fixes #140
2021-01-28 15:06:19 +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
4a182ef4d0
Layout alignment
2020-11-03 12:22:34 +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
Olivier Goffart
9ec2013a3a
Layout refactor: move the constraints dirrectly into the layout item
2020-10-26 17:17:29 +01:00
Olivier Goffart
47be71e16d
Introduce layout stretching
2020-10-26 16:40:35 +01:00
Olivier Goffart
7ff0b4b73f
Vertical layout
2020-10-26 14:19:12 +01:00
Olivier Goffart
aeade826fe
New runtime implementation for the box layout
...
Currently only horizontal layout is supported
2020-10-26 14:19:12 +01:00
Olivier Goffart
537051a1e4
Refactor get_layout_info_ref to contains the constraints
2020-10-26 14:19:12 +01:00
Olivier Goffart
c659c4369a
Refactor the Layout generation code
2020-10-26 10:07:31 +01:00
Olivier Goffart
de17702a38
Layout: Attempt to reduce code duplication between rust and c++ codegen
2020-10-24 12:15:21 +02:00
Olivier Goffart
ed01d8369a
Start working on VerticalLayout/HorizontalLayout
2020-10-23 14:08:58 +02:00