Skip to content

Commit c7c186f

Browse files
committed
Subdivide button now opens the Subdivide page
1 parent e9b00da commit c7c186f

4 files changed

Lines changed: 42 additions & 14 deletions

File tree

Source/TriangleDrawMain/Canvas/Menu/HCMenuSubdivideView.swift

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,46 @@
22
import SwiftUI
33

44
struct HCMenuSubdivideView: View {
5-
@State private var divisionSize: UInt = 2
5+
let applySubdivide: (_ n: UInt8) -> Void
6+
@State private var divisionSize: UInt8 = 2
7+
let pickerValues: [UInt8] = [2, 3, 4, 5, 6, 7]
68

79
var body: some View {
810
Form {
9-
Text("Split up all triangles into smaller triangles")
10-
Picker("Divisions", selection: $divisionSize) {
11-
Text("2").tag(2)
12-
Text("3").tag(3)
13-
Text("4").tag(4)
14-
Text("5").tag(5)
15-
Text("6").tag(6)
16-
Text("7").tag(7)
17-
}.pickerStyle(.wheel)
18-
Button("Apply") {}
11+
Section() {
12+
HStack {
13+
Spacer()
14+
Text("Split up all triangles\ninto smaller triangles")
15+
.multilineTextAlignment(.center)
16+
.font(.title2)
17+
Spacer()
18+
}
19+
}
20+
Section() {
21+
Text("Select number of divisions")
22+
23+
Picker("Subdivide", selection: $divisionSize) {
24+
ForEach(pickerValues, id: \.self) { i in
25+
Text(String(i))
26+
}
27+
}
28+
.id(pickerValues)
29+
.pickerStyle(.wheel)
30+
31+
Button("Apply") {
32+
self.applySubdivide(divisionSize)
33+
}
34+
.fontWeight(.bold)
35+
.frame(maxWidth: .infinity, alignment: .center)
36+
}
1937
}
38+
.navigationTitle("Subdivide")
39+
.navigationBarTitleDisplayMode(.inline)
2040
}
2141
}
2242

2343
struct HCMenuSubdivideView_Previews: PreviewProvider {
2444
static var previews: some View {
25-
HCMenuSubdivideView()
45+
HCMenuSubdivideView() { _ in }
2646
}
2747
}

Source/TriangleDrawMain/Canvas/Menu/HCMenuView.swift

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ struct HCMenuView: View {
99
@State private var symmetryMode: SymmetryMode = SymmetryMode.noSymmetry
1010

1111
var body: some View {
12-
NavigationView {
12+
NavigationStack {
1313
Form {
1414
Section(header: Text("Grid system")) {
1515
Picker("Format", selection: $gridMode) {
@@ -22,7 +22,12 @@ struct HCMenuView: View {
2222
Text(value.localizedDisplayName).tag(value)
2323
}
2424
}
25-
Button("Subdivide") {}
25+
NavigationLink("Subdivide") {
26+
HCMenuSubdivideView() { n in
27+
model.delegate?.hcMenuViewController_applySubdivide(n: n)
28+
dismiss()
29+
}
30+
}
2631
}
2732
Section(header: Text("Export")) {
2833
Button("Bitmap PNG") {}

Source/TriangleDrawMain/Canvas/Menu/HCMenuViewController.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ class HCMenuViewController: RFFormViewController {
5454

5555
static func create(document: HexagonCanvasMenuDocument, delegate: HCMenuViewControllerDelegate?) -> UIViewController {
5656
let model = HCMenuViewModel.create()
57+
model.delegate = delegate
5758
return UIHostingController(rootView: HCMenuView(model: model))
5859
}
5960

Source/TriangleDrawMain/Canvas/Menu/HCMenuViewModel.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import Combine
44
import SwiftUI
55

66
public class HCMenuViewModel: ObservableObject {
7+
weak var delegate: HCMenuViewControllerDelegate?
8+
79
static func create() -> HCMenuViewModel {
810
let instance = HCMenuViewModel()
911
return instance

0 commit comments

Comments
 (0)