Skip to content

Commit a1ca128

Browse files
committed
Allow spacer to grow and shrink
Converted all the StackPanel into a Grid
1 parent 766b38e commit a1ca128

File tree

1 file changed

+20
-8
lines changed

1 file changed

+20
-8
lines changed

Sources/WinUIBackend/WinUIBackend.swift

+20-8
Original file line numberDiff line numberDiff line change
@@ -72,29 +72,41 @@ public struct WinUIBackend: AppBackend {
7272
public func show(widget _: Widget) {}
7373

7474
public func createVStack() -> Widget {
75-
StackPanel()
75+
Grid()
7676
}
7777

7878
public func addChild(_ child: Widget, toVStack container: Widget) {
79-
(container as! StackPanel).children.append(child)
79+
let grid = container as! Grid
80+
let rowDefinition = RowDefinition()
81+
if child.name != "Spacer" {
82+
rowDefinition.height = GridLength(value: 1, gridUnitType: .auto)
83+
}
84+
Grid.setRow(child, Int32(grid.rowDefinitions.count))
85+
grid.rowDefinitions.append(rowDefinition)
86+
grid.children.append(child)
8087
}
8188

8289
public func setSpacing(ofVStack widget: Widget, to spacing: Int) {
83-
(widget as! StackPanel).spacing = Double(spacing)
90+
(widget as! Grid).rowSpacing = Double(spacing)
8491
}
8592

8693
public func createHStack() -> Widget {
87-
let stack = StackPanel()
88-
stack.orientation = .horizontal
89-
return stack
94+
Grid()
9095
}
9196

9297
public func addChild(_ child: Widget, toHStack container: Widget) {
93-
(container as! StackPanel).children.append(child)
98+
let grid = container as! Grid
99+
let columnDefinition = ColumnDefinition()
100+
if child.name != "Spacer" {
101+
columnDefinition.width = GridLength(value: 1, gridUnitType: .auto)
102+
}
103+
Grid.setColumn(child, Int32(grid.columnDefinitions.count))
104+
grid.columnDefinitions.append(columnDefinition)
105+
grid.children.append(child)
94106
}
95107

96108
public func setSpacing(ofHStack widget: Widget, to spacing: Int) {
97-
(widget as! StackPanel).spacing = Double(spacing)
109+
(widget as! Grid).columnSpacing = Double(spacing)
98110
}
99111

100112
public func createSingleChildContainer() -> Widget {

0 commit comments

Comments
 (0)