libui/redo/osxaltest/main.swift

57 lines
1.3 KiB
Swift

// 31 july 2015
import Cocoa
var spaced = false
var firstvert = true
// keep alive
// apparently I'm not allowed to declare a variable and then assign to it first thing in a function
// it'd be great if people weren't so afraid of nil pointers
var keepAliveMainwin: Window? = nil
func appLaunched() {
var mainwin = Window()
mainwin.SetMargined(spaced)
var box = Box(vertical: firstvert, padded: spaced)
mainwin.SetControl(box)
box.Add(Entry(), false)
box.Add(Button("Button"), false)
mainwin.Show()
keepAliveMainwin = mainwin
}
class appDelegate : NSObject, NSApplicationDelegate {
func applicationDidFinishLaunching(note: NSNotification) {
appLaunched()
}
func applicationShouldTerminateAfterLastWindowClosed(app: NSApplication) -> Bool {
return true
}
}
func main() {
for arg in dropFirst(Process.arguments) {
if arg == "spaced" {
spaced = true
} else if arg == "horizontal" {
firstvert = false
} else {
fatalError("unrecognized option \(arg)")
}
}
var app = NSApplication.sharedApplication()
app.setActivationPolicy(NSApplicationActivationPolicy.Regular)
// NSApplication.delegate is weak; if we don't use the temporary variable, the delegate will die before it's used
var delegate = appDelegate()
app.delegate = delegate
app.run()
}
main()