1 Commits

Author SHA1 Message Date
Ivan Sapozhnik e976b0818f Readme, configuration element, handling content top and bottom space 2020-04-15 02:02:52 +02:00
5 changed files with 10 additions and 9 deletions
+3 -2
View File
@@ -2,16 +2,17 @@
Fully customizable Mac OS drop-down menu
![](menu_screenshot.png)
![](screenshot.png)
## What can be customized? Everything!
```swift
public protocol Configuration {
var titlePadding: Padding.Vertical { get }
var titleBottomSpace: CGFloat { get }
var titleFont: NSFont? { get }
var backgroundColor: NSColor { get }
var cornerRadius: CGFloat { get }
var hasShadow: Bool { get }
var appearsBelowSender: Bool { get }
var contentEdgeInsets: NSEdgeInsets { get }
var separatorColor: NSColor { get }
var separatorThickness: CGFloat { get }
+4 -4
View File
@@ -57,7 +57,7 @@ class ContentViewController: NSViewController {
NSLayoutConstraint.activate([
label.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: configuration.contentEdgeInsets.left),
label.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -configuration.contentEdgeInsets.right),
label.topAnchor.constraint(equalTo: view.topAnchor, constant: configuration.titlePadding.top),
label.topAnchor.constraint(equalTo: view.topAnchor, constant: configuration.contentEdgeInsets.top)
])
}
@@ -67,13 +67,13 @@ class ContentViewController: NSViewController {
NSLayoutConstraint.activate([
stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
stackView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
stackView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -configuration.contentEdgeInsets.bottom)
])
if let titleLabel = titleLabel {
stackView.topAnchor.constraint(equalTo: titleLabel.bottomAnchor, constant: configuration.titlePadding.bottom).isActive = true
stackView.topAnchor.constraint(equalTo: titleLabel.bottomAnchor, constant: configuration.titleBottomSpace).isActive = true
} else {
stackView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
stackView.topAnchor.constraint(equalTo: view.topAnchor, constant: configuration.contentEdgeInsets.top).isActive = true
}
menuItems.enumerated().forEach { index, item in
+3 -3
View File
@@ -47,7 +47,7 @@ extension Padding.Vertical {
}
public protocol Configuration {
var titlePadding: Padding.Vertical { get }
var titleBottomSpace: CGFloat { get }
var titleFont: NSFont? { get }
var backgroundColor: NSColor { get }
var cornerRadius: CGFloat { get }
@@ -78,8 +78,8 @@ public protocol Configuration {
open class MenuConfiguration: Configuration {
public init() {}
open var titlePadding: Padding.Vertical {
return .init(top: .grid1, bottom: .grid1)
open var titleBottomSpace: CGFloat {
return .grid1
}
open var titleFont: NSFont? {
Binary file not shown.

Before

Width:  |  Height:  |  Size: 315 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB