123 lines
2.7 KiB
Swift
123 lines
2.7 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)
|
||
|
|
||
|
/*
|
||
|
var hbox = {(entrys: Bool, buttons: Bool) -> Box in
|
||
|
var hbox = Box(vertical: !firstvert, padded: spaced)
|
||
|
hbox.Add(Entry(), entrys)
|
||
|
hbox.Add(Button("Button"), buttons)
|
||
|
return hbox
|
||
|
}
|
||
|
|
||
|
box.Add(hbox(true, true), false)
|
||
|
box.Add(hbox(true, false), false)
|
||
|
box.Add(hbox(false, true), false)
|
||
|
box.Add(hbox(false, false), false)
|
||
|
*/
|
||
|
|
||
|
box.Add(Spinbox(), false)
|
||
|
|
||
|
var mkhbox = {() -> Box in
|
||
|
Box(vertical: !firstvert, padded: spaced)
|
||
|
}
|
||
|
|
||
|
var hbox = mkhbox()
|
||
|
hbox.Add(Button("Button"), true)
|
||
|
hbox.Add(Button("Button"), true)
|
||
|
box.Add(hbox, false)
|
||
|
|
||
|
hbox = mkhbox()
|
||
|
hbox.Add(Button("Button"), true)
|
||
|
hbox.Add(Button("Button"), true)
|
||
|
box.Add(hbox, false)
|
||
|
|
||
|
hbox = mkhbox()
|
||
|
hbox.Add(Button("Button"), true)
|
||
|
hbox.Add(Button("A"), false)
|
||
|
hbox.Add(Button("BB"), false)
|
||
|
hbox.Add(Button("CCC"), false)
|
||
|
box.Add(hbox, false)
|
||
|
|
||
|
hbox = mkhbox()
|
||
|
hbox.Add(Spinbox(), false)
|
||
|
hbox.Add(Spinbox(), true)
|
||
|
box.Add(hbox, false)
|
||
|
|
||
|
hbox = mkhbox()
|
||
|
hbox.Add(Entry(), true)
|
||
|
hbox.Add(Entry(), false)
|
||
|
box.Add(hbox, false)
|
||
|
|
||
|
hbox = mkhbox()
|
||
|
hbox.Add(Label(), false)
|
||
|
box.Add(hbox, false)
|
||
|
|
||
|
hbox = mkhbox()
|
||
|
var vbox = Box(vertical: firstvert, padded: spaced)
|
||
|
vbox.Add(Button("Button"), true)
|
||
|
hbox.Add(vbox, false)
|
||
|
vbox = Box(vertical: firstvert, padded: spaced)
|
||
|
vbox.Add(Button("Button 2"), true)
|
||
|
hbox.Add(vbox, true)
|
||
|
box.Add(hbox, false)
|
||
|
|
||
|
hbox = Box(vertical: firstvert, padded: spaced)
|
||
|
vbox = mkhbox()
|
||
|
vbox.Add(Button("Button"), true)
|
||
|
hbox.Add(vbox, false)
|
||
|
vbox = mkhbox()
|
||
|
vbox.Add(Button("Button 2"), true)
|
||
|
hbox.Add(vbox, true)
|
||
|
box.Add(hbox, 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()
|