1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-10-13 19:12:18 +00:00
serenity/Applications/Spreadsheet/CondView.gml
Andreas Kling 7dc5a3ead8 LibGUI: Rewrite layout system in terms of min and max sizes
This patch removes size policies and preferred sizes, and replaces them
with min-size and max-size for each widget.

Box layout now works in 3 passes:

    1) Set all items (widgets/spacers) to their min-size
    2) Distribute remaining space evenly, respecting max-size
    3) Place widgets one after the other, adding spacing in between

I've also added convenience helpers for setting a fixed size (which is
the same as setting min-size and max-size to the same value.)

This significantly reduces the verbosity of widget layout and makes GML
a bit more pleasant to write, too. :^)
2020-12-30 01:36:41 +01:00

63 lines
1.2 KiB
Text

@GUI::Widget {
layout: @GUI::VerticalBoxLayout {
spacing: 2
}
@GUI::Widget {
layout: @GUI::HorizontalBoxLayout {
spacing: 10
}
fixed_height: 25
@GUI::Label {
text: "if..."
fixed_width: 40
fixed_height: 25
}
@GUI::TextEditor {
name: "formula_editor"
fixed_height: 25
tooltip: "Use 'value' to refer to the current cell's value"
}
}
@GUI::Widget {
layout: @GUI::HorizontalBoxLayout {
spacing: 10
}
fixed_height: 25
@GUI::Label {
text: "Foreground..."
fixed_width: 150
fixed_height: 25
}
@GUI::ColorInput {
name: "foreground_input"
fixed_height: 25
}
}
@GUI::Widget {
layout: @GUI::HorizontalBoxLayout {
spacing: 10
}
fixed_height: 25
@GUI::Label {
text: "Background..."
fixed_width: 150
fixed_height: 25
}
@GUI::ColorInput {
name: "background_input"
fixed_height: 25
}
}
}