Commit b630406a by Daniel Dahan

issue-27: updated naming for Views and Text

parent 756b9643
......@@ -7,10 +7,10 @@
objects = {
/* Begin PBXBuildFile section */
657CD02A1B8EE0D3008C0029 /* MaterialCard.swift in Headers */ = {isa = PBXBuildFile; fileRef = 9A94D1081B8A3F5100F586A5 /* MaterialCard.swift */; settings = {ATTRIBUTES = (Public, ); }; };
657CD02A1B8EE0D3008C0029 /* MaterialCardView.swift in Headers */ = {isa = PBXBuildFile; fileRef = 9A94D1081B8A3F5100F586A5 /* MaterialCardView.swift */; settings = {ATTRIBUTES = (Public, ); }; };
657CD02C1B8EE0D3008C0029 /* SideNavController.swift in Headers */ = {isa = PBXBuildFile; fileRef = 65B965861B8BEEC60055B139 /* SideNavController.swift */; settings = {ATTRIBUTES = (Public, ); }; };
657CD02D1B8EE0D3008C0029 /* MaterialButton.swift in Headers */ = {isa = PBXBuildFile; fileRef = 65B9657D1B8A7C330055B139 /* MaterialButton.swift */; settings = {ATTRIBUTES = (Public, ); }; };
657CD02F1B8EE0D3008C0029 /* ImageCard.swift in Headers */ = {isa = PBXBuildFile; fileRef = 9A94D10A1B8A485C00F586A5 /* ImageCard.swift */; settings = {ATTRIBUTES = (Public, ); }; };
657CD02F1B8EE0D3008C0029 /* ImageCardView.swift in Headers */ = {isa = PBXBuildFile; fileRef = 9A94D10A1B8A485C00F586A5 /* ImageCardView.swift */; settings = {ATTRIBUTES = (Public, ); }; };
65B9657E1B8A7C330055B139 /* MaterialButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65B9657D1B8A7C330055B139 /* MaterialButton.swift */; };
65B965871B8BEEC60055B139 /* SideNavController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65B965861B8BEEC60055B139 /* SideNavController.swift */; };
963832421B88DFD80015F710 /* MaterialKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 963832361B88DFD80015F710 /* MaterialKit.framework */; };
......@@ -20,11 +20,11 @@
9638326B1B88E5BF0015F710 /* FabButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 963832601B88E5BF0015F710 /* FabButton.swift */; };
9638326C1B88E5BF0015F710 /* FlatButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 963832611B88E5BF0015F710 /* FlatButton.swift */; };
963832701B88E5BF0015F710 /* RaisedButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 963832651B88E5BF0015F710 /* RaisedButton.swift */; };
963832711B88E5BF0015F710 /* Text.swift in Sources */ = {isa = PBXBuildFile; fileRef = 963832661B88E5BF0015F710 /* Text.swift */; };
963832721B88E5BF0015F710 /* TextStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 963832671B88E5BF0015F710 /* TextStorage.swift */; };
963832711B88E5BF0015F710 /* MaterialText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 963832661B88E5BF0015F710 /* MaterialText.swift */; };
963832721B88E5BF0015F710 /* MaterialTextStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 963832671B88E5BF0015F710 /* MaterialTextStorage.swift */; };
963832731B88E5BF0015F710 /* TextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 963832681B88E5BF0015F710 /* TextView.swift */; };
9638327E1B89070E0015F710 /* Text.swift in Headers */ = {isa = PBXBuildFile; fileRef = 963832661B88E5BF0015F710 /* Text.swift */; settings = {ATTRIBUTES = (Public, ); }; };
9638327F1B89070E0015F710 /* TextStorage.swift in Headers */ = {isa = PBXBuildFile; fileRef = 963832671B88E5BF0015F710 /* TextStorage.swift */; settings = {ATTRIBUTES = (Public, ); }; };
9638327E1B89070E0015F710 /* MaterialText.swift in Headers */ = {isa = PBXBuildFile; fileRef = 963832661B88E5BF0015F710 /* MaterialText.swift */; settings = {ATTRIBUTES = (Public, ); }; };
9638327F1B89070E0015F710 /* MaterialTextStorage.swift in Headers */ = {isa = PBXBuildFile; fileRef = 963832671B88E5BF0015F710 /* MaterialTextStorage.swift */; settings = {ATTRIBUTES = (Public, ); }; };
963832801B89070E0015F710 /* TextView.swift in Headers */ = {isa = PBXBuildFile; fileRef = 963832681B88E5BF0015F710 /* TextView.swift */; settings = {ATTRIBUTES = (Public, ); }; };
963832811B89070E0015F710 /* FabButton.swift in Headers */ = {isa = PBXBuildFile; fileRef = 963832601B88E5BF0015F710 /* FabButton.swift */; settings = {ATTRIBUTES = (Public, ); }; };
963832821B89070E0015F710 /* FlatButton.swift in Headers */ = {isa = PBXBuildFile; fileRef = 963832611B88E5BF0015F710 /* FlatButton.swift */; settings = {ATTRIBUTES = (Public, ); }; };
......@@ -40,11 +40,11 @@
9A94D0FB1B895EA500F586A5 /* Roboto-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 9AAC38591B8956E300FE6B2D /* Roboto-Regular.ttf */; };
9A94D0FC1B895EA500F586A5 /* Roboto-Medium.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 9AAC38571B8956CF00FE6B2D /* Roboto-Medium.ttf */; };
9A94D0FD1B895EA500F586A5 /* Roboto-Light.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 9AAC38551B8956C500FE6B2D /* Roboto-Light.ttf */; };
9A94D1091B8A3F5100F586A5 /* MaterialCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A94D1081B8A3F5100F586A5 /* MaterialCard.swift */; };
9A94D10B1B8A485C00F586A5 /* ImageCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A94D10A1B8A485C00F586A5 /* ImageCard.swift */; };
9AAC384D1B89528900FE6B2D /* BasicCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AAC384C1B89528900FE6B2D /* BasicCard.swift */; };
9A94D1091B8A3F5100F586A5 /* MaterialCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A94D1081B8A3F5100F586A5 /* MaterialCardView.swift */; };
9A94D10B1B8A485C00F586A5 /* ImageCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A94D10A1B8A485C00F586A5 /* ImageCardView.swift */; };
9AAC384D1B89528900FE6B2D /* BasicCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AAC384C1B89528900FE6B2D /* BasicCardView.swift */; };
9AAC38541B89559900FE6B2D /* Roboto.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AAC38531B89559900FE6B2D /* Roboto.swift */; };
9AAC385F1B8957A200FE6B2D /* BasicCard.swift in Headers */ = {isa = PBXBuildFile; fileRef = 9AAC384C1B89528900FE6B2D /* BasicCard.swift */; settings = {ATTRIBUTES = (Public, ); }; };
9AAC385F1B8957A200FE6B2D /* BasicCardView.swift in Headers */ = {isa = PBXBuildFile; fileRef = 9AAC384C1B89528900FE6B2D /* BasicCardView.swift */; settings = {ATTRIBUTES = (Public, ); }; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
......@@ -71,14 +71,14 @@
963832611B88E5BF0015F710 /* FlatButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FlatButton.swift; sourceTree = "<group>"; };
963832631B88E5BF0015F710 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
963832651B88E5BF0015F710 /* RaisedButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RaisedButton.swift; sourceTree = "<group>"; };
963832661B88E5BF0015F710 /* Text.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Text.swift; sourceTree = "<group>"; };
963832671B88E5BF0015F710 /* TextStorage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextStorage.swift; sourceTree = "<group>"; };
963832661B88E5BF0015F710 /* MaterialText.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MaterialText.swift; sourceTree = "<group>"; };
963832671B88E5BF0015F710 /* MaterialTextStorage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MaterialTextStorage.swift; sourceTree = "<group>"; };
963832681B88E5BF0015F710 /* TextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextView.swift; sourceTree = "<group>"; };
963832871B8908180015F710 /* Layout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Layout.swift; sourceTree = "<group>"; };
96B57D4D1B90AF7D00DE7BBB /* MaterialTheme.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MaterialTheme.swift; sourceTree = "<group>"; };
9A94D1081B8A3F5100F586A5 /* MaterialCard.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MaterialCard.swift; sourceTree = "<group>"; };
9A94D10A1B8A485C00F586A5 /* ImageCard.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageCard.swift; sourceTree = "<group>"; };
9AAC384C1B89528900FE6B2D /* BasicCard.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BasicCard.swift; sourceTree = "<group>"; };
9A94D1081B8A3F5100F586A5 /* MaterialCardView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MaterialCardView.swift; sourceTree = "<group>"; };
9A94D10A1B8A485C00F586A5 /* ImageCardView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageCardView.swift; sourceTree = "<group>"; };
9AAC384C1B89528900FE6B2D /* BasicCardView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BasicCardView.swift; sourceTree = "<group>"; };
9AAC38531B89559900FE6B2D /* Roboto.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Roboto.swift; sourceTree = "<group>"; };
9AAC38551B8956C500FE6B2D /* Roboto-Light.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Roboto-Light.ttf"; sourceTree = "<group>"; };
9AAC38571B8956CF00FE6B2D /* Roboto-Medium.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Roboto-Medium.ttf"; sourceTree = "<group>"; };
......@@ -203,8 +203,8 @@
963832761B88E8990015F710 /* Text */ = {
isa = PBXGroup;
children = (
963832661B88E5BF0015F710 /* Text.swift */,
963832671B88E5BF0015F710 /* TextStorage.swift */,
963832661B88E5BF0015F710 /* MaterialText.swift */,
963832671B88E5BF0015F710 /* MaterialTextStorage.swift */,
963832681B88E5BF0015F710 /* TextView.swift */,
);
name = Text;
......@@ -229,9 +229,9 @@
9AAC384B1B89524E00FE6B2D /* Card */ = {
isa = PBXGroup;
children = (
9A94D1081B8A3F5100F586A5 /* MaterialCard.swift */,
9AAC384C1B89528900FE6B2D /* BasicCard.swift */,
9A94D10A1B8A485C00F586A5 /* ImageCard.swift */,
9A94D1081B8A3F5100F586A5 /* MaterialCardView.swift */,
9AAC384C1B89528900FE6B2D /* BasicCardView.swift */,
9A94D10A1B8A485C00F586A5 /* ImageCardView.swift */,
);
name = Card;
sourceTree = "<group>";
......@@ -254,9 +254,9 @@
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
9AAC385F1B8957A200FE6B2D /* BasicCard.swift in Headers */,
9638327E1B89070E0015F710 /* Text.swift in Headers */,
9638327F1B89070E0015F710 /* TextStorage.swift in Headers */,
9AAC385F1B8957A200FE6B2D /* BasicCardView.swift in Headers */,
9638327E1B89070E0015F710 /* MaterialText.swift in Headers */,
9638327F1B89070E0015F710 /* MaterialTextStorage.swift in Headers */,
963832801B89070E0015F710 /* TextView.swift in Headers */,
963832811B89070E0015F710 /* FabButton.swift in Headers */,
963832821B89070E0015F710 /* FlatButton.swift in Headers */,
......@@ -265,11 +265,11 @@
9A94D0F91B895C8C00F586A5 /* Roboto.swift in Headers */,
963832851B89070E0015F710 /* CapturePreview.swift in Headers */,
963832891B89097D0015F710 /* Layout.swift in Headers */,
657CD02A1B8EE0D3008C0029 /* MaterialCard.swift in Headers */,
657CD02A1B8EE0D3008C0029 /* MaterialCardView.swift in Headers */,
657CD02C1B8EE0D3008C0029 /* SideNavController.swift in Headers */,
657CD02D1B8EE0D3008C0029 /* MaterialButton.swift in Headers */,
96C910ED1B95804B00E7CE5C /* MaterialTheme.swift in Headers */,
657CD02F1B8EE0D3008C0029 /* ImageCard.swift in Headers */,
657CD02F1B8EE0D3008C0029 /* ImageCardView.swift in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
......@@ -374,20 +374,20 @@
buildActionMask = 2147483647;
files = (
963832691B88E5BF0015F710 /* Capture.swift in Sources */,
9A94D10B1B8A485C00F586A5 /* ImageCard.swift in Sources */,
9A94D10B1B8A485C00F586A5 /* ImageCardView.swift in Sources */,
96B57D4E1B90AF7D00DE7BBB /* MaterialTheme.swift in Sources */,
9638326B1B88E5BF0015F710 /* FabButton.swift in Sources */,
9A94D1091B8A3F5100F586A5 /* MaterialCard.swift in Sources */,
9A94D1091B8A3F5100F586A5 /* MaterialCardView.swift in Sources */,
65B965871B8BEEC60055B139 /* SideNavController.swift in Sources */,
9638326C1B88E5BF0015F710 /* FlatButton.swift in Sources */,
963832711B88E5BF0015F710 /* Text.swift in Sources */,
963832711B88E5BF0015F710 /* MaterialText.swift in Sources */,
9638326A1B88E5BF0015F710 /* CapturePreview.swift in Sources */,
9AAC38541B89559900FE6B2D /* Roboto.swift in Sources */,
65B9657E1B8A7C330055B139 /* MaterialButton.swift in Sources */,
963832881B8908180015F710 /* Layout.swift in Sources */,
9AAC384D1B89528900FE6B2D /* BasicCard.swift in Sources */,
9AAC384D1B89528900FE6B2D /* BasicCardView.swift in Sources */,
963832731B88E5BF0015F710 /* TextView.swift in Sources */,
963832721B88E5BF0015F710 /* TextStorage.swift in Sources */,
963832721B88E5BF0015F710 /* MaterialTextStorage.swift in Sources */,
963832701B88E5BF0015F710 /* RaisedButton.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
......
......@@ -18,7 +18,7 @@
import UIKit
public class BasicCard : MaterialCard, Comparable, Equatable {
public class BasicCardView : MaterialCardView, Comparable, Equatable {
//
// :name: layoutConstraints
//
......@@ -277,22 +277,22 @@ public class BasicCard : MaterialCard, Comparable, Equatable {
}
}
public func ==(lhs: BasicCard, rhs: BasicCard) -> Bool {
public func ==(lhs: BasicCardView, rhs: BasicCardView) -> Bool {
return lhs.tag == rhs.tag
}
public func <=(lhs: BasicCard, rhs: BasicCard) -> Bool {
public func <=(lhs: BasicCardView, rhs: BasicCardView) -> Bool {
return lhs.tag <= rhs.tag
}
public func >=(lhs: BasicCard, rhs: BasicCard) -> Bool {
public func >=(lhs: BasicCardView, rhs: BasicCardView) -> Bool {
return lhs.tag >= rhs.tag
}
public func >(lhs: BasicCard, rhs: BasicCard) -> Bool {
public func >(lhs: BasicCardView, rhs: BasicCardView) -> Bool {
return lhs.tag > rhs.tag
}
public func <(lhs: BasicCard, rhs: BasicCard) -> Bool {
public func <(lhs: BasicCardView, rhs: BasicCardView) -> Bool {
return lhs.tag < rhs.tag
}
......@@ -24,7 +24,7 @@ public class FlatButton : MaterialButton {
//
internal override func prepareView() {
super.prepareView()
setTitleColor(MaterialTheme.indigo.darken1, forState: .Normal)
setTitleColor(MaterialTheme.blue.darken1, forState: .Normal)
backgroundColor = MaterialTheme.clear.color
contentEdgeInsets = UIEdgeInsetsMake(4, 16, 4, 16)
}
......
......@@ -18,7 +18,7 @@
import UIKit
public class ImageCard : MaterialCard, Comparable, Equatable {
public class ImageCardView : MaterialCardView, Comparable, Equatable {
//
// :name: layoutConstraints
//
......@@ -351,22 +351,22 @@ public class ImageCard : MaterialCard, Comparable, Equatable {
}
}
public func ==(lhs: ImageCard, rhs: ImageCard) -> Bool {
public func ==(lhs: ImageCardView, rhs: ImageCardView) -> Bool {
return lhs.tag == rhs.tag
}
public func <=(lhs: ImageCard, rhs: ImageCard) -> Bool {
public func <=(lhs: ImageCardView, rhs: ImageCardView) -> Bool {
return lhs.tag <= rhs.tag
}
public func >=(lhs: ImageCard, rhs: ImageCard) -> Bool {
public func >=(lhs: ImageCardView, rhs: ImageCardView) -> Bool {
return lhs.tag >= rhs.tag
}
public func >(lhs: ImageCard, rhs: ImageCard) -> Bool {
public func >(lhs: ImageCardView, rhs: ImageCardView) -> Bool {
return lhs.tag > rhs.tag
}
public func <(lhs: ImageCard, rhs: ImageCard) -> Bool {
public func <(lhs: ImageCardView, rhs: ImageCardView) -> Bool {
return lhs.tag < rhs.tag
}
......@@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.7.0</string>
<string>1.8.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
......
......@@ -44,7 +44,7 @@ public class MaterialButton : UIButton {
/**
:name: pulseColor
*/
public var pulseColor: UIColor? = MaterialTheme.indigo.lighten3
public var pulseColor: UIColor? = MaterialTheme.blue.lighten3
/**
:name: init
......
......@@ -18,7 +18,7 @@
import UIKit
public class MaterialCard : UIView {
public class MaterialCardView : UIView {
//
// :name: backgroundColorView
//
......@@ -49,7 +49,7 @@ public class MaterialCard : UIView {
/**
:name: pulseColor
*/
public var pulseColor: UIColor = MaterialTheme.indigo.lighten3
public var pulseColor: UIColor = MaterialTheme.blue.lighten3
/**
:name: init
......
......@@ -18,14 +18,14 @@
import UIKit
@objc(TextDelegate)
@objc(MaterialTextDelegate)
public protocol TextDelegate {
optional func textStorageWillProcessEdit(text: Text, textStorage: TextStorage, string: String, range: NSRange)
optional func textStorageDidProcessEdit(text: Text, textStorage: TextStorage, string: String, result: NSTextCheckingResult, flags: NSMatchingFlags, stop: UnsafeMutablePointer<ObjCBool>)
optional func textStorageWillProcessEdit(text: MaterialText, textStorage: MaterialTextStorage, string: String, range: NSRange)
optional func textStorageDidProcessEdit(text: MaterialText, textStorage: MaterialTextStorage, string: String, result: NSTextCheckingResult, flags: NSMatchingFlags, stop: UnsafeMutablePointer<ObjCBool>)
}
@objc(Text)
public class Text: NSObject {
@objc(MaterialText)
public class MaterialText: NSObject {
/**
:name: searchPattern
:description: A string representation of the regular expression that matches text within
......@@ -42,7 +42,7 @@ public class Text: NSObject {
:name: textStorage
:description: Reference to wrapped NSTextStorage
*/
public let textStorage: TextStorage
public let textStorage: MaterialTextStorage
/**
:name: delegate
......@@ -53,14 +53,14 @@ public class Text: NSObject {
/**
:name: init
*/
override public init() {
textStorage = TextStorage()
public override init() {
textStorage = MaterialTextStorage()
super.init()
textStorage.searchExpression = NSRegularExpression(pattern: searchPattern, options: nil, error: nil)
textStorage.textStorageWillProcessEdit = { (textStorage: TextStorage, string: String, range: NSRange) -> Void in
textStorage.textStorageWillProcessEdit = { (textStorage: MaterialTextStorage, string: String, range: NSRange) -> Void in
self.delegate?.textStorageWillProcessEdit?(self, textStorage: textStorage, string: string, range: range)
}
textStorage.textStorageDidProcessEdit = { (textStorage: TextStorage, result: NSTextCheckingResult, flags: NSMatchingFlags, stop: UnsafeMutablePointer<ObjCBool>) -> Void in
textStorage.textStorageDidProcessEdit = { (textStorage: MaterialTextStorage, result: NSTextCheckingResult, flags: NSMatchingFlags, stop: UnsafeMutablePointer<ObjCBool>) -> Void in
self.delegate?.textStorageDidProcessEdit?(self, textStorage: textStorage, string: textStorage.string, result: result, flags: flags, stop: stop)
}
}
......
......@@ -18,10 +18,10 @@
import UIKit
internal typealias TextStorageWillProcessEdit = (TextStorage, String, NSRange) -> Void
internal typealias TextStorageDidProcessEdit = (TextStorage, NSTextCheckingResult, NSMatchingFlags, UnsafeMutablePointer<ObjCBool>) -> Void
internal typealias MaterialTextStorageWillProcessEdit = (MaterialTextStorage, String, NSRange) -> Void
internal typealias MaterialTextStorageDidProcessEdit = (MaterialTextStorage, NSTextCheckingResult, NSMatchingFlags, UnsafeMutablePointer<ObjCBool>) -> Void
public class TextStorage: NSTextStorage {
public class MaterialTextStorage: NSTextStorage {
/**
:name: store
:description: Acts as the model, storing the string value.
......@@ -39,14 +39,14 @@ public class TextStorage: NSTextStorage {
:description: If set, this block callback executes when there is a change in the TextStorage
string value.
*/
internal var textStorageWillProcessEdit: TextStorageWillProcessEdit?
internal var textStorageWillProcessEdit: MaterialTextStorageWillProcessEdit?
/**
:name: textStorageDidProcessEdit
:description: If set, this block callback executes when a match is detected after a change in
the TextStorage string value.
*/
internal var textStorageDidProcessEdit: TextStorageDidProcessEdit?
internal var textStorageDidProcessEdit: MaterialTextStorageDidProcessEdit?
required public init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
......
......@@ -25,7 +25,7 @@ public class RaisedButton : MaterialButton {
internal override func prepareView() {
super.prepareView()
setTitleColor(MaterialTheme.white.color, forState: .Normal)
backgroundColor = MaterialTheme.indigo.darken1
backgroundColor = MaterialTheme.blue.darken1
contentEdgeInsets = UIEdgeInsetsMake(4, 16, 4, 16)
}
......
......@@ -20,23 +20,23 @@ import UIKit
public class TextView: UITextView {
//
// :name: label
// :description: Placeholder label.
//
private lazy var label: UILabel = UILabel()
//
// :name: labelConstraints
// :name: placeholderconstraints
// :description: Autoresize constraints for the placeholder label.
//
private var labelConstraints: Array<NSLayoutConstraint>?
private var placeholderconstraints: Array<NSLayoutConstraint>?
required public init(coder aDecoder: NSCoder) {
/**
:name: init
*/
public required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
prepareView()
}
override public init(frame: CGRect, textContainer: NSTextContainer?) {
/**
:name: init
*/
public override init(frame: CGRect, textContainer: NSTextContainer?) {
super.init(frame: frame, textContainer: textContainer)
if CGRectZero == frame {
setTranslatesAutoresizingMaskIntoConstraints(false)
......@@ -56,47 +56,23 @@ public class TextView: UITextView {
:name: placeholder
:description: The placeholder label string.
*/
public var placeholder: String = "" {
public var placeholderLabel: UILabel? {
didSet {
label.text = placeholder
placeholderLabel!.setTranslatesAutoresizingMaskIntoConstraints(false)
placeholderLabel!.font = font
placeholderLabel!.textAlignment = textAlignment
placeholderLabel!.numberOfLines = 0
placeholderLabel!.backgroundColor = MaterialTheme.clear.color
addSubview(placeholderLabel!)
}
}
/**
:name: placeholderColor
:description: The placeholder color.
*/
public var placeholderColor: UIColor = MaterialTheme.indigo.lighten1 {
didSet {
label.textColor = placeholderColor
}
}
/**
:name: font
:description: Font to use for placeholder based on UITextView font.
*/
override public var font: UIFont! {
didSet {
label.font = font
}
}
/**
:name: textAlignment
:description: Sets placeholder textAlignment based on UITextView textAlignment.
*/
override public var textAlignment: NSTextAlignment {
didSet {
label.textAlignment = textAlignment
}
}
/**
:name: text
:description: When set, updates the placeholder text.
*/
override public var text: String! {
public override var text: String! {
didSet {
textViewTextDidChange()
}
......@@ -106,7 +82,7 @@ public class TextView: UITextView {
:name: attributedText
:description: When set, updates the placeholder attributedText.
*/
override public var attributedText: NSAttributedString! {
public override var attributedText: NSAttributedString! {
didSet {
textViewTextDidChange()
}
......@@ -116,15 +92,15 @@ public class TextView: UITextView {
:name: textContainerInset
:description: When set, updates the placeholder constraints.
*/
override public var textContainerInset: UIEdgeInsets {
public override var textContainerInset: UIEdgeInsets {
didSet {
updateLabelConstraints()
}
}
override public func layoutSubviews() {
public override func layoutSubviews() {
super.layoutSubviews()
label.preferredMaxLayoutWidth = textContainer.size.width - textContainer.lineFragmentPadding * 2
placeholderLabel?.preferredMaxLayoutWidth = textContainer.size.width - textContainer.lineFragmentPadding * 2
}
//
......@@ -132,7 +108,7 @@ public class TextView: UITextView {
// :description: Updates the label visibility when text is empty or not.
//
internal func textViewTextDidChange() {
label.hidden = !text.isEmpty
placeholderLabel?.hidden = !text.isEmpty
}
//
......@@ -140,17 +116,6 @@ public class TextView: UITextView {
// :description: Sets up the common initilized values.
//
private func prepareView() {
backgroundColor = MaterialTheme.clear.color
textColor = MaterialTheme.black.color
label.font = font
label.textColor = placeholderColor
label.textAlignment = textAlignment
label.text = placeholder
label.numberOfLines = 0
label.backgroundColor = MaterialTheme.clear.color
label.setTranslatesAutoresizingMaskIntoConstraints(false)
addSubview(label)
// label needs to be added to the view
// hierarchy before setting insets
textContainerInset = UIEdgeInsetsMake(16, 16, 16, 16)
......@@ -164,15 +129,29 @@ public class TextView: UITextView {
// :description: Updates the placeholder constraints.
//
private func updateLabelConstraints() {
if nil != labelConstraints {
removeConstraints(labelConstraints!)
}
var constraints: Array<NSLayoutConstraint> = NSLayoutConstraint.constraintsWithVisualFormat("H:|-(left)-[placeholder]-(right)-|", options: nil, metrics: ["left": textContainerInset.left + textContainer.lineFragmentPadding, "right": textContainerInset.right + textContainer.lineFragmentPadding], views: ["placeholder": label]) as! Array<NSLayoutConstraint>
constraints += NSLayoutConstraint.constraintsWithVisualFormat("V:|-(top)-[placeholder]-(>=bottom)-|", options: nil, metrics: ["top": textContainerInset.top, "bottom": textContainerInset.bottom], views: ["placeholder": label]) as! Array<NSLayoutConstraint>
labelConstraints = constraints
addConstraints(constraints)
if nil != placeholderconstraints {
NSLayoutConstraint.deactivateConstraints(placeholderconstraints!)
}
placeholderconstraints = Layout.constraint("H:|-(left)-[placeholder]-(right)-|",
options: nil,
metrics: [
"left": textContainerInset.left + textContainer.lineFragmentPadding,
"right": textContainerInset.right + textContainer.lineFragmentPadding
], views: [
"placeholder": placeholderLabel!
])
placeholderconstraints += Layout.constraint("V:|-(top)-[placeholder]-(>=bottom)-|",
options: nil,
metrics: [
"top": textContainerInset.top,
"bottom": textContainerInset.bottom
],
views: [
"placeholder": placeholderLabel!
])
NSLayoutConstraint.activateConstraints(placeholderconstraints!)
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment