Skip to content

Commit d45bb28

Browse files
Initial version.
1 parent d06ff01 commit d45bb28

File tree

298 files changed

+9474
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

298 files changed

+9474
-0
lines changed

PixelPerfect/.gitignore

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Xcode
2+
#
3+
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
4+
5+
## User settings
6+
xcuserdata/
7+
8+
## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
9+
*.xcscmblueprint
10+
*.xccheckout
11+
12+
## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
13+
build/
14+
DerivedData/
15+
*.moved-aside
16+
*.pbxuser
17+
!default.pbxuser
18+
*.mode1v3
19+
!default.mode1v3
20+
*.mode2v3
21+
!default.mode2v3
22+
*.perspectivev3
23+
!default.perspectivev3
24+
25+
## Obj-C/Swift specific
26+
*.hmap
27+
28+
## App packaging
29+
*.ipa
30+
*.dSYM.zip
31+
*.dSYM
32+
33+
# CocoaPods
34+
#
35+
# We recommend against adding the Pods directory to your .gitignore. However
36+
# you should judge for yourself, the pros and cons are mentioned at:
37+
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
38+
#
39+
# Pods/
40+
#
41+
# Add this line if you want to avoid checking in source code from the Xcode workspace
42+
# *.xcworkspace
43+
44+
# Carthage
45+
#
46+
# Add this line if you want to avoid checking in source code from Carthage dependencies.
47+
# Carthage/Checkouts
48+
49+
Carthage/Build/
50+
51+
# fastlane
52+
#
53+
# It is recommended to not store the screenshots in the git repo.
54+
# Instead, use fastlane to re-generate the screenshots whenever they are needed.
55+
# For more information about the recommended setup visit:
56+
# https://docs.fastlane.tools/best-practices/source-control/#source-control
57+
58+
fastlane/report.xml
59+
fastlane/Preview.html
60+
fastlane/screenshots/**/*.png
61+
fastlane/test_output

PixelPerfect/PixelPerfect.xcodeproj/project.pbxproj

Lines changed: 744 additions & 0 deletions
Large diffs are not rendered by default.

PixelPerfect/PixelPerfect.xcodeproj/project.xcworkspace/contents.xcworkspacedata

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>IDEDidComputeMac32BitWarning</key>
6+
<true/>
7+
</dict>
8+
</plist>
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Scheme
3+
LastUpgradeVersion = "1420"
4+
version = "1.3">
5+
<BuildAction
6+
parallelizeBuildables = "YES"
7+
buildImplicitDependencies = "YES">
8+
<BuildActionEntries>
9+
<BuildActionEntry
10+
buildForTesting = "YES"
11+
buildForRunning = "YES"
12+
buildForProfiling = "YES"
13+
buildForArchiving = "YES"
14+
buildForAnalyzing = "YES">
15+
<BuildableReference
16+
BuildableIdentifier = "primary"
17+
BlueprintIdentifier = "04B2265029CFAD100085F092"
18+
BuildableName = "Pixel Perfect.app"
19+
BlueprintName = "Pixel Perfect"
20+
ReferencedContainer = "container:PixelPerfect.xcodeproj">
21+
</BuildableReference>
22+
</BuildActionEntry>
23+
</BuildActionEntries>
24+
</BuildAction>
25+
<TestAction
26+
buildConfiguration = "Debug"
27+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29+
shouldUseLaunchSchemeArgsEnv = "YES">
30+
<Testables>
31+
</Testables>
32+
</TestAction>
33+
<LaunchAction
34+
buildConfiguration = "Debug"
35+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
36+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
37+
launchStyle = "0"
38+
useCustomWorkingDirectory = "NO"
39+
ignoresPersistentStateOnLaunch = "NO"
40+
debugDocumentVersioning = "YES"
41+
debugServiceExtension = "internal"
42+
allowLocationSimulation = "YES">
43+
<BuildableProductRunnable
44+
runnableDebuggingMode = "0">
45+
<BuildableReference
46+
BuildableIdentifier = "primary"
47+
BlueprintIdentifier = "04B2265029CFAD100085F092"
48+
BuildableName = "Pixel Perfect.app"
49+
BlueprintName = "Pixel Perfect"
50+
ReferencedContainer = "container:PixelPerfect.xcodeproj">
51+
</BuildableReference>
52+
</BuildableProductRunnable>
53+
</LaunchAction>
54+
<ProfileAction
55+
buildConfiguration = "Release"
56+
shouldUseLaunchSchemeArgsEnv = "YES"
57+
savedToolIdentifier = ""
58+
useCustomWorkingDirectory = "NO"
59+
debugDocumentVersioning = "YES">
60+
<BuildableProductRunnable
61+
runnableDebuggingMode = "0">
62+
<BuildableReference
63+
BuildableIdentifier = "primary"
64+
BlueprintIdentifier = "04B2265029CFAD100085F092"
65+
BuildableName = "Pixel Perfect.app"
66+
BlueprintName = "Pixel Perfect"
67+
ReferencedContainer = "container:PixelPerfect.xcodeproj">
68+
</BuildableReference>
69+
</BuildableProductRunnable>
70+
</ProfileAction>
71+
<AnalyzeAction
72+
buildConfiguration = "Debug">
73+
</AnalyzeAction>
74+
<ArchiveAction
75+
buildConfiguration = "Release"
76+
revealArchiveInOrganizer = "YES">
77+
</ArchiveAction>
78+
</Scheme>
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import Foundation
2+
3+
extension Bundle {
4+
var cfBundleVersionInt: Int? {
5+
get {
6+
if let bundleVersion = self.infoDictionary?[kCFBundleVersion] as? String, let intVersion = Int(bundleVersion) {
7+
return intVersion
8+
}
9+
return nil
10+
}
11+
}
12+
13+
var cfBundleVersionString: String? {
14+
get {
15+
return self.infoDictionary?[kCFBundleShortVersionString] as? String
16+
}
17+
}
18+
19+
var resolvedInfoDictictionary: [String: Any] {
20+
return self.localizedInfoDictionary ?? self.infoDictionary ?? [:]
21+
}
22+
23+
var bundleNameOnDemand: String {
24+
return resolvedInfoDictictionary[bundleNameKey] as? String ?? ((self.bundlePath as NSString).lastPathComponent as NSString).deletingPathExtension
25+
}
26+
27+
var displayNameOnDemand: String {
28+
return resolvedInfoDictictionary[kCFBundleDisplayName] as? String ?? resolvedInfoDictictionary[bundleNameKey] as? String ?? ((self.bundlePath as NSString).lastPathComponent as NSString).deletingPathExtension
29+
}
30+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#import <Cocoa/Cocoa.h>
2+
3+
NS_ASSUME_NONNULL_BEGIN
4+
5+
@interface NSColor (RIUAlternatingColor)
6+
7+
@end
8+
9+
NS_ASSUME_NONNULL_END
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#import "NSColor+RIUAlternatingColor.h"
2+
3+
@implementation NSColor (RIUAlternatingColor)
4+
5+
#pragma clang diagnostic push
6+
#pragma clang diagnostic ignored "-Wdeprecated-implementations"
7+
+ (NSArray<NSColor *> *)controlAlternatingRowBackgroundColors {
8+
return @[ NSColor.clearColor, [NSColor colorNamed:@"AlternateRowBackground"] ];
9+
}
10+
#pragma clang diagnostic pop
11+
12+
+ (NSArray<NSColor *> *)alternatingContentBackgroundColors {
13+
return @[ NSColor.clearColor, [NSColor colorNamed:@"AlternateRowBackground"] ];
14+
}
15+
16+
@end
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import Foundation
2+
3+
extension String {
4+
var isiOSAppBundlePath: Bool {
5+
return self.contains(wrapperTranslocatedPattern)
6+
|| FileManager.default.fileExists(atPath: "\(self)/\(wrappedBundleComponentName)")
7+
|| self.contains(playcoverPathComponents)
8+
}
9+
10+
func appendingPathComponent(_ str: String) -> String {
11+
return (self as NSString).appendingPathComponent(str)
12+
}
13+
14+
var localized: String {
15+
NSLocalizedString(self, comment: "")
16+
}
17+
18+
var paddedWithSpaceSuffix: String {
19+
if (self.hasSuffix(" ") || self.hasSuffix("")) {
20+
return self
21+
}
22+
return self.appending(" ")
23+
}
24+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
"Show in Finder" = "Show in Finder";
2+
"Reset" = "Reset";
3+
"Copy Bundle Identifier" = "Copy Bundle Identifier";
4+
"Copy Preferences Domain" = "Copy Preferences Domain";
5+
"Show Preferences" = "Show Preferences";
6+
"Choose App…" = "Choose App…";
7+
"“%@” and %d other apps" = "“%@” and %d other apps";
8+
"“%@” and %d other app" = "“%@” and %d other app";
9+
"“%@”" = "“%@”";
10+
"%@ will run at native resolution after it is reopened." = "%@ will run at native resolution after it is reopened.";
11+
"%@ will reset to scaled resolution after it is reopened." = "%@ will reset to scaled resolution after it is reopened.";
12+
"You can choose to quit %@ now, or do it on your own later." = "You can choose to quit %@ now, or do it on your own later.";
13+
"Quit & Reopen" = "Quit & Reopen";
14+
"Later" = "Later";
15+
"Update available." = "Update available.";
16+
"%@ %@ (Build %d) is available." = "%@ %@ (Build %d) is available.";
17+
"Download" = "Download";
18+
"Learn More..." = "Learn More...";
19+
"Cancel" = "Cancel";
20+
"%@ %@ is already the latest available version." = "%@ %@ is already the latest available version.";
21+
"View Release Page..." = "View Release Page...";
22+
"OK" = "OK";
23+
"Download iPhone and iPad apps \n from the App Store" = "Download iPhone and iPad apps \n from the App Store";
24+
"iPhone and iPad apps require \n a Mac with Apple silicon." = "iPhone and iPad apps require \n a Mac with Apple silicon.";
25+
"Loading applications..." = "Loading applications...";
26+
"%@ are already optimized for Mac." = "%@ are already optimized for Mac.";
27+
"%@ is already optimized for Mac." = "%@ is already optimized for Mac.";
28+
"%@ already run in native scaling. Enabling them anyways will likely have no effect." = "%@ already run in native scaling. Enabling them anyways will likely have no effect.";
29+
"%@ already runs in native scaling. Enabling it anyways will likely have no effect." = "%@ already runs in native scaling. Enabling it anyways will likely have no effect.";
30+
"%@ are incompatible with native scaling." = "%@ are incompatible with native scaling.";
31+
"%@ is incompatible with native scaling." = "%@ is incompatible with native scaling.";
32+
"When running %@ in native scaling, you may experience compatibility issues." = "When running %@ in native scaling, you may experience compatibility issues.";
33+
"Skip %@" = "Skip %@";
34+
"Enable Anyways" = "Enable Anyways";
35+
"Native resolution has been enabled for %@." = "Native resolution has been enabled for %@.";
36+
"%@ has been reset to scaled resolution." = "%@ has been reset to scaled resolution.";

0 commit comments

Comments
 (0)