Commit 30598cc5 by Daniel Dahan

added MaterialRadiusType

parent 286cf1e9
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
65BDD1661BB7111E006F7F2B /* MaterialView.swift in Headers */ = {isa = PBXBuildFile; fileRef = 65BDD1461BB5B916006F7F2B /* MaterialView.swift */; settings = {ATTRIBUTES = (Public, ); }; }; 65BDD1661BB7111E006F7F2B /* MaterialView.swift in Headers */ = {isa = PBXBuildFile; fileRef = 65BDD1461BB5B916006F7F2B /* MaterialView.swift */; settings = {ATTRIBUTES = (Public, ); }; };
65BDD1671BB7111E006F7F2B /* MaterialButton.swift in Headers */ = {isa = PBXBuildFile; fileRef = 65BDD1561BB6FC82006F7F2B /* MaterialButton.swift */; settings = {ATTRIBUTES = (Public, ); }; }; 65BDD1671BB7111E006F7F2B /* MaterialButton.swift in Headers */ = {isa = PBXBuildFile; fileRef = 65BDD1561BB6FC82006F7F2B /* MaterialButton.swift */; settings = {ATTRIBUTES = (Public, ); }; };
65BDD1681BB7111E006F7F2B /* FlatButton.swift in Headers */ = {isa = PBXBuildFile; fileRef = 65BDD1581BB6FE3E006F7F2B /* FlatButton.swift */; settings = {ATTRIBUTES = (Public, ); }; }; 65BDD1681BB7111E006F7F2B /* FlatButton.swift in Headers */ = {isa = PBXBuildFile; fileRef = 65BDD1581BB6FE3E006F7F2B /* FlatButton.swift */; settings = {ATTRIBUTES = (Public, ); }; };
65BDD16A1BB7146B006F7F2B /* MaterialBorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65BDD1691BB7146B006F7F2B /* MaterialBorder.swift */; settings = {ASSET_TAGS = (); }; };
65DBE4201B9A9244000C804F /* Roboto-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 65DBE41E1B9A9244000C804F /* Roboto-Bold.ttf */; }; 65DBE4201B9A9244000C804F /* Roboto-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 65DBE41E1B9A9244000C804F /* Roboto-Bold.ttf */; };
65DBE4211B9A9244000C804F /* Roboto-Thin.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 65DBE41F1B9A9244000C804F /* Roboto-Thin.ttf */; }; 65DBE4211B9A9244000C804F /* Roboto-Thin.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 65DBE41F1B9A9244000C804F /* Roboto-Thin.ttf */; };
962F3E531BACA68C0004B8AD /* NavigationBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 962F3E521BACA68C0004B8AD /* NavigationBarView.swift */; }; 962F3E531BACA68C0004B8AD /* NavigationBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 962F3E521BACA68C0004B8AD /* NavigationBarView.swift */; };
...@@ -63,6 +64,7 @@ ...@@ -63,6 +64,7 @@
65BDD1581BB6FE3E006F7F2B /* FlatButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FlatButton.swift; sourceTree = "<group>"; }; 65BDD1581BB6FE3E006F7F2B /* FlatButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FlatButton.swift; sourceTree = "<group>"; };
65BDD15A1BB7095E006F7F2B /* MaterialRadius.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MaterialRadius.swift; sourceTree = "<group>"; }; 65BDD15A1BB7095E006F7F2B /* MaterialRadius.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MaterialRadius.swift; sourceTree = "<group>"; };
65BDD15C1BB70D60006F7F2B /* MaterialInsets.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MaterialInsets.swift; sourceTree = "<group>"; }; 65BDD15C1BB70D60006F7F2B /* MaterialInsets.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MaterialInsets.swift; sourceTree = "<group>"; };
65BDD1691BB7146B006F7F2B /* MaterialBorder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MaterialBorder.swift; sourceTree = "<group>"; };
65DBE41E1B9A9244000C804F /* Roboto-Bold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Roboto-Bold.ttf"; sourceTree = "<group>"; }; 65DBE41E1B9A9244000C804F /* Roboto-Bold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Roboto-Bold.ttf"; sourceTree = "<group>"; };
65DBE41F1B9A9244000C804F /* Roboto-Thin.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Roboto-Thin.ttf"; sourceTree = "<group>"; }; 65DBE41F1B9A9244000C804F /* Roboto-Thin.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Roboto-Thin.ttf"; sourceTree = "<group>"; };
962F3E521BACA68C0004B8AD /* NavigationBarView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigationBarView.swift; sourceTree = "<group>"; }; 962F3E521BACA68C0004B8AD /* NavigationBarView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigationBarView.swift; sourceTree = "<group>"; };
...@@ -192,6 +194,7 @@ ...@@ -192,6 +194,7 @@
65BDD1531BB6F473006F7F2B /* MaterialShadow.swift */, 65BDD1531BB6F473006F7F2B /* MaterialShadow.swift */,
65BDD15A1BB7095E006F7F2B /* MaterialRadius.swift */, 65BDD15A1BB7095E006F7F2B /* MaterialRadius.swift */,
65BDD15C1BB70D60006F7F2B /* MaterialInsets.swift */, 65BDD15C1BB70D60006F7F2B /* MaterialInsets.swift */,
65BDD1691BB7146B006F7F2B /* MaterialBorder.swift */,
); );
name = Theme; name = Theme;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -340,6 +343,7 @@ ...@@ -340,6 +343,7 @@
65BDD1541BB6F473006F7F2B /* MaterialShadow.swift in Sources */, 65BDD1541BB6F473006F7F2B /* MaterialShadow.swift in Sources */,
65BDD1571BB6FC82006F7F2B /* MaterialButton.swift in Sources */, 65BDD1571BB6FC82006F7F2B /* MaterialButton.swift in Sources */,
65BDD14B1BB5DD02006F7F2B /* MaterialFont.swift in Sources */, 65BDD14B1BB5DD02006F7F2B /* MaterialFont.swift in Sources */,
65BDD16A1BB7146B006F7F2B /* MaterialBorder.swift in Sources */,
65BDD15B1BB7095E006F7F2B /* MaterialRadius.swift in Sources */, 65BDD15B1BB7095E006F7F2B /* MaterialRadius.swift in Sources */,
65BDD1491BB5DC98006F7F2B /* MaterialColor.swift in Sources */, 65BDD1491BB5DC98006F7F2B /* MaterialColor.swift in Sources */,
65BDD14D1BB5ED9F006F7F2B /* MaterialTheme.swift in Sources */, 65BDD14D1BB5ED9F006F7F2B /* MaterialTheme.swift in Sources */,
......
...@@ -29,6 +29,7 @@ public class FlatButton : MaterialButton { ...@@ -29,6 +29,7 @@ public class FlatButton : MaterialButton {
backgroundColor = MaterialColor.red.base //MaterialTheme.button.flat.backgroudColor backgroundColor = MaterialColor.red.base //MaterialTheme.button.flat.backgroudColor
cornerRadius = MaterialTheme.button.flat.cornerRadius cornerRadius = MaterialTheme.button.flat.cornerRadius
contentInsets = MaterialTheme.button.flat.contentInsets contentInsets = MaterialTheme.button.flat.contentInsets
border = MaterialTheme.button.flat.border
} }
// //
......
//
// Copyright (C) 2015 GraphKit, Inc. <http://graphkit.io> and other GraphKit contributors.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published
// by the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program located at the root of the software package
// in a file called LICENSE. If not, see <http://www.gnu.org/licenses/>.
//
import UIKit
public typealias MaterialBorderType = CGFloat
public enum MaterialBorder : MaterialBorderType {
case None
case Thin
case Light
case Regular
case Medium
case Thick
}
/**
:name: MaterialBorderToValue
*/
public func MaterialBorderToValue(border: MaterialBorder) -> MaterialBorderType {
switch border {
case .None:
return 0
case .Thin:
return 0.5
case .Light:
return 1
case .Regular:
return 2
case .Medium:
return 3
case .Thick:
return 4
}
}
...@@ -118,10 +118,8 @@ public class MaterialButton : UIButton { ...@@ -118,10 +118,8 @@ public class MaterialButton : UIButton {
public var cornerRadius: MaterialRadius! { public var cornerRadius: MaterialRadius! {
didSet { didSet {
switch cornerRadius! { switch cornerRadius! {
case .Square: case .Square, .Light, .Regular, .Medium, .Heavy:
layer.cornerRadius = 0 layer.cornerRadius = MaterialRadiusToValue(cornerRadius!)
case .Smooth:
layer.cornerRadius = 4
case .Round: case .Round:
layer.cornerRadius = bounds.width / 2 layer.cornerRadius = bounds.width / 2
} }
...@@ -129,11 +127,20 @@ public class MaterialButton : UIButton { ...@@ -129,11 +127,20 @@ public class MaterialButton : UIButton {
} }
/** /**
:name: border
*/
public var border: MaterialBorder! {
didSet {
layer.borderWidth = MaterialBorderToValue(border)
}
}
/**
:name: shadow :name: shadow
*/ */
public var shadow: MaterialShadow! { public var shadow: MaterialShadow! {
didSet { didSet {
let value: MaterialShadowType = MaterialShadowToValues(shadow) let value: MaterialShadowType = MaterialShadowToValue(shadow)
shadowOffset = value.offset shadowOffset = value.offset
shadowOpacity = value.opacity shadowOpacity = value.opacity
shadowRadius = value.radius shadowRadius = value.radius
...@@ -154,7 +161,7 @@ public class MaterialButton : UIButton { ...@@ -154,7 +161,7 @@ public class MaterialButton : UIButton {
*/ */
public var contentInsets: MaterialInsets! { public var contentInsets: MaterialInsets! {
didSet { didSet {
let value: MaterialInsetsType = MaterialInsetsToValues(contentInsets) let value: MaterialInsetsType = MaterialInsetsToValue(contentInsets)
contentEdgeInsets = UIEdgeInsetsMake(value.top, value.left, value.bottom, value.right) contentEdgeInsets = UIEdgeInsetsMake(value.top, value.left, value.bottom, value.right)
} }
} }
......
...@@ -30,9 +30,9 @@ public enum MaterialInsets { ...@@ -30,9 +30,9 @@ public enum MaterialInsets {
} }
/** /**
:name: MaterialInsetsToValues :name: MaterialInsetsToValue
*/ */
public func MaterialInsetsToValues(inset: MaterialInsets) -> MaterialInsetsType { public func MaterialInsetsToValue(inset: MaterialInsets) -> MaterialInsetsType {
switch inset { switch inset {
case .Inset0: case .Inset0:
return (top: 0, left: 0, bottom: 0, right: 0) return (top: 0, left: 0, bottom: 0, right: 0)
......
...@@ -16,8 +16,33 @@ ...@@ -16,8 +16,33 @@
// in a file called LICENSE. If not, see <http://www.gnu.org/licenses/>. // in a file called LICENSE. If not, see <http://www.gnu.org/licenses/>.
// //
import UIKit
public typealias MaterialRadiusType = CGFloat
public enum MaterialRadius { public enum MaterialRadius {
case Square case Square
case Smooth case Light
case Regular
case Medium
case Heavy
case Round case Round
} }
/**
:name: MaterialRadiusToValue
*/
public func MaterialRadiusToValue(radius: MaterialRadius) -> MaterialRadiusType {
switch radius {
case .Square, .Round:
return 0
case .Light:
return 4
case .Regular:
return 8
case .Medium:
return 16
case .Heavy:
return 20
}
}
...@@ -30,9 +30,9 @@ public enum MaterialShadow { ...@@ -30,9 +30,9 @@ public enum MaterialShadow {
} }
/** /**
:name: MaterialShadowToValues :name: MaterialShadowToValue
*/ */
public func MaterialShadowToValues(shadow: MaterialShadow) -> MaterialShadowType { public func MaterialShadowToValue(shadow: MaterialShadow) -> MaterialShadowType {
switch shadow { switch shadow {
case .Depth0: case .Depth0:
return (offset: CGSizeZero, opacity: 0, radius: 0) return (offset: CGSizeZero, opacity: 0, radius: 0)
......
...@@ -44,6 +44,9 @@ public extension MaterialTheme.view { ...@@ -44,6 +44,9 @@ public extension MaterialTheme.view {
public static let masksToBounds: Bool = false public static let masksToBounds: Bool = false
public static let cornerRadius: MaterialRadius = .Square public static let cornerRadius: MaterialRadius = .Square
// border
public static let border: MaterialBorder = .None
// color // color
public static let backgroudColor: UIColor = MaterialColor.white public static let backgroudColor: UIColor = MaterialColor.white
...@@ -76,6 +79,9 @@ public extension MaterialTheme.navigation { ...@@ -76,6 +79,9 @@ public extension MaterialTheme.navigation {
public static let masksToBounds: Bool = MaterialTheme.view.masksToBounds public static let masksToBounds: Bool = MaterialTheme.view.masksToBounds
public static let cornerRadius: MaterialRadius = MaterialTheme.view.cornerRadius public static let cornerRadius: MaterialRadius = MaterialTheme.view.cornerRadius
// border
public static let border: MaterialBorder = MaterialTheme.view.border
// color // color
public static let backgroudColor: UIColor = MaterialColor.blue.accent3 public static let backgroudColor: UIColor = MaterialColor.blue.accent3
public static let lightContentStatusBar: Bool = true public static let lightContentStatusBar: Bool = true
...@@ -101,9 +107,12 @@ public extension MaterialTheme.button { ...@@ -101,9 +107,12 @@ public extension MaterialTheme.button {
// shape // shape
public static let masksToBounds: Bool = MaterialTheme.view.masksToBounds public static let masksToBounds: Bool = MaterialTheme.view.masksToBounds
public static let cornerRadius: MaterialRadius = .Smooth public static let cornerRadius: MaterialRadius = .Light
public static let contentInsets: MaterialInsets = .Inset2 public static let contentInsets: MaterialInsets = .Inset2
// border
public static let border: MaterialBorder = MaterialTheme.view.border
// color // color
public static let backgroudColor: UIColor = MaterialColor.clear public static let backgroudColor: UIColor = MaterialColor.clear
public static let titleLabelColorForNormalState: UIColor = MaterialColor.blueGrey.darken4 public static let titleLabelColorForNormalState: UIColor = MaterialColor.blueGrey.darken4
...@@ -129,6 +138,9 @@ public extension MaterialTheme.button.flat { ...@@ -129,6 +138,9 @@ public extension MaterialTheme.button.flat {
public static let cornerRadius: MaterialRadius = MaterialTheme.button.cornerRadius public static let cornerRadius: MaterialRadius = MaterialTheme.button.cornerRadius
public static let contentInsets: MaterialInsets = MaterialTheme.button.contentInsets public static let contentInsets: MaterialInsets = MaterialTheme.button.contentInsets
// border
public static let border: MaterialBorder = MaterialTheme.button.border
// color // color
public static let backgroudColor: UIColor = MaterialTheme.button.backgroudColor public static let backgroudColor: UIColor = MaterialTheme.button.backgroudColor
public static let titleLabelColorForNormalState: UIColor = MaterialTheme.button.titleLabelColorForNormalState public static let titleLabelColorForNormalState: UIColor = MaterialTheme.button.titleLabelColorForNormalState
......
...@@ -163,10 +163,8 @@ public class MaterialView: UIView { ...@@ -163,10 +163,8 @@ public class MaterialView: UIView {
public var cornerRadius: MaterialRadius! { public var cornerRadius: MaterialRadius! {
didSet { didSet {
switch cornerRadius! { switch cornerRadius! {
case .Square: case .Square, .Light, .Regular, .Medium, .Heavy:
layer.cornerRadius = 0 layer.cornerRadius = MaterialRadiusToValue(cornerRadius!)
case .Smooth:
layer.cornerRadius = 4
case .Round: case .Round:
layer.cornerRadius = bounds.width / 2 layer.cornerRadius = bounds.width / 2
} }
...@@ -174,11 +172,20 @@ public class MaterialView: UIView { ...@@ -174,11 +172,20 @@ public class MaterialView: UIView {
} }
/** /**
:name: border
*/
public var border: MaterialBorder! {
didSet {
layer.borderWidth = MaterialBorderToValue(border)
}
}
/**
:name: shadow :name: shadow
*/ */
public var shadow: MaterialShadow! { public var shadow: MaterialShadow! {
didSet { didSet {
let value: MaterialShadowType = MaterialShadowToValues(shadow) let value: MaterialShadowType = MaterialShadowToValue(shadow)
shadowOffset = value.offset shadowOffset = value.offset
shadowOpacity = value.opacity shadowOpacity = value.opacity
shadowRadius = value.radius shadowRadius = value.radius
......
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