From f923a3824561c6cf200c638e3d44d1cbf4adf7d8 Mon Sep 17 00:00:00 2001 From: Arturs Artamonovs Date: Sun, 5 Jan 2025 10:07:35 +0000 Subject: Waterfall: drawing from file initial implementatiom, visual version concept is ready --- WaterfallFile_UI/ContentView.swift | 94 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 WaterfallFile_UI/ContentView.swift (limited to 'WaterfallFile_UI/ContentView.swift') diff --git a/WaterfallFile_UI/ContentView.swift b/WaterfallFile_UI/ContentView.swift new file mode 100644 index 0000000..92445d8 --- /dev/null +++ b/WaterfallFile_UI/ContentView.swift @@ -0,0 +1,94 @@ +// +// ContentView.swift +// WaterfallFile_UI +// +// Created by Jacky Jack on 23/12/2024. +// + +import SwiftUI +import SwiftData +import AppKit + + +struct ContentView: View { + @Environment(\.modelContext) private var modelContext + + @EnvironmentObject var fileSpectrum: FileSpectrum + + @State private var image: Image? + + @Query private var items: [Item] + + var body: some View { + /* + NavigationSplitView { + List { + ForEach(items) { item in + NavigationLink { + Text("Item at \(item.timestamp, format: Date.FormatStyle(date: .numeric, time: .standard))") + } label: { + Text(item.timestamp, format: Date.FormatStyle(date: .numeric, time: .standard)) + } + } + .onDelete(perform: deleteItems) + } + .navigationSplitViewColumnWidth(min: 180, ideal: 200) + .toolbar { + ToolbarItem { + Button(action: addItem) { + Label("Add Item", systemImage: "plus") + } + } + } + } detail: { + Text("Select an item") + } + */ + //Image(decorative: fileSpectrum.makeSpectrogramImage(), scale: 1.0, orientation: .left) + VStack { + //Image(nsImage:fileSpectrum.outputImage) + Image(decorative: fileSpectrum.outputImage, + scale: 1, + orientation: .left) + //.resizable() + + + //Image(fileSpectrum.makeSpectrogramImage(), scale: 1, orientation:.left, label: "Image") + //Image(decorative: fileSpectrum.makeSpectrogramImage(), scale: 1.0, orientation: .left) + //Image(nsImage: fileSpectrum.makeSpectrogramImage()) + HStack { + Text("Hello world") + .padding() + Button("Start") { + print("Start") + } + Button("Stop") { + print("Stop") + } + Button("Load") { + print("Load") + } + } + } + } + + private func addItem() { + withAnimation { + let newItem = Item(timestamp: Date()) + modelContext.insert(newItem) + } + } + + private func deleteItems(offsets: IndexSet) { + withAnimation { + for index in offsets { + modelContext.delete(items[index]) + } + } + } +} + +#Preview { + ContentView() + .modelContainer(for: Item.self, inMemory: true) +} -- cgit v1.2.3