mirror of
https://github.com/zydeco/minivmac4ios.git
synced 2025-01-03 06:32:00 +00:00
set minimum target to iOS 9
remove iOS 8 stuff
This commit is contained in:
parent
cd0bfb0638
commit
dfc5c9e01f
@ -843,7 +843,7 @@
|
||||
28F676B51CD15E0B00FC6FA6 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1170;
|
||||
LastUpgradeCheck = 1200;
|
||||
ORGANIZATIONNAME = namedfork;
|
||||
TargetAttributes = {
|
||||
283422C91CF8EF8C0088B634 = {
|
||||
@ -876,10 +876,9 @@
|
||||
};
|
||||
buildConfigurationList = 28F676B81CD15E0B00FC6FA6 /* Build configuration list for PBXProject "Mini vMac" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
English,
|
||||
en,
|
||||
Base,
|
||||
);
|
||||
@ -1252,7 +1251,6 @@
|
||||
INFOPLIST_PREPROCESS = YES;
|
||||
INFOPLIST_PREPROCESSOR_DEFINITIONS = PLIST_PREPROCESSOR;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_DYLIB_INSTALL_NAME = "$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.namedfork.minivmac.macplus4m;
|
||||
@ -1280,7 +1278,6 @@
|
||||
INFOPLIST_PREPROCESS = YES;
|
||||
INFOPLIST_PREPROCESSOR_DEFINITIONS = PLIST_PREPROCESSOR;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_DYLIB_INSTALL_NAME = "$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.namedfork.minivmac.macplus4m;
|
||||
@ -1308,7 +1305,6 @@
|
||||
INFOPLIST_PREPROCESS = YES;
|
||||
INFOPLIST_PREPROCESSOR_DEFINITIONS = PLIST_PREPROCESSOR;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_DYLIB_INSTALL_NAME = "$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.namedfork.minivmac.macii;
|
||||
@ -1336,7 +1332,6 @@
|
||||
INFOPLIST_PREPROCESS = YES;
|
||||
INFOPLIST_PREPROCESSOR_DEFINITIONS = PLIST_PREPROCESSOR;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_DYLIB_INSTALL_NAME = "$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.namedfork.minivmac.macii;
|
||||
@ -1364,7 +1359,6 @@
|
||||
INFOPLIST_PREPROCESS = YES;
|
||||
INFOPLIST_PREPROCESSOR_DEFINITIONS = PLIST_PREPROCESSOR;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_DYLIB_INSTALL_NAME = "$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.namedfork.minivmac.mac128k;
|
||||
@ -1392,7 +1386,6 @@
|
||||
INFOPLIST_PREPROCESS = YES;
|
||||
INFOPLIST_PREPROCESSOR_DEFINITIONS = PLIST_PREPROCESSOR;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_DYLIB_INSTALL_NAME = "$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.namedfork.minivmac.mac128k;
|
||||
@ -1420,7 +1413,6 @@
|
||||
INFOPLIST_PREPROCESS = YES;
|
||||
INFOPLIST_PREPROCESSOR_DEFINITIONS = PLIST_PREPROCESSOR;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_DYLIB_INSTALL_NAME = "$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "net.namedfork.minivmac.macii-640x480";
|
||||
@ -1448,7 +1440,6 @@
|
||||
INFOPLIST_PREPROCESS = YES;
|
||||
INFOPLIST_PREPROCESSOR_DEFINITIONS = PLIST_PREPROCESSOR;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_DYLIB_INSTALL_NAME = "$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "net.namedfork.minivmac.macii-640x480";
|
||||
@ -1484,6 +1475,7 @@
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
@ -1508,7 +1500,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
@ -1539,6 +1531,7 @@
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
@ -1557,7 +1550,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
@ -1575,7 +1568,7 @@
|
||||
DEVELOPMENT_TEAM = UJXNDZ5TNU;
|
||||
HEADER_SEARCH_PATHS = "$(SRCROOT)";
|
||||
INFOPLIST_FILE = "Mini vMac/Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
MARKETING_VERSION = 2.4;
|
||||
OTHER_CFLAGS = "-DUSE_LIBRES";
|
||||
@ -1595,7 +1588,7 @@
|
||||
DEVELOPMENT_TEAM = UJXNDZ5TNU;
|
||||
HEADER_SEARCH_PATHS = "$(SRCROOT)";
|
||||
INFOPLIST_FILE = "Mini vMac/Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
MARKETING_VERSION = 2.4;
|
||||
OTHER_CFLAGS = "-DUSE_LIBRES";
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1170"
|
||||
LastUpgradeVersion = "1200"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1170"
|
||||
LastUpgradeVersion = "1200"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1170"
|
||||
LastUpgradeVersion = "1200"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1170"
|
||||
LastUpgradeVersion = "1200"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1170"
|
||||
LastUpgradeVersion = "1200"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1170"
|
||||
LastUpgradeVersion = "1200"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1170"
|
||||
LastUpgradeVersion = "1200"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1170"
|
||||
LastUpgradeVersion = "1200"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -166,18 +166,13 @@ NSString *DocumentsChangedNotification = @"documentsChanged";
|
||||
});
|
||||
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;
|
||||
while (controller.presentedViewController) {
|
||||
controller = controller.presentedViewController;
|
||||
}
|
||||
[controller presentViewController:alert animated:YES completion:nil];
|
||||
} else {
|
||||
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:title message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
|
||||
[alertView show];
|
||||
UIAlertController *alert = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];
|
||||
[alert addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]];
|
||||
UIViewController *controller = self.window.rootViewController;
|
||||
while (controller.presentedViewController) {
|
||||
controller = controller.presentedViewController;
|
||||
}
|
||||
[controller presentViewController:alert animated:YES completion:nil];
|
||||
}
|
||||
|
||||
#pragma mark - Settings / Insert Disk / Help
|
||||
@ -237,17 +232,6 @@ NSString *DocumentsChangedNotification = @"documentsChanged";
|
||||
return userKeyboardLayoutsPath;
|
||||
}
|
||||
|
||||
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
|
||||
NSMutableDictionary *options = [NSMutableDictionary dictionaryWithCapacity:2];
|
||||
if (sourceApplication) {
|
||||
options[UIApplicationOpenURLOptionsSourceApplicationKey] = sourceApplication;
|
||||
}
|
||||
if (annotation) {
|
||||
options[UIApplicationOpenURLOptionsAnnotationKey] = annotation;
|
||||
}
|
||||
return [self application:application openURL:url options:options];
|
||||
}
|
||||
|
||||
- (BOOL)importFileToDocuments:(NSURL *)url copy:(BOOL)copy {
|
||||
if (url.fileURL) {
|
||||
// opening file
|
||||
|
@ -10,7 +10,7 @@
|
||||
#import "AppDelegate.h"
|
||||
#import "UIImage+DiskImageIcon.h"
|
||||
|
||||
@interface InsertDiskViewController () <UITextFieldDelegate, UIAlertViewDelegate>
|
||||
@interface InsertDiskViewController () <UITextFieldDelegate>
|
||||
|
||||
@end
|
||||
|
||||
@ -31,7 +31,6 @@
|
||||
NSString *basePath;
|
||||
NSArray<NSString*> *diskImages, *otherFiles;
|
||||
UIAlertController *createDiskImageController;
|
||||
UIAlertView *createDiskImageAlert;
|
||||
__block __weak UITextField *sizeTextField;
|
||||
__block __weak UITextField *nameTextField;
|
||||
NSString *fileToRename;
|
||||
@ -82,10 +81,10 @@
|
||||
NSArray *allFiles = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:basePath error:NULL];
|
||||
diskImages = [allFiles filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"%@ containsObject: pathExtension.lowercaseString", [AppDelegate sharedInstance].diskImageExtensions]];
|
||||
otherFiles = [allFiles filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(NSString* _Nonnull name, NSDictionary<NSString *,id> * _Nullable bindings) {
|
||||
BOOL isDiskImage = [diskImages containsObject:name];
|
||||
BOOL isDiskImage = [self->diskImages containsObject:name];
|
||||
BOOL isDirectory;
|
||||
BOOL isHidden = [name hasPrefix:@"."];
|
||||
[[NSFileManager defaultManager] fileExistsAtPath:[basePath stringByAppendingPathComponent:name] isDirectory:&isDirectory];
|
||||
[[NSFileManager defaultManager] fileExistsAtPath:[self->basePath stringByAppendingPathComponent:name] isDirectory:&isDirectory];
|
||||
return !(isDirectory || isDiskImage || isHidden);
|
||||
}]];
|
||||
}
|
||||
@ -272,30 +271,19 @@
|
||||
|
||||
- (void)askRenameFile:(NSString*)filePath {
|
||||
NSString *fileName = filePath.lastPathComponent;
|
||||
if ([UIAlertController class]) {
|
||||
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:fileName message:NSLocalizedString(@"Enter new name", nil) preferredStyle:UIAlertControllerStyleAlert];
|
||||
[alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
|
||||
nameTextField = textField;
|
||||
textField.delegate = self;
|
||||
textField.placeholder = fileName;
|
||||
textField.text = fileName;
|
||||
}];
|
||||
[alertController addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]];
|
||||
[alertController addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Rename", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
|
||||
NSString *newName = alertController.textFields.firstObject.text;
|
||||
[self renameFile:filePath toName:newName];
|
||||
}]];
|
||||
[self presentViewController:alertController animated:YES completion:nil];
|
||||
} else {
|
||||
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:fileName message:NSLocalizedString(@"Enter new name", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) otherButtonTitles:NSLocalizedString(@"Rename", nil), nil];
|
||||
alertView.alertViewStyle = UIAlertViewStylePlainTextInput;
|
||||
nameTextField = [alertView textFieldAtIndex:0];
|
||||
nameTextField.delegate = self;
|
||||
nameTextField.placeholder = fileName;
|
||||
nameTextField.text = fileName;
|
||||
fileToRename = filePath;
|
||||
[alertView show];
|
||||
}
|
||||
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:fileName message:NSLocalizedString(@"Enter new name", nil) preferredStyle:UIAlertControllerStyleAlert];
|
||||
[alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
|
||||
self->nameTextField = textField;
|
||||
textField.delegate = self;
|
||||
textField.placeholder = fileName;
|
||||
textField.text = fileName;
|
||||
}];
|
||||
[alertController addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]];
|
||||
[alertController addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Rename", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
|
||||
NSString *newName = alertController.textFields.firstObject.text;
|
||||
[self renameFile:filePath toName:newName];
|
||||
}]];
|
||||
[self presentViewController:alertController animated:YES completion:nil];
|
||||
}
|
||||
|
||||
- (void)renameFile:(NSString*)filePath toName:(NSString*)newName {
|
||||
@ -319,39 +307,27 @@
|
||||
#pragma mark - Disk Image Creation
|
||||
|
||||
- (void)createDiskImage {
|
||||
if ([UIAlertController class]) {
|
||||
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Create Disk Image", nil) message:nil preferredStyle:UIAlertControllerStyleAlert];
|
||||
[alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
|
||||
textField.placeholder = NSLocalizedString(@"name", nil);
|
||||
[textField addTarget:self action:@selector(validateCreateDiskImageInput:) forControlEvents:UIControlEventAllEditingEvents];
|
||||
}];
|
||||
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Create Disk Image", nil) message:nil preferredStyle:UIAlertControllerStyleAlert];
|
||||
[alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
|
||||
textField.placeholder = NSLocalizedString(@"name", nil);
|
||||
[textField addTarget:self action:@selector(validateCreateDiskImageInput:) forControlEvents:UIControlEventAllEditingEvents];
|
||||
}];
|
||||
|
||||
[alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
|
||||
[self _configureNewDiskSizeField:textField];
|
||||
}];
|
||||
[alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
|
||||
[self _configureNewDiskSizeField:textField];
|
||||
}];
|
||||
|
||||
[alertController addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]];
|
||||
UIAlertAction *createAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Create", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
|
||||
NSString *name = [self _newDiskImageName];
|
||||
off_t size = [self _newDiskImageSize];
|
||||
createDiskImageController = nil;
|
||||
[self createDiskImageWithName:name size:size];
|
||||
}];
|
||||
[alertController addAction:createAction];
|
||||
createAction.enabled = NO;
|
||||
[self presentViewController:alertController animated:YES completion:nil];
|
||||
createDiskImageController = alertController;
|
||||
} else {
|
||||
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Create Disk Image", nil) message:nil delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) otherButtonTitles:NSLocalizedString(@"Create", nil), nil];
|
||||
alertView.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;
|
||||
nameTextField = [alertView textFieldAtIndex:0];
|
||||
nameTextField.delegate = self;
|
||||
nameTextField.placeholder = NSLocalizedString(@"name", nil);
|
||||
[nameTextField addTarget:self action:@selector(validateCreateDiskImageInput:) forControlEvents:UIControlEventAllEditingEvents];
|
||||
[self _configureNewDiskSizeField:[alertView textFieldAtIndex:1]];
|
||||
createDiskImageAlert = alertView;
|
||||
[alertView show];
|
||||
}
|
||||
[alertController addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:nil]];
|
||||
UIAlertAction *createAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Create", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
|
||||
NSString *name = [self _newDiskImageName];
|
||||
off_t size = [self _newDiskImageSize];
|
||||
self->createDiskImageController = nil;
|
||||
[self createDiskImageWithName:name size:size];
|
||||
}];
|
||||
[alertController addAction:createAction];
|
||||
createAction.enabled = NO;
|
||||
[self presentViewController:alertController animated:YES completion:nil];
|
||||
createDiskImageController = alertController;
|
||||
}
|
||||
|
||||
- (void)_configureNewDiskSizeField:(UITextField*)textField {
|
||||
@ -378,7 +354,7 @@
|
||||
|
||||
- (BOOL)validateCreateDiskImageInput:(id)sender {
|
||||
BOOL valid = NO;
|
||||
if (self.presentedViewController == createDiskImageController || createDiskImageAlert.visible) {
|
||||
if (self.presentedViewController == createDiskImageController) {
|
||||
NSString *name = [self _newDiskImageName];
|
||||
BOOL nameIsValid = (name.length > 0) && ![name hasPrefix:@"."] && ![name containsString:@"/"] && ![name containsString:@"*"];
|
||||
|
||||
@ -400,15 +376,13 @@
|
||||
- (NSString*)_newDiskImageName {
|
||||
if (createDiskImageController != nil) {
|
||||
return createDiskImageController.textFields[0].text;
|
||||
} else if (createDiskImageAlert.visible) {
|
||||
return nameTextField.text;
|
||||
} else {
|
||||
return nil;
|
||||
}
|
||||
}
|
||||
|
||||
- (off_t)_newDiskImageSize {
|
||||
if (createDiskImageController == nil && !createDiskImageAlert.visible) {
|
||||
if (createDiskImageController == nil) {
|
||||
return 0;
|
||||
}
|
||||
UISegmentedControl *unitsControl = (UISegmentedControl*)sizeTextField.rightView;
|
||||
@ -429,29 +403,19 @@
|
||||
|
||||
UIActivityIndicatorView *activityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
|
||||
activityIndicatorView.color = [UIColor blackColor];
|
||||
if ([UIAlertController class]) {
|
||||
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Creating Disk Image", nil) message:@"\n\n\n" preferredStyle:UIAlertControllerStyleAlert];
|
||||
[self presentViewController:alertController animated:true completion:^{
|
||||
UIView *alertView = alertController.view;
|
||||
activityIndicatorView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
|
||||
activityIndicatorView.center = CGPointMake(alertView.bounds.size.width / 2.0, alertView.bounds.size.height / 2.0 + 32.0);
|
||||
[alertView addSubview:activityIndicatorView];
|
||||
[activityIndicatorView startAnimating];
|
||||
[self _writeNewDiskImage:fd size:size activityIndicator:activityIndicatorView progressAlert:alertController];
|
||||
}];
|
||||
} else {
|
||||
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Creating Disk Image", nil) message:nil delegate:nil cancelButtonTitle:nil otherButtonTitles:nil];
|
||||
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Creating Disk Image", nil) message:@"\n\n\n" preferredStyle:UIAlertControllerStyleAlert];
|
||||
[self presentViewController:alertController animated:true completion:^{
|
||||
UIView *alertView = alertController.view;
|
||||
activityIndicatorView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
|
||||
activityIndicatorView.center = CGPointMake(alertView.bounds.size.width / 2.0, alertView.bounds.size.height / 2.0 + 32.0);
|
||||
[alertView addSubview:activityIndicatorView];
|
||||
[activityIndicatorView startAnimating];
|
||||
[alertView setValue:activityIndicatorView forKey:@"accessoryView"];
|
||||
[alertView show];
|
||||
[self _writeNewDiskImage:fd size:size activityIndicator:activityIndicatorView progressAlert:alertView];
|
||||
}
|
||||
[self _writeNewDiskImage:fd size:size activityIndicator:activityIndicatorView];
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)_writeNewDiskImage:(int)fd size:(off_t)size activityIndicator:(UIActivityIndicatorView*)activityIndicatorView progressAlert:(id)progressAlert {
|
||||
long queue = NSFoundationVersionNumber >= NSFoundationVersionNumber_iOS_8_0 ? QOS_CLASS_USER_INITIATED : DISPATCH_QUEUE_PRIORITY_HIGH;
|
||||
dispatch_async(dispatch_get_global_queue(queue, 0), ^{
|
||||
- (void)_writeNewDiskImage:(int)fd size:(off_t)size activityIndicator:(UIActivityIndicatorView*)activityIndicatorView {
|
||||
dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{
|
||||
int error = 0;
|
||||
if (ftruncate(fd, size)) {
|
||||
error = errno;
|
||||
@ -459,19 +423,11 @@
|
||||
close(fd);
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[activityIndicatorView stopAnimating];
|
||||
if ([progressAlert isKindOfClass:[UIAlertController class]]) {
|
||||
[self dismissViewControllerAnimated:YES completion:^{
|
||||
if (error) {
|
||||
[[AppDelegate sharedInstance] showAlertWithTitle:NSLocalizedString(@"Could not create disk image", nil) message:[[NSString alloc] initWithUTF8String:strerror(error)]];
|
||||
}
|
||||
}];
|
||||
} else if ([progressAlert isKindOfClass:[UIAlertView class]]) {
|
||||
UIAlertView *alert = progressAlert;
|
||||
[alert dismissWithClickedButtonIndex:0 animated:NO];
|
||||
[self dismissViewControllerAnimated:YES completion:^{
|
||||
if (error) {
|
||||
[[AppDelegate sharedInstance] showAlertWithTitle:NSLocalizedString(@"Could not create disk image", nil) message:[[NSString alloc] initWithUTF8String:strerror(error)]];
|
||||
}
|
||||
}
|
||||
}];
|
||||
[self.tableView beginUpdates];
|
||||
[self loadDirectoryContents];
|
||||
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];
|
||||
@ -510,27 +466,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Alert Delegate
|
||||
|
||||
- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex {
|
||||
if (fileToRename && buttonIndex == alertView.firstOtherButtonIndex) {
|
||||
[self renameFile:fileToRename toName:nameTextField.text];
|
||||
fileToRename = nil;
|
||||
} else if (createDiskImageAlert != nil) {
|
||||
NSString *name = [self _newDiskImageName];
|
||||
off_t size = [self _newDiskImageSize];
|
||||
createDiskImageAlert = nil;
|
||||
[self createDiskImageWithName:name size:size];
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView {
|
||||
if (alertView == createDiskImageAlert) {
|
||||
return [self validateCreateDiskImageInput:alertView];
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation FileTableViewCell
|
||||
|
@ -148,7 +148,7 @@
|
||||
fontScale *= [self isCompactKeyboardSize:selectedSize] ? 0.6 : 0.65;
|
||||
}
|
||||
key.label = label;
|
||||
key.titleLabel.font = [UIFont systemFontOfSize:self->fontSize * fontScale weight:&UIFontWeightRegular ? UIFontWeightRegular : 1.0];
|
||||
key.titleLabel.font = [UIFont systemFontOfSize:self->fontSize * fontScale weight:UIFontWeightRegular];
|
||||
[keyPlane addObject:key];
|
||||
}
|
||||
|
||||
|
@ -36,7 +36,7 @@ EXPORTVAR(ui3p, RAM)
|
||||
EXPORTVAR(ui3p, VidROM)
|
||||
EXPORTVAR(ui3p, VidMem)
|
||||
|
||||
@interface MNVMBundleClassName : NSObject <Emulator, UIAlertViewDelegate>
|
||||
@interface MNVMBundleClassName : NSObject <Emulator>
|
||||
|
||||
- (void)makeNewDisk:(NSString*)name size:(NSInteger)size;
|
||||
- (void)updateScreen:(CGImageRef)screenImage;
|
||||
@ -1471,21 +1471,13 @@ LOCALPROC MacMsgDisplayOn() {
|
||||
if (SavedBriefMsg != nullpr) {
|
||||
NSString *title = NSStringCreateFromSubstCStr(SavedBriefMsg, falseblnr);
|
||||
NSString *message = NSStringCreateFromSubstCStr(SavedLongMsg, falseblnr);
|
||||
if ([UIAlertController class]) {
|
||||
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];
|
||||
blnr wasStopped = SpeedStopped;
|
||||
[alertController addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
|
||||
SpeedStopped = wasStopped;
|
||||
}]];
|
||||
SpeedStopped = trueblnr;
|
||||
[[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:alertController animated:YES completion:nil];
|
||||
} else {
|
||||
// fallback for iOS 7
|
||||
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:title message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
|
||||
alertView.delegate = sharedEmulator;
|
||||
SpeedStopped = trueblnr;
|
||||
[alertView show];
|
||||
}
|
||||
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];
|
||||
blnr wasStopped = SpeedStopped;
|
||||
[alertController addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
|
||||
SpeedStopped = wasStopped;
|
||||
}]];
|
||||
SpeedStopped = trueblnr;
|
||||
[[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:alertController animated:YES completion:nil];
|
||||
SavedBriefMsg = nullpr;
|
||||
SavedLongMsg = nullpr;
|
||||
}
|
||||
@ -1788,29 +1780,19 @@ GLOBALPROC WaitForNextTick(void) {
|
||||
}
|
||||
|
||||
- (void)makeNewDisk:(NSString*)name size:(NSInteger)size {
|
||||
if ([UIAlertController class]) {
|
||||
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Export File", nil) message:NSLocalizedString(@"Enter new name", nil) preferredStyle:UIAlertControllerStyleAlert];
|
||||
[alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
|
||||
nameTextField = textField;
|
||||
nameTextField.placeholder = name;
|
||||
nameTextField.text = name;
|
||||
}];
|
||||
[alertController addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
|
||||
[self didMakeNewDisk:nil size:0];
|
||||
}]];
|
||||
[alertController addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Save", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
|
||||
[self didMakeNewDisk:nameTextField.text size:size];
|
||||
}]];
|
||||
[[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:alertController animated:YES completion:nil];
|
||||
} else {
|
||||
// iOS 7 fallback
|
||||
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Export File", nil) message:NSLocalizedString(@"Enter new name", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) otherButtonTitles:NSLocalizedString(@"Save", nil), nil];
|
||||
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
|
||||
nameTextField = [alert textFieldAtIndex:0];
|
||||
nameTextField.placeholder = name;
|
||||
nameTextField.text = name;
|
||||
[alert show];
|
||||
}
|
||||
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Export File", nil) message:NSLocalizedString(@"Enter new name", nil) preferredStyle:UIAlertControllerStyleAlert];
|
||||
[alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
|
||||
self->nameTextField = textField;
|
||||
self->nameTextField.placeholder = name;
|
||||
self->nameTextField.text = name;
|
||||
}];
|
||||
[alertController addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
|
||||
[self didMakeNewDisk:nil size:0];
|
||||
}]];
|
||||
[alertController addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Save", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
|
||||
[self didMakeNewDisk:self->nameTextField.text size:size];
|
||||
}]];
|
||||
[[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:alertController animated:YES completion:nil];
|
||||
}
|
||||
|
||||
- (void)didMakeNewDisk:(NSString*)fileName size:(NSInteger)size {
|
||||
@ -1828,19 +1810,6 @@ GLOBALPROC WaitForNextTick(void) {
|
||||
SpeedStopped = falseblnr;
|
||||
}
|
||||
|
||||
- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex {
|
||||
if (nameTextField) {
|
||||
NSString *fileName = nil;
|
||||
if (buttonIndex == alertView.firstOtherButtonIndex) {
|
||||
fileName = nameTextField.text;
|
||||
}
|
||||
[self didMakeNewDisk:fileName size:vSonyNewDiskSize];
|
||||
}
|
||||
if (SpeedStopped) {
|
||||
SpeedStopped = falseblnr;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Keyboard
|
||||
|
||||
- (int)translateScanCode:(int)scancode {
|
||||
|
@ -55,8 +55,7 @@ static const char kDiskImageIconAttributeName[] = "net.namedfork.DiskImageIcon";
|
||||
|
||||
+ (void)loadIconForDiskImageAndNotify:(NSString *)path {
|
||||
if ([NSThread isMainThread]) {
|
||||
long queue = NSFoundationVersionNumber >= NSFoundationVersionNumber_iOS_8_0 ? QOS_CLASS_USER_INITIATED : DISPATCH_QUEUE_PRIORITY_LOW;
|
||||
dispatch_async(dispatch_get_global_queue(queue, 0), ^{
|
||||
dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{
|
||||
[self loadIconForDiskImageAndNotify:path];
|
||||
});
|
||||
return;
|
||||
|
@ -328,7 +328,7 @@ API_AVAILABLE(ios(13.4))
|
||||
if (animated) {
|
||||
keyboardView.frame = CGRectOffset(finalFrame, 0.0, finalFrame.size.height);
|
||||
[UIView animateWithDuration:0.3 delay:0.0 options:UIViewAnimationOptionCurveEaseOut animations:^{
|
||||
keyboardView.frame = finalFrame;
|
||||
self->keyboardView.frame = finalFrame;
|
||||
} completion:nil];
|
||||
} else {
|
||||
keyboardView.frame = finalFrame;
|
||||
@ -338,10 +338,10 @@ API_AVAILABLE(ios(13.4))
|
||||
if (animated) {
|
||||
CGRect finalFrame = CGRectMake(0.0, self.view.bounds.size.height, keyboardView.bounds.size.width, keyboardView.bounds.size.height);
|
||||
[UIView animateWithDuration:0.3 delay:0.0 options:UIViewAnimationOptionCurveEaseOut animations:^{
|
||||
keyboardView.frame = finalFrame;
|
||||
self->keyboardView.frame = finalFrame;
|
||||
} completion:^(BOOL finished) {
|
||||
if (finished) {
|
||||
keyboardView.hidden = YES;
|
||||
self->keyboardView.hidden = YES;
|
||||
}
|
||||
}];
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user