Gemini/Gemini/AppDelegate.swift

54 lines
1.7 KiB
Swift

//
// AppDelegate.swift
// Gemini
//
// Created by Shadowfacts on 7/12/20.
//
import Cocoa
import SwiftUI
import GeminiProtocol
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
var window: NSWindow!
var task: GeminiDataTask!
let url = URL(string: "gemini://localhost:1965/overview.gmi")!
func applicationDidFinishLaunching(_ aNotification: Notification) {
// Create the SwiftUI view that provides the window contents.
let contentView = ContentView()
// Create the window and set the content view.
window = NSWindow(
contentRect: NSRect(x: 0, y: 0, width: 480, height: 300),
styleMask: [.titled, .closable, .miniaturizable, .resizable, .fullSizeContentView],
backing: .buffered, defer: false)
window.isReleasedWhenClosed = false
window.center()
window.setFrameAutosaveName("Main Window")
window.contentView = NSHostingView(rootView: contentView)
window.title = "Gemini"
window.makeKeyAndOrderFront(nil)
task = try! GeminiDataTask(url: url, completion: { (result) in
switch result {
case let .success(response):
print("Received response header: \(response.header)")
print("Received data: \(String(describing: response.body))")
print(response.bodyText.debugDescription)
case let .failure(error):
print("Error: \(error)")
}
})
task.resume()
}
func applicationWillTerminate(_ aNotification: Notification) {
// Insert code here to tear down your application
}
}