mirror of
https://github.com/Ranchero-Software/NetNewsWire
synced 2025-08-12 06:26:36 +00:00
Break build. Remove local copy of DB5.framework.
This commit is contained in:
@@ -109,8 +109,6 @@
|
||||
84AD1EAA2031617300BC20B7 /* FolderPasteboardWriter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84AD1EA92031617300BC20B7 /* FolderPasteboardWriter.swift */; };
|
||||
84AD1EBA2031649C00BC20B7 /* SmartFeedPasteboardWriter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84AD1EB92031649C00BC20B7 /* SmartFeedPasteboardWriter.swift */; };
|
||||
84AD1EBC2032AF5C00BC20B7 /* SidebarOutlineDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84AD1EBB2032AF5C00BC20B7 /* SidebarOutlineDataSource.swift */; };
|
||||
84B06FCF1ED37F7D00F0B54B /* DB5.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84B06FCC1ED37F7200F0B54B /* DB5.framework */; };
|
||||
84B06FD01ED37F7D00F0B54B /* DB5.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 84B06FCC1ED37F7200F0B54B /* DB5.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
84B06FE91ED3803A00F0B54B /* RSFeedFinder.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84B06FE61ED3803200F0B54B /* RSFeedFinder.framework */; };
|
||||
84B06FEA1ED3803A00F0B54B /* RSFeedFinder.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 84B06FE61ED3803200F0B54B /* RSFeedFinder.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
84B7178C201E66580091657D /* SidebarViewController+ContextualMenus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B7178B201E66580091657D /* SidebarViewController+ContextualMenus.swift */; };
|
||||
@@ -256,27 +254,6 @@
|
||||
remoteGlobalIDString = 849C645F1ED37A5D003D8FC0;
|
||||
remoteInfo = Evergreen;
|
||||
};
|
||||
84B06FCB1ED37F7200F0B54B /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 84B06FC61ED37F7200F0B54B /* DB5.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 84F22BD11B52DC2E000060CE;
|
||||
remoteInfo = DB5;
|
||||
};
|
||||
84B06FCD1ED37F7200F0B54B /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 84B06FC61ED37F7200F0B54B /* DB5.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 84F22BDB1B52DC2E000060CE;
|
||||
remoteInfo = DB5Tests;
|
||||
};
|
||||
84B06FD11ED37F7D00F0B54B /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 84B06FC61ED37F7200F0B54B /* DB5.xcodeproj */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 84F22BD01B52DC2E000060CE;
|
||||
remoteInfo = DB5;
|
||||
};
|
||||
84B06FE51ED3803200F0B54B /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 84B06FE01ED3803200F0B54B /* RSFeedFinder.xcodeproj */;
|
||||
@@ -333,7 +310,6 @@
|
||||
846E77421F6EF6A100A165E2 /* Database.framework in Embed Frameworks */,
|
||||
84B06FEA1ED3803A00F0B54B /* RSFeedFinder.framework in Embed Frameworks */,
|
||||
846E773E1F6EF67A00A165E2 /* Account.framework in Embed Frameworks */,
|
||||
84B06FD01ED37F7D00F0B54B /* DB5.framework in Embed Frameworks */,
|
||||
);
|
||||
name = "Embed Frameworks";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@@ -481,7 +457,6 @@
|
||||
84AD1EA92031617300BC20B7 /* FolderPasteboardWriter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FolderPasteboardWriter.swift; sourceTree = "<group>"; };
|
||||
84AD1EB92031649C00BC20B7 /* SmartFeedPasteboardWriter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SmartFeedPasteboardWriter.swift; sourceTree = "<group>"; };
|
||||
84AD1EBB2032AF5C00BC20B7 /* SidebarOutlineDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarOutlineDataSource.swift; sourceTree = "<group>"; };
|
||||
84B06FC61ED37F7200F0B54B /* DB5.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = DB5.xcodeproj; path = Frameworks/DB5/DB5.xcodeproj; sourceTree = "<group>"; };
|
||||
84B06FE01ED3803200F0B54B /* RSFeedFinder.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RSFeedFinder.xcodeproj; path = Frameworks/RSFeedFinder/RSFeedFinder.xcodeproj; sourceTree = "<group>"; };
|
||||
84B7178B201E66580091657D /* SidebarViewController+ContextualMenus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SidebarViewController+ContextualMenus.swift"; sourceTree = "<group>"; };
|
||||
84B99C661FAE35E600ECDEDB /* FeedListTreeControllerDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedListTreeControllerDelegate.swift; sourceTree = "<group>"; };
|
||||
@@ -582,7 +557,6 @@
|
||||
84BB4B771F11753300858766 /* Data.framework in Frameworks */,
|
||||
846E77411F6EF6A100A165E2 /* Database.framework in Frameworks */,
|
||||
84B06FE91ED3803A00F0B54B /* RSFeedFinder.framework in Frameworks */,
|
||||
84B06FCF1ED37F7D00F0B54B /* DB5.framework in Frameworks */,
|
||||
846E773D1F6EF67A00A165E2 /* Account.framework in Frameworks */,
|
||||
84FB9A2F1EDCD6C4003D53B9 /* Sparkle.framework in Frameworks */,
|
||||
);
|
||||
@@ -967,7 +941,6 @@
|
||||
846E77301F6EF5D600A165E2 /* Account.xcodeproj */,
|
||||
846E77161F6EF5D000A165E2 /* Database.xcodeproj */,
|
||||
84BB4B611F1174D400858766 /* Data.xcodeproj */,
|
||||
84B06FC61ED37F7200F0B54B /* DB5.xcodeproj */,
|
||||
84B06FE01ED3803200F0B54B /* RSFeedFinder.xcodeproj */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
@@ -1013,15 +986,6 @@
|
||||
path = Evergreen/Dinosaurs;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
84B06FC71ED37F7200F0B54B /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84B06FCC1ED37F7200F0B54B /* DB5.framework */,
|
||||
84B06FCE1ED37F7200F0B54B /* DB5Tests.xctest */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
84B06FE11ED3803200F0B54B /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -1249,7 +1213,6 @@
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
84B06FD21ED37F7D00F0B54B /* PBXTargetDependency */,
|
||||
84B06FEC1ED3803A00F0B54B /* PBXTargetDependency */,
|
||||
84BB4B7A1F11753300858766 /* PBXTargetDependency */,
|
||||
846E77401F6EF67A00A165E2 /* PBXTargetDependency */,
|
||||
@@ -1343,10 +1306,6 @@
|
||||
ProductGroup = 846E77171F6EF5D000A165E2 /* Products */;
|
||||
ProjectRef = 846E77161F6EF5D000A165E2 /* Database.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 84B06FC71ED37F7200F0B54B /* Products */;
|
||||
ProjectRef = 84B06FC61ED37F7200F0B54B /* DB5.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 84B06FE11ED3803200F0B54B /* Products */;
|
||||
ProjectRef = 84B06FE01ED3803200F0B54B /* RSFeedFinder.xcodeproj */;
|
||||
@@ -1392,20 +1351,6 @@
|
||||
remoteRef = 846E773B1F6EF5D700A165E2 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
84B06FCC1ED37F7200F0B54B /* DB5.framework */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.framework;
|
||||
path = DB5.framework;
|
||||
remoteRef = 84B06FCB1ED37F7200F0B54B /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
84B06FCE1ED37F7200F0B54B /* DB5Tests.xctest */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.cfbundle;
|
||||
path = DB5Tests.xctest;
|
||||
remoteRef = 84B06FCD1ED37F7200F0B54B /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
84B06FE61ED3803200F0B54B /* RSFeedFinder.framework */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.framework;
|
||||
@@ -1710,11 +1655,6 @@
|
||||
target = 849C645F1ED37A5D003D8FC0 /* Evergreen */;
|
||||
targetProxy = 849C64721ED37A5D003D8FC0 /* PBXContainerItemProxy */;
|
||||
};
|
||||
84B06FD21ED37F7D00F0B54B /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
name = DB5;
|
||||
targetProxy = 84B06FD11ED37F7D00F0B54B /* PBXContainerItemProxy */;
|
||||
};
|
||||
84B06FEC1ED3803A00F0B54B /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
name = RSFeedFinder;
|
||||
|
||||
@@ -1,321 +0,0 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
84F22BD51B52DC2E000060CE /* DB5.h in Headers */ = {isa = PBXBuildFile; fileRef = 84F22BD41B52DC2E000060CE /* DB5.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
84F22BDC1B52DC2E000060CE /* DB5.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84F22BD11B52DC2E000060CE /* DB5.framework */; };
|
||||
84F22BE11B52DC2E000060CE /* DB5Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 84F22BE01B52DC2E000060CE /* DB5Tests.m */; };
|
||||
84F22BEF1B52DC48000060CE /* VSTheme.h in Headers */ = {isa = PBXBuildFile; fileRef = 84F22BEB1B52DC48000060CE /* VSTheme.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
84F22BF01B52DC48000060CE /* VSTheme.m in Sources */ = {isa = PBXBuildFile; fileRef = 84F22BEC1B52DC48000060CE /* VSTheme.m */; };
|
||||
84F22BF11B52DC48000060CE /* VSThemeLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 84F22BED1B52DC48000060CE /* VSThemeLoader.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
84F22BF21B52DC48000060CE /* VSThemeLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 84F22BEE1B52DC48000060CE /* VSThemeLoader.m */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
84F22BDD1B52DC2E000060CE /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 84F22BC81B52DC2E000060CE /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 84F22BD01B52DC2E000060CE;
|
||||
remoteInfo = DB5;
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
84F22BD11B52DC2E000060CE /* DB5.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DB5.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
84F22BD41B52DC2E000060CE /* DB5.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = DB5.h; path = DB5/DB5.h; sourceTree = "<group>"; };
|
||||
84F22BD61B52DC2E000060CE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = DB5/Info.plist; sourceTree = "<group>"; };
|
||||
84F22BDB1B52DC2E000060CE /* DB5Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DB5Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
84F22BE01B52DC2E000060CE /* DB5Tests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DB5Tests.m; sourceTree = "<group>"; };
|
||||
84F22BE21B52DC2E000060CE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
84F22BEB1B52DC48000060CE /* VSTheme.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VSTheme.h; path = DB5/VSTheme.h; sourceTree = "<group>"; };
|
||||
84F22BEC1B52DC48000060CE /* VSTheme.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VSTheme.m; path = DB5/VSTheme.m; sourceTree = "<group>"; };
|
||||
84F22BED1B52DC48000060CE /* VSThemeLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VSThemeLoader.h; path = DB5/VSThemeLoader.h; sourceTree = "<group>"; };
|
||||
84F22BEE1B52DC48000060CE /* VSThemeLoader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VSThemeLoader.m; path = DB5/VSThemeLoader.m; sourceTree = "<group>"; };
|
||||
D511EEF720242E3E00712EC3 /* DB5_project_debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = DB5_project_debug.xcconfig; sourceTree = "<group>"; };
|
||||
D511EEF820242E3E00712EC3 /* DB5Tests_target.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = DB5Tests_target.xcconfig; sourceTree = "<group>"; };
|
||||
D511EEF920242E3E00712EC3 /* DB5_project.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = DB5_project.xcconfig; sourceTree = "<group>"; };
|
||||
D511EEFA20242E3E00712EC3 /* DB5_target.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = DB5_target.xcconfig; sourceTree = "<group>"; };
|
||||
D511EEFB20242E3E00712EC3 /* DB5_project_release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = DB5_project_release.xcconfig; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
84F22BCD1B52DC2E000060CE /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
84F22BD81B52DC2E000060CE /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
84F22BDC1B52DC2E000060CE /* DB5.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
84F22BC71B52DC2E000060CE = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84F22BD41B52DC2E000060CE /* DB5.h */,
|
||||
84F22BEB1B52DC48000060CE /* VSTheme.h */,
|
||||
84F22BEC1B52DC48000060CE /* VSTheme.m */,
|
||||
84F22BED1B52DC48000060CE /* VSThemeLoader.h */,
|
||||
84F22BEE1B52DC48000060CE /* VSThemeLoader.m */,
|
||||
84F22BD61B52DC2E000060CE /* Info.plist */,
|
||||
84F22BDF1B52DC2E000060CE /* DB5Tests */,
|
||||
84F22BD21B52DC2E000060CE /* Products */,
|
||||
D511EEF620242E3E00712EC3 /* xcconfig */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
84F22BD21B52DC2E000060CE /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84F22BD11B52DC2E000060CE /* DB5.framework */,
|
||||
84F22BDB1B52DC2E000060CE /* DB5Tests.xctest */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
84F22BDF1B52DC2E000060CE /* DB5Tests */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84F22BE01B52DC2E000060CE /* DB5Tests.m */,
|
||||
84F22BE21B52DC2E000060CE /* Info.plist */,
|
||||
);
|
||||
path = DB5Tests;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D511EEF620242E3E00712EC3 /* xcconfig */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D511EEF720242E3E00712EC3 /* DB5_project_debug.xcconfig */,
|
||||
D511EEF820242E3E00712EC3 /* DB5Tests_target.xcconfig */,
|
||||
D511EEF920242E3E00712EC3 /* DB5_project.xcconfig */,
|
||||
D511EEFA20242E3E00712EC3 /* DB5_target.xcconfig */,
|
||||
D511EEFB20242E3E00712EC3 /* DB5_project_release.xcconfig */,
|
||||
);
|
||||
path = xcconfig;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
84F22BCE1B52DC2E000060CE /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
84F22BD51B52DC2E000060CE /* DB5.h in Headers */,
|
||||
84F22BEF1B52DC48000060CE /* VSTheme.h in Headers */,
|
||||
84F22BF11B52DC48000060CE /* VSThemeLoader.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
84F22BD01B52DC2E000060CE /* DB5 */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 84F22BE51B52DC2E000060CE /* Build configuration list for PBXNativeTarget "DB5" */;
|
||||
buildPhases = (
|
||||
84F22BCC1B52DC2E000060CE /* Sources */,
|
||||
84F22BCD1B52DC2E000060CE /* Frameworks */,
|
||||
84F22BCE1B52DC2E000060CE /* Headers */,
|
||||
84F22BCF1B52DC2E000060CE /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = DB5;
|
||||
productName = DB5;
|
||||
productReference = 84F22BD11B52DC2E000060CE /* DB5.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
84F22BDA1B52DC2E000060CE /* DB5Tests */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 84F22BE81B52DC2E000060CE /* Build configuration list for PBXNativeTarget "DB5Tests" */;
|
||||
buildPhases = (
|
||||
84F22BD71B52DC2E000060CE /* Sources */,
|
||||
84F22BD81B52DC2E000060CE /* Frameworks */,
|
||||
84F22BD91B52DC2E000060CE /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
84F22BDE1B52DC2E000060CE /* PBXTargetDependency */,
|
||||
);
|
||||
name = DB5Tests;
|
||||
productName = DB5Tests;
|
||||
productReference = 84F22BDB1B52DC2E000060CE /* DB5Tests.xctest */;
|
||||
productType = "com.apple.product-type.bundle.unit-test";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
84F22BC81B52DC2E000060CE /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0930;
|
||||
ORGANIZATIONNAME = "Ranchero Software, LLC";
|
||||
TargetAttributes = {
|
||||
84F22BD01B52DC2E000060CE = {
|
||||
CreatedOnToolsVersion = 7.0;
|
||||
LastSwiftMigration = 0800;
|
||||
};
|
||||
84F22BDA1B52DC2E000060CE = {
|
||||
CreatedOnToolsVersion = 7.0;
|
||||
LastSwiftMigration = 0800;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 84F22BCB1B52DC2E000060CE /* Build configuration list for PBXProject "DB5" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = 84F22BC71B52DC2E000060CE;
|
||||
productRefGroup = 84F22BD21B52DC2E000060CE /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
84F22BD01B52DC2E000060CE /* DB5 */,
|
||||
84F22BDA1B52DC2E000060CE /* DB5Tests */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
84F22BCF1B52DC2E000060CE /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
84F22BD91B52DC2E000060CE /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
84F22BCC1B52DC2E000060CE /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
84F22BF01B52DC48000060CE /* VSTheme.m in Sources */,
|
||||
84F22BF21B52DC48000060CE /* VSThemeLoader.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
84F22BD71B52DC2E000060CE /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
84F22BE11B52DC2E000060CE /* DB5Tests.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXTargetDependency section */
|
||||
84F22BDE1B52DC2E000060CE /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = 84F22BD01B52DC2E000060CE /* DB5 */;
|
||||
targetProxy = 84F22BDD1B52DC2E000060CE /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
84F22BE31B52DC2E000060CE /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D511EEF720242E3E00712EC3 /* DB5_project_debug.xcconfig */;
|
||||
buildSettings = {
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
84F22BE41B52DC2E000060CE /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D511EEFB20242E3E00712EC3 /* DB5_project_release.xcconfig */;
|
||||
buildSettings = {
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
84F22BE61B52DC2E000060CE /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D511EEFA20242E3E00712EC3 /* DB5_target.xcconfig */;
|
||||
buildSettings = {
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
84F22BE71B52DC2E000060CE /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D511EEFA20242E3E00712EC3 /* DB5_target.xcconfig */;
|
||||
buildSettings = {
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
84F22BE91B52DC2E000060CE /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D511EEF820242E3E00712EC3 /* DB5Tests_target.xcconfig */;
|
||||
buildSettings = {
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
84F22BEA1B52DC2E000060CE /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D511EEF820242E3E00712EC3 /* DB5Tests_target.xcconfig */;
|
||||
buildSettings = {
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
84F22BCB1B52DC2E000060CE /* Build configuration list for PBXProject "DB5" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
84F22BE31B52DC2E000060CE /* Debug */,
|
||||
84F22BE41B52DC2E000060CE /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
84F22BE51B52DC2E000060CE /* Build configuration list for PBXNativeTarget "DB5" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
84F22BE61B52DC2E000060CE /* Debug */,
|
||||
84F22BE71B52DC2E000060CE /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
84F22BE81B52DC2E000060CE /* Build configuration list for PBXNativeTarget "DB5Tests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
84F22BE91B52DC2E000060CE /* Debug */,
|
||||
84F22BEA1B52DC2E000060CE /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 84F22BC81B52DC2E000060CE /* Project object */;
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:DB5.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
@@ -1,21 +0,0 @@
|
||||
//
|
||||
// DB5.h
|
||||
// DB5
|
||||
//
|
||||
// Created by Brent Simmons on 7/12/15.
|
||||
// Copyright © 2015 Ranchero Software, LLC. All rights reserved.
|
||||
//
|
||||
|
||||
@import AppKit;
|
||||
|
||||
//! Project version number for DB5.
|
||||
FOUNDATION_EXPORT double DB5VersionNumber;
|
||||
|
||||
//! Project version string for DB5.
|
||||
FOUNDATION_EXPORT const unsigned char DB5VersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <DB5/PublicHeader.h>
|
||||
|
||||
#import <DB5/VSThemeLoader.h>
|
||||
#import <DB5/VSTheme.h>
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Copyright © 2015 Ranchero Software, LLC. All rights reserved.</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,92 +0,0 @@
|
||||
//
|
||||
// VSTheme.h
|
||||
// Q Branch LLC
|
||||
//
|
||||
// Created by Brent Simmons on 6/26/13.
|
||||
// Copyright (c) 2012 Q Branch LLC. All rights reserved.
|
||||
//
|
||||
|
||||
@import AppKit;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
typedef NS_ENUM(NSUInteger, VSTextCaseTransform) {
|
||||
VSTextCaseTransformNone,
|
||||
VSTextCaseTransformUpper,
|
||||
VSTextCaseTransformLower
|
||||
};
|
||||
|
||||
|
||||
@class VSAnimationSpecifier;
|
||||
|
||||
@interface VSTheme : NSObject
|
||||
|
||||
- (id)initWithDictionary:(NSDictionary *)themeDictionary;
|
||||
|
||||
@property (nonatomic, strong) NSString *name;
|
||||
@property (nonatomic, weak) VSTheme *parentTheme; /*can inherit*/
|
||||
|
||||
- (nullable id)objectForKey:(NSString *)key;
|
||||
- (BOOL)boolForKey:(NSString *)key;
|
||||
- (nullable NSString *)stringForKey:(NSString *)key;
|
||||
- (NSInteger)integerForKey:(NSString *)key;
|
||||
- (CGFloat)floatForKey:(NSString *)key;
|
||||
|
||||
#if TARGET_OS_IPHONE
|
||||
|
||||
- (nullable UIImage *)imageForKey:(NSString *)key; /*Via UIImage imageNamed:*/
|
||||
- (UIColor *)colorForKey:(NSString *)key; /*123ABC or #123ABC: 6 digits, leading # allowed but not required*/
|
||||
- (UIEdgeInsets)edgeInsetsForKey:(NSString *)key; /*xTop, xLeft, xRight, xBottom keys*/
|
||||
- (UIFont *)fontForKey:(NSString *)key; /*x and xSize keys*/
|
||||
|
||||
#else /*Mac*/
|
||||
|
||||
- (nullable NSImage *)imageForKey:(NSString *)key; /*Via NSImage imageNamed:*/
|
||||
- (NSColor *)colorForKey:(NSString *)key; /*123ABC or #123ABC: 6 digits, leading # allowed but not required*/
|
||||
- (NSColor *)colorWithAlphaForKey:(NSString *)key; /*key and keyAlpha*/
|
||||
- (NSEdgeInsets)edgeInsetsForKey:(NSString *)key; /*xTop, xLeft, xRight, xBottom keys*/
|
||||
- (NSFont *)fontForKey:(NSString *)key; /*x and xSize keys*/
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
- (CGPoint)pointForKey:(NSString *)key; /*xX and xY keys*/
|
||||
- (CGSize)sizeForKey:(NSString *)key; /*xWidth and xHeight keys*/
|
||||
- (NSTimeInterval)timeIntervalForKey:(NSString *)key;
|
||||
|
||||
#if TARGET_OS_IPHONE
|
||||
|
||||
- (UIViewAnimationOptions)curveForKey:(NSString *)key; /*Possible values: easeinout, easeout, easein, linear*/
|
||||
- (VSAnimationSpecifier *)animationSpecifierForKey:(NSString *)key; /*xDuration, xDelay, xCurve*/
|
||||
#endif
|
||||
|
||||
- (VSTextCaseTransform)textCaseTransformForKey:(NSString *)key; /*lowercase or uppercase -- returns VSTextCaseTransformNone*/
|
||||
- (NSString *)string:(NSString *)s transformedWithTextCaseTransformKey:(NSString *)key;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
NSString *VSThemeSpecifierPlusKey(NSString *specifier, NSString *key); /*specifier + . + key*/
|
||||
|
||||
|
||||
|
||||
#if TARGET_OS_IPHONE
|
||||
|
||||
@interface VSTheme (Animations)
|
||||
|
||||
- (void)animateWithAnimationSpecifierKey:(NSString *)animationSpecifierKey animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@interface VSAnimationSpecifier : NSObject
|
||||
|
||||
@property (nonatomic, assign) NSTimeInterval delay;
|
||||
@property (nonatomic, assign) NSTimeInterval duration;
|
||||
@property (nonatomic, assign) UIViewAnimationOptions curve;
|
||||
|
||||
@end
|
||||
|
||||
#endif
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -1,367 +0,0 @@
|
||||
//
|
||||
// VSTheme.m
|
||||
// Q Branch LLC
|
||||
//
|
||||
// Created by Brent Simmons on 6/26/13.
|
||||
// Copyright (c) 2012 Q Branch LLC. All rights reserved.
|
||||
//
|
||||
|
||||
#import "VSTheme.h"
|
||||
|
||||
|
||||
#if TARGET_OS_IPHONE
|
||||
|
||||
#define VS_COLOR UIColor
|
||||
#define VS_IMAGE UIImage
|
||||
#define VS_FONT UIFont
|
||||
#define VS_EDGE_INSETS UIEdgeInsets
|
||||
#define VSEdgeInsetsMake UIEdgeInsetsMake
|
||||
|
||||
#else /*Mac*/
|
||||
|
||||
#define VS_COLOR NSColor
|
||||
#define VS_IMAGE NSImage
|
||||
#define VS_FONT NSFont
|
||||
#define VS_EDGE_INSETS NSEdgeInsets
|
||||
#define VSEdgeInsetsMake NSEdgeInsetsMake
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
static BOOL stringIsEmpty(NSString *s);
|
||||
static VS_COLOR *colorWithHexString(NSString *hexString);
|
||||
|
||||
|
||||
@interface VSTheme ()
|
||||
|
||||
@property (nonatomic, strong) NSDictionary *themeDictionary;
|
||||
@property (nonatomic, strong) NSMutableDictionary *colorCache;
|
||||
@property (nonatomic, strong) NSMutableDictionary *colorWithAlphaCache;
|
||||
@property (nonatomic, strong) NSMutableDictionary *fontCache;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation VSTheme
|
||||
|
||||
|
||||
#pragma mark Init
|
||||
|
||||
- (id)initWithDictionary:(NSDictionary *)themeDictionary {
|
||||
|
||||
self = [super init];
|
||||
if (self == nil)
|
||||
return nil;
|
||||
|
||||
_themeDictionary = themeDictionary;
|
||||
|
||||
_colorCache = [NSMutableDictionary new];
|
||||
_fontCache = [NSMutableDictionary new];
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
- (id)objectForKey:(NSString *)key {
|
||||
|
||||
id obj = [self.themeDictionary valueForKeyPath:key];
|
||||
if (obj == nil && self.parentTheme != nil)
|
||||
obj = [self.parentTheme objectForKey:key];
|
||||
return obj;
|
||||
}
|
||||
|
||||
|
||||
- (BOOL)boolForKey:(NSString *)key {
|
||||
|
||||
id obj = [self objectForKey:key];
|
||||
if (obj == nil)
|
||||
return NO;
|
||||
return [obj boolValue];
|
||||
}
|
||||
|
||||
|
||||
- (NSString *)stringForKey:(NSString *)key {
|
||||
|
||||
id obj = [self objectForKey:key];
|
||||
if (obj == nil)
|
||||
return nil;
|
||||
if ([obj isKindOfClass:[NSString class]])
|
||||
return obj;
|
||||
if ([obj isKindOfClass:[NSNumber class]])
|
||||
return [obj stringValue];
|
||||
return nil;
|
||||
}
|
||||
|
||||
|
||||
- (NSInteger)integerForKey:(NSString *)key {
|
||||
|
||||
id obj = [self objectForKey:key];
|
||||
if (obj == nil)
|
||||
return 0;
|
||||
return [obj integerValue];
|
||||
}
|
||||
|
||||
|
||||
- (CGFloat)floatForKey:(NSString *)key {
|
||||
|
||||
id obj = [self objectForKey:key];
|
||||
if (obj == nil)
|
||||
return 0.0f;
|
||||
return [obj floatValue];
|
||||
}
|
||||
|
||||
|
||||
- (NSTimeInterval)timeIntervalForKey:(NSString *)key {
|
||||
|
||||
id obj = [self objectForKey:key];
|
||||
if (obj == nil)
|
||||
return 0.0;
|
||||
return [obj doubleValue];
|
||||
}
|
||||
|
||||
|
||||
- (VS_IMAGE *)imageForKey:(NSString *)key {
|
||||
|
||||
NSString *imageName = [self stringForKey:key];
|
||||
if (stringIsEmpty(imageName))
|
||||
return nil;
|
||||
|
||||
return [VS_IMAGE imageNamed:imageName];
|
||||
}
|
||||
|
||||
|
||||
- (VS_COLOR *)colorForKey:(NSString *)key {
|
||||
|
||||
VS_COLOR *cachedColor = self.colorCache[key];
|
||||
if (cachedColor != nil)
|
||||
return cachedColor;
|
||||
|
||||
NSString *colorString = [self stringForKey:key];
|
||||
VS_COLOR *color = nil;
|
||||
if ([colorString isEqualToString:@"clear"])
|
||||
color = [VS_COLOR clearColor];
|
||||
else
|
||||
color = colorWithHexString(colorString);
|
||||
if (color == nil)
|
||||
color = [VS_COLOR blackColor];
|
||||
|
||||
self.colorCache[key] = color;
|
||||
|
||||
return color;
|
||||
}
|
||||
|
||||
|
||||
- (VS_COLOR *)colorWithAlphaForKey:(NSString *)key {
|
||||
|
||||
VS_COLOR *cachedColor = self.colorWithAlphaCache[key];
|
||||
if (cachedColor != nil) {
|
||||
return cachedColor;
|
||||
}
|
||||
|
||||
VS_COLOR *color = [self colorForKey:key];
|
||||
CGFloat alpha = [self floatForKey:[key stringByAppendingString:@"Alpha"]];
|
||||
color = [color colorWithAlphaComponent:alpha];
|
||||
|
||||
self.colorWithAlphaCache[key] = color;
|
||||
|
||||
return color;
|
||||
}
|
||||
|
||||
|
||||
- (VS_EDGE_INSETS)edgeInsetsForKey:(NSString *)key {
|
||||
|
||||
CGFloat left = [self floatForKey:[key stringByAppendingString:@"Left"]];
|
||||
CGFloat top = [self floatForKey:[key stringByAppendingString:@"Top"]];
|
||||
CGFloat right = [self floatForKey:[key stringByAppendingString:@"Right"]];
|
||||
CGFloat bottom = [self floatForKey:[key stringByAppendingString:@"Bottom"]];
|
||||
|
||||
VS_EDGE_INSETS edgeInsets = VSEdgeInsetsMake(top, left, bottom, right);
|
||||
return edgeInsets;
|
||||
}
|
||||
|
||||
|
||||
- (VS_FONT *)fontForKey:(NSString *)key {
|
||||
|
||||
VS_FONT *cachedFont = self.fontCache[key];
|
||||
if (cachedFont != nil)
|
||||
return cachedFont;
|
||||
|
||||
NSString *fontName = [self stringForKey:key];
|
||||
CGFloat fontSize = [self floatForKey:[key stringByAppendingString:@"Size"]];
|
||||
|
||||
if (fontSize < 1.0f)
|
||||
fontSize = 15.0f;
|
||||
|
||||
VS_FONT *font = nil;
|
||||
|
||||
if (stringIsEmpty(fontName))
|
||||
font = [VS_FONT systemFontOfSize:fontSize];
|
||||
else
|
||||
font = [VS_FONT fontWithName:fontName size:fontSize];
|
||||
|
||||
if (font == nil)
|
||||
font = [VS_FONT systemFontOfSize:fontSize];
|
||||
|
||||
self.fontCache[key] = font;
|
||||
|
||||
return font;
|
||||
}
|
||||
|
||||
|
||||
- (CGPoint)pointForKey:(NSString *)key {
|
||||
|
||||
CGFloat pointX = [self floatForKey:[key stringByAppendingString:@"X"]];
|
||||
CGFloat pointY = [self floatForKey:[key stringByAppendingString:@"Y"]];
|
||||
|
||||
CGPoint point = CGPointMake(pointX, pointY);
|
||||
return point;
|
||||
}
|
||||
|
||||
|
||||
- (CGSize)sizeForKey:(NSString *)key {
|
||||
|
||||
CGFloat width = [self floatForKey:[key stringByAppendingString:@"Width"]];
|
||||
CGFloat height = [self floatForKey:[key stringByAppendingString:@"Height"]];
|
||||
|
||||
CGSize size = CGSizeMake(width, height);
|
||||
return size;
|
||||
}
|
||||
|
||||
|
||||
#if TARGET_OS_IPHONE
|
||||
|
||||
- (UIViewAnimationOptions)curveForKey:(NSString *)key {
|
||||
|
||||
NSString *curveString = [self stringForKey:key];
|
||||
if (stringIsEmpty(curveString))
|
||||
return UIViewAnimationOptionCurveEaseInOut;
|
||||
|
||||
curveString = [curveString lowercaseString];
|
||||
if ([curveString isEqualToString:@"easeinout"])
|
||||
return UIViewAnimationOptionCurveEaseInOut;
|
||||
else if ([curveString isEqualToString:@"easeout"])
|
||||
return UIViewAnimationOptionCurveEaseOut;
|
||||
else if ([curveString isEqualToString:@"easein"])
|
||||
return UIViewAnimationOptionCurveEaseIn;
|
||||
else if ([curveString isEqualToString:@"linear"])
|
||||
return UIViewAnimationOptionCurveLinear;
|
||||
|
||||
return UIViewAnimationOptionCurveEaseInOut;
|
||||
}
|
||||
|
||||
|
||||
- (VSAnimationSpecifier *)animationSpecifierForKey:(NSString *)key {
|
||||
|
||||
VSAnimationSpecifier *animationSpecifier = [VSAnimationSpecifier new];
|
||||
|
||||
animationSpecifier.duration = [self timeIntervalForKey:[key stringByAppendingString:@"Duration"]];
|
||||
animationSpecifier.delay = [self timeIntervalForKey:[key stringByAppendingString:@"Delay"]];
|
||||
animationSpecifier.curve = [self curveForKey:[key stringByAppendingString:@"Curve"]];
|
||||
|
||||
return animationSpecifier;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
- (VSTextCaseTransform)textCaseTransformForKey:(NSString *)key {
|
||||
|
||||
NSString *s = [self stringForKey:key];
|
||||
if (s == nil)
|
||||
return VSTextCaseTransformNone;
|
||||
|
||||
if ([s caseInsensitiveCompare:@"lowercase"] == NSOrderedSame)
|
||||
return VSTextCaseTransformLower;
|
||||
else if ([s caseInsensitiveCompare:@"uppercase"] == NSOrderedSame)
|
||||
return VSTextCaseTransformUpper;
|
||||
|
||||
return VSTextCaseTransformNone;
|
||||
}
|
||||
|
||||
|
||||
- (NSString *)string:(NSString *)s transformedWithTextCaseTransformKey:(NSString *)key {
|
||||
|
||||
VSTextCaseTransform textCaseTransform = [self textCaseTransformForKey:key];
|
||||
NSString *transformedString = nil;
|
||||
|
||||
switch (textCaseTransform) {
|
||||
|
||||
case VSTextCaseTransformNone:
|
||||
transformedString = s;
|
||||
break;
|
||||
|
||||
case VSTextCaseTransformLower:
|
||||
transformedString = [s lowercaseString];
|
||||
break;
|
||||
|
||||
case VSTextCaseTransformUpper:
|
||||
transformedString = [s uppercaseString];
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return transformedString;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
NSString *VSThemeSpecifierPlusKey(NSString *specifier, NSString *key) {
|
||||
|
||||
return [NSString stringWithFormat:@"%@.%@", specifier, key];
|
||||
}
|
||||
|
||||
|
||||
#if TARGET_OS_IPHONE
|
||||
|
||||
@implementation VSTheme (Animations)
|
||||
|
||||
|
||||
- (void)animateWithAnimationSpecifierKey:(NSString *)animationSpecifierKey animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion {
|
||||
|
||||
VSAnimationSpecifier *animationSpecifier = [self animationSpecifierForKey:animationSpecifierKey];
|
||||
|
||||
[UIView animateWithDuration:animationSpecifier.duration delay:animationSpecifier.delay options:animationSpecifier.curve animations:animations completion:completion];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
#pragma mark -
|
||||
|
||||
@implementation VSAnimationSpecifier
|
||||
|
||||
@end
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
static BOOL stringIsEmpty(NSString *s) {
|
||||
return s == nil || [s length] == 0;
|
||||
}
|
||||
|
||||
|
||||
static VS_COLOR *colorWithHexString(NSString *hexString) {
|
||||
|
||||
/*Picky. Crashes by design.*/
|
||||
|
||||
if (stringIsEmpty(hexString))
|
||||
return [VS_COLOR blackColor];
|
||||
|
||||
NSMutableString *s = [hexString mutableCopy];
|
||||
[s replaceOccurrencesOfString:@"#" withString:@"" options:0 range:NSMakeRange(0, [hexString length])];
|
||||
CFStringTrimWhitespace((__bridge CFMutableStringRef)s);
|
||||
|
||||
NSString *redString = [s substringToIndex:2];
|
||||
NSString *greenString = [s substringWithRange:NSMakeRange(2, 2)];
|
||||
NSString *blueString = [s substringWithRange:NSMakeRange(4, 2)];
|
||||
|
||||
unsigned int red = 0, green = 0, blue = 0;
|
||||
[[NSScanner scannerWithString:redString] scanHexInt:&red];
|
||||
[[NSScanner scannerWithString:greenString] scanHexInt:&green];
|
||||
[[NSScanner scannerWithString:blueString] scanHexInt:&blue];
|
||||
|
||||
return [VS_COLOR colorWithRed:(CGFloat)red/255.0f green:(CGFloat)green/255.0f blue:(CGFloat)blue/255.0f alpha:1.0f];
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
//
|
||||
// VSThemeLoader.h
|
||||
// Q Branch LLC
|
||||
//
|
||||
// Created by Brent Simmons on 6/26/13.
|
||||
// Copyright (c) 2012 Q Branch LLC. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
|
||||
@class VSTheme;
|
||||
|
||||
@interface VSThemeLoader : NSObject
|
||||
|
||||
// Just use -init if you want the default DB5.plist in the normal place.
|
||||
- (instancetype)initWithFilepath:(NSString *)f;
|
||||
|
||||
@property (nonatomic, strong, readonly) VSTheme *defaultTheme;
|
||||
@property (nonatomic, strong, readonly) NSArray *themes;
|
||||
|
||||
- (VSTheme *)themeNamed:(NSString *)themeName;
|
||||
|
||||
@end
|
||||
@@ -1,71 +0,0 @@
|
||||
//
|
||||
// VSThemeLoader.h
|
||||
// Q Branch LLC
|
||||
//
|
||||
// Created by Brent Simmons on 6/26/13.
|
||||
// Copyright (c) 2012 Q Branch LLC. All rights reserved.
|
||||
//
|
||||
|
||||
|
||||
#import "VSThemeLoader.h"
|
||||
#import "VSTheme.h"
|
||||
|
||||
|
||||
@interface VSThemeLoader ()
|
||||
|
||||
@property (nonatomic, strong, readwrite) VSTheme *defaultTheme;
|
||||
@property (nonatomic, strong, readwrite) NSArray *themes;
|
||||
@end
|
||||
|
||||
|
||||
@implementation VSThemeLoader
|
||||
|
||||
|
||||
- (instancetype)init {
|
||||
|
||||
NSString *themesFilePath = [[NSBundle mainBundle] pathForResource:@"DB5" ofType:@"plist"];
|
||||
return [self initWithFilepath:themesFilePath];
|
||||
}
|
||||
|
||||
|
||||
- (instancetype)initWithFilepath:(NSString *)f {
|
||||
|
||||
self = [super init];
|
||||
if (!self) {
|
||||
return nil;
|
||||
}
|
||||
|
||||
NSDictionary *themesDictionary = [NSDictionary dictionaryWithContentsOfFile:f];
|
||||
|
||||
NSMutableArray *themes = [NSMutableArray array];
|
||||
for (NSString *oneKey in themesDictionary) {
|
||||
|
||||
VSTheme *theme = [[VSTheme alloc] initWithDictionary:themesDictionary[oneKey]];
|
||||
if ([[oneKey lowercaseString] isEqualToString:@"default"])
|
||||
_defaultTheme = theme;
|
||||
theme.name = oneKey;
|
||||
[themes addObject:theme];
|
||||
}
|
||||
|
||||
for (VSTheme *oneTheme in themes) { /*All themes inherit from the default theme.*/
|
||||
if (oneTheme != _defaultTheme)
|
||||
oneTheme.parentTheme = _defaultTheme;
|
||||
}
|
||||
|
||||
_themes = themes;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
- (VSTheme *)themeNamed:(NSString *)themeName {
|
||||
|
||||
for (VSTheme *oneTheme in self.themes) {
|
||||
if ([themeName isEqualToString:oneTheme.name])
|
||||
return oneTheme;
|
||||
}
|
||||
|
||||
return nil;
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,39 +0,0 @@
|
||||
//
|
||||
// DB5Tests.m
|
||||
// DB5Tests
|
||||
//
|
||||
// Created by Brent Simmons on 7/12/15.
|
||||
// Copyright © 2015 Ranchero Software, LLC. All rights reserved.
|
||||
//
|
||||
|
||||
#import <XCTest/XCTest.h>
|
||||
|
||||
@interface DB5Tests : XCTestCase
|
||||
|
||||
@end
|
||||
|
||||
@implementation DB5Tests
|
||||
|
||||
- (void)setUp {
|
||||
[super setUp];
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
- (void)tearDown {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
[super tearDown];
|
||||
}
|
||||
|
||||
- (void)testExample {
|
||||
// This is an example of a functional test case.
|
||||
// Use XCTAssert and related functions to verify your tests produce the correct results.
|
||||
}
|
||||
|
||||
- (void)testPerformanceExample {
|
||||
// This is an example of a performance test case.
|
||||
[self measureBlock:^{
|
||||
// Put the code you want to measure the time of here.
|
||||
}];
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,24 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,15 +0,0 @@
|
||||
|
||||
LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/../Frameworks @loader_path/../Frameworks
|
||||
INFOPLIST_FILE = DB5Tests/Info.plist
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.ranchero.DB5Tests
|
||||
PRODUCT_NAME = $(TARGET_NAME)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
// CODE_SIGN_IDENTITY =
|
||||
// CODE_SIGN_STYLE = Automatic
|
||||
// DEVELOPMENT_TEAM = M8L2WTLA8W
|
||||
|
||||
// See the notes in Evergreen_target.xcconfig on why the
|
||||
// DeveloperSettings.xcconfig is #included here
|
||||
|
||||
#include? "../../../SharedXcodeSettings/DeveloperSettings.xcconfig"
|
||||
|
||||
SDKROOT = macosx
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.13
|
||||
CLANG_ENABLE_OBJC_WEAK = YES
|
||||
SWIFT_VERSION = 3.0
|
||||
COMBINE_HIDPI_IMAGES = YES
|
||||
|
||||
COPY_PHASE_STRIP = NO
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.13
|
||||
ALWAYS_SEARCH_USER_PATHS = NO
|
||||
CURRENT_PROJECT_VERSION = 1
|
||||
VERSION_INFO_PREFIX =
|
||||
VERSIONING_SYSTEM = apple-generic
|
||||
GCC_NO_COMMON_BLOCKS = YES
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99
|
||||
CLANG_CXX_LANGUAGE_STANDARD = gnu++0x
|
||||
CLANG_CXX_LIBRARY = libc++
|
||||
CLANG_ENABLE_MODULES = YES
|
||||
CLANG_ENABLE_OBJC_ARC = YES
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES
|
||||
CLANG_WARN_EMPTY_BODY = YES
|
||||
CLANG_WARN_BOOL_CONVERSION = YES
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES
|
||||
CLANG_WARN_ENUM_CONVERSION = YES
|
||||
CLANG_WARN_INT_CONVERSION = YES
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES
|
||||
CLANG_WARN_INFINITE_RECURSION = YES
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES
|
||||
CLANG_WARN_COMMA = YES
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES
|
||||
GCC_WARN_UNUSED_FUNCTION = YES
|
||||
GCC_WARN_UNUSED_VARIABLE = YES
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
|
||||
@@ -1,11 +0,0 @@
|
||||
#include "./DB5_project.xcconfig"
|
||||
|
||||
DEBUG_INFORMATION_FORMAT = dwarf
|
||||
ENABLE_TESTABILITY = YES
|
||||
GCC_DYNAMIC_NO_PIC = NO
|
||||
GCC_OPTIMIZATION_LEVEL = 0
|
||||
GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1 $(inherited)
|
||||
|
||||
MTL_ENABLE_DEBUG_INFO = YES
|
||||
ONLY_ACTIVE_ARCH = YES
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
#include "./DB5_project.xcconfig"
|
||||
|
||||
DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
|
||||
ENABLE_NS_ASSERTIONS = NO
|
||||
|
||||
MTL_ENABLE_DEBUG_INFO = NO
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
|
||||
INSTALL_PATH = $(LOCAL_LIBRARY_DIR)/Frameworks
|
||||
SKIP_INSTALL = YES
|
||||
DYLIB_COMPATIBILITY_VERSION = 1
|
||||
DYLIB_CURRENT_VERSION = 1
|
||||
DYLIB_INSTALL_NAME_BASE = @rpath
|
||||
LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/../Frameworks @loader_path/Frameworks
|
||||
DEFINES_MODULE = YES
|
||||
FRAMEWORK_VERSION = A
|
||||
INFOPLIST_FILE = DB5/Info.plist
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.ranchero.DB5
|
||||
PRODUCT_NAME = $(TARGET_NAME:c99extidentifier)
|
||||
CLANG_ENABLE_MODULES = YES
|
||||
CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES
|
||||
|
||||
|
||||
Reference in New Issue
Block a user