137 lines
5.1 KiB
Swift
137 lines
5.1 KiB
Swift
//
|
|
// ButtonGroupConstants.swift
|
|
// VDS
|
|
//
|
|
// Created by Matt Bruce on 12/1/22.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
struct ButtonGroupConstants {
|
|
static let rowSpacingButton = 12.0
|
|
static let rowSpacingTextLink = 12.0
|
|
|
|
static func getHorizontalSpacing(for primary: Buttonable, neighboring: Buttonable) -> CGFloat {
|
|
let defaultSpace = 12.0
|
|
//large button
|
|
if let button = primary as? Button, button.size == .large {
|
|
if let neighboringButton = neighboring as? Button, neighboringButton.size == .large {
|
|
return 12.0
|
|
} else if let neighboringTextLink = neighboring as? TextLink, neighboringTextLink.size == .large {
|
|
return 16.0
|
|
} else if let _ = neighboring as? TextLinkCaret {
|
|
return 24.0
|
|
} else {
|
|
return defaultSpace
|
|
}
|
|
}
|
|
//large text link
|
|
else if let textLink = primary as? TextLink, textLink.size == .large {
|
|
if let neighboringButton = neighboring as? Button, neighboringButton.size == .large {
|
|
return 16.0
|
|
} else if let _ = neighboring as? TextLinkCaret {
|
|
return 24.0
|
|
} else if let neighboringTextLink = neighboring as? TextLink, neighboringTextLink.size == .large {
|
|
return 16.0
|
|
} else {
|
|
return defaultSpace
|
|
}
|
|
}
|
|
//text link caret
|
|
else if let _ = primary as? TextLinkCaret {
|
|
if let _ = neighboring as? TextLinkCaret {
|
|
return 24.0
|
|
} else {
|
|
return defaultSpace
|
|
}
|
|
}
|
|
//small button
|
|
else if let button = primary as? Button, button.size == .small {
|
|
if let neighboringButton = neighboring as? Button, neighboringButton.size == .small {
|
|
return 12.0
|
|
} else if let neighboringTextLink = neighboring as? TextLink, neighboringTextLink.size == .small {
|
|
return 16.0
|
|
} else {
|
|
return defaultSpace
|
|
}
|
|
}
|
|
//small text link
|
|
else if let textLink = primary as? TextLink, textLink.size == .small {
|
|
if let neighboringTextLink = neighboring as? TextLink, neighboringTextLink.size == .small {
|
|
return 16.0
|
|
} else {
|
|
return defaultSpace
|
|
}
|
|
}
|
|
//return defaultSpace
|
|
else {
|
|
return defaultSpace
|
|
}
|
|
}
|
|
|
|
static func getVerticalSpacing(for primary: Buttonable, neighboring: Buttonable) -> CGFloat {
|
|
let defaultSpace = 12.0
|
|
//large button
|
|
if let button = primary as? Button, button.size == .large {
|
|
if let neighboringButton = neighboring as? Button, neighboringButton.size == .large {
|
|
return 12.0
|
|
} else if let neighboringTextLink = neighboring as? TextLink, neighboringTextLink.size == .large {
|
|
return 16.0
|
|
} else if let _ = neighboring as? TextLinkCaret {
|
|
return 24.0
|
|
} else {
|
|
return defaultSpace
|
|
}
|
|
}
|
|
//large text link
|
|
else if let textLink = primary as? TextLink, textLink.size == .large {
|
|
if let neighboringButton = neighboring as? Button, neighboringButton.size == .large {
|
|
return 16.0
|
|
} else if let _ = neighboring as? TextLinkCaret {
|
|
return 24.0
|
|
} else if let neighboringTextLink = neighboring as? TextLink, neighboringTextLink.size == .large {
|
|
return 24.0
|
|
} else {
|
|
return defaultSpace
|
|
}
|
|
}
|
|
//text link caret
|
|
else if let _ = primary as? TextLinkCaret {
|
|
if let neighboringButton = neighboring as? Button, neighboringButton.size == .large {
|
|
return 16.0
|
|
} else if let _ = neighboring as? TextLinkCaret {
|
|
return 24.0
|
|
} else if let neighboringTextLink = neighboring as? TextLink, neighboringTextLink.size == .large {
|
|
return 24.0
|
|
} else {
|
|
return defaultSpace
|
|
}
|
|
}
|
|
//small button
|
|
else if let button = primary as? Button, button.size == .small {
|
|
if let neighboringButton = neighboring as? Button, neighboringButton.size == .small {
|
|
return 12.0
|
|
} else if let neighboringTextLink = neighboring as? TextLink, neighboringTextLink.size == .small {
|
|
return 24.0
|
|
} else {
|
|
return defaultSpace
|
|
}
|
|
}
|
|
//small text link
|
|
else if let textLink = primary as? TextLink, textLink.size == .small {
|
|
if let neighboringTextLink = neighboring as? TextLink, neighboringTextLink.size == .small {
|
|
return 32.0
|
|
} else if let neighboringButton = neighboring as? Button, neighboringButton.size == .small {
|
|
return 24.0
|
|
} else {
|
|
return defaultSpace
|
|
}
|
|
}
|
|
//return defaultSpace
|
|
else {
|
|
return defaultSpace
|
|
}
|
|
}
|
|
|
|
}
|