Compare commits
150 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
fdbf6aab7e | ||
|
19c0072d4c | ||
|
da3f639ef2 | ||
|
65d377884b | ||
|
2dab9cca28 | ||
|
fcb71f79ff | ||
|
2ccef4e3a6 | ||
|
fca6943bfe | ||
|
afef4e5b25 | ||
|
772ce2c326 | ||
|
ef6ef61037 | ||
|
3b4244e4e3 | ||
|
c1c7c93c6a | ||
|
61dc6ddcd7 | ||
|
0204043e10 | ||
|
043c20b645 | ||
|
7a93412c3f | ||
|
e1adde78f0 | ||
|
632f01f169 | ||
|
ed99d1bbfb | ||
|
53cb92f4ef | ||
|
22256824d2 | ||
|
3b96faf502 | ||
|
33e01e0847 | ||
|
7c1f280374 | ||
|
4aef44bf76 | ||
|
cf86226c6b | ||
|
8f4bc46d12 | ||
|
003c075108 | ||
|
e2707af5ce | ||
|
e8c8b8375f | ||
|
3db3bb6091 | ||
|
7e2fc6ef59 | ||
|
ceb0813eee | ||
|
1cfc5bd94f | ||
|
aa52115d41 | ||
|
1a4d707447 | ||
|
0b1eb1a37b | ||
|
d93ae3ce89 | ||
|
ada4e0a4dd | ||
|
a70c23fc70 | ||
|
d1eab98945 | ||
|
21de19443a | ||
|
479b9c243c | ||
|
09fd85ca16 | ||
|
c4bd05128f | ||
|
9b74889621 | ||
|
c548061f42 | ||
|
dfc5c9e01f | ||
|
cd0bfb0638 | ||
|
66ed7bd009 | ||
|
79fb9b2c25 | ||
|
bf2cde331d | ||
|
dead799d16 | ||
|
fd665a1761 | ||
|
af3b2ba5b1 | ||
|
b72a6f058a | ||
|
d2fda78a9c | ||
|
44f090a506 | ||
|
ddfe6201a6 | ||
|
5ab79e73e2 | ||
|
9d3f2bd98c | ||
|
038ea05f0b | ||
|
d2b8238109 | ||
|
22c1849d70 | ||
|
9a76a98ef9 | ||
|
95756edc1f | ||
|
5d3ff85601 | ||
|
a5ef2cdb68 | ||
|
6f4cb689e4 | ||
|
877618862d | ||
|
4d397d9c94 | ||
|
3af32e9acc | ||
|
1932ed3e03 | ||
|
ee1c0357f2 | ||
|
455db22df5 | ||
|
e4c4d2f85c | ||
|
857ef56be5 | ||
|
da174dde3d | ||
|
3ff092ded5 | ||
|
49fa9c0182 | ||
|
f597a5ab9e | ||
|
40d93319f7 | ||
|
b73ced1dc2 | ||
|
1700d38dd7 | ||
|
a6e6014220 | ||
|
097ac4e64d | ||
|
97ab910a84 | ||
|
6d5d57787b | ||
|
838f7b241e | ||
|
f7c3af636d | ||
|
0643f8af6b | ||
|
e010bed7d1 | ||
|
041c986ac4 | ||
|
c3cc54e1f4 | ||
|
deeb7b1247 | ||
|
49d44a6847 | ||
|
cd39334ebb | ||
|
9f2e3f87c0 | ||
|
81d985f190 | ||
|
09a178e85c | ||
|
4f627541d2 | ||
|
7103f11578 | ||
|
194a68362e | ||
|
f90ef9b92f | ||
|
2193780656 | ||
|
134e15691d | ||
|
739e763089 | ||
|
d60cd3a189 | ||
|
ab9538e423 | ||
|
08cfcc6e9a | ||
|
a811c30549 | ||
|
be06c815f4 | ||
|
8ad866b0dc | ||
|
d1a0721b40 | ||
|
118bfccca9 | ||
|
0f1d73bd89 | ||
|
3761b8d9e2 | ||
|
cbfa046773 | ||
|
154510c94f | ||
|
353b548ae1 | ||
|
35f5ec7886 | ||
|
4e268e144d | ||
|
b2194bfcc5 | ||
|
20a99c5a88 | ||
|
76b82d92fc | ||
|
cc3b3bc59a | ||
|
222a6d8d8f | ||
|
f511efdb0b | ||
|
58de410e47 | ||
|
5649cb5015 | ||
|
f46483c0b0 | ||
|
9217b4ebcd | ||
|
bf7e9e0479 | ||
|
55e78cc1e9 | ||
|
87302b3ef7 | ||
|
397c1c4d70 | ||
|
b1bd3da561 | ||
|
c390e48140 | ||
|
f180642b33 | ||
|
e220494dc5 | ||
|
8c3434740f | ||
|
ec5c1fb188 | ||
|
d769e9861b | ||
|
e10ef21281 | ||
|
788f607280 | ||
|
53a0fe7e65 | ||
|
ce0bf30189 | ||
|
90f6f77f8b | ||
|
a26fe3fef6 |
4
.gitmodules
vendored
|
@ -4,3 +4,7 @@
|
|||
[submodule "libres"]
|
||||
path = libres
|
||||
url = https://github.com/zydeco/libres.git
|
||||
[submodule "minivmac"]
|
||||
path = minivmac
|
||||
url = https://github.com/zydeco/minivmac.git
|
||||
branch = wintergames
|
||||
|
|
2
Makefile
|
@ -3,7 +3,7 @@ PROJECT="Mini vMac.xcodeproj"
|
|||
SCHEME="Mini vMac"
|
||||
CONFIGURATION=Release
|
||||
APP="build/Build/Products/$(CONFIGURATION)-iphoneos/Mini vMac.app"
|
||||
VERSION=`xpath 2>/dev/null Mini\ vMac/Info.plist "/plist/dict/key[.='CFBundleShortVersionString']/following-sibling::*[1]/text()"`
|
||||
VERSION=`plutil -extract CFBundleShortVersionString raw $(APP)/Info.plist -o -`
|
||||
LDID=ldid
|
||||
|
||||
deb: $(APP)
|
||||
|
|
7
Mini vMac.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:Mini vMac.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
"DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "9C19786155D97B8ED78AB84AFAAA50249126341A",
|
||||
"DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : {
|
||||
|
||||
},
|
||||
"DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : {
|
||||
"9C19786155D97B8ED78AB84AFAAA50249126341A" : 0,
|
||||
"F2E8D120DACD6BF5E1EFFA012C92CE6FA0E44B4C" : 0,
|
||||
"45D35ABA2A883CFEB6F6014CF9723CDA568B602B" : 0
|
||||
},
|
||||
"DVTSourceControlWorkspaceBlueprintIdentifierKey" : "A273011D-9F4F-4F93-8287-77CF2E175709",
|
||||
"DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : {
|
||||
"9C19786155D97B8ED78AB84AFAAA50249126341A" : "minivmac4ios\/",
|
||||
"F2E8D120DACD6BF5E1EFFA012C92CE6FA0E44B4C" : "minivmac4ios\/libres\/",
|
||||
"45D35ABA2A883CFEB6F6014CF9723CDA568B602B" : "minivmac4ios\/libmfs\/"
|
||||
},
|
||||
"DVTSourceControlWorkspaceBlueprintNameKey" : "Mini vMac",
|
||||
"DVTSourceControlWorkspaceBlueprintVersion" : 204,
|
||||
"DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "Mini vMac.xcodeproj",
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [
|
||||
{
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/zydeco\/libmfs.git",
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "45D35ABA2A883CFEB6F6014CF9723CDA568B602B"
|
||||
},
|
||||
{
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "github.com:zydeco\/minivmac4ios.git",
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "9C19786155D97B8ED78AB84AFAAA50249126341A"
|
||||
},
|
||||
{
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/zydeco\/libres.git",
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "F2E8D120DACD6BF5E1EFFA012C92CE6FA0E44B4C"
|
||||
}
|
||||
]
|
||||
}
|
76
Mini vMac.xcodeproj/xcshareddata/xcschemes/Mac128K.xcscheme
Normal file
|
@ -0,0 +1,76 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1200"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "289710B81CFB11BF0089D463"
|
||||
BuildableName = "Mac128K.framework"
|
||||
BlueprintName = "Mac128K"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "289710B81CFB11BF0089D463"
|
||||
BuildableName = "Mac128K.framework"
|
||||
BlueprintName = "Mac128K"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "289710B81CFB11BF0089D463"
|
||||
BuildableName = "Mac128K.framework"
|
||||
BlueprintName = "Mac128K"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
|
@ -0,0 +1,66 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1500"
|
||||
version = "1.7">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "28C67BD02AC49E46000C7540"
|
||||
BuildableName = "MacII-512x384.framework"
|
||||
BlueprintName = "MacII-512x384"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
shouldAutocreateTestPlan = "YES">
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "28C67BD02AC49E46000C7540"
|
||||
BuildableName = "MacII-512x384.framework"
|
||||
BlueprintName = "MacII-512x384"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
|
@ -0,0 +1,76 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1200"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "28BDBE9A1D230EEB0072ED5B"
|
||||
BuildableName = "MacII-640x480.framework"
|
||||
BlueprintName = "MacII-640x480"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "28BDBE9A1D230EEB0072ED5B"
|
||||
BuildableName = "MacII-640x480.framework"
|
||||
BlueprintName = "MacII-640x480"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "28BDBE9A1D230EEB0072ED5B"
|
||||
BuildableName = "MacII-640x480.framework"
|
||||
BlueprintName = "MacII-640x480"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
76
Mini vMac.xcodeproj/xcshareddata/xcschemes/MacII.xcscheme
Normal file
|
@ -0,0 +1,76 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1200"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "2834237D1CF9C4CB0088B634"
|
||||
BuildableName = "MacII.framework"
|
||||
BlueprintName = "MacII"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "2834237D1CF9C4CB0088B634"
|
||||
BuildableName = "MacII.framework"
|
||||
BlueprintName = "MacII"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "2834237D1CF9C4CB0088B634"
|
||||
BuildableName = "MacII.framework"
|
||||
BlueprintName = "MacII"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
|
@ -0,0 +1,76 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1200"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "283422C91CF8EF8C0088B634"
|
||||
BuildableName = "MacPlus4M.framework"
|
||||
BlueprintName = "MacPlus4M"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "283422C91CF8EF8C0088B634"
|
||||
BuildableName = "MacPlus4M.framework"
|
||||
BlueprintName = "MacPlus4M"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "283422C91CF8EF8C0088B634"
|
||||
BuildableName = "MacPlus4M.framework"
|
||||
BlueprintName = "MacPlus4M"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
|
@ -0,0 +1,97 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1200"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "28F676BC1CD15E0B00FC6FA6"
|
||||
BuildableName = "Mini vMac.app"
|
||||
BlueprintName = "Mini vMac"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "28F676BC1CD15E0B00FC6FA6"
|
||||
BuildableName = "Mini vMac.app"
|
||||
BlueprintName = "Mini vMac"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "28F676BC1CD15E0B00FC6FA6"
|
||||
BuildableName = "Mini vMac.app"
|
||||
BlueprintName = "Mini vMac"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<CommandLineArguments>
|
||||
<CommandLineArgument
|
||||
argument = "-machine"
|
||||
isEnabled = "NO">
|
||||
</CommandLineArgument>
|
||||
<CommandLineArgument
|
||||
argument = "MacPlus4M"
|
||||
isEnabled = "NO">
|
||||
</CommandLineArgument>
|
||||
</CommandLineArguments>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "28F676BC1CD15E0B00FC6FA6"
|
||||
BuildableName = "Mini vMac.app"
|
||||
BlueprintName = "Mini vMac"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
76
Mini vMac.xcodeproj/xcshareddata/xcschemes/libhfs.xcscheme
Normal file
|
@ -0,0 +1,76 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1200"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "28F6B48D1CF07DDD002D76D0"
|
||||
BuildableName = "liblibhfs.a"
|
||||
BlueprintName = "libhfs"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "28F6B48D1CF07DDD002D76D0"
|
||||
BuildableName = "liblibhfs.a"
|
||||
BlueprintName = "libhfs"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "28F6B48D1CF07DDD002D76D0"
|
||||
BuildableName = "liblibhfs.a"
|
||||
BlueprintName = "libhfs"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
76
Mini vMac.xcodeproj/xcshareddata/xcschemes/libmfs.xcscheme
Normal file
|
@ -0,0 +1,76 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1200"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "28F6B4A71CF07EC9002D76D0"
|
||||
BuildableName = "liblibmfs.a"
|
||||
BlueprintName = "libmfs"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "28F6B4A71CF07EC9002D76D0"
|
||||
BuildableName = "liblibmfs.a"
|
||||
BlueprintName = "libmfs"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "28F6B4A71CF07EC9002D76D0"
|
||||
BuildableName = "liblibmfs.a"
|
||||
BlueprintName = "libmfs"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
76
Mini vMac.xcodeproj/xcshareddata/xcschemes/libres.xcscheme
Normal file
|
@ -0,0 +1,76 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1200"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "28F6B4B51CF07F32002D76D0"
|
||||
BuildableName = "liblibres.a"
|
||||
BlueprintName = "libres"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "28F6B4B51CF07F32002D76D0"
|
||||
BuildableName = "liblibres.a"
|
||||
BlueprintName = "libres"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "28F6B4B51CF07F32002D76D0"
|
||||
BuildableName = "liblibres.a"
|
||||
BlueprintName = "libres"
|
||||
ReferencedContainer = "container:Mini vMac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
|
@ -3,26 +3,36 @@
|
|||
// Mini vMac
|
||||
//
|
||||
// Created by Jesús A. Álvarez on 27/04/2016.
|
||||
// Copyright © 2016 namedfork. All rights reserved.
|
||||
// Copyright © 2016-2018 namedfork. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "EmulatorProtocol.h"
|
||||
#import "BTCMouse.h"
|
||||
|
||||
extern NSString *DocumentsChangedNotification;
|
||||
|
||||
@interface AppDelegate : UIResponder <UIApplicationDelegate>
|
||||
|
||||
@property (strong, nonatomic) UIWindow *window;
|
||||
@property (nonatomic, readonly) NSString *documentsPath;
|
||||
@property (nonatomic, readonly) NSString *userKeyboardLayoutsPath;
|
||||
@property (nonatomic, readonly) NSArray<NSString*> *diskImageExtensions;
|
||||
@property (nonatomic, readonly) NSArray<NSBundle*> *emulatorBundles;
|
||||
@property (nonatomic, readonly) NSString *emulatorBundlesPath;
|
||||
@property (readonly, nonatomic, getter = isSandboxed) BOOL sandboxed;
|
||||
@property (readonly, nonatomic) id<Emulator> sharedEmulator;
|
||||
@property (readonly, nonatomic) NSArray<NSString*> *keyboardLayoutPaths;
|
||||
|
||||
+ (instancetype)sharedInstance;
|
||||
+ (id<Emulator>)sharedEmulator;
|
||||
@property (class, readonly, strong) AppDelegate *sharedInstance NS_SWIFT_NAME(shared);
|
||||
@property (class, readonly, strong) id<Emulator> sharedEmulator NS_SWIFT_NAME(emulator);
|
||||
- (void)loadAndStartEmulator;
|
||||
|
||||
- (void)showAlertWithTitle:(NSString *)title message:(NSString *)message;
|
||||
- (IBAction)showInsertDisk:(id)sender;
|
||||
- (IBAction)showSettings:(id)sender;
|
||||
- (IBAction)showGestureHelp:(id)sender;
|
||||
- (UIScene*)sceneWithName:(NSString*)name;
|
||||
|
||||
@end
|
||||
|
||||
|
|
|
@ -3,23 +3,25 @@
|
|||
// Mini vMac
|
||||
//
|
||||
// Created by Jesús A. Álvarez on 27/04/2016.
|
||||
// Copyright © 2016 namedfork. All rights reserved.
|
||||
// Copyright © 2016-2018 namedfork. All rights reserved.
|
||||
//
|
||||
|
||||
@import AVFoundation;
|
||||
#import "AppDelegate.h"
|
||||
#import "SettingsViewController.h"
|
||||
#import "InsertDiskViewController.h"
|
||||
#import "ViewController.h"
|
||||
|
||||
static AppDelegate *sharedAppDelegate = nil;
|
||||
static NSObject<Emulator> *sharedEmulator = nil;
|
||||
NSString *DocumentsChangedNotification = @"documentsChanged";
|
||||
|
||||
@interface AppDelegate () <UIViewControllerTransitioningDelegate, UIViewControllerAnimatedTransitioning>
|
||||
@interface AppDelegate () <BTCMouseDelegate>
|
||||
|
||||
@end
|
||||
|
||||
@implementation AppDelegate
|
||||
{
|
||||
UISwipeGestureRecognizerDirection modalPanePresentationDirection;
|
||||
}
|
||||
|
||||
+ (instancetype)sharedInstance {
|
||||
|
@ -32,11 +34,18 @@ static NSObject<Emulator> *sharedEmulator = nil;
|
|||
|
||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
||||
sharedAppDelegate = self;
|
||||
if (![self loadEmulator:[[NSUserDefaults standardUserDefaults] stringForKey:@"machine"]]) {
|
||||
[self loadEmulator:@"MacPlus4M"];
|
||||
}
|
||||
[self initDefaults];
|
||||
[sharedEmulator performSelector:@selector(run) withObject:nil afterDelay:0.1];
|
||||
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:NULL];
|
||||
[self loadAndStartEmulator];
|
||||
|
||||
if ([application respondsToSelector:@selector(btcMouseSetRawMode:)]) {
|
||||
[application btcMouseSetRawMode:YES];
|
||||
[application btcMouseSetDelegate:self];
|
||||
}
|
||||
|
||||
// populate documents directory so it shows up in Files
|
||||
[[NSFileManager defaultManager] createDirectoryAtPath:self.userKeyboardLayoutsPath withIntermediateDirectories:YES attributes:nil error:nil];
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
|
@ -47,31 +56,41 @@ static NSObject<Emulator> *sharedEmulator = nil;
|
|||
@"en-US": @"US.nfkeyboardlayout"};
|
||||
NSString *firstLanguage = [NSBundle preferredLocalizationsFromArray:layoutForLanguage.allKeys].firstObject;
|
||||
NSDictionary *defaultValues = @{@"trackpad": @([UIDevice currentDevice].userInterfaceIdiom != UIUserInterfaceIdiomPad),
|
||||
@"frameskip": @(0),
|
||||
@"keyboardLayout": layoutForLanguage[firstLanguage],
|
||||
@"machine": @"MacPlus4M"
|
||||
@"machine": @"MacPlus4M",
|
||||
@"speedValue": @(sharedEmulator.initialSpeed),
|
||||
@"runInBackground": @NO,
|
||||
@"autoSlow": @(sharedEmulator.initialAutoSlow),
|
||||
@"screenFilter": kCAFilterLinear,
|
||||
@"autoShowGestureHelp": @YES,
|
||||
@"recentDisks": @[]
|
||||
};
|
||||
|
||||
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
||||
[defaults registerDefaults:defaultValues];
|
||||
[defaults setValue:@(sharedEmulator.initialSpeed) forKey:@"speedValue"];
|
||||
[defaults addObserver:self forKeyPath:@"speedValue" options:0 context:NULL];
|
||||
}
|
||||
|
||||
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context {
|
||||
if (object == [NSUserDefaults standardUserDefaults]) {
|
||||
NSUserDefaults *defaults = object;
|
||||
if ([keyPath isEqualToString:@"speedValue"]) {
|
||||
sharedEmulator.speed = [[NSUserDefaults standardUserDefaults] integerForKey:@"speedValue"];
|
||||
sharedEmulator.speed = [defaults integerForKey:@"speedValue"];
|
||||
} else if ([keyPath isEqualToString:@"autoSlow"]) {
|
||||
sharedEmulator.autoSlow = [defaults integerForKey:@"autoSlow"];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (NSString*)emulatorBundlesPath {
|
||||
return [NSBundle mainBundle].privateFrameworksPath;
|
||||
}
|
||||
|
||||
- (NSArray<NSBundle*>*)emulatorBundles {
|
||||
NSString *pluginsPath = [NSBundle mainBundle].builtInPlugInsPath;
|
||||
NSArray<NSString*> *names = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:pluginsPath error:NULL];
|
||||
NSArray<NSString*> *names = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:self.emulatorBundlesPath error:NULL];
|
||||
NSMutableArray *emulatorBundles = [NSMutableArray arrayWithCapacity:names.count];
|
||||
for (NSString *name in [names pathsMatchingExtensions:@[@"mnvm"]]) {
|
||||
NSBundle *bundle = [NSBundle bundleWithPath:[pluginsPath stringByAppendingPathComponent:name]];
|
||||
NSBundle *bundle = [NSBundle bundleWithPath:[self.emulatorBundlesPath stringByAppendingPathComponent:name]];
|
||||
[emulatorBundles addObject:bundle];
|
||||
}
|
||||
return emulatorBundles;
|
||||
|
@ -79,24 +98,74 @@ static NSObject<Emulator> *sharedEmulator = nil;
|
|||
|
||||
- (BOOL)loadEmulator:(NSString*)name {
|
||||
NSString *emulatorBundleName = [name stringByAppendingPathExtension:@"mnvm"];
|
||||
NSString *emulatorBundlePath = [[NSBundle mainBundle].builtInPlugInsPath stringByAppendingPathComponent:emulatorBundleName];
|
||||
NSString *emulatorBundlePath = [self.emulatorBundlesPath stringByAppendingPathComponent:emulatorBundleName];
|
||||
NSBundle *emulatorBundle = [NSBundle bundleWithPath:emulatorBundlePath];
|
||||
[emulatorBundle load];
|
||||
sharedEmulator = [[emulatorBundle principalClass] new];
|
||||
sharedEmulator.rootViewController = self.window.rootViewController;
|
||||
sharedEmulator.showAlert = ^(NSString *title, NSString *message) {
|
||||
[self showAlertWithTitle:title message:message];
|
||||
};
|
||||
sharedEmulator.dataPath = self.documentsPath;
|
||||
#if defined(TARGET_OS_VISION) && TARGET_OS_VISION == 1
|
||||
[ViewController adjustToScreenSize];
|
||||
#endif
|
||||
return sharedEmulator != nil;
|
||||
}
|
||||
|
||||
- (void)loadAndStartEmulator {
|
||||
[self willChangeValueForKey:@"sharedEmulator"];
|
||||
if (sharedEmulator) {
|
||||
NSBundle *bundle = sharedEmulator.bundle;
|
||||
id<Emulator> oldEmulator = sharedEmulator;
|
||||
sharedEmulator = nil;
|
||||
[oldEmulator shutdown];
|
||||
[bundle unload];
|
||||
}
|
||||
if (![self loadEmulator:[[NSUserDefaults standardUserDefaults] stringForKey:@"machine"]]) {
|
||||
[self loadEmulator:@"MacPlus4M"];
|
||||
}
|
||||
[self didChangeValueForKey:@"sharedEmulator"];
|
||||
|
||||
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
||||
if ([defaults integerForKey:@"speedValue"] > sharedEmulator.initialSpeed) {
|
||||
[defaults setValue:@(sharedEmulator.initialSpeed) forKey:@"speedValue"];
|
||||
} else {
|
||||
sharedEmulator.speed = [defaults integerForKey:@"speedValue"];
|
||||
}
|
||||
[sharedEmulator performSelector:@selector(run) withObject:nil afterDelay:0.1];
|
||||
}
|
||||
|
||||
- (id<Emulator>)sharedEmulator {
|
||||
return sharedEmulator;
|
||||
}
|
||||
|
||||
- (void)applicationDidEnterBackground:(UIApplication *)application {
|
||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||
sharedEmulator.running = NO;
|
||||
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
||||
[defaults synchronize];
|
||||
if ([defaults boolForKey:@"runInBackground"]) {
|
||||
// slow down to 1x when in background
|
||||
sharedEmulator.speed = EmulatorSpeed1x;
|
||||
} else {
|
||||
sharedEmulator.running = NO;
|
||||
}
|
||||
if (sharedEmulator.anyDiskInserted == NO) {
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)handleEventWithMove:(CGPoint)move andWheel:(float)wheel andPan:(float)pan andButtons:(int)buttons {
|
||||
[sharedEmulator moveMouseX:move.x/2.0 Y:move.y/2.0];
|
||||
[sharedEmulator setMouseButton:buttons == 1];
|
||||
}
|
||||
|
||||
- (void)applicationWillEnterForeground:(UIApplication *)application {
|
||||
sharedEmulator.running = YES;
|
||||
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
||||
if (sharedEmulator.running) {
|
||||
sharedEmulator.speed = [defaults integerForKey:@"speedValue"];
|
||||
} else {
|
||||
sharedEmulator.running = YES;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)showAlertWithTitle:(NSString *)title message:(NSString *)message {
|
||||
|
@ -106,127 +175,64 @@ static NSObject<Emulator> *sharedEmulator = nil;
|
|||
});
|
||||
return;
|
||||
}
|
||||
if ([UIAlertController class]) {
|
||||
UIAlertController *alert = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];
|
||||
[alert addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]];
|
||||
UIViewController *controller = self.window.rootViewController;
|
||||
[controller presentViewController:alert animated:YES completion:nil];
|
||||
} else {
|
||||
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:title message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
|
||||
[alertView show];
|
||||
BOOL wasRunning = sharedEmulator.isRunning;
|
||||
UIAlertController *alert = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];
|
||||
[alert addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
|
||||
[sharedEmulator setRunning:wasRunning];
|
||||
}]];
|
||||
UIViewController *controller = self.window.rootViewController;
|
||||
while (controller.presentedViewController) {
|
||||
controller = controller.presentedViewController;
|
||||
}
|
||||
[controller presentViewController:alert animated:YES completion:nil];
|
||||
}
|
||||
|
||||
#pragma mark - Settings / Insert Disk panels
|
||||
- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler {
|
||||
BOOL success = NO;
|
||||
if ([shortcutItem.type isEqualToString:@"disk"]) {
|
||||
NSString *fileName = (NSString*)shortcutItem.userInfo[@"disk"];
|
||||
NSString *filePath = [self.documentsPath stringByAppendingPathComponent:fileName];
|
||||
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath] && ![sharedEmulator isDiskInserted:filePath]) {
|
||||
success = YES;
|
||||
[sharedEmulator performSelector:@selector(insertDisk:) withObject:filePath afterDelay:1.0];
|
||||
}
|
||||
}
|
||||
completionHandler(success);
|
||||
}
|
||||
|
||||
#pragma mark - Settings / Insert Disk / Help
|
||||
|
||||
- (void)showSettings:(id)sender {
|
||||
[self showModalPanel:@"settings" sender:sender];
|
||||
[self.window.rootViewController performSelector:@selector(showSettings:) withObject:sender];
|
||||
}
|
||||
|
||||
- (void)showInsertDisk:(id)sender {
|
||||
[self showModalPanel:@"disk" sender:sender];
|
||||
[self.window.rootViewController performSelector:@selector(showInsertDisk:) withObject:sender];
|
||||
}
|
||||
|
||||
- (void)showModalPanel:(NSString*)name sender:(id)sender {
|
||||
Class classToShow, otherClass;
|
||||
if ([name isEqualToString:@"settings"]) {
|
||||
classToShow = [SettingsViewController class];
|
||||
otherClass = [InsertDiskViewController class];
|
||||
} else {
|
||||
classToShow = [InsertDiskViewController class];
|
||||
otherClass = [SettingsViewController class];
|
||||
}
|
||||
|
||||
UIViewController *rootViewController = self.window.rootViewController;
|
||||
UIViewController *presentedViewController = rootViewController.presentedViewController;
|
||||
UIViewController *presentedTopViewController = [presentedViewController isKindOfClass:[UINavigationController class]] ? [(UINavigationController*)presentedViewController topViewController] : nil;
|
||||
|
||||
if ([presentedTopViewController isKindOfClass:classToShow]) {
|
||||
[presentedViewController dismissViewControllerAnimated:YES completion:nil];
|
||||
return;
|
||||
} else if ([presentedTopViewController isKindOfClass:otherClass]) {
|
||||
// flip
|
||||
UIViewController *viewController = [rootViewController.storyboard instantiateViewControllerWithIdentifier:name];
|
||||
viewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
|
||||
viewController.modalPresentationStyle = UIModalPresentationFormSheet;
|
||||
UIView *windowSnapshotView = [self.window snapshotViewAfterScreenUpdates:NO];
|
||||
[self.window addSubview:windowSnapshotView];
|
||||
UIView *oldPanelSnapshotView = [presentedViewController.view snapshotViewAfterScreenUpdates:NO];
|
||||
[viewController.view addSubview:oldPanelSnapshotView];
|
||||
[rootViewController dismissViewControllerAnimated:NO completion:^{
|
||||
[rootViewController presentViewController:viewController animated:NO completion:^{
|
||||
UIView *emptyView = [[UIView alloc] initWithFrame:viewController.view.bounds];
|
||||
[windowSnapshotView removeFromSuperview];
|
||||
viewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
|
||||
[UIView transitionFromView:oldPanelSnapshotView
|
||||
toView:emptyView
|
||||
duration:0.5
|
||||
options:UIViewAnimationOptionTransitionFlipFromRight
|
||||
completion:^(BOOL finished) {
|
||||
[emptyView removeFromSuperview];
|
||||
}];
|
||||
}];
|
||||
}];
|
||||
} else {
|
||||
UIViewController *viewController = [rootViewController.storyboard instantiateViewControllerWithIdentifier:name];
|
||||
viewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
|
||||
viewController.modalPresentationStyle = UIModalPresentationFormSheet;
|
||||
if ([sender isKindOfClass:[UISwipeGestureRecognizer class]] && [UIDevice currentDevice].systemVersion.integerValue >= 8) {
|
||||
modalPanePresentationDirection = [(UISwipeGestureRecognizer*)sender direction];
|
||||
viewController.transitioningDelegate = self;
|
||||
}
|
||||
[rootViewController presentViewController:viewController animated:YES completion:nil];
|
||||
}
|
||||
}
|
||||
|
||||
- (id<UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source {
|
||||
return self;
|
||||
}
|
||||
|
||||
- (NSTimeInterval)transitionDuration:(id<UIViewControllerContextTransitioning>)transitionContext {
|
||||
return 0.3;
|
||||
}
|
||||
|
||||
- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext {
|
||||
UIView *containerView = [transitionContext containerView];
|
||||
UIView *toView = [transitionContext viewForKey:UITransitionContextToViewKey];
|
||||
|
||||
[containerView addSubview:toView];
|
||||
switch (modalPanePresentationDirection) {
|
||||
case UISwipeGestureRecognizerDirectionLeft:
|
||||
toView.transform = CGAffineTransformMakeTranslation(containerView.bounds.size.width, 0);
|
||||
break;
|
||||
case UISwipeGestureRecognizerDirectionRight:
|
||||
toView.transform = CGAffineTransformMakeTranslation(-containerView.bounds.size.width, 0);
|
||||
break;
|
||||
case UISwipeGestureRecognizerDirectionDown:
|
||||
toView.transform = CGAffineTransformMakeTranslation(0, -containerView.bounds.size.height);
|
||||
break;
|
||||
default:
|
||||
toView.transform = CGAffineTransformMakeTranslation(0, containerView.bounds.size.height);
|
||||
}
|
||||
|
||||
[UIView animateWithDuration:[self transitionDuration:transitionContext] animations:^{
|
||||
toView.transform = CGAffineTransformIdentity;
|
||||
} completion:^(BOOL finished) {
|
||||
[transitionContext completeTransition:finished];
|
||||
}];
|
||||
- (void)showGestureHelp:(id)sender {
|
||||
[self.window.rootViewController performSelector:@selector(showGestureHelp:) withObject:sender];
|
||||
}
|
||||
|
||||
#pragma mark - Files
|
||||
|
||||
- (BOOL)isSandboxed {
|
||||
#if TARGET_IPHONE_SIMULATOR
|
||||
return YES;
|
||||
#else
|
||||
static dispatch_once_t onceToken;
|
||||
static BOOL sandboxed;
|
||||
dispatch_once(&onceToken, ^{
|
||||
NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
|
||||
sandboxed = ![bundlePath hasPrefix:@"/Applications/"];
|
||||
// not sandboxed if parent of documents directory is "mobile"
|
||||
NSString *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject.stringByStandardizingPath;
|
||||
sandboxed = ![documentsPath.stringByDeletingLastPathComponent.lastPathComponent isEqualToString:@"mobile"];
|
||||
});
|
||||
return sandboxed;
|
||||
#endif
|
||||
}
|
||||
|
||||
- (NSArray<NSString *> *)diskImageExtensions {
|
||||
return @[@"dsk", @"img", @"dc42", @"diskcopy42"];
|
||||
return @[@"dsk", @"img", @"dc42", @"diskcopy42", @"image"];
|
||||
}
|
||||
|
||||
- (NSString *)documentsPath {
|
||||
|
@ -238,12 +244,30 @@ static NSObject<Emulator> *sharedEmulator = nil;
|
|||
documentsPath = [documentsPath stringByAppendingPathComponent:@"Mini vMac"].stringByStandardizingPath;
|
||||
}
|
||||
[[NSFileManager defaultManager] createDirectoryAtPath:documentsPath withIntermediateDirectories:YES attributes:nil error:NULL];
|
||||
[[NSFileManager defaultManager] createDirectoryAtPath:documentsPath withIntermediateDirectories:YES attributes:nil error:NULL];
|
||||
});
|
||||
return documentsPath;
|
||||
}
|
||||
|
||||
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
|
||||
- (NSString *)userKeyboardLayoutsPath {
|
||||
static dispatch_once_t onceToken;
|
||||
static NSString *userKeyboardLayoutsPath;
|
||||
dispatch_once(&onceToken, ^{
|
||||
userKeyboardLayoutsPath = [self.documentsPath stringByAppendingPathComponent:@"Keyboard Layouts"];
|
||||
});
|
||||
return userKeyboardLayoutsPath;
|
||||
}
|
||||
|
||||
- (NSArray<NSString *> *)keyboardLayoutPaths {
|
||||
NSArray *keyboardLayouts = [[NSBundle mainBundle] pathsForResourcesOfType:@"nfkeyboardlayout" inDirectory:@"Keyboard Layouts"];
|
||||
NSString *userKeyboardLayoutsPath = [AppDelegate sharedInstance].userKeyboardLayoutsPath;
|
||||
NSArray *userKeyboardLayouts = [[[NSFileManager defaultManager] contentsOfDirectoryAtPath:userKeyboardLayoutsPath error:nil] filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"pathExtension.lowercaseString = %@", @"nfkeyboardlayout"]];
|
||||
if (userKeyboardLayouts.count > 0) {
|
||||
keyboardLayouts = [keyboardLayouts arrayByAddingObjectsFromArray:userKeyboardLayouts];
|
||||
}
|
||||
return keyboardLayouts;
|
||||
}
|
||||
|
||||
- (BOOL)importFileToDocuments:(NSURL *)url copy:(BOOL)copy {
|
||||
if (url.fileURL) {
|
||||
// opening file
|
||||
NSFileManager *fileManager = [NSFileManager defaultManager];
|
||||
|
@ -261,14 +285,81 @@ static NSObject<Emulator> *sharedEmulator = nil;
|
|||
destinationPath = [self.documentsPath stringByAppendingPathComponent:newFileName];
|
||||
tries++;
|
||||
}
|
||||
[fileManager moveItemAtPath:url.path toPath:destinationPath error:&error];
|
||||
if (copy) {
|
||||
[fileManager copyItemAtPath:url.path toPath:destinationPath error:&error];
|
||||
} else {
|
||||
[fileManager moveItemAtPath:url.path toPath:destinationPath error:&error];
|
||||
}
|
||||
if (error) {
|
||||
[self showAlertWithTitle:fileName message:error.localizedFailureReason];
|
||||
} else {
|
||||
NSDictionary *userInfo = @{@"path": destinationPath};
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:DocumentsChangedNotification object:self userInfo:userInfo];
|
||||
[self showAlertWithTitle:@"File Import" message:[NSString stringWithFormat:@"%@ imported to Documents", destinationPath.lastPathComponent]];
|
||||
}
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
|
||||
if (url.fileURL) {
|
||||
// opening file
|
||||
NSString *inboxPath = [self.documentsPath stringByAppendingPathComponent:@"Inbox"];
|
||||
if ([url.path.stringByStandardizingPath hasPrefix:inboxPath]) {
|
||||
// pre-iOS 11 import through inbox
|
||||
[url startAccessingSecurityScopedResource];
|
||||
[self importFileToDocuments:url copy:NO];
|
||||
[url stopAccessingSecurityScopedResource];
|
||||
} else if ([url.path.stringByStandardizingPath hasPrefix:self.documentsPath]) {
|
||||
// already in documents - mount
|
||||
[sharedEmulator insertDisk:url.path];
|
||||
} else if ([options[UIApplicationOpenURLOptionsOpenInPlaceKey] boolValue]) {
|
||||
// not in documents - copy
|
||||
[url startAccessingSecurityScopedResource];
|
||||
[self importFileToDocuments:url copy:YES];
|
||||
[url stopAccessingSecurityScopedResource];
|
||||
} else {
|
||||
return [self importFileToDocuments:url copy:NO];
|
||||
}
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
|
||||
#pragma mark - Making a Scene
|
||||
|
||||
- (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options {
|
||||
for (NSUserActivity *activity in options.userActivities) {
|
||||
if ([activity.activityType isEqualToString:@"net.namedfork.keyboard"]) {
|
||||
return [UISceneConfiguration configurationWithName:@"Keyboard" sessionRole:UIWindowSceneSessionRoleApplication];
|
||||
}
|
||||
}
|
||||
if ([self sceneWithName:@"Default"] == nil) {
|
||||
[[AppDelegate sharedEmulator] setRunning:YES];
|
||||
return [UISceneConfiguration configurationWithName:@"Default" sessionRole:UIWindowSceneSessionRoleApplication];
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (void)application:(UIApplication *)application didDiscardSceneSessions:(NSSet<UISceneSession *> *)sceneSessions {
|
||||
if ([self sceneWithName:@"Default"] == nil) {
|
||||
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"runInBackground"] == NO) {
|
||||
[[AppDelegate sharedEmulator] setRunning:NO];
|
||||
}
|
||||
UIScene *keyboardScene = [self sceneWithName:@"Keyboard"];
|
||||
if (keyboardScene != nil) {
|
||||
// if only keyboard is left, close it too
|
||||
[application requestSceneSessionDestruction:keyboardScene.session options:nil errorHandler:nil];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (UIScene*)sceneWithName:(NSString*)name {
|
||||
for (UIScene *scene in [UIApplication sharedApplication].connectedScenes) {
|
||||
if ([scene.session.configuration.name isEqualToString:name]) {
|
||||
return scene;
|
||||
}
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -1,89 +1,111 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x",
|
||||
"size" : "20x20"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x",
|
||||
"size" : "20x20"
|
||||
},
|
||||
{
|
||||
"filename" : "Icon-Small@2x.png",
|
||||
"scale" : "2x"
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-Small@3x.png",
|
||||
"scale" : "3x"
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-Small-40@2x-1.png",
|
||||
"scale" : "2x"
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x",
|
||||
"size" : "40x40"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-Small-40@3x.png",
|
||||
"scale" : "3x"
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x",
|
||||
"size" : "40x40"
|
||||
},
|
||||
{
|
||||
"size" : "60x60",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-60@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "60x60",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x",
|
||||
"size" : "60x60"
|
||||
},
|
||||
{
|
||||
"filename" : "Icon-60@3x.png",
|
||||
"scale" : "3x"
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x",
|
||||
"size" : "60x60"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x",
|
||||
"size" : "20x20"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "20x20"
|
||||
},
|
||||
{
|
||||
"filename" : "Icon-Small.png",
|
||||
"scale" : "1x"
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-Small@2x-1.png",
|
||||
"scale" : "2x"
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-Small-40.png",
|
||||
"scale" : "1x"
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x",
|
||||
"size" : "40x40"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-Small-40@2x.png",
|
||||
"scale" : "2x"
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "40x40"
|
||||
},
|
||||
{
|
||||
"size" : "76x76",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-76.png",
|
||||
"scale" : "1x"
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x",
|
||||
"size" : "76x76"
|
||||
},
|
||||
{
|
||||
"size" : "76x76",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-76@2x.png",
|
||||
"scale" : "2x"
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "76x76"
|
||||
},
|
||||
{
|
||||
"size" : "83.5x83.5",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-iPadPro.png",
|
||||
"scale" : "2x"
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "83.5x83.5"
|
||||
},
|
||||
{
|
||||
"idiom" : "ios-marketing",
|
||||
"scale" : "1x",
|
||||
"size" : "1024x1024"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
},
|
||||
"properties" : {
|
||||
"pre-rendered" : true
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "back.png",
|
||||
"idiom" : "vision",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 25 KiB |
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"frame-size" : {
|
||||
"height" : 512,
|
||||
"width" : 512
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"layers" : [
|
||||
{
|
||||
"filename" : "Front.solidimagestacklayer"
|
||||
},
|
||||
{
|
||||
"filename" : "Middle.solidimagestacklayer"
|
||||
},
|
||||
{
|
||||
"filename" : "Back.solidimagestacklayer"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "Icon.png",
|
||||
"idiom" : "vision",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 736 B |
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"frame-size" : {
|
||||
"height" : 512,
|
||||
"width" : 512
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "screen.png",
|
||||
"idiom" : "vision",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 934 B |
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"frame-size" : {
|
||||
"height" : 512,
|
||||
"width" : 512
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,28 +5,36 @@
|
|||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBCapsLock~iphone@2x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBCapsLock~iphone@3x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBCapsLock~ipad.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBCapsLock~ipad@2x.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBCapsLock~ipad@2x 1.png",
|
||||
"idiom" : "vision",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
BIN
Mini vMac/Assets.xcassets/KBCapsLock.imageset/KBCapsLock~ipad@2x 1.png
vendored
Normal file
After Width: | Height: | Size: 317 B |
|
@ -5,28 +5,36 @@
|
|||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBClearDown~iphone@2x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBClearDown~iphone@3x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBClearDown~ipad.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBClearDown~ipad@2x.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBClearDown~ipad@2x 1.png",
|
||||
"idiom" : "vision",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
BIN
Mini vMac/Assets.xcassets/KBClearDown.imageset/KBClearDown~ipad@2x 1.png
vendored
Normal file
After Width: | Height: | Size: 401 B |
|
@ -5,28 +5,36 @@
|
|||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBClearUp~iphone.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBClearUp~iphone@3x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBClearUp~ipad.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBClearUp~ipad@2x.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBClearUp~ipad@2x 1.png",
|
||||
"idiom" : "vision",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
BIN
Mini vMac/Assets.xcassets/KBClearUp.imageset/KBClearUp~ipad@2x 1.png
vendored
Normal file
After Width: | Height: | Size: 563 B |
|
@ -5,28 +5,36 @@
|
|||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBKeyCommand@2x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBKeyCommand@3x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBCommand~ipad.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBCommand@2x~ipad.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBCommand@2x~ipad 1.png",
|
||||
"idiom" : "vision",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
BIN
Mini vMac/Assets.xcassets/KBCommand.imageset/KBCommand@2x~ipad 1.png
vendored
Normal file
After Width: | Height: | Size: 1.0 KiB |
|
@ -5,28 +5,36 @@
|
|||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBDeleteDown~iphone@2x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBDeleteDown~iphone@3x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBDeleteDown~ipad.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBDeleteDown~ipad@2x.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBDeleteDown~ipad@2x 1.png",
|
||||
"idiom" : "vision",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
BIN
Mini vMac/Assets.xcassets/KBDeleteDown.imageset/KBDeleteDown~ipad@2x 1.png
vendored
Normal file
After Width: | Height: | Size: 526 B |
|
@ -5,28 +5,36 @@
|
|||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBDeleteUp~iphone.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBDeleteUp~iphone@3x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBDeleteUp~ipad.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBDeleteUp~ipad@2x.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBDeleteUp~ipad@2x 1.png",
|
||||
"idiom" : "vision",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
BIN
Mini vMac/Assets.xcassets/KBDeleteUp.imageset/KBDeleteUp~ipad@2x 1.png
vendored
Normal file
After Width: | Height: | Size: 726 B |
|
@ -5,28 +5,36 @@
|
|||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBForwardDeleteDown~iphone@2x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBForwardDeleteDown~iphone@3x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBForwardDeleteDown~ipad.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBForwardDeleteDown~ipad@2x.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBForwardDeleteDown~ipad@2x 1.png",
|
||||
"idiom" : "vision",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
BIN
Mini vMac/Assets.xcassets/KBForwardDeleteDown.imageset/KBForwardDeleteDown~ipad@2x 1.png
vendored
Normal file
After Width: | Height: | Size: 526 B |
|
@ -5,28 +5,36 @@
|
|||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBForwardDeleteUp~iphone.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBForwardDeleteUp~iphone@3x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBForwardDeleteUp~ipad.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBForwardDeleteUp~ipad@2x.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBForwardDeleteUp~ipad@2x 1.png",
|
||||
"idiom" : "vision",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
BIN
Mini vMac/Assets.xcassets/KBForwardDeleteUp.imageset/KBForwardDeleteUp~ipad@2x 1.png
vendored
Normal file
After Width: | Height: | Size: 718 B |
|
@ -1,32 +1,41 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "KBHide~ipad 2.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBHide~iphone@2x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBHide~iphone@3x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBHide~ipad.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBHide~ipad@2x.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBHide~ipad@2x 1.png",
|
||||
"idiom" : "vision",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
BIN
Mini vMac/Assets.xcassets/KBHide.imageset/KBHide~ipad 2.png
vendored
Normal file
After Width: | Height: | Size: 242 B |
BIN
Mini vMac/Assets.xcassets/KBHide.imageset/KBHide~ipad@2x 1.png
vendored
Normal file
After Width: | Height: | Size: 438 B |
|
@ -1,103 +1,247 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "KBKey.png",
|
||||
"idiom" : "iphone",
|
||||
"resizing" : {
|
||||
"mode" : "9-part",
|
||||
"center" : {
|
||||
"mode" : "tile",
|
||||
"width" : 1,
|
||||
"height" : 1
|
||||
},
|
||||
"cap-insets" : {
|
||||
"bottom" : 8,
|
||||
"top" : 8,
|
||||
"left" : 8,
|
||||
"right" : 8,
|
||||
"left" : 8
|
||||
}
|
||||
"top" : 8
|
||||
},
|
||||
"center" : {
|
||||
"height" : 1,
|
||||
"mode" : "tile",
|
||||
"width" : 1
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBKey.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "KBKey-1.png",
|
||||
"idiom" : "iphone",
|
||||
"resizing" : {
|
||||
"mode" : "9-part",
|
||||
"center" : {
|
||||
"mode" : "tile",
|
||||
"width" : 2,
|
||||
"height" : 2
|
||||
"cap-insets" : {
|
||||
"bottom" : 8,
|
||||
"left" : 8,
|
||||
"right" : 8,
|
||||
"top" : 8
|
||||
},
|
||||
"center" : {
|
||||
"height" : 1,
|
||||
"mode" : "tile",
|
||||
"width" : 1
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBKey@2x.png",
|
||||
"idiom" : "iphone",
|
||||
"resizing" : {
|
||||
"cap-insets" : {
|
||||
"bottom" : 16,
|
||||
"top" : 16,
|
||||
"left" : 16,
|
||||
"right" : 16,
|
||||
"left" : 16
|
||||
}
|
||||
"top" : 16
|
||||
},
|
||||
"center" : {
|
||||
"height" : 2,
|
||||
"mode" : "tile",
|
||||
"width" : 2
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBKey@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "KBKey@2x-1.png",
|
||||
"idiom" : "iphone",
|
||||
"resizing" : {
|
||||
"mode" : "9-part",
|
||||
"center" : {
|
||||
"mode" : "tile",
|
||||
"width" : 3,
|
||||
"height" : 3
|
||||
"cap-insets" : {
|
||||
"bottom" : 16,
|
||||
"left" : 16,
|
||||
"right" : 16,
|
||||
"top" : 16
|
||||
},
|
||||
"center" : {
|
||||
"height" : 2,
|
||||
"mode" : "tile",
|
||||
"width" : 2
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBKey@3x.png",
|
||||
"idiom" : "iphone",
|
||||
"resizing" : {
|
||||
"cap-insets" : {
|
||||
"bottom" : 24,
|
||||
"top" : 24,
|
||||
"left" : 24,
|
||||
"right" : 24,
|
||||
"left" : 24
|
||||
}
|
||||
"top" : 24
|
||||
},
|
||||
"center" : {
|
||||
"height" : 3,
|
||||
"mode" : "tile",
|
||||
"width" : 3
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBKey@3x.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "KBKey@3x-2.png",
|
||||
"idiom" : "iphone",
|
||||
"resizing" : {
|
||||
"mode" : "9-part",
|
||||
"center" : {
|
||||
"mode" : "tile",
|
||||
"width" : 1,
|
||||
"height" : 1
|
||||
"cap-insets" : {
|
||||
"bottom" : 24,
|
||||
"left" : 24,
|
||||
"right" : 24,
|
||||
"top" : 24
|
||||
},
|
||||
"center" : {
|
||||
"height" : 3,
|
||||
"mode" : "tile",
|
||||
"width" : 3
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBKey~ipad.png",
|
||||
"idiom" : "ipad",
|
||||
"resizing" : {
|
||||
"cap-insets" : {
|
||||
"bottom" : 16,
|
||||
"top" : 16,
|
||||
"left" : 16,
|
||||
"right" : 16,
|
||||
"left" : 16
|
||||
}
|
||||
"top" : 16
|
||||
},
|
||||
"center" : {
|
||||
"height" : 1,
|
||||
"mode" : "tile",
|
||||
"width" : 1
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBKey~ipad.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "KBKey~ipad-2.png",
|
||||
"idiom" : "ipad",
|
||||
"resizing" : {
|
||||
"mode" : "9-part",
|
||||
"center" : {
|
||||
"mode" : "tile",
|
||||
"width" : 2,
|
||||
"height" : 2
|
||||
"cap-insets" : {
|
||||
"bottom" : 16,
|
||||
"left" : 16,
|
||||
"right" : 16,
|
||||
"top" : 16
|
||||
},
|
||||
"center" : {
|
||||
"height" : 1,
|
||||
"mode" : "tile",
|
||||
"width" : 1
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBKey@2x~ipad.png",
|
||||
"idiom" : "ipad",
|
||||
"resizing" : {
|
||||
"cap-insets" : {
|
||||
"bottom" : 32,
|
||||
"top" : 32,
|
||||
"left" : 32,
|
||||
"right" : 32,
|
||||
"left" : 32
|
||||
}
|
||||
"top" : 32
|
||||
},
|
||||
"center" : {
|
||||
"height" : 2,
|
||||
"mode" : "tile",
|
||||
"width" : 2
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "KBKey@2x~ipad-2.png",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBKey@2x~ipad.png",
|
||||
"resizing" : {
|
||||
"cap-insets" : {
|
||||
"bottom" : 32,
|
||||
"left" : 32,
|
||||
"right" : 32,
|
||||
"top" : 32
|
||||
},
|
||||
"center" : {
|
||||
"height" : 2,
|
||||
"mode" : "tile",
|
||||
"width" : 2
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBKey@2x~ipad-2 1.png",
|
||||
"idiom" : "vision",
|
||||
"resizing" : {
|
||||
"cap-insets" : {
|
||||
"bottom" : 32,
|
||||
"left" : 32,
|
||||
"right" : 32,
|
||||
"top" : 32
|
||||
},
|
||||
"center" : {
|
||||
"height" : 2,
|
||||
"mode" : "tile",
|
||||
"width" : 2
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
BIN
Mini vMac/Assets.xcassets/KBKey.imageset/KBKey-1.png
vendored
Normal file
After Width: | Height: | Size: 208 B |
BIN
Mini vMac/Assets.xcassets/KBKey.imageset/KBKey@2x-1.png
vendored
Normal file
After Width: | Height: | Size: 423 B |
BIN
Mini vMac/Assets.xcassets/KBKey.imageset/KBKey@2x~ipad-2 1.png
vendored
Normal file
After Width: | Height: | Size: 634 B |
BIN
Mini vMac/Assets.xcassets/KBKey.imageset/KBKey@2x~ipad-2.png
vendored
Normal file
After Width: | Height: | Size: 634 B |
BIN
Mini vMac/Assets.xcassets/KBKey.imageset/KBKey@3x-2.png
vendored
Normal file
After Width: | Height: | Size: 571 B |
BIN
Mini vMac/Assets.xcassets/KBKey.imageset/KBKey~ipad-2.png
vendored
Normal file
After Width: | Height: | Size: 340 B |
|
@ -1,103 +1,247 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "KBKeyDark.png",
|
||||
"idiom" : "iphone",
|
||||
"resizing" : {
|
||||
"mode" : "9-part",
|
||||
"center" : {
|
||||
"mode" : "tile",
|
||||
"width" : 1,
|
||||
"height" : 1
|
||||
},
|
||||
"cap-insets" : {
|
||||
"bottom" : 8,
|
||||
"top" : 8,
|
||||
"left" : 8,
|
||||
"right" : 8,
|
||||
"left" : 8
|
||||
}
|
||||
"top" : 8
|
||||
},
|
||||
"center" : {
|
||||
"height" : 1,
|
||||
"mode" : "tile",
|
||||
"width" : 1
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBKeyDark.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "KBKeyDark-1.png",
|
||||
"idiom" : "iphone",
|
||||
"resizing" : {
|
||||
"mode" : "9-part",
|
||||
"center" : {
|
||||
"mode" : "tile",
|
||||
"width" : 2,
|
||||
"height" : 2
|
||||
"cap-insets" : {
|
||||
"bottom" : 8,
|
||||
"left" : 8,
|
||||
"right" : 8,
|
||||
"top" : 8
|
||||
},
|
||||
"center" : {
|
||||
"height" : 1,
|
||||
"mode" : "tile",
|
||||
"width" : 1
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBKeyDark@2x.png",
|
||||
"idiom" : "iphone",
|
||||
"resizing" : {
|
||||
"cap-insets" : {
|
||||
"bottom" : 16,
|
||||
"top" : 16,
|
||||
"left" : 16,
|
||||
"right" : 16,
|
||||
"left" : 16
|
||||
}
|
||||
"top" : 16
|
||||
},
|
||||
"center" : {
|
||||
"height" : 2,
|
||||
"mode" : "tile",
|
||||
"width" : 2
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBKeyDark@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "KBKeyDark@2x-1.png",
|
||||
"idiom" : "iphone",
|
||||
"resizing" : {
|
||||
"mode" : "9-part",
|
||||
"center" : {
|
||||
"mode" : "tile",
|
||||
"width" : 3,
|
||||
"height" : 3
|
||||
"cap-insets" : {
|
||||
"bottom" : 16,
|
||||
"left" : 16,
|
||||
"right" : 16,
|
||||
"top" : 16
|
||||
},
|
||||
"center" : {
|
||||
"height" : 2,
|
||||
"mode" : "tile",
|
||||
"width" : 2
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBKeyDark@3x.png",
|
||||
"idiom" : "iphone",
|
||||
"resizing" : {
|
||||
"cap-insets" : {
|
||||
"bottom" : 24,
|
||||
"top" : 24,
|
||||
"left" : 24,
|
||||
"right" : 24,
|
||||
"left" : 24
|
||||
}
|
||||
"top" : 24
|
||||
},
|
||||
"center" : {
|
||||
"height" : 3,
|
||||
"mode" : "tile",
|
||||
"width" : 3
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBKeyDark@3x.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "KBKeyDark@3x-1.png",
|
||||
"idiom" : "iphone",
|
||||
"resizing" : {
|
||||
"mode" : "9-part",
|
||||
"center" : {
|
||||
"mode" : "tile",
|
||||
"width" : 1,
|
||||
"height" : 1
|
||||
"cap-insets" : {
|
||||
"bottom" : 24,
|
||||
"left" : 24,
|
||||
"right" : 24,
|
||||
"top" : 24
|
||||
},
|
||||
"center" : {
|
||||
"height" : 3,
|
||||
"mode" : "tile",
|
||||
"width" : 3
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBKeyDark~ipad.png",
|
||||
"idiom" : "ipad",
|
||||
"resizing" : {
|
||||
"cap-insets" : {
|
||||
"bottom" : 16,
|
||||
"top" : 16,
|
||||
"left" : 16,
|
||||
"right" : 16,
|
||||
"left" : 16
|
||||
}
|
||||
"top" : 16
|
||||
},
|
||||
"center" : {
|
||||
"height" : 1,
|
||||
"mode" : "tile",
|
||||
"width" : 1
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBKeyDark~ipad.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "KBKeyDark~ipad-1.png",
|
||||
"idiom" : "ipad",
|
||||
"resizing" : {
|
||||
"mode" : "9-part",
|
||||
"center" : {
|
||||
"mode" : "tile",
|
||||
"width" : 2,
|
||||
"height" : 2
|
||||
"cap-insets" : {
|
||||
"bottom" : 16,
|
||||
"left" : 16,
|
||||
"right" : 16,
|
||||
"top" : 16
|
||||
},
|
||||
"center" : {
|
||||
"height" : 1,
|
||||
"mode" : "tile",
|
||||
"width" : 1
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBKeyDark@2x~ipad.png",
|
||||
"idiom" : "ipad",
|
||||
"resizing" : {
|
||||
"cap-insets" : {
|
||||
"bottom" : 32,
|
||||
"top" : 32,
|
||||
"left" : 32,
|
||||
"right" : 32,
|
||||
"left" : 32
|
||||
}
|
||||
"top" : 32
|
||||
},
|
||||
"center" : {
|
||||
"height" : 2,
|
||||
"mode" : "tile",
|
||||
"width" : 2
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "KBKeyDark@2x~ipad-1.png",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBKeyDark@2x~ipad.png",
|
||||
"resizing" : {
|
||||
"cap-insets" : {
|
||||
"bottom" : 32,
|
||||
"left" : 32,
|
||||
"right" : 32,
|
||||
"top" : 32
|
||||
},
|
||||
"center" : {
|
||||
"height" : 2,
|
||||
"mode" : "tile",
|
||||
"width" : 2
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBKeyDark@2x~ipad-1 1.png",
|
||||
"idiom" : "vision",
|
||||
"resizing" : {
|
||||
"cap-insets" : {
|
||||
"bottom" : 32,
|
||||
"left" : 32,
|
||||
"right" : 32,
|
||||
"top" : 32
|
||||
},
|
||||
"center" : {
|
||||
"height" : 2,
|
||||
"mode" : "tile",
|
||||
"width" : 2
|
||||
},
|
||||
"mode" : "9-part"
|
||||
},
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
BIN
Mini vMac/Assets.xcassets/KBKeyDark.imageset/KBKeyDark-1.png
vendored
Normal file
After Width: | Height: | Size: 204 B |
BIN
Mini vMac/Assets.xcassets/KBKeyDark.imageset/KBKeyDark@2x-1.png
vendored
Normal file
After Width: | Height: | Size: 367 B |
BIN
Mini vMac/Assets.xcassets/KBKeyDark.imageset/KBKeyDark@2x~ipad-1 1.png
vendored
Normal file
After Width: | Height: | Size: 636 B |
BIN
Mini vMac/Assets.xcassets/KBKeyDark.imageset/KBKeyDark@2x~ipad-1.png
vendored
Normal file
After Width: | Height: | Size: 636 B |
BIN
Mini vMac/Assets.xcassets/KBKeyDark.imageset/KBKeyDark@3x-1.png
vendored
Normal file
After Width: | Height: | Size: 571 B |
BIN
Mini vMac/Assets.xcassets/KBKeyDark.imageset/KBKeyDark~ipad-1.png
vendored
Normal file
After Width: | Height: | Size: 338 B |
|
@ -5,28 +5,36 @@
|
|||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBNumPad@2x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBNumPad@3x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBNumPad~ipad.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBNumPad@2x~ipad.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBNumPad@2x~ipad 1.png",
|
||||
"idiom" : "vision",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
BIN
Mini vMac/Assets.xcassets/KBNumPad.imageset/KBNumPad@2x~ipad 1.png
vendored
Normal file
After Width: | Height: | Size: 178 B |
|
@ -5,28 +5,36 @@
|
|||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBKeyOption@2x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBKeyOption@3x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBOption~ipad.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBOption@2x~ipad.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBOption@2x~ipad 1.png",
|
||||
"idiom" : "vision",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
BIN
Mini vMac/Assets.xcassets/KBOption.imageset/KBOption@2x~ipad 1.png
vendored
Normal file
After Width: | Height: | Size: 365 B |
|
@ -5,28 +5,36 @@
|
|||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBShiftDown~iphone@2x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBShiftDown~iphone@3x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBShiftDown~ipad.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBShiftDown~ipad@2x.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBShiftDown~ipad@2x 1.png",
|
||||
"idiom" : "vision",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
BIN
Mini vMac/Assets.xcassets/KBShiftDown.imageset/KBShiftDown~ipad@2x 1.png
vendored
Normal file
After Width: | Height: | Size: 274 B |
|
@ -5,28 +5,36 @@
|
|||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBShiftUp~iphone@2x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"filename" : "KBShiftUp~iphone@3x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBShiftUp~ipad.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"filename" : "KBShiftUp~ipad@2x.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "KBShiftUp~ipad@2x 1.png",
|
||||
"idiom" : "vision",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
BIN
Mini vMac/Assets.xcassets/KBShiftUp.imageset/KBShiftUp~ipad@2x 1.png
vendored
Normal file
After Width: | Height: | Size: 467 B |
|
@ -1,23 +1,26 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "reset.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "reset@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "reset@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,23 +1,26 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "Settings.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "Settings@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "Settings@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
26
Mini vMac/Assets.xcassets/Swipe2Down.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "Swipe2Down.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "Swipe2Down@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "Swipe2Down@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
BIN
Mini vMac/Assets.xcassets/Swipe2Down.imageset/Swipe2Down.png
vendored
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
Mini vMac/Assets.xcassets/Swipe2Down.imageset/Swipe2Down@2x.png
vendored
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
Mini vMac/Assets.xcassets/Swipe2Down.imageset/Swipe2Down@3x.png
vendored
Normal file
After Width: | Height: | Size: 4.3 KiB |
26
Mini vMac/Assets.xcassets/Swipe2Left.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "Swipe2Left.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "Swipe2Left@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "Swipe2Left@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
BIN
Mini vMac/Assets.xcassets/Swipe2Left.imageset/Swipe2Left.png
vendored
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
Mini vMac/Assets.xcassets/Swipe2Left.imageset/Swipe2Left@2x.png
vendored
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
Mini vMac/Assets.xcassets/Swipe2Left.imageset/Swipe2Left@3x.png
vendored
Normal file
After Width: | Height: | Size: 4.3 KiB |
26
Mini vMac/Assets.xcassets/Swipe2Right.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "Swipe2Right.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "Swipe2Right@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "Swipe2Right@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
BIN
Mini vMac/Assets.xcassets/Swipe2Right.imageset/Swipe2Right.png
vendored
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
Mini vMac/Assets.xcassets/Swipe2Right.imageset/Swipe2Right@2x.png
vendored
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
Mini vMac/Assets.xcassets/Swipe2Right.imageset/Swipe2Right@3x.png
vendored
Normal file
After Width: | Height: | Size: 4.3 KiB |
26
Mini vMac/Assets.xcassets/Swipe2Up.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "Swipe2Up.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "Swipe2Up@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "Swipe2Up@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
BIN
Mini vMac/Assets.xcassets/Swipe2Up.imageset/Swipe2Up.png
vendored
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
Mini vMac/Assets.xcassets/Swipe2Up.imageset/Swipe2Up@2x.png
vendored
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
Mini vMac/Assets.xcassets/Swipe2Up.imageset/Swipe2Up@3x.png
vendored
Normal file
After Width: | Height: | Size: 4.3 KiB |
|
@ -1,23 +1,26 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "document.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "document@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "document@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,23 +1,26 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "floppy.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "floppy@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "floppy@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
BIN
Mini vMac/Assets.xcassets/floppy.imageset/floppy.png
vendored
Before Width: | Height: | Size: 265 B After Width: | Height: | Size: 241 B |
Before Width: | Height: | Size: 508 B After Width: | Height: | Size: 411 B |
Before Width: | Height: | Size: 798 B After Width: | Height: | Size: 661 B |
|
@ -1,23 +1,26 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "floppy30.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "floppy30@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "floppy30@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
26
Mini vMac/Assets.xcassets/floppyV.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "floppyV.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "floppyV@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "floppyV@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
BIN
Mini vMac/Assets.xcassets/floppyV.imageset/floppyV.png
vendored
Normal file
After Width: | Height: | Size: 279 B |
BIN
Mini vMac/Assets.xcassets/floppyV.imageset/floppyV@2x.png
vendored
Normal file
After Width: | Height: | Size: 467 B |
BIN
Mini vMac/Assets.xcassets/floppyV.imageset/floppyV@3x.png
vendored
Normal file
After Width: | Height: | Size: 731 B |
|
@ -1,23 +1,26 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "folder.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "folder@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "folder@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,23 +1,26 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "hardDisk.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "hardDisk@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "hardDisk@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
20
Mini vMac/BTCMouse.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
//
|
||||
// BTCMouse.h
|
||||
// Mini vMac
|
||||
//
|
||||
// Created by Jesús A. Álvarez on 04/12/2016.
|
||||
// Copyright © 2016-2018 namedfork. All rights reserved.
|
||||
//
|
||||
|
||||
|
||||
@protocol BTCMouseDelegate
|
||||
- (void)handleEventWithMove:(CGPoint)move andWheel:(float)wheel andPan:(float)pan andButtons:(int)buttons;
|
||||
@end
|
||||
|
||||
@interface UIApplication (BTCMouse)
|
||||
- (void)btcMouseSetPanning:(BOOL)panning;
|
||||
- (void)btcMouseSetZooming:(BOOL)zooming;
|
||||
- (void)btcMouseSetDelegate:(id<BTCMouseDelegate>)delegate;
|
||||
- (void)btcMouseSetRawMode:(BOOL)rawMode;
|
||||
@end
|
||||
|