libui/redo/osxaltest/entry.swift

48 lines
1.1 KiB
Swift

// 31 july 2015
import Cocoa
class Entry : NSTextField, Control {
private var parent: Control?
init() {
var cell: NSTextFieldCell
self.parent = nil
super.init(frame: NSZeroRect)
self.selectable = true
self.font = NSFont.systemFontOfSize(NSFont.systemFontSizeForControlSize(NSControlSize.RegularControlSize))
self.bordered = false
self.bezelStyle = NSTextFieldBezelStyle.SquareBezel
self.bezeled = true
cell = self.cell() as! NSTextFieldCell
cell.lineBreakMode = NSLineBreakMode.ByClipping
cell.scrollable = true
self.translatesAutoresizingMaskIntoConstraints = false
}
required init?(coder: NSCoder) {
fatalError("can't use this constructor, sorry")
}
func View() -> NSView {
return self
}
func SetParent(p: Control) {
self.parent = p
}
// by default a text entry has no intrinsic content width
// in order for our layout containers to work, we need to give it one
// give it what Interface Builder uses as a default
// TODO verify against Interface Builder
override var intrinsicContentSize: NSSize {
get {
var s = super.intrinsicContentSize
s.width = 96
return s
}
}
}