 	}
 
 
+
 	public enum HorizontalAlignment {
+
 		case center
 		case fill
 		case left

	}


	public enum VerticalAlignment {
		case bottom
		case center
		case fill




private class ButtonImageView: ImageView {

	private weak var button: Button?


	init(button: Button) {
		self.button = button

		super.init()
	}


	required init?(coder: NSCoder) {
		fatalError("init(coder:) has not been implemented")
	}


	override var source: Source? {
		didSet {
			button?.imageViewDidChangeSource()
		}
	}
}



private class ButtonLabel: Label {

	private weak var button: Button?


	init(button: Button) {
		self.button = button

		super.init(highPrecision: true)
	}


	required init?(coder: NSCoder) {
		fatalError("init(coder:) has not been implemented")
	}


	override var attributedText: NSAttributedString {
		didSet {
			guard attributedText != oldValue else {
				return
			}

			button?.textLabelDidChangeAttributedText()
		}
	}
}
