0001    //
0002    //  SnapKit
0003    //
0004    //  Copyright (c) 2011-2015 SnapKit Team - https://github.com/SnapKit
0005    //
0006    //  Permission is hereby granted, free of charge, to any person obtaining a copy
0007    //  of this software and associated documentation files (the "Software"), to deal
0008    //  in the Software without restriction, including without limitation the rights
0009    //  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
0010    //  copies of the Software, and to permit persons to whom the Software is
0011    //  furnished to do so, subject to the following conditions:
0012    //
0013    //  The above copyright notice and this permission notice shall be included in
0014    //  all copies or substantial portions of the Software.
0015    //
0016    //  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
0017    //  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
0018    //  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
0019    //  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
0020    //  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
0021    //  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
0022    //  THE SOFTWARE.
0023    
0024    #if os(iOS) || os(tvOS)
0025    import UIKit
0026    #else
0027    import AppKit
0028    #endif
0029    
0030    /**
0031        Used to assist in building a constraint
0032    */
0033    public class ConstraintItem
Constraint.swift:172
    private let fromItem: ConstraintItem
Constraint.swift:173
    private let toItem: ConstraintItem
Constraint.swift:198
    internal init(fromItem: ConstraintItem, toItem: ConstraintItem, relation: ConstraintRelation, constant: Any, multiplier: Float, priority: Float) {
Constraint.swift:198
    internal init(fromItem: ConstraintItem, toItem: ConstraintItem, relation: ConstraintRelation, constant: Any, multiplier: Float, priority: Float) {
ConstraintDescription.swift:94
    func equalTo(other: ConstraintItem) -> ConstraintDescriptionEditable
ConstraintDescription.swift:109
    func lessThanOrEqualTo(other: ConstraintItem) -> ConstraintDescriptionEditable
ConstraintDescription.swift:124
    func greaterThanOrEqualTo(other: ConstraintItem) -> ConstraintDescriptionEditable
ConstraintDescription.swift:216
    init(fromItem: ConstraintItem) {
ConstraintDescription.swift:218
        self.toItem = ConstraintItem(object: nil, attributes: ConstraintAttributes.None)
ConstraintDescription.swift:223
    internal func equalTo(other: ConstraintItem) -> ConstraintDescriptionEditable {
ConstraintDescription.swift:264
    internal func lessThanOrEqualTo(other: ConstraintItem) -> ConstraintDescriptionEditable {
ConstraintDescription.swift:305
    internal func greaterThanOrEqualTo(other: ConstraintItem) -> ConstraintDescriptionEditable {
ConstraintDescription.swift:497
    private let fromItem: ConstraintItem
ConstraintDescription.swift:498
    private var toItem: ConstraintItem {
ConstraintDescription.swift:542
    private func constrainTo(other: ConstraintItem, relation: ConstraintRelation) -> ConstraintDescription {
ConstraintDescription.swift:560
        return constrainTo(ConstraintItem(object: other, attributes: ConstraintAttributes.None), relation: relation)
ConstraintDescription.swift:565
        return constrainTo(ConstraintItem(object: other, attributes: ConstraintAttributes.None), relation: relation)
ConstraintDescription.swift:570
        return constrainTo(ConstraintItem(object: other, attributes: ConstraintAttributes.None), relation: relation)
ConstraintDescription.swift:575
        return constrainTo(ConstraintItem(object: nil, attributes: ConstraintAttributes.None), relation: relation)
ConstraintDescription.swift:580
        return constrainTo(ConstraintItem(object: nil, attributes: ConstraintAttributes.None), relation: relation)
ConstraintDescription.swift:585
        return constrainTo(ConstraintItem(object: nil, attributes: ConstraintAttributes.None), relation: relation)
ConstraintDescription.swift:590
        return constrainTo(ConstraintItem(object: nil, attributes: ConstraintAttributes.None), relation: relation)
ConstraintDescription.swift:595
        return constrainTo(ConstraintItem(object: nil, attributes: ConstraintAttributes.None), relation: relation)
ConstraintItem.swift:54
internal func ==(left: ConstraintItem, right: ConstraintItem) -> Bool {
ConstraintItem.swift:54
internal func ==(left: ConstraintItem, right: ConstraintItem) -> Bool {
ConstraintMaker.swift:133
        let item = ConstraintItem(object: self.view, attributes: attributes)
View+SnapKit.swift:38
    public var snp_left: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Left) }
View+SnapKit.swift:38
    public var snp_left: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Left) }
View+SnapKit.swift:41
    public var snp_top: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Top) }
View+SnapKit.swift:41
    public var snp_top: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Top) }
View+SnapKit.swift:44
    public var snp_right: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Right) }
View+SnapKit.swift:44
    public var snp_right: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Right) }
View+SnapKit.swift:47
    public var snp_bottom: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Bottom) }
View+SnapKit.swift:47
    public var snp_bottom: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Bottom) }
View+SnapKit.swift:50
    public var snp_leading: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Leading) }
View+SnapKit.swift:50
    public var snp_leading: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Leading) }
View+SnapKit.swift:53
    public var snp_trailing: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Trailing) }
View+SnapKit.swift:53
    public var snp_trailing: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Trailing) }
View+SnapKit.swift:56
    public var snp_width: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Width) }
View+SnapKit.swift:56
    public var snp_width: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Width) }
View+SnapKit.swift:59
    public var snp_height: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Height) }
View+SnapKit.swift:59
    public var snp_height: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Height) }
View+SnapKit.swift:62
    public var snp_centerX: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.CenterX) }
View+SnapKit.swift:62
    public var snp_centerX: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.CenterX) }
View+SnapKit.swift:65
    public var snp_centerY: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.CenterY) }
View+SnapKit.swift:65
    public var snp_centerY: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.CenterY) }
View+SnapKit.swift:68
    public var snp_baseline: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Baseline) }
View+SnapKit.swift:68
    public var snp_baseline: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Baseline) }
View+SnapKit.swift:72
    public var snp_firstBaseline: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.FirstBaseline) }
View+SnapKit.swift:72
    public var snp_firstBaseline: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.FirstBaseline) }
View+SnapKit.swift:76
    public var snp_leftMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.LeftMargin) }
View+SnapKit.swift:76
    public var snp_leftMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.LeftMargin) }
View+SnapKit.swift:80
    public var snp_rightMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.RightMargin) }
View+SnapKit.swift:80
    public var snp_rightMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.RightMargin) }
View+SnapKit.swift:84
    public var snp_topMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.TopMargin) }
View+SnapKit.swift:84
    public var snp_topMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.TopMargin) }
View+SnapKit.swift:88
    public var snp_bottomMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.BottomMargin) }
View+SnapKit.swift:88
    public var snp_bottomMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.BottomMargin) }
View+SnapKit.swift:92
    public var snp_leadingMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.LeadingMargin) }
View+SnapKit.swift:92
    public var snp_leadingMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.LeadingMargin) }
View+SnapKit.swift:96
    public var snp_trailingMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.TrailingMargin) }
View+SnapKit.swift:96
    public var snp_trailingMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.TrailingMargin) }
View+SnapKit.swift:100
    public var snp_centerXWithinMargins: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.CenterXWithinMargins) }
View+SnapKit.swift:100
    public var snp_centerXWithinMargins: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.CenterXWithinMargins) }
View+SnapKit.swift:104
    public var snp_centerYWithinMargins: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.CenterYWithinMargins) }
View+SnapKit.swift:104
    public var snp_centerYWithinMargins: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.CenterYWithinMargins) }
View+SnapKit.swift:107
    public var snp_edges: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Edges) }
View+SnapKit.swift:107
    public var snp_edges: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Edges) }
View+SnapKit.swift:110
    public var snp_size: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Size) }
View+SnapKit.swift:110
    public var snp_size: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Size) }
View+SnapKit.swift:113
    public var snp_center: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Center) }
View+SnapKit.swift:113
    public var snp_center: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Center) }
View+SnapKit.swift:117
    public var snp_margins: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Margins) }
View+SnapKit.swift:117
    public var snp_margins: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Margins) }
View+SnapKit.swift:121
    public var snp_centerWithinMargins: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.CenterWithinMargins) }
View+SnapKit.swift:121
    public var snp_centerWithinMargins: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.CenterWithinMargins) }
{ 0034 0035 internal init
ConstraintDescription.swift:218
        self.toItem = ConstraintItem(object: nil, attributes: ConstraintAttributes.None)
ConstraintDescription.swift:560
        return constrainTo(ConstraintItem(object: other, attributes: ConstraintAttributes.None), relation: relation)
ConstraintDescription.swift:565
        return constrainTo(ConstraintItem(object: other, attributes: ConstraintAttributes.None), relation: relation)
ConstraintDescription.swift:570
        return constrainTo(ConstraintItem(object: other, attributes: ConstraintAttributes.None), relation: relation)
ConstraintDescription.swift:575
        return constrainTo(ConstraintItem(object: nil, attributes: ConstraintAttributes.None), relation: relation)
ConstraintDescription.swift:580
        return constrainTo(ConstraintItem(object: nil, attributes: ConstraintAttributes.None), relation: relation)
ConstraintDescription.swift:585
        return constrainTo(ConstraintItem(object: nil, attributes: ConstraintAttributes.None), relation: relation)
ConstraintDescription.swift:590
        return constrainTo(ConstraintItem(object: nil, attributes: ConstraintAttributes.None), relation: relation)
ConstraintDescription.swift:595
        return constrainTo(ConstraintItem(object: nil, attributes: ConstraintAttributes.None), relation: relation)
ConstraintMaker.swift:133
        let item = ConstraintItem(object: self.view, attributes: attributes)
View+SnapKit.swift:38
    public var snp_left: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Left) }
View+SnapKit.swift:41
    public var snp_top: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Top) }
View+SnapKit.swift:44
    public var snp_right: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Right) }
View+SnapKit.swift:47
    public var snp_bottom: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Bottom) }
View+SnapKit.swift:50
    public var snp_leading: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Leading) }
View+SnapKit.swift:53
    public var snp_trailing: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Trailing) }
View+SnapKit.swift:56
    public var snp_width: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Width) }
View+SnapKit.swift:59
    public var snp_height: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Height) }
View+SnapKit.swift:62
    public var snp_centerX: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.CenterX) }
View+SnapKit.swift:65
    public var snp_centerY: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.CenterY) }
View+SnapKit.swift:68
    public var snp_baseline: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Baseline) }
View+SnapKit.swift:72
    public var snp_firstBaseline: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.FirstBaseline) }
View+SnapKit.swift:76
    public var snp_leftMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.LeftMargin) }
View+SnapKit.swift:80
    public var snp_rightMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.RightMargin) }
View+SnapKit.swift:84
    public var snp_topMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.TopMargin) }
View+SnapKit.swift:88
    public var snp_bottomMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.BottomMargin) }
View+SnapKit.swift:92
    public var snp_leadingMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.LeadingMargin) }
View+SnapKit.swift:96
    public var snp_trailingMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.TrailingMargin) }
View+SnapKit.swift:100
    public var snp_centerXWithinMargins: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.CenterXWithinMargins) }
View+SnapKit.swift:104
    public var snp_centerYWithinMargins: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.CenterYWithinMargins) }
View+SnapKit.swift:107
    public var snp_edges: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Edges) }
View+SnapKit.swift:110
    public var snp_size: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Size) }
View+SnapKit.swift:113
    public var snp_center: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Center) }
View+SnapKit.swift:117
    public var snp_margins: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Margins) }
View+SnapKit.swift:121
    public var snp_centerWithinMargins: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.CenterWithinMargins) }
(object: AnyObject?, attributes: ConstraintAttributes) { 0036 self.object = object 0037 self.attributes = attributes 0038 } 0039 0040 internal weak var object
ConstraintItem.swift:36
        self.object = object
ConstraintItem.swift:44
        return self.object as? View
ConstraintItem.swift:49
        return self.object as? LayoutSupport
ConstraintItem.swift:55
    if left.object == nil {
ConstraintItem.swift:58
    if right.object == nil {
ConstraintItem.swift:61
    if left.object !== right.object {
ConstraintItem.swift:61
    if left.object !== right.object {
: AnyObject? 0041 internal var attributes
Constraint.swift:217
            if self.fromItem.attributes.isSubsetOf(ConstraintAttributes.Width.union(.Height)) {
Constraint.swift:237
        let layoutFromAttributes = self.fromItem.attributes.layoutAttributes
Constraint.swift:238
        let layoutToAttributes = self.toItem.attributes.layoutAttributes
ConstraintDescription.swift:537
            self.fromItem.attributes += attributes
ConstraintDescription.swift:543
        if other.attributes != ConstraintAttributes.None {
ConstraintDescription.swift:544
            let toLayoutAttributes = other.attributes.layoutAttributes
ConstraintDescription.swift:546
                let fromLayoutAttributes = self.fromItem.attributes.layoutAttributes
ConstraintDescription.swift:551
                other.attributes = ConstraintAttributes.None
ConstraintItem.swift:37
        self.attributes = attributes
ConstraintItem.swift:64
    if left.attributes != right.attributes {
ConstraintItem.swift:64
    if left.attributes != right.attributes {
: ConstraintAttributes 0042 0043 internal var view
Constraint.swift:209
        if self.toItem.view != nil {
Constraint.swift:210
            installOnView = closestCommonSuperviewFromView(self.fromItem.view, toView: self.toItem.view)
Constraint.swift:210
            installOnView = closestCommonSuperviewFromView(self.fromItem.view, toView: self.toItem.view)
Constraint.swift:218
                installOnView = self.fromItem.view
Constraint.swift:220
                installOnView = self.fromItem.view?.superview
Constraint.swift:241
        let layoutFrom: View? = self.fromItem.view
Constraint.swift:257
            var layoutTo: AnyObject? = self.toItem.view
Constraint.swift:360
                    if let fromView = self.fromItem.view {
: View? { 0044 return self.object as? View 0045 } 0046 0047 @available(iOS 7.0, *) 0048 internal var layoutSupport: LayoutSupport? { 0049 return self.object as? LayoutSupport 0050 } 0051 } 0052 0053 0054 internal func ==(left: ConstraintItem, right: ConstraintItem) -> Bool { 0055 if left.object == nil { 0056 return false 0057 } 0058 if right.object == nil { 0059 return false 0060 } 0061 if left.object !== right.object { 0062 return false 0063 } 0064 if left.attributes != right.attributes { 0065 return false 0066 } 0067 return true 0068 }