// // KeyboardView.swift // AllenWrench // // Created by Elizabeth Cray on 1/10/25. // Copyright © 2025 Cray. All rights reserved. // // TODO: // - if touch up outside view, close Kbd import SwiftUI struct KeyboardView: View { @State var db = Database() @State var cfg = Config() @State var size: CGSize = .zero var body: some View { VStack { HStack { ForEach(1...4, id: \.self) { z in VStack { ForEach(1...2, id: \.self) { y in quarterButton(label: "\(z) \(y)") } } } } HStack { ForEach(1...3, id: \.self) { z in VStack { ForEach(1...2, id: \.self) { y in quarterButton(label: "\(z) \(y)") } } } VStack { quarterButton(label: "RET") } } } GeometryReader { proxy in HStack {} // just an empty container to triggers the onAppear .onAppear { size = proxy.size } } } func quarterButton(label: any StringProtocol) -> some View { Button (label) { } .border(cfg.highlightColor) .frame( width: round(size.width/4), height: round(size.height/4) ) } } #Preview(traits:.fixedLayout(width: 645, height: 431)) { KeyboardView() }