summaryrefslogtreecommitdiff
path: root/LearnMapKit
diff options
context:
space:
mode:
authorArturs Artamonovs <arturs.artamonovs@protonmail.com>2024-07-19 10:50:06 +0100
committerArturs Artamonovs <arturs.artamonovs@protonmail.com>2024-07-19 10:50:06 +0100
commit6ab97d2dfe563c2c43c2519b2e6f22494572045c (patch)
tree785e403b6804960fbf52fe64f11aeedf50a05f7c /LearnMapKit
parentb32ecfab276fb8e1dff0e1d72ed819b548323328 (diff)
downloadADSBDecoder-6ab97d2dfe563c2c43c2519b2e6f22494572045c.tar.gz
ADSBDecoder-6ab97d2dfe563c2c43c2519b2e6f22494572045c.zip
Add network configuration windows in LearnMapKit
Diffstat (limited to 'LearnMapKit')
-rw-r--r--LearnMapKit/ContentView.swift86
-rw-r--r--LearnMapKit/LearnMapKitApp.swift9
-rw-r--r--LearnMapKit/NetConfigView.swift45
3 files changed, 65 insertions, 75 deletions
diff --git a/LearnMapKit/ContentView.swift b/LearnMapKit/ContentView.swift
index 13ef64f..9f7fd29 100644
--- a/LearnMapKit/ContentView.swift
+++ b/LearnMapKit/ContentView.swift
@@ -9,6 +9,8 @@ import SwiftUI
import MapKit
import Collections
+
+
struct FlightView: View {
var evilClass: FlightState
@@ -41,6 +43,7 @@ struct ContentView: View {
@Binding var pos_queue: Deque<ADSBLocation>
@EnvironmentObject var evilClass: FlightState
+ @Environment(\.openWindow) private var openWindow
let initialPosition: MapCameraPosition = {
@@ -87,73 +90,6 @@ struct ContentView: View {
//.padding()
Map(initialPosition: initialPosition) {
- /*Annotation("plane1", coordinate: position1) {
- ZStack {
- RoundedRectangle(cornerRadius: 10)
- .fill(.background)
- RoundedRectangle(cornerRadius: 10)
- .stroke(.secondary,lineWidth: 5)
- Image(systemName:"airplane.circle.fill")
- .resizable()
- .frame(width:20,height: 20)
- }
- }.annotationTitles(.hidden)
- Annotation("plane2", coordinate: position2) {
- ZStack {
- RoundedRectangle(cornerRadius: 10)
- .fill(.background)
- RoundedRectangle(cornerRadius: 10)
- .stroke(.secondary,lineWidth: 5)
- Image(systemName:"airplane.circle.fill")
- .resizable()
- .frame(width:20,height: 20)
- }
- }.annotationTitles(.hidden)
- Annotation("plane3", coordinate: position3) {
- ZStack {
- RoundedRectangle(cornerRadius: 10)
- .fill(.background)
- RoundedRectangle(cornerRadius: 10)
- .stroke(.secondary,lineWidth: 5)
- Image(systemName:"airplane.circle.fill")
- .resizable()
- .frame(width:20,height: 20)
- }
- }.annotationTitles(.hidden)
- Annotation("plane4", coordinate: position4) {
- ZStack {
- RoundedRectangle(cornerRadius: 10)
- .fill(.background)
- RoundedRectangle(cornerRadius: 10)
- .stroke(.secondary,lineWidth: 5)
- Image(systemName:"airplane.circle.fill")
- .resizable()
- .frame(width:20,height: 20)
- }
- }.annotationTitles(.hidden)*//*
- ForEach(0..<evilClass.flight.count, id:\.self) { _ in
- Annotation("plane\(0)", coordinate: CLLocationCoordinate2D(latitude: evilClass.flight[0]?.lat!, longitude: evilClass.flight[0]?.long!)) {
- ZStack {
- RoundedRectangle(cornerRadius: 10)
- .fill(.background)
- RoundedRectangle(cornerRadius: 10)
- .stroke(.secondary,lineWidth: 5)
- Image(systemName:"airplane.circle.fill")
- .resizable()
- .frame(width:20,height: 20)
- }
- }.annotationTitles(.hidden)
- }*/
- //let c = self.evilClass.flight.count
- /*ForEach(0..<self.evilClass.flight.count, id:\.self) { exp in
- //print("Draw annotation")
- //Annotation("plane\(exp+4)", coordinate: CLLocationCoordinate2D(latitude: 55.80159, longitude:-3.53154+Double(exp)*0.1)) {
- Annotation("plane\(exp+4)", coordinate: CLLocationCoordinate2D(latitude: self.evilClass.flight[exp]!.lat, longitude:self.evilClass.flight[exp]!.long)) {
- Image(systemName:"airplane.circle.fill")
- .resizable()
- .frame(width:20,height: 20)
- }
- }*/
ForEach(self.evilClass.flight.sorted(by: { $0.key < $1.key} ), id:\.key) { k in
Annotation("\(k.key)", coordinate: CLLocationCoordinate2D(latitude: self.evilClass.flight[k.key]!.lat, longitude:self.evilClass.flight[k.key]!.long)) {
VStack {
@@ -183,6 +119,13 @@ struct ContentView: View {
Label("Import file", systemImage: "square.and.arrow.down")
}
}
+ ToolbarItem {
+ Button {
+ openWindow(id: "net-config")
+ } label: {
+ Label("Network config", systemImage: "network")
+ }
+ }
} .fileImporter(isPresented: $isImporting, allowedContentTypes: [.text], allowsMultipleSelection: false) {
result in switch result {
case .success(let files):
@@ -191,7 +134,7 @@ struct ContentView: View {
print(error)
}
}
- drawFlights()
+
}
.padding()
@@ -203,13 +146,6 @@ struct ContentView: View {
print("This is called")
}
- @ViewBuilder
- func drawFlights() -> some View {
- let c = self.evilClass.flight.count
- ForEach(0..<c, id:\.self) { exp in
- //Annotation("plane4", coordinate: position4)
- }
- }
}
//#Preview {
diff --git a/LearnMapKit/LearnMapKitApp.swift b/LearnMapKit/LearnMapKitApp.swift
index 1b64510..6c46f3b 100644
--- a/LearnMapKit/LearnMapKitApp.swift
+++ b/LearnMapKit/LearnMapKitApp.swift
@@ -7,12 +7,17 @@
import SwiftUI
import Collections
+import ArgumentParser
//https://www.hackingwithswift.com/quick-start/swiftui/how-to-run-code-when-your-app-launches
+
+
@main
struct LearnMapKitApp: App {
+
+
@State var queue: Deque<ADSBLocation> = []
@StateObject private var flightState = FlightState()
@@ -27,6 +32,10 @@ struct LearnMapKitApp: App {
WindowGroup {
ContentView(pos_queue: $queue)
}.environmentObject(flightState)
+
+ WindowGroup("Network", id: "net-config") {
+ NetConfigView()
+ }
}
}
diff --git a/LearnMapKit/NetConfigView.swift b/LearnMapKit/NetConfigView.swift
new file mode 100644
index 0000000..06fc5c2
--- /dev/null
+++ b/LearnMapKit/NetConfigView.swift
@@ -0,0 +1,45 @@
+//
+// NetConfigView.swift
+// LearnMapKit
+//
+// Created by Jacky Jack on 19/07/2024.
+//
+
+import SwiftUI
+
+struct NetConfigView: View {
+ @State private var server_name: String = ""
+ @State private var server_port: String = ""
+ @Environment(\.dismissWindow) private var dismissWindow
+
+ var body: some View {
+ VStack {
+ HStack {
+ Text("Server")
+ TextField("Server", text: $server_name)
+ }
+ HStack {
+ Text("Port")
+ TextField("Port", text: $server_port)
+ }
+ HStack {
+ Button(action:{
+ print("Cancel")
+ dismissWindow(id:"net-config")
+ }) {
+ Text("Cancel")
+ }
+ Button(action: {
+ print("Save config")
+ dismissWindow(id:"net-config")
+ }) {
+ Text("Save")
+ }
+ }
+ }
+ }
+}
+
+#Preview {
+ NetConfigView()
+}