diff --git a/ArkitDoushiQi/ArkitDoushiQi.xcodeproj/project.pbxproj b/ArkitDoushiQi/ArkitDoushiQi.xcodeproj/project.pbxproj index a8927be..a6f65eb 100644 --- a/ArkitDoushiQi/ArkitDoushiQi.xcodeproj/project.pbxproj +++ b/ArkitDoushiQi/ArkitDoushiQi.xcodeproj/project.pbxproj @@ -9,6 +9,7 @@ /* Begin PBXBuildFile section */ C20310D62BFCB5FB0031657D /* DoushiQiPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = C20310D52BFCB5FB0031657D /* DoushiQiPicker.swift */; }; C20310D82BFCC2410031657D /* ParametersMenuView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C20310D72BFCC2410031657D /* ParametersMenuView.swift */; }; + C20310DA2BFCC8600031657D /* ToggleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C20310D92BFCC8600031657D /* ToggleView.swift */; }; C205A2B72BF373360097BD93 /* ArkitDoushiQiApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = C205A2B62BF373360097BD93 /* ArkitDoushiQiApp.swift */; }; C205A2B92BF373360097BD93 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C205A2B82BF373360097BD93 /* ContentView.swift */; }; C205A2BB2BF373380097BD93 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C205A2BA2BF373380097BD93 /* Assets.xcassets */; }; @@ -40,6 +41,7 @@ /* Begin PBXFileReference section */ C20310D52BFCB5FB0031657D /* DoushiQiPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DoushiQiPicker.swift; sourceTree = ""; }; C20310D72BFCC2410031657D /* ParametersMenuView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParametersMenuView.swift; sourceTree = ""; }; + C20310D92BFCC8600031657D /* ToggleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToggleView.swift; sourceTree = ""; }; C205A2B32BF373360097BD93 /* ArkitDoushiQi.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ArkitDoushiQi.app; sourceTree = BUILT_PRODUCTS_DIR; }; C205A2B62BF373360097BD93 /* ArkitDoushiQiApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArkitDoushiQiApp.swift; sourceTree = ""; }; C205A2B82BF373360097BD93 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; @@ -118,6 +120,7 @@ C24659E82BF60FAA004E80D5 /* MainMenuButton.swift */, C20310D52BFCB5FB0031657D /* DoushiQiPicker.swift */, C20310D72BFCC2410031657D /* ParametersMenuView.swift */, + C20310D92BFCC8600031657D /* ToggleView.swift */, ); path = "Preview Content"; sourceTree = ""; @@ -275,6 +278,7 @@ C20310D82BFCC2410031657D /* ParametersMenuView.swift in Sources */, C205A2B72BF373360097BD93 /* ArkitDoushiQiApp.swift in Sources */, C20310D62BFCB5FB0031657D /* DoushiQiPicker.swift in Sources */, + C20310DA2BFCC8600031657D /* ToggleView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/ArkitDoushiQi/ArkitDoushiQi/ArkitDoushiQiApp.swift b/ArkitDoushiQi/ArkitDoushiQi/ArkitDoushiQiApp.swift index 61212e9..270b422 100644 --- a/ArkitDoushiQi/ArkitDoushiQi/ArkitDoushiQiApp.swift +++ b/ArkitDoushiQi/ArkitDoushiQi/ArkitDoushiQiApp.swift @@ -9,9 +9,11 @@ import SwiftUI @main struct ArkitDoushiQiApp: App { - var body: some Scene { - WindowGroup { - ContentView() - } + @AppStorage("isDarkMode") private var isDarkMode = false + var body: some Scene { + WindowGroup { + ContentView() + .preferredColorScheme(isDarkMode ? .dark : .light) + } } } diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/Color.colorset/Contents.json b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/Color.colorset/Contents.json new file mode 100644 index 0000000..22c4bb0 --- /dev/null +++ b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/Color.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ArkitDoushiQi/ArkitDoushiQi/Preview Content/MainMenu.swift b/ArkitDoushiQi/ArkitDoushiQi/Preview Content/MainMenu.swift index 04a5596..155e55b 100644 --- a/ArkitDoushiQi/ArkitDoushiQi/Preview Content/MainMenu.swift +++ b/ArkitDoushiQi/ArkitDoushiQi/Preview Content/MainMenu.swift @@ -9,6 +9,7 @@ import SwiftUI struct MainMenu: View { @State private var action: Int? = 0 + @AppStorage("isDarkMode") private var isDarkMode = false var body: some View { NavigationView { VStack { diff --git a/ArkitDoushiQi/ArkitDoushiQi/Preview Content/ToggleView.swift b/ArkitDoushiQi/ArkitDoushiQi/Preview Content/ToggleView.swift new file mode 100644 index 0000000..647a217 --- /dev/null +++ b/ArkitDoushiQi/ArkitDoushiQi/Preview Content/ToggleView.swift @@ -0,0 +1,27 @@ +// +// ToggleView.swift +// ArkitDoushiQi +// +// Created by Johan LACHENAL on 21/05/2024. +// + +import SwiftUI + +struct ToggleView: View { + @AppStorage("isDarkMode") private var isDarkMode = false + var body: some View { + Divider().background(Color.gray).padding(.vertical, 1) + Toggle("Dark Mode", isOn: $isDarkMode) + .toggleStyle(SwitchToggleStyle(tint: .blue)) + .padding(EdgeInsets(top: 0, leading: 32, bottom: 0, trailing: 32)) + Divider().background(Color.gray).padding(.vertical, 1) + } +} + +struct ToggleView_Previews: PreviewProvider { + static var previews: some View { + VStack{ + ToggleView() + } + } +}