From 3ef1a6e60d6d7f1819d9e2934794a7b1a5807bc5 Mon Sep 17 00:00:00 2001 From: Nico Verbruggen Date: Tue, 25 Jul 2023 19:24:04 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8F=97=EF=B8=8F=20Example=20of=20what=20a?= =?UTF-8?q?=20preference=20view=20might=20be?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PHP Monitor.xcodeproj/project.pbxproj | 4 ++ .../PHP Config Editor/UI/ByteLimitView.swift | 57 +++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 phpmon/Modules/PHP Config Editor/UI/ByteLimitView.swift diff --git a/PHP Monitor.xcodeproj/project.pbxproj b/PHP Monitor.xcodeproj/project.pbxproj index 20c876d..0222a0b 100644 --- a/PHP Monitor.xcodeproj/project.pbxproj +++ b/PHP Monitor.xcodeproj/project.pbxproj @@ -712,6 +712,7 @@ C4D5576529C77CC5001A44CD /* PhpVersionManagerWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D5576329C77CC5001A44CD /* PhpVersionManagerWindowController.swift */; }; C4D5576629C77CC5001A44CD /* PhpVersionManagerWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D5576329C77CC5001A44CD /* PhpVersionManagerWindowController.swift */; }; C4D5576729C77CC5001A44CD /* PhpVersionManagerWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D5576329C77CC5001A44CD /* PhpVersionManagerWindowController.swift */; }; + C4D5857C2A7038DB00DDBB63 /* ByteLimitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D5857B2A7038DB00DDBB63 /* ByteLimitView.swift */; }; C4D5CFCA27E0F9CD00035329 /* NginxConfigurationFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D5CFC927E0F9CD00035329 /* NginxConfigurationFile.swift */; }; C4D5CFCB27E0F9CD00035329 /* NginxConfigurationFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D5CFC927E0F9CD00035329 /* NginxConfigurationFile.swift */; }; C4D8016622B1584700C6DA1B /* Startup.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D8016522B1584700C6DA1B /* Startup.swift */; }; @@ -1052,6 +1053,7 @@ C4D36619291173EA006BD146 /* DictionaryExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DictionaryExtension.swift; sourceTree = ""; }; C4D4CB3629C109CF00DB9F93 /* InternalSwitcher+Valet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "InternalSwitcher+Valet.swift"; sourceTree = ""; }; C4D5576329C77CC5001A44CD /* PhpVersionManagerWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhpVersionManagerWindowController.swift; sourceTree = ""; }; + C4D5857B2A7038DB00DDBB63 /* ByteLimitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ByteLimitView.swift; sourceTree = ""; }; C4D5CFC927E0F9CD00035329 /* NginxConfigurationFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NginxConfigurationFile.swift; sourceTree = ""; }; C4D8016522B1584700C6DA1B /* Startup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Startup.swift; sourceTree = ""; }; C4D89BC52783C99400A02B68 /* ComposerJson.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposerJson.swift; sourceTree = ""; }; @@ -1483,6 +1485,7 @@ isa = PBXGroup; children = ( C44DFA7B2A67043000B98ED5 /* ConfigManagerView.swift */, + C4D5857B2A7038DB00DDBB63 /* ByteLimitView.swift */, ); path = UI; sourceTree = ""; @@ -2468,6 +2471,7 @@ 03E36FE728D9219000636F7F /* ActiveShell.swift in Sources */, C4D9ADBF277610E1007277F4 /* PhpSwitcher.swift in Sources */, C45E76142854A65300B4FE0C /* ServicesManager.swift in Sources */, + C4D5857C2A7038DB00DDBB63 /* ByteLimitView.swift in Sources */, C4D4CB3729C109CF00DB9F93 /* InternalSwitcher+Valet.swift in Sources */, C46EBC4728DB9644007ACC74 /* RealShell.swift in Sources */, C4068CAA27B0890D00544CD5 /* MenuBarIcons.swift in Sources */, diff --git a/phpmon/Modules/PHP Config Editor/UI/ByteLimitView.swift b/phpmon/Modules/PHP Config Editor/UI/ByteLimitView.swift new file mode 100644 index 0000000..042a325 --- /dev/null +++ b/phpmon/Modules/PHP Config Editor/UI/ByteLimitView.swift @@ -0,0 +1,57 @@ +// +// ByteLimitView.swift +// PHP Monitor +// +// Created by Nico Verbruggen on 25/07/2023. +// Copyright © 2023 Nico Verbruggen. All rights reserved. +// + +import SwiftUI + +struct PreferenceContainer: View { + private var name: String = "Memory Limit" + private var description: String = "This is the maximum memory a given PHP script may consume." + private var controlView: some View = ByteLimitView() + + var body: some View { + VStack(alignment: .leading, spacing: 10) { + HStack(spacing: 50) { + Text(self.name).bold() + controlView + } + .frame(width: 300) + Text(self.description).font(.subheadline) + } + .padding(10) + } +} + +struct ByteLimitView: View { + @State private var selection = "256 MB" + + let colors = [ + "128 MB", + "256 MB", + "512 MB", + "1 GB", + "2 GB", + "Unlimited", + "Other" + ] + + var body: some View { + Picker("Limit Name", selection: $selection) { + ForEach(colors, id: \.self) { + Text($0) + } + } + .labelsHidden() + .pickerStyle(.menu) + } +} + +struct ByteLimitView_Previews: PreviewProvider { + static var previews: some View { + PreferenceContainer() + } +}