Commit d0b141df by Daniel Dahan

added SideNavigationViewController gesture toggle within enabled property

parent f65afdde
......@@ -14,7 +14,7 @@
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
967C0E6E1C1CBEDE005175A6 /* Embed Frameworks */ = {
960590051C38877D00691E88 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
......@@ -84,7 +84,7 @@
967C0E521C1CB980005175A6 /* Sources */,
967C0E531C1CB980005175A6 /* Frameworks */,
967C0E541C1CB980005175A6 /* Resources */,
967C0E6E1C1CBEDE005175A6 /* Embed Frameworks */,
960590051C38877D00691E88 /* Embed Frameworks */,
);
buildRules = (
);
......@@ -251,10 +251,13 @@
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
INFOPLIST_FILE = CaptureView/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = io.cosmicmind.CaptureView;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "";
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
......@@ -263,10 +266,13 @@
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
INFOPLIST_FILE = CaptureView/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = io.cosmicmind.CaptureView;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "";
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
......
......@@ -7,6 +7,8 @@
objects = {
/* Begin PBXBuildFile section */
9605900D1C388B8500691E88 /* MaterialKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9605900C1C388B8500691E88 /* MaterialKit.framework */; };
9605900E1C388B8500691E88 /* MaterialKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9605900C1C388B8500691E88 /* MaterialKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
9642FA1B1C1B50E700022BC6 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9642FA1A1C1B50E700022BC6 /* AppDelegate.swift */; };
9642FA1D1C1B50E700022BC6 /* AMainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9642FA1C1C1B50E700022BC6 /* AMainViewController.swift */; };
9642FA221C1B50E700022BC6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9642FA211C1B50E700022BC6 /* Assets.xcassets */; };
......@@ -15,7 +17,22 @@
9642FA331C1B909700022BC6 /* SideViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9642FA321C1B909700022BC6 /* SideViewController.swift */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
9605900F1C388B8500691E88 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
9605900E1C388B8500691E88 /* MaterialKit.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
9605900C1C388B8500691E88 /* MaterialKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; name = MaterialKit.framework; path = "/Users/danieldahan/Library/Developer/Xcode/DerivedData/MaterialKit-gdulktuccbcfwbdfadtpxkworhyc/Build/Products/Debug-iphoneos/MaterialKit.framework"; sourceTree = "<absolute>"; };
9642FA171C1B50E700022BC6 /* SideNavigationViewController.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SideNavigationViewController.app; sourceTree = BUILT_PRODUCTS_DIR; };
9642FA1A1C1B50E700022BC6 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
9642FA1C1C1B50E700022BC6 /* AMainViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AMainViewController.swift; sourceTree = "<group>"; };
......@@ -31,6 +48,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
9605900D1C388B8500691E88 /* MaterialKit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
......@@ -40,6 +58,7 @@
9642FA0E1C1B50E700022BC6 = {
isa = PBXGroup;
children = (
9605900C1C388B8500691E88 /* MaterialKit.framework */,
9642FA191C1B50E700022BC6 /* SideNavigationViewController */,
9642FA181C1B50E700022BC6 /* Products */,
);
......@@ -77,6 +96,7 @@
9642FA131C1B50E700022BC6 /* Sources */,
9642FA141C1B50E700022BC6 /* Frameworks */,
9642FA151C1B50E700022BC6 /* Resources */,
9605900F1C388B8500691E88 /* Embed Frameworks */,
);
buildRules = (
);
......
......@@ -20,11 +20,11 @@ import UIKit
import MaterialKit
class AMainViewController: UIViewController {
lazy var enabledButton: RaisedButton = RaisedButton()
override func viewDidLoad() {
super.viewDidLoad()
prepareView()
// Examples of using SideNavigationViewController.
prepareSwapSideNavigationViewControllerExample()
}
......@@ -36,18 +36,32 @@ class AMainViewController: UIViewController {
completion: nil)
}
/**
:name: prepareView
:description: General preparation statements.
*/
internal func handleEnabledButton() {
if true == sideNavigationViewController?.enabled {
sideNavigationViewController?.enabled = false
enabledButton.setTitle("Disabled", forState: .Normal)
} else {
sideNavigationViewController?.enabled = true
enabledButton.setTitle("Enabled", forState: .Normal)
}
}
private func prepareView() {
view.backgroundColor = MaterialColor.blue.base
prepareEnabledButton()
}
private func prepareEnabledButton() {
enabledButton.setTitle("Enabled", forState: .Normal)
enabledButton.addTarget(self, action: "handleEnabledButton", forControlEvents: .TouchUpInside)
// Add the enabledButton through MaterialLayout.
view.addSubview(enabledButton)
enabledButton.translatesAutoresizingMaskIntoConstraints = false
MaterialLayout.alignFromTopRight(view, child: enabledButton, top: 124, right: 24)
MaterialLayout.size(view, child: enabledButton, width: 200, height: 50)
}
/**
:name: prepareGeneralSideNavigationViewControllerExample
:description: General usage example.
*/
private func prepareSwapSideNavigationViewControllerExample() {
let button: FabButton = FabButton()
button.addTarget(self, action: "handleSwapViewControllers", forControlEvents: .TouchUpInside)
......
......@@ -182,7 +182,7 @@ public class CaptureView : MaterialView, UIGestureRecognizerDelegate {
/**
:name: contentInsetsRef
*/
public var contentInsetsRef: UIEdgeInsets = MaterialTheme.captureView.contentInsetsRef {
public var contentInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.Square4) {
didSet {
reloadView()
}
......@@ -308,19 +308,7 @@ public class CaptureView : MaterialView, UIGestureRecognizerDelegate {
*/
public override func prepareView() {
super.prepareView()
userInteractionEnabled = MaterialTheme.captureView.userInteractionEnabled
backgroundColor = MaterialTheme.captureView.backgroundColor
contentsRect = MaterialTheme.captureView.contentsRect
contentsCenter = MaterialTheme.captureView.contentsCenter
contentsScale = MaterialTheme.captureView.contentsScale
contentsGravity = MaterialTheme.captureView.contentsGravity
depth = MaterialTheme.captureView.depth
shadowColor = MaterialTheme.captureView.shadowColor
zPosition = MaterialTheme.captureView.zPosition
borderWidth = MaterialTheme.captureView.borderWidth
borderColor = MaterialTheme.captureView.bordercolor
backgroundColor = MaterialColor.black
preparePreviewView()
}
......
......@@ -36,7 +36,7 @@ public class CardView : MaterialPulseView {
/**
:name: divider
*/
public var divider: Bool = MaterialTheme.basicCardView.divider {
public var divider: Bool = true {
didSet {
reloadView()
}
......@@ -54,7 +54,7 @@ public class CardView : MaterialPulseView {
/**
:name: dividerInsetsRef
*/
public var dividerInsetsRef: UIEdgeInsets = MaterialTheme.basicCardView.dividerInsetsRef {
public var dividerInsetsRef: UIEdgeInsets = UIEdgeInsets(top: 8, left: 0, bottom: 8, right: 0) {
didSet {
reloadView()
}
......@@ -72,7 +72,7 @@ public class CardView : MaterialPulseView {
/**
:name: contentInsetsRef
*/
public var contentInsetsRef: UIEdgeInsets = MaterialTheme.basicCardView.contentInsetsRef {
public var contentInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.Square2) {
didSet {
reloadView()
}
......@@ -90,7 +90,7 @@ public class CardView : MaterialPulseView {
/**
:name: titleLabelInsetsRef
*/
public var titleLabelInsetsRef: UIEdgeInsets = MaterialTheme.basicCardView.titleLabelInsetsRef {
public var titleLabelInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.Square2) {
didSet {
reloadView()
}
......@@ -118,7 +118,7 @@ public class CardView : MaterialPulseView {
/**
:name: detailLabelInsetsRef
*/
public var detailLabelInsetsRef: UIEdgeInsets = MaterialTheme.basicCardView.detailLabelInsetsRef {
public var detailLabelInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.Square2) {
didSet {
reloadView()
}
......@@ -146,7 +146,7 @@ public class CardView : MaterialPulseView {
/**
:name: leftButtonsInsetsRef
*/
public var leftButtonsInsetsRef: UIEdgeInsets = MaterialTheme.basicCardView.leftButtonsInsetsRef {
public var leftButtonsInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.None) {
didSet {
reloadView()
}
......@@ -178,7 +178,7 @@ public class CardView : MaterialPulseView {
/**
:name: rightButtonsInsetsRef
*/
public var rightButtonsInsetsRef: UIEdgeInsets = MaterialTheme.basicCardView.rightButtonsInsetsRef {
public var rightButtonsInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.None) {
didSet {
reloadView()
}
......@@ -394,20 +394,9 @@ public class CardView : MaterialPulseView {
*/
public override func prepareView() {
super.prepareView()
userInteractionEnabled = MaterialTheme.basicCardView.userInteractionEnabled
backgroundColor = MaterialTheme.basicCardView.backgroundColor
pulseColor = MaterialTheme.basicCardView.pulseColor
contentsRect = MaterialTheme.basicCardView.contentsRect
contentsCenter = MaterialTheme.basicCardView.contentsCenter
contentsScale = MaterialTheme.basicCardView.contentsScale
contentsGravity = MaterialTheme.basicCardView.contentsGravity
depth = MaterialTheme.basicCardView.depth
shadowColor = MaterialTheme.basicCardView.shadowColor
zPosition = MaterialTheme.basicCardView.zPosition
borderWidth = MaterialTheme.basicCardView.borderWidth
borderColor = MaterialTheme.basicCardView.bordercolor
dividerColor = MaterialTheme.basicCardView.dividerColor
pulseColor = MaterialColor.blueGrey.lighten4
depth = .Depth2
dividerColor = MaterialColor.blueGrey.lighten5
}
/**
......
//
// Copyright (C) 2015 - 2016 CosmicMind, Inc. <http://cosmicmind.io>. All rights reserved.
//
// 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 Foundation
/**
:name: VideoExtension
*/
public enum VideoExtension {
case MOV
case M4V
case MP4
}
/**
:name: VideoExtensionToString
*/
public func VideoExtensionToString(type: VideoExtension) -> String {
switch type {
case .MOV:
return "mov"
case .M4V:
return "m4v"
case .MP4:
return "mp4"
}
}
/**
:name: ImageExtensionToString
*/
public enum ImageExtension {
case PNG
case JPG
case JPEG
case TIFF
case GIF
}
/**
:name: ImageExtensionToString
*/
public func ImageExtensionToString(type: ImageExtension) -> String {
switch type {
case .PNG:
return "png"
case .JPG:
return "jpg"
case .JPEG:
return "jpeg"
case .TIFF:
return "tiff"
case .GIF:
return "gif"
}
}
/**
:name: TextExtension
*/
public enum TextExtension {
case TXT
case RTF
case HTML
}
/**
:name: TextExtensionToString
*/
public func TextExtensionToString(type: TextExtension) -> String {
switch type {
case .TXT:
return "txt"
case .RTF:
return "rtf"
case .HTML:
return "html"
}
}
public enum SQLiteExtension {
case SQLite
case SQLiteSHM
}
/**
:name: SQLiteExtensionToString
*/
public func SQLiteExtensionToString(type: SQLiteExtension) -> String {
switch type {
case .SQLite:
return "sqlite"
case .SQLiteSHM:
return "sqlite-shm"
}
}
/**
:name: Schemas used with Persistant Storage
*/
public struct Schema {
public static let File: String = "File://"
}
/**
:name: Result enum
*/
public enum Result {
case Success
case Failure(error: NSError)
}
/**
:name: FileType enum
*/
public enum FileType {
case Directory
case Image
case Video
case Text
case SQLite
case Unknown
}
public struct File {
/**
:name: documentDirectoryPath
*/
public static let documentDirectoryPath: NSURL? = File.pathForDirectory(.DocumentDirectory)
/**
:name: libraryDirectoryPath
*/
public static let libraryDirectoryPath: NSURL? = File.pathForDirectory(.LibraryDirectory)
/**
:name: applicationDirectoryPath
*/
public static let applicationSupportDirectoryPath: NSURL? = File.pathForDirectory(.ApplicationSupportDirectory)
/**
:name: cachesDirectoryPath
*/
public static let cachesDirectoryPath: NSURL? = File.pathForDirectory(.CachesDirectory)
/**
:name: rootPath
*/
public static var rootPath: NSURL? {
let path: NSURL? = File.documentDirectoryPath
var pathComponents = path?.pathComponents
pathComponents?.removeLast()
return NSURL(string:Schema.File.stringByAppendingString((pathComponents?.joinWithSeparator("/"))!))
}
/**
:name: fileExistsAtPath
*/
public static func fileExistsAtPath(url: NSURL) -> Bool {
return NSFileManager.defaultManager().fileExistsAtPath(url.path!)
}
/**
:name: contentsEqualAtPath
*/
public static func contentsEqualAtPath(path: NSURL, andPath: NSURL) -> Bool {
return NSFileManager.defaultManager().contentsEqualAtPath(path.path!, andPath: andPath.path!)
}
/**
:name: isWritableFileAtPath
*/
public static func isWritableFileAtPath(url: NSURL) -> Bool {
return NSFileManager.defaultManager().isWritableFileAtPath(url.path!)
}
/**
:name: removeItemAtPath
*/
public static func removeItemAtPath(path: NSURL, completion: ((removed: Bool?, error: NSError?) -> Void)) {
do {
try NSFileManager.defaultManager().removeItemAtPath(path.path!)
completion(removed: true, error: nil)
} catch let error as NSError {
completion(removed: nil, error: error)
}
}
/**
:name: createDirectory
*/
public static func createDirectory(path: NSURL, name: String, withIntermediateDirectories createIntermediates: Bool, attributes: [String:AnyObject]?, completion: ((created: Bool?, error: NSError?) -> Void)){
do {
let newPath = path.URLByAppendingPathComponent(name)
try NSFileManager.defaultManager().createDirectoryAtPath(newPath.path!, withIntermediateDirectories: createIntermediates, attributes: attributes)
completion(created: true, error: nil)
} catch let error as NSError {
completion(created: nil, error: error)
}
}
/**
:name: removeDirectory
*/
public static func removeDirectory(path: NSURL, completion: ((removed: Bool?, error: NSError?) -> Void)) {
do {
try NSFileManager.defaultManager().removeItemAtURL(path)
completion(removed: true, error: nil)
} catch let error as NSError {
completion(removed: false, error: error)
}
}
/**
:name: contentsOfDirectory
*/
public static func contentsOfDirectory(path: NSURL, shouldSkipHiddenFiles skip: Bool = false, completion: ((contents: [NSURL]?, error: NSError?) -> Void)) {
do {
let contents = try NSFileManager.defaultManager().contentsOfDirectoryAtURL(path, includingPropertiesForKeys: nil, options: skip == true ? NSDirectoryEnumerationOptions.SkipsHiddenFiles : NSDirectoryEnumerationOptions(rawValue: 0))
completion(contents: contents, error: nil)
} catch let error as NSError {
return completion(contents: nil, error: error)
}
}
/**
:name: writeTo
*/
public static func writeTo(path: NSURL, value: String, name: String, completion: ((write: Bool?, error: NSError?) -> Void)) {
do{
try value.writeToURL(path.URLByAppendingPathComponent("/\(name)"), atomically: true, encoding: NSUTF8StringEncoding)
completion(write: true, error: nil)
} catch let error as NSError {
completion(write: false, error: error)
}
}
/**
:name: readFrom
*/
public static func readFrom(path: NSURL, completion: ((string: String?, error: NSError?) -> Void)) {
let data: NSData? = NSData(contentsOfURL: path)
if let fileData = data {
let content = String(data: fileData, encoding:NSUTF8StringEncoding)
completion(string: content, error: nil)
return
}
completion(string: nil, error: NSError(domain: "com.contentkit.fileReadError", code: 0, userInfo: nil))
}
/**
:name: url
*/
public static func url(searchPathDirectory: NSSearchPathDirectory, path: String) -> NSURL? {
var url: NSURL?
switch searchPathDirectory {
case .DocumentDirectory:
url = File.documentDirectoryPath
case .LibraryDirectory:
url = File.libraryDirectoryPath
case .CachesDirectory:
url = File.cachesDirectoryPath
case .ApplicationSupportDirectory:
url = File.applicationSupportDirectoryPath
default:
url = nil
break
}
return url?.URLByAppendingPathComponent(path)
}
/**
:name: pathForDirectory
*/
public static func pathForDirectory(searchPath: NSSearchPathDirectory) -> NSURL? {
return try? NSFileManager.defaultManager().URLForDirectory(searchPath, inDomain: .UserDomainMask, appropriateForURL: nil, create: true)
}
/**
:name: fileType
*/
public static func fileType(url: NSURL) -> FileType {
var isDir: Bool = false
File.contentsOfDirectory(url) { (contents, error) -> Void in
if nil == error {
return isDir = true
}
}
if isDir {
return .Directory
}
if let v: String = url.pathExtension {
switch v {
case ImageExtensionToString(.PNG),
ImageExtensionToString(.JPG),
ImageExtensionToString(.JPEG),
ImageExtensionToString(.GIF):
return .Image
case TextExtensionToString(.TXT),
TextExtensionToString(.RTF),
TextExtensionToString(.HTML):
return .Text
case VideoExtensionToString(.MOV),
VideoExtensionToString(.M4V),
VideoExtensionToString(.MP4):
return .Video
case SQLiteExtensionToString(.SQLite),
SQLiteExtensionToString(.SQLiteSHM):
return .SQLite
default:
break
}
}
return .Unknown
}
}
\ No newline at end of file
......@@ -36,7 +36,7 @@ public class ImageCardView : MaterialPulseView {
/**
:name: divider
*/
public var divider: Bool = MaterialTheme.imageCardView.divider {
public var divider: Bool = true {
didSet {
reloadView()
}
......@@ -54,7 +54,7 @@ public class ImageCardView : MaterialPulseView {
/**
:name: dividerInsetsRef
*/
public var dividerInsetsRef: UIEdgeInsets = MaterialTheme.imageCardView.dividerInsetsRef {
public var dividerInsetsRef: UIEdgeInsets = UIEdgeInsets(top: 8, left: 0, bottom: 8, right: 0) {
didSet {
reloadView()
}
......@@ -162,7 +162,7 @@ public class ImageCardView : MaterialPulseView {
/**
:name: contentInsetsRef
*/
public var contentInsetsRef: UIEdgeInsets = MaterialTheme.imageCardView.contentInsetsRef {
public var contentInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.Square2) {
didSet {
reloadView()
}
......@@ -180,7 +180,7 @@ public class ImageCardView : MaterialPulseView {
/**
:name: titleLabelInsetsRef
*/
public var titleLabelInsetsRef: UIEdgeInsets = MaterialTheme.imageCardView.titleLabelInsetsRef {
public var titleLabelInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.Square2) {
didSet {
reloadView()
}
......@@ -208,7 +208,7 @@ public class ImageCardView : MaterialPulseView {
/**
:name: detailLabelInsetsRef
*/
public var detailLabelInsetsRef: UIEdgeInsets = MaterialTheme.imageCardView.detailLabelInsetsRef {
public var detailLabelInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.Square2) {
didSet {
reloadView()
}
......@@ -236,7 +236,7 @@ public class ImageCardView : MaterialPulseView {
/**
:name: leftButtonsInsetsRef
*/
public var leftButtonsInsetsRef: UIEdgeInsets = MaterialTheme.imageCardView.leftButtonsInsetsRef {
public var leftButtonsInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.None) {
didSet {
reloadView()
}
......@@ -268,7 +268,7 @@ public class ImageCardView : MaterialPulseView {
/**
:name: rightButtonsInsetsRef
*/
public var rightButtonsInsetsRef: UIEdgeInsets = MaterialTheme.imageCardView.rightButtonsInsetsRef {
public var rightButtonsInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.None) {
didSet {
reloadView()
}
......@@ -531,20 +531,9 @@ public class ImageCardView : MaterialPulseView {
*/
public override func prepareView() {
super.prepareView()
userInteractionEnabled = MaterialTheme.imageCardView.userInteractionEnabled
backgroundColor = MaterialTheme.imageCardView.backgroundColor
pulseColor = MaterialTheme.imageCardView.pulseColor
contentsRect = MaterialTheme.imageCardView.contentsRect
contentsCenter = MaterialTheme.imageCardView.contentsCenter
contentsScale = MaterialTheme.imageCardView.contentsScale
contentsGravity = MaterialTheme.imageCardView.contentsGravity
depth = MaterialTheme.imageCardView.depth
shadowColor = MaterialTheme.imageCardView.shadowColor
zPosition = MaterialTheme.imageCardView.zPosition
borderWidth = MaterialTheme.imageCardView.borderWidth
borderColor = MaterialTheme.imageCardView.bordercolor
dividerColor = MaterialTheme.imageCardView.dividerColor
pulseColor = MaterialColor.blueGrey.lighten4
depth = .Depth2
dividerColor = MaterialColor.blueGrey.lighten5
}
/**
......
......@@ -72,18 +72,18 @@ public class MaterialLabel : UILabel {
/**
:name: wrapped
*/
public var wrapped: Bool! {
public var wrapped: Bool {
didSet {
textLayer.wrapped = nil == wrapped ? MaterialTheme.label.wrapped : wrapped!
textLayer.wrapped = wrapped
}
}
/**
:name: contentsScale
*/
public var contentsScale: CGFloat! {
public var contentsScale: CGFloat {
didSet {
textLayer.contentsScale = nil == contentsScale ? MaterialTheme.label.contentsScale : contentsScale!
textLayer.contentsScale = contentsScale
}
}
......@@ -100,6 +100,8 @@ public class MaterialLabel : UILabel {
:name: init
*/
public required init?(coder aDecoder: NSCoder) {
wrapped = true
contentsScale = UIScreen.mainScreen().scale
super.init(coder: aDecoder)
}
......@@ -107,6 +109,8 @@ public class MaterialLabel : UILabel {
:name: init
*/
public override init(frame: CGRect) {
wrapped = true
contentsScale = UIScreen.mainScreen().scale
super.init(frame: frame)
prepareView()
}
......@@ -130,9 +134,6 @@ public class MaterialLabel : UILabel {
:name: prepareView
*/
public func prepareView() {
textAlignment = MaterialTheme.label.textAlignment
wrapped = MaterialTheme.label.wrapped
contentsScale = MaterialTheme.label.contentsScale
font = MaterialTheme.label.font
textAlignment = .Left
}
}
\ No newline at end of file
......@@ -196,11 +196,10 @@ public class MaterialTextLayer : CATextLayer {
:name: prepareLayer
*/
internal func prepareLayer() {
textColor = MaterialTheme.textLayer.textColor
textAlignment = MaterialTheme.textLayer.textAlignment
wrapped = MaterialTheme.textLayer.wrapped
contentsScale = MaterialTheme.textLayer.contentsScale
font = MaterialTheme.textLayer.font
lineBreakMode = MaterialTheme.textLayer.lineBreakMode
textColor = MaterialColor.black
textAlignment = .Left
wrapped = true
contentsScale = UIScreen.mainScreen().scale
lineBreakMode = .ByWordWrapping
}
}
//
// Copyright (C) 2015 - 2016 CosmicMind, Inc. <http://cosmicmind.io>. All rights reserved.
//
// 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 struct MaterialTheme {
public struct basicCardView {}
public struct imageCardView {}
public struct navigationBarView {}
public struct captureView {}
public struct textLayer {}
public struct label {}
}
// basicCardView
public extension MaterialTheme.basicCardView {
// shadow
public static var depth: MaterialDepth = .Depth2
public static var shadowColor: UIColor = MaterialColor.black
// shape
public static var contentInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.Square2)
public static var titleLabelInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.Square2)
public static var detailLabelInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.Square2)
public static var leftButtonsInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.None)
public static var rightButtonsInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.None)
public static var dividerInsetsRef: UIEdgeInsets = UIEdgeInsets(top: 8, left: 0, bottom: 8, right: 0)
// border
public static var borderWidth: MaterialBorder = .None
public static var bordercolor: UIColor = MaterialColor.black
// color
public static var backgroundColor: UIColor = MaterialColor.white
public static var pulseColor: UIColor = MaterialColor.blueGrey.lighten4
public static var pulseColorOpacity: CGFloat = 0.25
// interaction
public static var userInteractionEnabled: Bool = true
// image
public static var contentsRect: CGRect = CGRectMake(0, 0, 1, 1)
public static var contentsCenter: CGRect = CGRectMake(0, 0, 1, 1)
public static var contentsScale: CGFloat = UIScreen.mainScreen().scale
public static var contentsGravity: MaterialGravity = .ResizeAspectFill
// position
public static var zPosition: CGFloat = 0
// divider
public static var divider: Bool = true
public static var dividerColor: UIColor = MaterialColor.blueGrey.lighten5
}
// imageCardView
public extension MaterialTheme.imageCardView {
// shadow
public static var depth: MaterialDepth = .Depth2
public static var shadowColor: UIColor = MaterialColor.black
// shape
public static var contentInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.Square2)
public static var titleLabelInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.Square2)
public static var detailLabelInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.Square2)
public static var leftButtonsInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.None)
public static var rightButtonsInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.None)
public static var dividerInsetsRef: UIEdgeInsets = UIEdgeInsets(top: 8, left: 0, bottom: 8, right: 0)
// border
public static var borderWidth: MaterialBorder = .None
public static var bordercolor: UIColor = MaterialColor.black
// color
public static var backgroundColor: UIColor = MaterialColor.white
public static var pulseColor: UIColor = MaterialColor.blueGrey.lighten4
public static var pulseColorOpacity: CGFloat = 0.25
// interaction
public static var userInteractionEnabled: Bool = true
// image
public static var contentsRect: CGRect = CGRectMake(0, 0, 1, 1)
public static var contentsCenter: CGRect = CGRectMake(0, 0, 1, 1)
public static var contentsScale: CGFloat = UIScreen.mainScreen().scale
public static var contentsGravity: MaterialGravity = .ResizeAspectFill
// position
public static var zPosition: CGFloat = 0
// divider
public static var divider: Bool = true
public static var dividerColor: UIColor = MaterialColor.blueGrey.lighten5
}
// navigationBarView
public extension MaterialTheme.navigationBarView {
// frame
public static var x: CGFloat = 0
public static var y: CGFloat = 0
public static var width: CGFloat = UIScreen.mainScreen().bounds.width
public static var height: CGFloat = 70
// shadow
public static var depth: MaterialDepth = .Depth2
public static var shadowColor: UIColor = MaterialColor.black
// shape
public static var contentInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.Square2)
public static var titleLabelInsetsRef: UIEdgeInsets = UIEdgeInsets(top: 8, left: 0, bottom: 0, right: 0)
public static var detailLabelInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.None)
public static var leftButtonsInsetsRef: UIEdgeInsets = UIEdgeInsets(top: 8, left: 0, bottom: 0, right: 0)
public static var rightButtonsInsetsRef: UIEdgeInsets = UIEdgeInsets(top: 8, left: 0, bottom: 0, right: 0)
// border
public static var borderWidth: MaterialBorder = .None
public static var bordercolor: UIColor = MaterialColor.black
// color
public static var backgroundColor: UIColor = MaterialColor.white
// interaction
public static var userInteractionEnabled: Bool = true
// image
public static var contentsRect: CGRect = CGRectMake(0, 0, 1, 1)
public static var contentsCenter: CGRect = CGRectMake(0, 0, 1, 1)
public static var contentsScale: CGFloat = UIScreen.mainScreen().scale
public static var contentsGravity: MaterialGravity = .ResizeAspectFill
// position
public static var zPosition: CGFloat = 100
}
// captureView
public extension MaterialTheme.captureView {
// shadow
public static var depth: MaterialDepth = .None
public static var shadowColor: UIColor = MaterialColor.black
// shape
public static var contentInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.Square4)
// border
public static var borderWidth: MaterialBorder = .None
public static var bordercolor: UIColor = MaterialColor.black
// color
public static var backgroundColor: UIColor = MaterialColor.black
// interaction
public static var userInteractionEnabled: Bool = true
// image
public static var contentsRect: CGRect = CGRectMake(0, 0, 1, 1)
public static var contentsCenter: CGRect = CGRectMake(0, 0, 1, 1)
public static var contentsScale: CGFloat = UIScreen.mainScreen().scale
public static var contentsGravity: MaterialGravity = .ResizeAspectFill
// position
public static var zPosition: CGFloat = 0
}
// textLayer
public extension MaterialTheme.textLayer {
// scale
public static var contentsScale: CGFloat = UIScreen.mainScreen().scale
// alignment
public static var wrapped: Bool = true
public static var textAlignment: NSTextAlignment = .Left
public static var lineBreakMode: NSLineBreakMode = .ByWordWrapping
// font
public static var font: UIFont = RobotoFont.regular
// color
public static var textColor: UIColor = MaterialColor.black
}
// label
public extension MaterialTheme.label {
// scale
public static var contentsScale: CGFloat = UIScreen.mainScreen().scale
// alignment
public static var wrapped: Bool = true
public static var textAlignment: NSTextAlignment = .Left
// font
public static var font: UIFont = RobotoFont.regular
}
......@@ -406,6 +406,7 @@ public class MaterialView : UIView {
*/
public func prepareView() {
prepareVisualLayer()
backgroundColor = MaterialColor.white
shadowColor = MaterialColor.black
borderColor = MaterialColor.black
}
......
......@@ -40,7 +40,7 @@ public class NavigationBarView : MaterialView {
/**
:name: contentInsetsRef
*/
public var contentInsetsRef: UIEdgeInsets = MaterialTheme.navigationBarView.contentInsetsRef {
public var contentInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.Square2) {
didSet {
reloadView()
}
......@@ -58,7 +58,7 @@ public class NavigationBarView : MaterialView {
/**
:name: titleLabelInsetsRef
*/
public var titleLabelInsetsRef: UIEdgeInsets = MaterialTheme.navigationBarView.titleLabelInsetsRef {
public var titleLabelInsetsRef: UIEdgeInsets = UIEdgeInsets(top: 8, left: 0, bottom: 0, right: 0) {
didSet {
reloadView()
}
......@@ -86,7 +86,7 @@ public class NavigationBarView : MaterialView {
/**
:name: detailLabelInsetsRef
*/
public var detailLabelInsetsRef: UIEdgeInsets = MaterialTheme.navigationBarView.detailLabelInsetsRef {
public var detailLabelInsetsRef: UIEdgeInsets = MaterialEdgeInsetsToValue(.None) {
didSet {
reloadView()
}
......@@ -114,7 +114,7 @@ public class NavigationBarView : MaterialView {
/**
:name: leftButtonsInsetsRef
*/
public var leftButtonsInsetsRef: UIEdgeInsets = MaterialTheme.navigationBarView.leftButtonsInsetsRef {
public var leftButtonsInsetsRef: UIEdgeInsets = UIEdgeInsets(top: 8, left: 0, bottom: 0, right: 0) {
didSet {
reloadView()
}
......@@ -146,7 +146,7 @@ public class NavigationBarView : MaterialView {
/**
:name: rightButtonsInsetsRef
*/
public var rightButtonsInsetsRef: UIEdgeInsets = MaterialTheme.navigationBarView.rightButtonsInsetsRef {
public var rightButtonsInsetsRef: UIEdgeInsets = UIEdgeInsets(top: 8, left: 0, bottom: 0, right: 0) {
didSet {
reloadView()
}
......@@ -184,14 +184,14 @@ public class NavigationBarView : MaterialView {
:name: init
*/
public convenience init() {
self.init(frame: CGRectMake(MaterialTheme.navigationBarView.x, MaterialTheme.navigationBarView.y, MaterialTheme.navigationBarView.width, MaterialTheme.navigationBarView.height))
self.init(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.width, 70))
}
/**
:name: init
*/
public convenience init?(titleLabel: UILabel? = nil, detailLabel: UILabel? = nil, leftButtons: Array<UIButton>? = nil, rightButtons: Array<UIButton>? = nil) {
self.init(frame: CGRectMake(MaterialTheme.navigationBarView.x, MaterialTheme.navigationBarView.y, MaterialTheme.navigationBarView.width, MaterialTheme.navigationBarView.height))
self.init(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.width, 70))
prepareProperties(titleLabel, detailLabel: detailLabel, leftButtons: leftButtons, rightButtons: rightButtons)
}
......@@ -320,18 +320,7 @@ public class NavigationBarView : MaterialView {
*/
public override func prepareView() {
super.prepareView()
userInteractionEnabled = MaterialTheme.navigationBarView.userInteractionEnabled
backgroundColor = MaterialTheme.navigationBarView.backgroundColor
contentsRect = MaterialTheme.navigationBarView.contentsRect
contentsCenter = MaterialTheme.navigationBarView.contentsCenter
contentsScale = MaterialTheme.navigationBarView.contentsScale
contentsGravity = MaterialTheme.navigationBarView.contentsGravity
depth = MaterialTheme.navigationBarView.depth
shadowColor = MaterialTheme.navigationBarView.shadowColor
zPosition = MaterialTheme.navigationBarView.zPosition
borderWidth = MaterialTheme.navigationBarView.borderWidth
borderColor = MaterialTheme.navigationBarView.bordercolor
depth = .Depth2
}
/**
......
......@@ -154,7 +154,16 @@ public class SideNavigationViewController: UIViewController, UIGestureRecognizer
A Boolean property that enables and disables the sideView from
opening and closing. Defaults to true.
*/
public var enabled: Bool = true
public var enabled: Bool = true {
didSet {
if enabled {
removeGestures(&sidePanGesture, tap: &sideTapGesture)
prepareGestures(&sidePanGesture, panSelector: "handlePanGesture:", tap: &sideTapGesture, tapSelector: "handleTapGesture:")
} else {
removeGestures(&sidePanGesture, tap: &sideTapGesture)
}
}
}
/**
A Boolean property that triggers the status bar to be hidden
......
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