Gemini/Gemini/AppDelegate.swift

48 lines
1.3 KiB
Swift
Raw Normal View History

2020-07-13 01:35:00 +00:00
//
// AppDelegate.swift
// Gemini
//
// Created by Shadowfacts on 7/12/20.
//
import Cocoa
import SwiftUI
2020-07-13 22:22:36 +00:00
import GeminiProtocol
2020-07-15 22:30:12 +00:00
import Combine
2020-07-13 01:35:00 +00:00
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
2020-07-15 22:30:12 +00:00
var windowControllers = [BrowserWindowController]()
2020-07-13 01:35:00 +00:00
2020-07-16 03:09:42 +00:00
static let homePage = URL(string: "gemini://gemini.circumlunar.space/")!
2020-07-13 22:22:36 +00:00
2020-07-13 01:35:00 +00:00
func applicationDidFinishLaunching(_ aNotification: Notification) {
2020-07-15 22:30:12 +00:00
let wc = BrowserWindowController()
windowControllers.append(wc)
wc.showWindow(nil)
2020-07-13 01:35:00 +00:00
}
func applicationWillTerminate(_ aNotification: Notification) {
// Insert code here to tear down your application
}
2020-07-16 03:09:42 +00:00
func createNewWindowTab(attachedTo existingWindow: NSWindow) {
let wc = BrowserWindowController()
windowControllers.append(wc)
if let tabGroup = existingWindow.tabGroup {
wc.window!.setFrame(existingWindow.frame, display: false)
tabGroup.addWindow(wc.window!)
tabGroup.selectedWindow = wc.window!
}
}
@IBAction func newTab(_ sender: Any?) {
if let keyWindow = windowControllers.first(where: { $0.window != nil && $0.window!.isKeyWindow })?.window {
createNewWindowTab(attachedTo: keyWindow)
}
}
2020-07-13 01:35:00 +00:00
2020-07-13 22:22:36 +00:00
}