second commit
This commit is contained in:
@@ -38,6 +38,7 @@ final class DestinationPickerWindowController: NSWindowController, NSWindowDeleg
|
||||
window.isReleasedWhenClosed = false
|
||||
window.level = .floating
|
||||
window.center()
|
||||
Theme.styleWindowChrome(window)
|
||||
super.init(window: window)
|
||||
window.delegate = self
|
||||
buildInterface()
|
||||
@@ -54,15 +55,19 @@ final class DestinationPickerWindowController: NSWindowController, NSWindowDeleg
|
||||
private func buildInterface() {
|
||||
guard let window, let contentView = window.contentView else { return }
|
||||
|
||||
let background = Theme.backdrop(material: .windowBackground, blending: .behindWindow)
|
||||
contentView.addSubview(background)
|
||||
NSLayoutConstraint.activate([
|
||||
background.leadingAnchor.constraint(equalTo: contentView.leadingAnchor),
|
||||
background.trailingAnchor.constraint(equalTo: contentView.trailingAnchor),
|
||||
background.topAnchor.constraint(equalTo: contentView.topAnchor),
|
||||
background.bottomAnchor.constraint(equalTo: contentView.bottomAnchor)
|
||||
])
|
||||
|
||||
let preview = NSImageView()
|
||||
preview.image = capture.nsImage
|
||||
preview.imageScaling = .scaleProportionallyDown
|
||||
preview.imageAlignment = .alignCenter
|
||||
preview.wantsLayer = true
|
||||
preview.layer?.backgroundColor = NSColor.underPageBackgroundColor.cgColor
|
||||
preview.layer?.borderColor = NSColor.separatorColor.cgColor
|
||||
preview.layer?.borderWidth = 1
|
||||
preview.layer?.cornerRadius = 4
|
||||
preview.translatesAutoresizingMaskIntoConstraints = false
|
||||
preview.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
|
||||
preview.setContentCompressionResistancePriority(.defaultLow, for: .vertical)
|
||||
@@ -86,17 +91,19 @@ final class DestinationPickerWindowController: NSWindowController, NSWindowDeleg
|
||||
separator.boxType = .separator
|
||||
separator.translatesAutoresizingMaskIntoConstraints = false
|
||||
|
||||
contentView.addSubview(preview)
|
||||
let previewWell = Theme.panel(preview, radius: Theme.panelRadius, inset: 8)
|
||||
|
||||
contentView.addSubview(previewWell)
|
||||
contentView.addSubview(separator)
|
||||
contentView.addSubview(buttonRow)
|
||||
contentView.addSubview(rememberCheckbox)
|
||||
|
||||
NSLayoutConstraint.activate([
|
||||
preview.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 16),
|
||||
preview.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 16),
|
||||
preview.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -16),
|
||||
previewWell.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 16),
|
||||
previewWell.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 16),
|
||||
previewWell.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -16),
|
||||
|
||||
separator.topAnchor.constraint(equalTo: preview.bottomAnchor, constant: 14),
|
||||
separator.topAnchor.constraint(equalTo: previewWell.bottomAnchor, constant: 14),
|
||||
separator.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 16),
|
||||
separator.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -16),
|
||||
|
||||
@@ -113,7 +120,7 @@ final class DestinationPickerWindowController: NSWindowController, NSWindowDeleg
|
||||
let aspect = capture.pointSize.height / max(1, capture.pointSize.width)
|
||||
let previewWidth: CGFloat = 528
|
||||
let previewHeight = min(max(180, previewWidth * aspect), 380)
|
||||
preview.heightAnchor.constraint(equalToConstant: previewHeight).isActive = true
|
||||
previewWell.heightAnchor.constraint(equalToConstant: previewHeight + 16).isActive = true
|
||||
window.setContentSize(NSSize(width: 560, height: previewHeight + 190))
|
||||
window.center()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user