mirror of
https://github.com/slint-ui/slint.git
synced 2025-12-23 09:19:32 +00:00
GridLayout: introduce an Organize step to compute row/col
This allows to store the result into a different cache property than the one that comes out of solve_grid_layout, which fixes a binding loop when the text of a widget depends on its row or col value.
This commit is contained in:
parent
aef30acbee
commit
8ae28adb6b
16 changed files with 557 additions and 274 deletions
|
|
@ -123,19 +123,32 @@ inline SharedVector<float> solve_box_layout(const cbindgen_private::BoxLayoutDat
|
|||
return result;
|
||||
}
|
||||
|
||||
inline SharedVector<float> solve_grid_layout(const cbindgen_private::GridLayoutData &data,
|
||||
cbindgen_private::Orientation orientation)
|
||||
inline SharedVector<float>
|
||||
organize_grid_layout(cbindgen_private::Slice<cbindgen_private::GridLayoutInputData> input_data)
|
||||
{
|
||||
SharedVector<float> result;
|
||||
cbindgen_private::slint_solve_grid_layout(&data, orientation, &result);
|
||||
cbindgen_private::slint_organize_grid_layout(input_data, &result);
|
||||
return result;
|
||||
}
|
||||
|
||||
inline SharedVector<float>
|
||||
solve_grid_layout(const cbindgen_private::GridLayoutData &data,
|
||||
cbindgen_private::Slice<cbindgen_private::LayoutInfo> constraints,
|
||||
cbindgen_private::Orientation orientation)
|
||||
{
|
||||
SharedVector<float> result;
|
||||
cbindgen_private::slint_solve_grid_layout(&data, constraints, orientation, &result);
|
||||
return result;
|
||||
}
|
||||
|
||||
inline cbindgen_private::LayoutInfo
|
||||
grid_layout_info(cbindgen_private::Slice<cbindgen_private::GridLayoutCellData> cells, float spacing,
|
||||
const cbindgen_private::Padding &padding, cbindgen_private::Orientation o)
|
||||
grid_layout_info(const cbindgen_private::GridLayoutOrganizedData &organized_data,
|
||||
cbindgen_private::Slice<cbindgen_private::LayoutInfo> constraints, float spacing,
|
||||
const cbindgen_private::Padding &padding,
|
||||
cbindgen_private::Orientation orientation)
|
||||
{
|
||||
return cbindgen_private::slint_grid_layout_info(cells, spacing, &padding, o);
|
||||
return cbindgen_private::slint_grid_layout_info(&organized_data, constraints, spacing, &padding,
|
||||
orientation);
|
||||
}
|
||||
|
||||
inline cbindgen_private::LayoutInfo
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue