blob: c59afd75c72e26b30e41612258220555cec76aae (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
import SwiftUI
struct OutputSettings: View {
@AppStorage("outputFormats") var outputFormats: OutputFormatSetting = .all
@AppStorage("frameRate") var frameRate = 10.0
private var anyState: String { "\(outputFormats), \(frameRate)" }
var body: some View {
Form {
VStack (alignment: .center) {
LabeledContent("GIF Framerate") {
Slider(value: $frameRate, in: 4...10, step: 1) {
Text("\(Int(frameRate))").font(.body).frame(width: 24)
} minimumValueLabel: {
Text("4")
} maximumValueLabel: {
Text("10")
}
}.font(.headline)
Picker(selection: $outputFormats, label: Text("Output Formats").font(.headline)) {
Text("GIF & MP4")
.tag(OutputFormatSetting.all)
.padding(.horizontal, 4.0)
.padding(.vertical, 2.0)
Text("Only GIF")
.tag(OutputFormatSetting.gifOnly)
.padding(.horizontal, 4.0)
.padding(.vertical, 2.0)
Text("Only MP4")
.tag(OutputFormatSetting.mp4Only)
.padding(.horizontal, 4.0)
.padding(.vertical, 2.0)
}.pickerStyle(.radioGroup)
}
Spacer()
}
.onChange(of: anyState) { _ in
NotificationCenter.default.post(name: .reloadConfiguration, object: nil, userInfo: nil)
}
}
}
#Preview {
OutputSettings()
}
|