1
0
mirror of https://github.com/nicoverbruggen/phpmon.git synced 2025-08-12 22:10:07 +02:00

🏗️ Layout changes

This commit is contained in:
2023-01-03 20:15:44 +01:00
parent e20d3ffd22
commit 5af7214320

View File

@@ -22,11 +22,11 @@ struct ServicesView: View {
) )
let view = NSHostingView(rootView: rootView) let view = NSHostingView(rootView: rootView)
view.autoresizingMask = [.width, .height] view.autoresizingMask = [.width]
view.setFrameSize( view.setFrameSize(
CGSize(width: view.frame.width, height: rootView.height + 30) CGSize(width: view.frame.width, height: rootView.height + 30)
) )
view.layer?.backgroundColor = CGColor.init(red: 255, green: 0, blue: 0, alpha: 0) view.layer?.backgroundColor = CGColor.init(red: 255, green: 0, blue: 0, alpha: 1)
view.focusRingType = .none view.focusRingType = .none
item.view = view item.view = view
@@ -35,27 +35,36 @@ struct ServicesView: View {
@ObservedObject var manager: ServicesManager @ObservedObject var manager: ServicesManager
var perRow: Int var perRow: Int
var rowCount: Int
var rowSpacing: Int = 2
var rowHeight: Int = 40
var statusHeight: Int = 30
var height: CGFloat var height: CGFloat
var chunkCount: Int
init(manager: ServicesManager, perRow: Int, height: CGFloat? = nil) { init(manager: ServicesManager, perRow: Int) {
self.manager = manager self.manager = manager
self.perRow = perRow self.perRow = perRow
self.chunkCount = manager.serviceWrappers.chunked(by: perRow).count self.rowCount = manager.serviceWrappers.chunked(by: perRow).count
self.height = CGFloat(40 * chunkCount + 25) self.height = CGFloat(
(rowHeight * rowCount)
+ ((rowCount - 1) * rowSpacing)
+ statusHeight
)
} }
var body: some View { var body: some View {
VStack { VStack(spacing: 0) {
VStack(alignment: .leading) { VStack(alignment: .leading, spacing: CGFloat(self.rowSpacing)) {
ForEach(manager.serviceWrappers.chunked(by: perRow), id: \.self) { chunk in ForEach(manager.serviceWrappers.chunked(by: perRow), id: \.self) { chunk in
HStack { HStack {
ForEach(chunk) { service in ForEach(chunk) { service in
ServiceView(service: service).frame(minWidth: 70) ServiceView(service: service)
.frame(minWidth: 70)
} }
} }
.frame(height: CGFloat(self.rowHeight))
.padding(CGFloat(self.rowSpacing))
} }
} }
.frame(height: self.height) .frame(height: self.height)
.frame(maxWidth: .infinity, alignment: .center) .frame(maxWidth: .infinity, alignment: .center)
@@ -70,7 +79,7 @@ struct ServicesView: View {
.font(.system(size: 12)) .font(.system(size: 12))
} }
} }
.frame(height: 25) .frame(height: CGFloat(self.statusHeight))
.frame(maxWidth: .infinity, alignment: .center) .frame(maxWidth: .infinity, alignment: .center)
} }
} }