diff options
author | Siqi LIU <me@siqi.fr> | 2013-09-09 14:34:37 +0200 |
---|---|---|
committer | Siqi LIU <me@siqi.fr> | 2013-09-09 14:36:15 +0200 |
commit | 8a1f535c3dbc624b70ba85078ab058f4b4f97f1f (patch) | |
tree | 0d1a4a3d0f571123f20a91301c505a4c864d46aa /ios | |
parent | 94ad163b3b86283c9d0e9270575922c98d4d4c69 (diff) |
concentrate all config into one place
Make use of InAppSettingKit, which allows both in-app setting and system-wide setting pane.
Introduced more customization like default count-down timer duration & vibration & auto_start & default timing widget options
Change-Id: Ida60b3b3f87a674795ee3ebddf14c71265196264
Diffstat (limited to 'ios')
81 files changed, 6158 insertions, 1367 deletions
diff --git a/ios/iosremote/InAppSettingsKit/Controllers/IASKAppSettingsViewController.h b/ios/iosremote/InAppSettingsKit/Controllers/IASKAppSettingsViewController.h new file mode 100755 index 000000000000..e2d5b99201d0 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Controllers/IASKAppSettingsViewController.h @@ -0,0 +1,84 @@ +// +// IASKAppSettingsViewController.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import <UIKit/UIKit.h> +#import <MessageUI/MessageUI.h> + +#import "IASKSettingsStore.h" +#import "IASKViewController.h" + +@class IASKSettingsReader; +@class IASKAppSettingsViewController; +@class IASKSpecifier; + +@protocol IASKSettingsDelegate +- (void)settingsViewControllerDidEnd:(IASKAppSettingsViewController*)sender; + +@optional +#pragma mark - UITableView header customization +- (CGFloat) settingsViewController:(id<IASKViewController>)settingsViewController + tableView:(UITableView *)tableView + heightForHeaderForSection:(NSInteger)section; +- (UIView *) settingsViewController:(id<IASKViewController>)settingsViewController + tableView:(UITableView *)tableView + viewForHeaderForSection:(NSInteger)section; + +#pragma mark - UITableView cell customization +- (CGFloat)tableView:(UITableView*)tableView heightForSpecifier:(IASKSpecifier*)specifier; +- (UITableViewCell*)tableView:(UITableView*)tableView cellForSpecifier:(IASKSpecifier*)specifier; + +#pragma mark - mail composing customization +- (NSString*) settingsViewController:(id<IASKViewController>)settingsViewController + mailComposeBodyForSpecifier:(IASKSpecifier*) specifier; + +- (UIViewController<MFMailComposeViewControllerDelegate>*) settingsViewController:(id<IASKViewController>)settingsViewController + viewControllerForMailComposeViewForSpecifier:(IASKSpecifier*) specifier; + +- (void) settingsViewController:(id<IASKViewController>) settingsViewController + mailComposeController:(MFMailComposeViewController*)controller + didFinishWithResult:(MFMailComposeResult)result + error:(NSError*)error; + +#pragma mark - respond to button taps +- (void)settingsViewController:(IASKAppSettingsViewController*)sender buttonTappedForKey:(NSString*)key; +- (void)settingsViewController:(IASKAppSettingsViewController*)sender tableView:(UITableView *)tableView didSelectCustomViewSpecifier:(IASKSpecifier*)specifier; +@end + + +@interface IASKAppSettingsViewController : UITableViewController <IASKViewController, UITextFieldDelegate, UINavigationControllerDelegate, MFMailComposeViewControllerDelegate> { + id<IASKSettingsDelegate> __unsafe_unretained _delegate; + + NSMutableArray *_viewList; + + IASKSettingsReader *_settingsReader; + id<IASKSettingsStore> _settingsStore; + NSString *_file; + + id _currentFirstResponder; + + BOOL _showCreditsFooter; + BOOL _showDoneButton; +} + +@property (nonatomic, unsafe_unretained) IBOutlet id delegate; +@property (nonatomic, copy) NSString *file; +@property (nonatomic, assign) BOOL showCreditsFooter; +@property (nonatomic, assign) BOOL showDoneButton; + +- (void)synchronizeSettings; +- (IBAction)dismiss:(id)sender; + +@end diff --git a/ios/iosremote/InAppSettingsKit/Controllers/IASKAppSettingsViewController.m b/ios/iosremote/InAppSettingsKit/Controllers/IASKAppSettingsViewController.m new file mode 100755 index 000000000000..afaa28e309f9 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Controllers/IASKAppSettingsViewController.m @@ -0,0 +1,796 @@ +// +// IASKAppSettingsViewController.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2009-2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + + +#import "IASKAppSettingsViewController.h" +#import "IASKSettingsReader.h" +#import "IASKSettingsStoreUserDefaults.h" +#import "IASKPSToggleSwitchSpecifierViewCell.h" +#import "IASKPSSliderSpecifierViewCell.h" +#import "IASKPSTextFieldSpecifierViewCell.h" +#import "IASKPSTitleValueSpecifierViewCell.h" +#import "IASKSwitch.h" +#import "IASKSlider.h" +#import "IASKSpecifier.h" +#import "IASKSpecifierValuesViewController.h" +#import "IASKTextField.h" + +static const CGFloat KEYBOARD_ANIMATION_DURATION = 0.3; +static const CGFloat MINIMUM_SCROLL_FRACTION = 0.2; +static const CGFloat MAXIMUM_SCROLL_FRACTION = 0.8; + +static NSString *kIASKCredits = @"Powered by InAppSettingsKit"; // Leave this as-is!!! + +#define kIASKSpecifierValuesViewControllerIndex 0 +#define kIASKSpecifierChildViewControllerIndex 1 + +#define kIASKCreditsViewWidth 285 + +CGRect IASKCGRectSwap(CGRect rect); + +@interface IASKAppSettingsViewController () +@property (nonatomic, strong) NSMutableArray *viewList; +@property (nonatomic, strong) id currentFirstResponder; + +- (void) setup; + +- (void)_textChanged:(id)sender; +- (void)synchronizeSettings; +- (void)userDefaultsDidChange; +- (void)reload; +@end + +@implementation IASKAppSettingsViewController + +@synthesize delegate = _delegate; +@synthesize viewList = _viewList; +@synthesize settingsReader = _settingsReader; +@synthesize file = _file; +@synthesize currentFirstResponder = _currentFirstResponder; +@synthesize showCreditsFooter = _showCreditsFooter; +@synthesize showDoneButton = _showDoneButton; +@synthesize settingsStore = _settingsStore; + +#pragma mark accessors +- (IASKSettingsReader*)settingsReader { + if (!_settingsReader) { + _settingsReader = [[IASKSettingsReader alloc] initWithFile:self.file]; + } + return _settingsReader; +} + +- (id<IASKSettingsStore>)settingsStore { + if (!_settingsStore) { + _settingsStore = [[IASKSettingsStoreUserDefaults alloc] init]; + } + return _settingsStore; +} + +- (NSString*)file { + if (!_file) { + return @"Root"; + } + return _file; +} + +- (void)setFile:(NSString *)file { + if (file != _file) { + + _file = [file copy]; + } + + self.tableView.contentOffset = CGPointMake(0, 0); + self.settingsReader = nil; // automatically initializes itself + [self.tableView reloadData]; +} + +- (BOOL)isPad { + BOOL isPad = NO; +#if (__IPHONE_OS_VERSION_MAX_ALLOWED >= 30200) + isPad = UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad; +#endif + return isPad; +} + +#pragma mark standard view controller methods +- (id)init { + return [self initWithNibName:@"IASKAppSettingsView" bundle:nil]; +} + +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { + if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) { + // If set to YES, will add a DONE button at the right of the navigation bar + _showDoneButton = YES; + + [self setup]; + } + return self; +} + +- (void)awakeFromNib { + // If set to YES, will add a DONE button at the right of the navigation bar + // if loaded via NIB, it's likely we sit in a TabBar- or NavigationController + // and thus don't need the Done button + _showDoneButton = NO; + + [self setup]; +} + +//common (NIB & code based) initialization +- (void) setup { + // If set to YES, will display credits for InAppSettingsKit creators + _showCreditsFooter = YES; +} + +- (NSMutableArray *)viewList { + if (!_viewList) { + _viewList = [[NSMutableArray alloc] init]; + [_viewList addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"IASKSpecifierValuesView", @"ViewName",nil]]; + [_viewList addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"IASKAppSettingsView", @"ViewName",nil]]; + } + return _viewList; +} + +- (void) viewDidLoad { + [super viewDidLoad]; + if ([self isPad]) { + self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLineEtched; + } + + UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Done", nil) style:UIBarButtonItemStyleBordered target:self action:@selector(handleBack)]; + [backButton setBackgroundImage:[UIImage imageNamed:@"backButton"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; + self.navigationItem.leftBarButtonItem = backButton; +} + +- (void)viewDidUnload { + [super viewDidUnload]; + + // Release any retained subviews of the main view. + // e.g. self.myOutlet = nil; + self.view = nil; + self.viewList = nil; +} + +- (void)viewWillAppear:(BOOL)animated { + // if there's something selected, the value might have changed + // so reload that row + NSIndexPath *selectedIndexPath = [self.tableView indexPathForSelectedRow]; + if(selectedIndexPath) { + [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:selectedIndexPath] + withRowAnimation:UITableViewRowAnimationNone]; + // and reselect it, so we get the nice default deselect animation from UITableViewController + [self.tableView selectRowAtIndexPath:selectedIndexPath animated:NO scrollPosition:UITableViewScrollPositionNone]; + } + + self.navigationItem.rightBarButtonItem = nil; + self.navigationController.delegate = self; + if (_showDoneButton) { + UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone + target:self + action:@selector(dismiss:)]; + self.navigationItem.rightBarButtonItem = buttonItem; + } + if (!self.title) { + self.title = NSLocalizedString(@"Settings", @""); + } + + if ([self.settingsStore isKindOfClass:[IASKSettingsStoreUserDefaults class]]) { + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(userDefaultsDidChange) + name:NSUserDefaultsDidChangeNotification + object:[NSUserDefaults standardUserDefaults]]; + [self userDefaultsDidChange]; // force update in case of changes while we were hidden + } + [super viewWillAppear:animated]; +} + +- (CGSize)contentSizeForViewInPopover { + return [[self view] sizeThatFits:CGSizeMake(320, 2000)]; +} + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + + NSNotificationCenter *dc = [NSNotificationCenter defaultCenter]; + IASK_IF_IOS4_OR_GREATER([dc addObserver:self selector:@selector(synchronizeSettings) name:UIApplicationDidEnterBackgroundNotification object:[UIApplication sharedApplication]];); + IASK_IF_IOS4_OR_GREATER([dc addObserver:self selector:@selector(reload) name:UIApplicationWillEnterForegroundNotification object:[UIApplication sharedApplication]];); + [dc addObserver:self selector:@selector(synchronizeSettings) name:UIApplicationWillTerminateNotification object:[UIApplication sharedApplication]]; +} + +- (void)viewWillDisappear:(BOOL)animated { + [NSObject cancelPreviousPerformRequestsWithTarget:self]; + [super viewWillDisappear:animated]; +} + +- (void)viewDidDisappear:(BOOL)animated { + [[NSNotificationCenter defaultCenter] removeObserver:self]; + + if (!self.navigationController.delegate) { + // hide the keyboard when we're popping from the navigation controller + [self.currentFirstResponder resignFirstResponder]; + } + + [super viewDidDisappear:animated]; +} + +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { + return YES; +} + +- (void)didReceiveMemoryWarning { + // Releases the view if it doesn't have a superview. + [super didReceiveMemoryWarning]; + + // Release any cached data, images, etc that aren't in use. +} + +- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { + if (![viewController isKindOfClass:[IASKAppSettingsViewController class]] && ![viewController isKindOfClass:[IASKSpecifierValuesViewController class]]) { + [self dismiss:nil]; + } +} + +- (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; + + _viewList = nil; + _file = nil; + _currentFirstResponder = nil; + _settingsReader = nil; + _settingsStore = nil; + + _delegate = nil; + +} + + +#pragma mark - +#pragma mark Actions + +- (IBAction)dismiss:(id)sender { + [self.settingsStore synchronize]; + self.navigationController.delegate = nil; + + if (self.delegate && [self.delegate conformsToProtocol:@protocol(IASKSettingsDelegate)]) { + [self.delegate settingsViewControllerDidEnd:self]; + } +} + +- (void)toggledValue:(id)sender { + IASKSwitch *toggle = (IASKSwitch*)sender; + IASKSpecifier *spec = [_settingsReader specifierForKey:[toggle key]]; + + if ([toggle isOn]) { + if ([spec trueValue] != nil) { + [self.settingsStore setObject:[spec trueValue] forKey:[toggle key]]; + } + else { + [self.settingsStore setBool:YES forKey:[toggle key]]; + } + } + else { + if ([spec falseValue] != nil) { + [self.settingsStore setObject:[spec falseValue] forKey:[toggle key]]; + } + else { + [self.settingsStore setBool:NO forKey:[toggle key]]; + } + } + [[NSNotificationCenter defaultCenter] postNotificationName:kIASKAppSettingChanged + object:[toggle key] + userInfo:[NSDictionary dictionaryWithObject:[self.settingsStore objectForKey:[toggle key]] + forKey:[toggle key]]]; +} + +- (void)sliderChangedValue:(id)sender { + IASKSlider *slider = (IASKSlider*)sender; + [self.settingsStore setFloat:[slider value] forKey:[slider key]]; + [[NSNotificationCenter defaultCenter] postNotificationName:kIASKAppSettingChanged + object:[slider key] + userInfo:[NSDictionary dictionaryWithObject:[NSNumber numberWithFloat:[slider value]] + forKey:[slider key]]]; +} + + +#pragma mark - +#pragma mark UITableView Functions + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return [self.settingsReader numberOfSections]; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return [self.settingsReader numberOfRowsForSection:section]; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + IASKSpecifier *specifier = [self.settingsReader specifierForIndexPath:indexPath]; + if ([[specifier type] isEqualToString:kIASKCustomViewSpecifier]) { + if ([self.delegate respondsToSelector:@selector(tableView:heightForSpecifier:)]) { + return [self.delegate tableView:tableView heightForSpecifier:specifier]; + } else { + return 0; + } + } + return tableView.rowHeight; +} + +- (NSString *)tableView:(UITableView*)tableView titleForHeaderInSection:(NSInteger)section { + NSString *header = [self.settingsReader titleForSection:section]; + if (0 == header.length) { + return nil; + } + return header; +} + +- (UIView *)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section { + if ([self.delegate respondsToSelector:@selector(settingsViewController:tableView:viewForHeaderForSection:)]) { + return [self.delegate settingsViewController:self tableView:tableView viewForHeaderForSection:section]; + } else { + return nil; + } +} + +- (CGFloat)tableView:(UITableView*)tableView heightForHeaderInSection:(NSInteger)section { + if ([self tableView:tableView viewForHeaderInSection:section] && [self.delegate respondsToSelector:@selector(settingsViewController:tableView:heightForHeaderForSection:)]) { + CGFloat result; + if ((result = [self.delegate settingsViewController:self tableView:tableView heightForHeaderForSection:section])) { + return result; + } + + } + NSString *title; + if ((title = [self tableView:tableView titleForHeaderInSection:section])) { + CGSize size = [title sizeWithFont:[UIFont boldSystemFontOfSize:[UIFont labelFontSize]] + constrainedToSize:CGSizeMake(tableView.frame.size.width - 2*kIASKHorizontalPaddingGroupTitles, INFINITY) + lineBreakMode:UILineBreakModeWordWrap]; + return size.height+kIASKVerticalPaddingGroupTitles; + } + return 0; +} + +- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section +{ + NSString *footerText = [self.settingsReader footerTextForSection:section]; + if (_showCreditsFooter && (section == [self.settingsReader numberOfSections]-1)) { + // show credits since this is the last section + if ((footerText == nil) || ([footerText length] == 0)) { + // show the credits on their own + return kIASKCredits; + } else { + // show the credits below the app's FooterText + return [NSString stringWithFormat:@"%@\n\n%@", footerText, kIASKCredits]; + } + } else { + if ([footerText length] == 0) { + return nil; + } + return [self.settingsReader footerTextForSection:section]; + } +} + +- (UITableViewCell*)dequeueReusableCellWithIdentifier:(NSString*)identifier { + UITableViewCell *cell = nil; + if ([identifier isEqualToString:kIASKPSToggleSwitchSpecifier]) { + cell = [[[NSBundle mainBundle] loadNibNamed:@"IASKPSToggleSwitchSpecifierViewCell" + owner:self + options:nil] objectAtIndex:0]; + } + else if ([identifier isEqualToString:kIASKPSMultiValueSpecifier] || [identifier isEqualToString:kIASKPSTitleValueSpecifier]) { + cell = [[IASKPSTitleValueSpecifierViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:identifier]; + cell.accessoryType = [identifier isEqualToString:kIASKPSMultiValueSpecifier] ? UITableViewCellAccessoryDisclosureIndicator : UITableViewCellAccessoryNone; + } + else if ([identifier isEqualToString:kIASKPSTextFieldSpecifier]) { + cell = (IASKPSTextFieldSpecifierViewCell*) [[[NSBundle mainBundle] loadNibNamed:@"IASKPSTextFieldSpecifierViewCell" + owner:self + options:nil] objectAtIndex:0]; + } + else if ([identifier isEqualToString:kIASKPSSliderSpecifier]) { + cell = (IASKPSSliderSpecifierViewCell*) [[[NSBundle mainBundle] loadNibNamed:@"IASKPSSliderSpecifierViewCell" + owner:self + options:nil] objectAtIndex:0]; + } else if ([identifier isEqualToString:kIASKPSChildPaneSpecifier]) { + cell = [[IASKPSTitleValueSpecifierViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:identifier]; + cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; + } else if ([identifier isEqualToString:kIASKButtonSpecifier]) { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]; + } else if ([identifier isEqualToString:kIASKMailComposeSpecifier]) { + cell = [[IASKPSTitleValueSpecifierViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:identifier]; + [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator]; + } else { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]; + } + return cell; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + IASKSpecifier *specifier = [self.settingsReader specifierForIndexPath:indexPath]; + if ([specifier.type isEqualToString:kIASKCustomViewSpecifier] && [self.delegate respondsToSelector:@selector(tableView:cellForSpecifier:)]) { + UITableViewCell* cell = [self.delegate tableView:tableView cellForSpecifier:specifier]; + assert(nil != cell && "delegate must return a UITableViewCell for custom cell types"); + return cell; + } + + UITableViewCell *cell = [self dequeueReusableCellWithIdentifier:specifier.type]; + + if ([specifier.type isEqualToString:kIASKPSToggleSwitchSpecifier]) { + ((IASKPSToggleSwitchSpecifierViewCell*)cell).label.text = specifier.title; + + id currentValue = [self.settingsStore objectForKey:specifier.key]; + BOOL toggleState; + if (currentValue) { + if ([currentValue isEqual:specifier.trueValue]) { + toggleState = YES; + } else if ([currentValue isEqual:specifier.falseValue]) { + toggleState = NO; + } else { + toggleState = [currentValue boolValue]; + } + } else { + toggleState = specifier.defaultBoolValue; + } + ((IASKPSToggleSwitchSpecifierViewCell*)cell).toggle.on = toggleState; + + [((IASKPSToggleSwitchSpecifierViewCell*)cell).toggle addTarget:self action:@selector(toggledValue:) forControlEvents:UIControlEventValueChanged]; + ((IASKPSToggleSwitchSpecifierViewCell*)cell).toggle.key = specifier.key; + } + else if ([specifier.type isEqualToString:kIASKPSMultiValueSpecifier]) { + cell.textLabel.text = specifier.title; + cell.detailTextLabel.text = [[specifier titleForCurrentValue:[self.settingsStore objectForKey:specifier.key] != nil ? + [self.settingsStore objectForKey:specifier.key] : specifier.defaultValue] description]; + } + else if ([specifier.type isEqualToString:kIASKPSTitleValueSpecifier]) { + cell.textLabel.text = specifier.title; + id value = [self.settingsStore objectForKey:specifier.key] ? : specifier.defaultValue; + + NSString *stringValue; + if (specifier.multipleValues || specifier.multipleTitles) { + stringValue = [specifier titleForCurrentValue:value]; + } else { + stringValue = [value description]; + } + + cell.detailTextLabel.text = stringValue; + cell.userInteractionEnabled = NO; + } + else if ([specifier.type isEqualToString:kIASKPSTextFieldSpecifier]) { + ((IASKPSTextFieldSpecifierViewCell*)cell).label.text = specifier.title; + + NSString *textValue = [self.settingsStore objectForKey:specifier.key] != nil ? [self.settingsStore objectForKey:specifier.key] : specifier.defaultStringValue; + if (textValue && ![textValue isMemberOfClass:[NSString class]]) { + textValue = [NSString stringWithFormat:@"%@", textValue]; + } + IASKTextField *textField = ((IASKPSTextFieldSpecifierViewCell*)cell).textField; + textField.text = textValue; + textField.key = specifier.key; + textField.delegate = self; + textField.secureTextEntry = [specifier isSecure]; + textField.keyboardType = specifier.keyboardType; + textField.autocapitalizationType = specifier.autocapitalizationType; + [textField addTarget:self action:@selector(_textChanged:) forControlEvents:UIControlEventEditingChanged]; + if([specifier isSecure]){ + textField.autocorrectionType = UITextAutocorrectionTypeNo; + } else { + textField.autocorrectionType = specifier.autoCorrectionType; + } + [cell setNeedsLayout]; + } + else if ([specifier.type isEqualToString:kIASKPSSliderSpecifier]) { + if (specifier.minimumValueImage.length > 0) { + ((IASKPSSliderSpecifierViewCell*)cell).minImage.image = [UIImage imageWithContentsOfFile:[_settingsReader pathForImageNamed:specifier.minimumValueImage]]; + } + + if (specifier.maximumValueImage.length > 0) { + ((IASKPSSliderSpecifierViewCell*)cell).maxImage.image = [UIImage imageWithContentsOfFile:[_settingsReader pathForImageNamed:specifier.maximumValueImage]]; + } + + IASKSlider *slider = ((IASKPSSliderSpecifierViewCell*)cell).slider; + slider.minimumValue = specifier.minimumValue; + slider.maximumValue = specifier.maximumValue; + slider.value = [self.settingsStore objectForKey:specifier.key] != nil ? [[self.settingsStore objectForKey:specifier.key] floatValue] : [specifier.defaultValue floatValue]; + [slider addTarget:self action:@selector(sliderChangedValue:) forControlEvents:UIControlEventValueChanged]; + slider.key = specifier.key; + [cell setNeedsLayout]; + } + else if ([specifier.type isEqualToString:kIASKPSChildPaneSpecifier]) { + cell.textLabel.text = specifier.title; + } else if ([specifier.type isEqualToString:kIASKOpenURLSpecifier] || [specifier.type isEqualToString:kIASKMailComposeSpecifier]) { + cell.textLabel.text = specifier.title; + cell.detailTextLabel.text = [specifier.defaultValue description]; + } else if ([specifier.type isEqualToString:kIASKButtonSpecifier]) { + NSString *value = [self.settingsStore objectForKey:specifier.key]; + cell.textLabel.text = [value isKindOfClass:[NSString class]] ? [self.settingsReader titleForStringId:value] : specifier.title; + cell.textLabel.textAlignment = UITextAlignmentCenter; + } else { + cell.textLabel.text = specifier.title; + } + return cell; +} + +- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath { + //create a set of specifier types that can't be selected + static NSSet* noSelectionTypes = nil; + if(nil == noSelectionTypes) { + noSelectionTypes = [NSSet setWithObjects:kIASKPSToggleSwitchSpecifier, kIASKPSSliderSpecifier, nil]; + } + + IASKSpecifier *specifier = [self.settingsReader specifierForIndexPath:indexPath]; + if([noSelectionTypes containsObject:specifier.type]) { + return nil; + } else { + return indexPath; + } +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + IASKSpecifier *specifier = [self.settingsReader specifierForIndexPath:indexPath]; + + //switches and sliders can't be selected (should be captured by tableView:willSelectRowAtIndexPath: delegate method) + assert(![[specifier type] isEqualToString:kIASKPSToggleSwitchSpecifier]); + assert(![[specifier type] isEqualToString:kIASKPSSliderSpecifier]); + + if ([[specifier type] isEqualToString:kIASKPSMultiValueSpecifier]) { + IASKSpecifierValuesViewController *targetViewController = [[self.viewList objectAtIndex:kIASKSpecifierValuesViewControllerIndex] objectForKey:@"viewController"]; + + if (targetViewController == nil) { + // the view controller has not been created yet, create it and set it to our viewList array + // create a new dictionary with the new view controller + NSMutableDictionary *newItemDict = [NSMutableDictionary dictionaryWithCapacity:3]; + [newItemDict addEntriesFromDictionary: [self.viewList objectAtIndex:kIASKSpecifierValuesViewControllerIndex]]; // copy the title and explain strings + + targetViewController = [[IASKSpecifierValuesViewController alloc] initWithNibName:@"IASKSpecifierValuesView" bundle:nil]; + // add the new view controller to the dictionary and then to the 'viewList' array + [newItemDict setObject:targetViewController forKey:@"viewController"]; + [self.viewList replaceObjectAtIndex:kIASKSpecifierValuesViewControllerIndex withObject:newItemDict]; + + // load the view controll back in to push it + targetViewController = [[self.viewList objectAtIndex:kIASKSpecifierValuesViewControllerIndex] objectForKey:@"viewController"]; + } + [targetViewController setCurrentSpecifier:specifier]; + targetViewController.settingsReader = self.settingsReader; + targetViewController.settingsStore = self.settingsStore; + [[self navigationController] pushViewController:targetViewController animated:YES]; + } + else if ([[specifier type] isEqualToString:kIASKPSTextFieldSpecifier]) { + IASKPSTextFieldSpecifierViewCell *textFieldCell = (id)[tableView cellForRowAtIndexPath:indexPath]; + [textFieldCell.textField becomeFirstResponder]; + } + else if ([[specifier type] isEqualToString:kIASKPSChildPaneSpecifier]) { + + + Class vcClass = [specifier viewControllerClass]; + if (vcClass) { + SEL initSelector = [specifier viewControllerSelector]; + if (!initSelector) { + initSelector = @selector(init); + } + UIViewController * vc = [vcClass alloc]; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-performSelector-leaks" + [vc performSelector:initSelector withObject:[specifier file] withObject:[specifier key]]; +#pragma clang diagnostic pop + if ([vc respondsToSelector:@selector(setDelegate:)]) { + [vc performSelector:@selector(setDelegate:) withObject:self.delegate]; + } + if ([vc respondsToSelector:@selector(setSettingsStore:)]) { + [vc performSelector:@selector(setSettingsStore:) withObject:self.settingsStore]; + } + self.navigationController.delegate = nil; + [self.navigationController pushViewController:vc animated:YES]; + + return; + } + + if (nil == [specifier file]) { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + return; + } + + IASKAppSettingsViewController *targetViewController = [[self.viewList objectAtIndex:kIASKSpecifierChildViewControllerIndex] objectForKey:@"viewController"]; + + if (targetViewController == nil) { + // the view controller has not been created yet, create it and set it to our viewList array + // create a new dictionary with the new view controller + NSMutableDictionary *newItemDict = [NSMutableDictionary dictionaryWithCapacity:3]; + [newItemDict addEntriesFromDictionary: [self.viewList objectAtIndex:kIASKSpecifierChildViewControllerIndex]]; // copy the title and explain strings + + targetViewController = [[[self class] alloc] initWithNibName:@"IASKAppSettingsView" bundle:nil]; + targetViewController.showDoneButton = NO; + targetViewController.settingsStore = self.settingsStore; + targetViewController.delegate = self.delegate; + + // add the new view controller to the dictionary and then to the 'viewList' array + [newItemDict setObject:targetViewController forKey:@"viewController"]; + [self.viewList replaceObjectAtIndex:kIASKSpecifierChildViewControllerIndex withObject:newItemDict]; + + // load the view controll back in to push it + targetViewController = [[self.viewList objectAtIndex:kIASKSpecifierChildViewControllerIndex] objectForKey:@"viewController"]; + } + targetViewController.file = specifier.file; + targetViewController.title = specifier.title; + targetViewController.showCreditsFooter = NO; + [[self navigationController] pushViewController:targetViewController animated:YES]; + } else if ([[specifier type] isEqualToString:kIASKOpenURLSpecifier]) { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + [[UIApplication sharedApplication] openURL:[NSURL URLWithString:specifier.file]]; + } else if ([[specifier type] isEqualToString:kIASKButtonSpecifier]) { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if ([self.delegate respondsToSelector:@selector(settingsViewController:buttonTappedForKey:)]) { + [self.delegate settingsViewController:self buttonTappedForKey:[specifier key]]; + } else { + // legacy code, provided for backward compatibility + // the delegate mechanism above is much cleaner and doesn't leak + Class buttonClass = [specifier buttonClass]; + SEL buttonAction = [specifier buttonAction]; + if ([buttonClass respondsToSelector:buttonAction]) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-performSelector-leaks" + [buttonClass performSelector:buttonAction withObject:self withObject:[specifier key]]; +#pragma clang diagnostic pop + NSLog(@"InAppSettingsKit Warning: Using IASKButtonSpecifier without implementing the delegate method is deprecated"); + } + } + } else if ([[specifier type] isEqualToString:kIASKMailComposeSpecifier]) { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if ([MFMailComposeViewController canSendMail]) { + MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init]; + mailViewController.navigationBar.barStyle = self.navigationController.navigationBar.barStyle; + mailViewController.navigationBar.tintColor = self.navigationController.navigationBar.tintColor; + + if ([specifier localizedObjectForKey:kIASKMailComposeSubject]) { + [mailViewController setSubject:[specifier localizedObjectForKey:kIASKMailComposeSubject]]; + } + if ([[specifier specifierDict] objectForKey:kIASKMailComposeToRecipents]) { + [mailViewController setToRecipients:[[specifier specifierDict] objectForKey:kIASKMailComposeToRecipents]]; + } + if ([[specifier specifierDict] objectForKey:kIASKMailComposeCcRecipents]) { + [mailViewController setCcRecipients:[[specifier specifierDict] objectForKey:kIASKMailComposeCcRecipents]]; + } + if ([[specifier specifierDict] objectForKey:kIASKMailComposeBccRecipents]) { + [mailViewController setBccRecipients:[[specifier specifierDict] objectForKey:kIASKMailComposeBccRecipents]]; + } + if ([specifier localizedObjectForKey:kIASKMailComposeBody]) { + BOOL isHTML = NO; + if ([[specifier specifierDict] objectForKey:kIASKMailComposeBodyIsHTML]) { + isHTML = [[[specifier specifierDict] objectForKey:kIASKMailComposeBodyIsHTML] boolValue]; + } + + if ([self.delegate respondsToSelector:@selector(settingsViewController:mailComposeBodyForSpecifier:)]) { + [mailViewController setMessageBody:[self.delegate settingsViewController:self + mailComposeBodyForSpecifier:specifier] isHTML:isHTML]; + } + else { + [mailViewController setMessageBody:[specifier localizedObjectForKey:kIASKMailComposeBody] isHTML:isHTML]; + } + } + + UIViewController<MFMailComposeViewControllerDelegate> *vc = nil; + + if ([self.delegate respondsToSelector:@selector(settingsViewController:viewControllerForMailComposeViewForSpecifier:)]) { + vc = [self.delegate settingsViewController:self viewControllerForMailComposeViewForSpecifier:specifier]; + } + + if (vc == nil) { + vc = self; + } + + mailViewController.mailComposeDelegate = vc; + [vc presentModalViewController:mailViewController animated:YES]; + } else { + UIAlertView *alert = [[UIAlertView alloc] + initWithTitle:NSLocalizedString(@"Mail not configured", @"InAppSettingsKit") + message:NSLocalizedString(@"This device is not configured for sending Email. Please configure the Mail settings in the Settings app.", @"InAppSettingsKit") + delegate: nil + cancelButtonTitle:NSLocalizedString(@"OK", @"InAppSettingsKit") + otherButtonTitles:nil]; + [alert show]; + } + + } else if ([[specifier type] isEqualToString:kIASKCustomViewSpecifier] && [self.delegate respondsToSelector:@selector(settingsViewController:tableView:didSelectCustomViewSpecifier:)]) { + [self.delegate settingsViewController:self tableView:tableView didSelectCustomViewSpecifier:specifier]; + } else { + [tableView deselectRowAtIndexPath:indexPath animated:NO]; + } +} + + +#pragma mark - +#pragma mark MFMailComposeViewControllerDelegate Function + +-(void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error { + + // Forward the mail compose delegate + if ([self.delegate respondsToSelector:@selector(settingsViewController:mailComposeController:didFinishWithResult:error:)]) { + [self.delegate settingsViewController:self + mailComposeController:controller + didFinishWithResult:result + error:error]; + } + + // NOTE: No error handling is done here + [self dismissModalViewControllerAnimated:YES]; +} + +#pragma mark - +#pragma mark UITextFieldDelegate Functions + +- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { + self.currentFirstResponder = textField; + return YES; +} + +- (void)_textChanged:(id)sender { + IASKTextField *text = (IASKTextField*)sender; + [_settingsStore setObject:[text text] forKey:[text key]]; + [[NSNotificationCenter defaultCenter] postNotificationName:kIASKAppSettingChanged + object:[text key] + userInfo:[NSDictionary dictionaryWithObject:[text text] + forKey:[text key]]]; +} + +- (BOOL)textFieldShouldReturn:(UITextField *)textField{ + [textField resignFirstResponder]; + self.currentFirstResponder = nil; + return YES; +} + + +#pragma mark Notifications + +- (void)synchronizeSettings { + [_settingsStore synchronize]; +} + +static NSDictionary *oldUserDefaults = nil; +- (void)userDefaultsDidChange { + NSDictionary *currentDict = [NSUserDefaults standardUserDefaults].dictionaryRepresentation; + NSMutableArray *indexPathsToUpdate = [NSMutableArray array]; + for (NSString *key in currentDict.allKeys) { + if (![[oldUserDefaults valueForKey:key] isEqual:[currentDict valueForKey:key]]) { + NSIndexPath *path = [self.settingsReader indexPathForKey:key]; + if (path && ![[self.settingsReader specifierForKey:key].type isEqualToString:kIASKCustomViewSpecifier]) { + [indexPathsToUpdate addObject:path]; + } + } + } + oldUserDefaults = currentDict; + + + for (UITableViewCell *cell in self.tableView.visibleCells) { + if ([cell isKindOfClass:[IASKPSTextFieldSpecifierViewCell class]] && [((IASKPSTextFieldSpecifierViewCell*)cell).textField isFirstResponder]) { + [indexPathsToUpdate removeObject:[self.tableView indexPathForCell:cell]]; + } + } + if (indexPathsToUpdate.count) { + [self.tableView reloadRowsAtIndexPaths:indexPathsToUpdate withRowAnimation:UITableViewRowAnimationNone]; + } +} + +- (void)reload { + // wait 0.5 sec until UI is available after applicationWillEnterForeground + [self.tableView performSelector:@selector(reloadData) withObject:nil afterDelay:0.5]; +} + +#pragma mark CGRect Utility function +CGRect IASKCGRectSwap(CGRect rect) { + CGRect newRect; + newRect.origin.x = rect.origin.y; + newRect.origin.y = rect.origin.x; + newRect.size.width = rect.size.height; + newRect.size.height = rect.size.width; + return newRect; +} +@end diff --git a/ios/iosremote/InAppSettingsKit/Controllers/IASKAppSettingsWebViewController.h b/ios/iosremote/InAppSettingsKit/Controllers/IASKAppSettingsWebViewController.h new file mode 100755 index 000000000000..c13c30edccbc --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Controllers/IASKAppSettingsWebViewController.h @@ -0,0 +1,30 @@ +// +// IASKAppSettingsWebViewController.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import <UIKit/UIKit.h> +#import <MessageUI/MessageUI.h> + +@interface IASKAppSettingsWebViewController : UIViewController <UIWebViewDelegate, MFMailComposeViewControllerDelegate> { + UIWebView *webView; + NSURL *url; +} + +- (id)initWithFile:(NSString*)htmlFileName key:(NSString*)key; + +@property (nonatomic, strong) IBOutlet UIWebView *webView; +@property (nonatomic, strong) NSURL *url; + +@end diff --git a/ios/iosremote/InAppSettingsKit/Controllers/IASKAppSettingsWebViewController.m b/ios/iosremote/InAppSettingsKit/Controllers/IASKAppSettingsWebViewController.m new file mode 100755 index 000000000000..99ecd449430e --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Controllers/IASKAppSettingsWebViewController.m @@ -0,0 +1,144 @@ +// +// IASKAppSettingsWebViewController.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKAppSettingsWebViewController.h" + +@implementation IASKAppSettingsWebViewController + +@synthesize url; +@synthesize webView; + +- (id)initWithFile:(NSString*)urlString key:(NSString*)key { + if (!(self = [super initWithNibName:nil bundle:nil])) { + return nil; + } + + self.url = [NSURL URLWithString:urlString]; + if (!self.url || ![self.url scheme]) { + NSString *path = [[NSBundle mainBundle] pathForResource:[urlString stringByDeletingPathExtension] ofType:[urlString pathExtension]]; + if(path) + self.url = [NSURL fileURLWithPath:path]; + else + self.url = nil; + } + return self; +} + + +- (void)dealloc { + webView = nil; + url = nil; + +} + +- (void)viewWillAppear:(BOOL)animated { + [webView loadRequest:[NSURLRequest requestWithURL:self.url]]; +} + +- (void)viewDidUnload { + [super viewDidUnload]; + self.webView = nil; +} + +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { + return YES; +} + +- (void)webViewDidFinishLoad:(UIWebView *)webView { + self.navigationItem.title = [self.webView stringByEvaluatingJavaScriptFromString:@"document.title"]; +} + +- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { + NSURL *newURL = [request URL]; + + // intercept mailto URL and send it to an in-app Mail compose view instead + if ([[newURL scheme] isEqualToString:@"mailto"]) { + + NSArray *rawURLparts = [[newURL resourceSpecifier] componentsSeparatedByString:@"?"]; + if (rawURLparts.count > 2) { + return NO; // invalid URL + } + + MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init]; + mailViewController.mailComposeDelegate = self; + + NSMutableArray *toRecipients = [NSMutableArray array]; + NSString *defaultRecipient = [rawURLparts objectAtIndex:0]; + if (defaultRecipient.length) { + [toRecipients addObject:defaultRecipient]; + } + + if (rawURLparts.count == 2) { + NSString *queryString = [rawURLparts objectAtIndex:1]; + + NSArray *params = [queryString componentsSeparatedByString:@"&"]; + for (NSString *param in params) { + NSArray *keyValue = [param componentsSeparatedByString:@"="]; + if (keyValue.count != 2) { + continue; + } + NSString *key = [[keyValue objectAtIndex:0] lowercaseString]; + NSString *value = [keyValue objectAtIndex:1]; + + value = (__bridge_transfer NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault, + (__bridge CFStringRef)value, + CFSTR(""), + kCFStringEncodingUTF8); + if ([key isEqualToString:@"subject"]) { + [mailViewController setSubject:value]; + } + + if ([key isEqualToString:@"body"]) { + [mailViewController setMessageBody:value isHTML:NO]; + } + + if ([key isEqualToString:@"to"]) { + [toRecipients addObjectsFromArray:[value componentsSeparatedByString:@","]]; + } + + if ([key isEqualToString:@"cc"]) { + NSArray *recipients = [value componentsSeparatedByString:@","]; + [mailViewController setCcRecipients:recipients]; + } + + if ([key isEqualToString:@"bcc"]) { + NSArray *recipients = [value componentsSeparatedByString:@","]; + [mailViewController setBccRecipients:recipients]; + } + } + } + + [mailViewController setToRecipients:toRecipients]; + + [self presentModalViewController:mailViewController animated:YES]; + return NO; + } + + // open inline if host is the same, otherwise, pass to the system + if (![newURL host] || [[newURL host] isEqualToString:[self.url host]]) { + return YES; + } + [[UIApplication sharedApplication] openURL:newURL]; + return NO; +} + +- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error { + [self dismissModalViewControllerAnimated:YES]; +} + + + +@end diff --git a/ios/iosremote/InAppSettingsKit/Controllers/IASKSpecifierValuesViewController.h b/ios/iosremote/InAppSettingsKit/Controllers/IASKSpecifierValuesViewController.h new file mode 100755 index 000000000000..d733d4d3fd3d --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Controllers/IASKSpecifierValuesViewController.h @@ -0,0 +1,36 @@ +// +// IASKSpecifierValuesViewController.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import <UIKit/UIKit.h> +#import "IASKSettingsStore.h" +#import "IASKViewController.h" +@class IASKSpecifier; +@class IASKSettingsReader; + +@interface IASKSpecifierValuesViewController : UIViewController<IASKViewController> { + UITableView *_tableView; + + IASKSpecifier *_currentSpecifier; + NSIndexPath *_checkedItem; + IASKSettingsReader *_settingsReader; + id<IASKSettingsStore> _settingsStore; +} + +@property (nonatomic, strong) IBOutlet UITableView *tableView; +@property (nonatomic, strong) NSIndexPath *checkedItem; +@property (nonatomic, strong) IASKSpecifier *currentSpecifier; + +@end diff --git a/ios/iosremote/InAppSettingsKit/Controllers/IASKSpecifierValuesViewController.m b/ios/iosremote/InAppSettingsKit/Controllers/IASKSpecifierValuesViewController.m new file mode 100755 index 000000000000..52531c0c2bdb --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Controllers/IASKSpecifierValuesViewController.m @@ -0,0 +1,202 @@ +// +// IASKSpecifierValuesViewController.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKSpecifierValuesViewController.h" +#import "IASKSpecifier.h" +#import "IASKSettingsReader.h" +#import "IASKSettingsStoreUserDefaults.h" + +#define kCellValue @"kCellValue" + +@interface IASKSpecifierValuesViewController() +- (void)userDefaultsDidChange; +@end + +@implementation IASKSpecifierValuesViewController + +@synthesize tableView=_tableView; +@synthesize currentSpecifier=_currentSpecifier; +@synthesize checkedItem=_checkedItem; +@synthesize settingsReader = _settingsReader; +@synthesize settingsStore = _settingsStore; + +- (void) updateCheckedItem { + NSInteger index; + + // Find the currently checked item + if([self.settingsStore objectForKey:[_currentSpecifier key]]) { + index = [[_currentSpecifier multipleValues] indexOfObject:[self.settingsStore objectForKey:[_currentSpecifier key]]]; + } else { + index = [[_currentSpecifier multipleValues] indexOfObject:[_currentSpecifier defaultValue]]; + } + [self setCheckedItem:[NSIndexPath indexPathForRow:index inSection:0]]; +} + +- (id<IASKSettingsStore>)settingsStore { + if(_settingsStore == nil) { + _settingsStore = [[IASKSettingsStoreUserDefaults alloc] init]; + } + return _settingsStore; +} + +- (void)viewDidLoad +{ + [super viewDidLoad]; + UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Done", nil) style:UIBarButtonItemStyleBordered target:self action:@selector(handleBack)]; + [backButton setBackgroundImage:[UIImage imageNamed:@"backButton"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; + self.navigationItem.leftBarButtonItem = backButton; +} + +- (void)viewWillAppear:(BOOL)animated { + if (_currentSpecifier) { + [self setTitle:[_currentSpecifier title]]; + [self updateCheckedItem]; + } + + if (_tableView) { + [_tableView reloadData]; + + // Make sure the currently checked item is visible + [_tableView scrollToRowAtIndexPath:[self checkedItem] atScrollPosition:UITableViewScrollPositionMiddle animated:NO]; + } + [super viewWillAppear:animated]; +} + +- (void)viewDidAppear:(BOOL)animated { + [_tableView flashScrollIndicators]; + [super viewDidAppear:animated]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(userDefaultsDidChange) + name:NSUserDefaultsDidChangeNotification + object:[NSUserDefaults standardUserDefaults]]; +} + +- (void)viewDidDisappear:(BOOL)animated { + [[NSNotificationCenter defaultCenter] removeObserver:self name:NSUserDefaultsDidChangeNotification object:nil]; + [super viewDidDisappear:animated]; +} + + +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { + return YES; +} + +- (void)didReceiveMemoryWarning { + // Releases the view if it doesn't have a superview. + [super didReceiveMemoryWarning]; + + // Release any cached data, images, etc that aren't in use. +} + +- (void)viewDidUnload { + // Release any retained subviews of the main view. + // e.g. self.myOutlet = nil; + self.tableView = nil; +} + + +- (void)dealloc { + _currentSpecifier = nil; + _checkedItem = nil; + _settingsReader = nil; + _settingsStore = nil; + _tableView = nil; +} + + +#pragma mark - +#pragma mark UITableView delegates + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 1; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return [_currentSpecifier multipleValuesCount]; +} + +- (void)selectCell:(UITableViewCell *)cell { + [cell setAccessoryType:UITableViewCellAccessoryCheckmark]; + [[cell textLabel] setTextColor:kIASKgrayBlueColor]; +} + +- (void)deselectCell:(UITableViewCell *)cell { + [cell setAccessoryType:UITableViewCellAccessoryNone]; + [[cell textLabel] setTextColor:[UIColor darkTextColor]]; +} + +- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section { + return [_currentSpecifier footerText]; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellValue]; + NSArray *titles = [_currentSpecifier multipleTitles]; + + if (!cell) { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kCellValue]; + } + + if ([indexPath isEqual:[self checkedItem]]) { + [self selectCell:cell]; + } else { + [self deselectCell:cell]; + } + + @try { + [[cell textLabel] setText:[self.settingsReader titleForStringId:[titles objectAtIndex:indexPath.row]]]; + } + @catch (NSException * e) {} + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + + if (indexPath == [self checkedItem]) { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + return; + } + + NSArray *values = [_currentSpecifier multipleValues]; + + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + [self deselectCell:[tableView cellForRowAtIndexPath:[self checkedItem]]]; + [self selectCell:[tableView cellForRowAtIndexPath:indexPath]]; + [self setCheckedItem:indexPath]; + + [self.settingsStore setObject:[values objectAtIndex:indexPath.row] forKey:[_currentSpecifier key]]; + [self.settingsStore synchronize]; + [[NSNotificationCenter defaultCenter] postNotificationName:kIASKAppSettingChanged + object:[_currentSpecifier key] + userInfo:[NSDictionary dictionaryWithObject:[values objectAtIndex:indexPath.row] + forKey:[_currentSpecifier key]]]; +} + +#pragma mark Notifications + +- (void)userDefaultsDidChange { + NSIndexPath *oldCheckedItem = self.checkedItem; + if(_currentSpecifier) { + [self updateCheckedItem]; + } + + // only reload the table if it had changed; prevents animation cancellation + if (![self.checkedItem isEqual:oldCheckedItem]) { + [_tableView reloadData]; + } +} + +@end diff --git a/ios/iosremote/InAppSettingsKit/Controllers/IASKViewController.h b/ios/iosremote/InAppSettingsKit/Controllers/IASKViewController.h new file mode 100755 index 000000000000..2ab89a6ff943 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Controllers/IASKViewController.h @@ -0,0 +1,26 @@ +// +// IASKAppSettingsViewController.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +@class IASKSettingsReader; +@protocol IASKSettingsStore; + +// protocol all IASK view controllers implement +@protocol IASKViewController <NSObject> + +@property (nonatomic, retain) IASKSettingsReader* settingsReader; +@property (nonatomic, retain) id<IASKSettingsStore> settingsStore; + +@end diff --git a/ios/iosremote/InAppSettingsKit/Models/IASKSettingsReader.h b/ios/iosremote/InAppSettingsKit/Models/IASKSettingsReader.h new file mode 100755 index 000000000000..2af1fc9e8ad7 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Models/IASKSettingsReader.h @@ -0,0 +1,144 @@ +// +// IASKSettingsReader.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import <Foundation/Foundation.h> + +#define kIASKPreferenceSpecifiers @"PreferenceSpecifiers" +#define kIASKType @"Type" +#define kIASKTitle @"Title" +#define kIASKFooterText @"FooterText" +#define kIASKKey @"Key" +#define kIASKFile @"File" +#define kIASKDefaultValue @"DefaultValue" +#define kIASKMinimumValue @"MinimumValue" +#define kIASKMaximumValue @"MaximumValue" +#define kIASKTrueValue @"TrueValue" +#define kIASKFalseValue @"FalseValue" +#define kIASKIsSecure @"IsSecure" +#define KIASKKeyboardType @"KeyboardType" +#define kIASKAutocapitalizationType @"AutocapitalizationType" +#define kIASKAutoCorrectionType @"AutocorrectionType" +#define kIASKValues @"Values" +#define kIASKTitles @"Titles" +#define kIASKViewControllerClass @"IASKViewControllerClass" +#define kIASKViewControllerSelector @"IASKViewControllerSelector" +#define kIASKButtonClass @"IASKButtonClass" +#define kIASKButtonAction @"IASKButtonAction" +#define kIASKMailComposeToRecipents @"IASKMailComposeToRecipents" +#define kIASKMailComposeCcRecipents @"IASKMailComposeCcRecipents" +#define kIASKMailComposeBccRecipents @"IASKMailComposeBccRecipents" +#define kIASKMailComposeSubject @"IASKMailComposeSubject" +#define kIASKMailComposeBody @"IASKMailComposeBody" +#define kIASKMailComposeBodyIsHTML @"IASKMailComposeBodyIsHTML" +#define kIASKKeyboardAlphabet @"Alphabet" +#define kIASKKeyboardNumbersAndPunctuation @"NumbersAndPunctuation" +#define kIASKKeyboardNumberPad @"NumberPad" +#define kIASKKeyboardDecimalPad @"DecimalPad" + +#define KIASKKeyboardURL @"URL" +#define kIASKKeyboardEmailAddress @"EmailAddress" +#define kIASKAutoCapNone @"None" +#define kIASKAutoCapSentences @"Sentences" +#define kIASKAutoCapWords @"Words" +#define kIASKAutoCapAllCharacters @"AllCharacters" +#define kIASKAutoCorrDefault @"Default" +#define kIASKAutoCorrNo @"No" +#define kIASKAutoCorrYes @"Yes" +#define kIASKMinimumValueImage @"MinimumValueImage" +#define kIASKMaximumValueImage @"MaximumValueImage" + +#define kIASKPSGroupSpecifier @"PSGroupSpecifier" +#define kIASKPSToggleSwitchSpecifier @"PSToggleSwitchSpecifier" +#define kIASKPSMultiValueSpecifier @"PSMultiValueSpecifier" +#define kIASKPSSliderSpecifier @"PSSliderSpecifier" +#define kIASKPSTitleValueSpecifier @"PSTitleValueSpecifier" +#define kIASKPSTextFieldSpecifier @"PSTextFieldSpecifier" +#define kIASKPSChildPaneSpecifier @"PSChildPaneSpecifier" +#define kIASKOpenURLSpecifier @"IASKOpenURLSpecifier" +#define kIASKButtonSpecifier @"IASKButtonSpecifier" +#define kIASKMailComposeSpecifier @"IASKMailComposeSpecifier" +#define kIASKCustomViewSpecifier @"IASKCustomViewSpecifier" + +#define kIASKBundleFolder @"Settings.bundle" +#define kIASKBundleFolderAlt @"InAppSettings.bundle" +#define kIASKBundleFilename @"Root.plist" +#define KIASKBundleLocaleFolderExtension @".lproj" + +#define kIASKAppSettingChanged @"kAppSettingChanged" + +#define kIASKSectionHeaderIndex 0 + +#define kIASKSliderNoImagesPadding 11 +#define kIASKSliderImagesPadding 43 + + +#define kIASKTableWidth 320 +#define kIASKSpacing 5 +#define kIASKMinLabelWidth 97 +#define kIASKMinValueWidth 35 +#define kIASKPaddingLeft 9 +#define kIASKPaddingRight 10 +#define kIASKHorizontalPaddingGroupTitles 19 +#define kIASKVerticalPaddingGroupTitles 15 + +#define kIASKLabelFontSize 17 +#define kIASKgrayBlueColor [UIColor colorWithRed:0.318 green:0.4 blue:0.569 alpha:1.0] + +#ifndef kCFCoreFoundationVersionNumber_iPhoneOS_4_0 +#define kCFCoreFoundationVersionNumber_iPhoneOS_4_0 550.32 +#endif + +#ifndef kCFCoreFoundationVersionNumber_iPhoneOS_4_1 +#define kCFCoreFoundationVersionNumber_iPhoneOS_4_1 550.38 +#endif + + +#define IASK_IF_IOS4_OR_GREATER(...) \ +if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber_iPhoneOS_4_0) \ +{ \ +__VA_ARGS__ \ +} + +@class IASKSpecifier; + +@interface IASKSettingsReader : NSObject { + NSString *_path; + NSString *_localizationTable; + NSString *_bundlePath; + NSDictionary *_settingsBundle; + NSArray *_dataSource; + NSBundle *_bundle; +} + +- (id)initWithFile:(NSString*)file; +- (NSInteger)numberOfSections; +- (NSInteger)numberOfRowsForSection:(NSInteger)section; +- (IASKSpecifier*)specifierForIndexPath:(NSIndexPath*)indexPath; +- (NSIndexPath*)indexPathForKey:(NSString*)key; +- (IASKSpecifier*)specifierForKey:(NSString*)key; +- (NSString*)titleForSection:(NSInteger)section; +- (NSString*)keyForSection:(NSInteger)section; +- (NSString*)footerTextForSection:(NSInteger)section; +- (NSString*)titleForStringId:(NSString*)stringId; +- (NSString*)pathForImageNamed:(NSString*)image; + +@property (nonatomic, strong) NSString *path; +@property (nonatomic, strong) NSString *localizationTable; +@property (nonatomic, strong) NSString *bundlePath; +@property (nonatomic, strong) NSDictionary *settingsBundle; +@property (nonatomic, strong) NSArray *dataSource; + +@end diff --git a/ios/iosremote/InAppSettingsKit/Models/IASKSettingsReader.m b/ios/iosremote/InAppSettingsKit/Models/IASKSettingsReader.m new file mode 100755 index 000000000000..3f730919a702 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Models/IASKSettingsReader.m @@ -0,0 +1,266 @@ +// +// IASKSettingsReader.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKSettingsReader.h" +#import "IASKSpecifier.h" + +@interface IASKSettingsReader (private) +- (void)_reinterpretBundle:(NSDictionary*)settingsBundle; +- (BOOL)_sectionHasHeading:(NSInteger)section; +- (NSString *)platformSuffix; +- (NSString *)locateSettingsFile:(NSString *)file; + +@end + +@implementation IASKSettingsReader + +@synthesize path=_path, +localizationTable=_localizationTable, +bundlePath=_bundlePath, +settingsBundle=_settingsBundle, +dataSource=_dataSource; + +- (id)init { + return [self initWithFile:@"Root"]; +} + +- (id)initWithFile:(NSString*)file { + if ((self=[super init])) { + + + self.path = [self locateSettingsFile: file]; + [self setSettingsBundle:[NSDictionary dictionaryWithContentsOfFile:self.path]]; + self.bundlePath = [self.path stringByDeletingLastPathComponent]; + _bundle = [NSBundle bundleWithPath:[self bundlePath]]; + + // Look for localization file + self.localizationTable = [self.settingsBundle objectForKey:@"StringsTable"]; + if (!self.localizationTable) + { + // Look for localization file using filename + self.localizationTable = [[[[self.path stringByDeletingPathExtension] // removes '.plist' + stringByDeletingPathExtension] // removes potential '.inApp' + lastPathComponent] // strip absolute path + stringByReplacingOccurrencesOfString:[self platformSuffix] withString:@""]; // removes potential '~device' (~ipad, ~iphone) + if([_bundle pathForResource:self.localizationTable ofType:@"strings"] == nil){ + // Could not find the specified localization: use default + self.localizationTable = @"Root"; + } + } + + if (_settingsBundle) { + [self _reinterpretBundle:_settingsBundle]; + } + } + return self; +} + +- (void)dealloc { + _path = nil; + _localizationTable = nil; + _bundlePath = nil; + _settingsBundle = nil; + _dataSource = nil; + _bundle = nil; + +} + +- (void)_reinterpretBundle:(NSDictionary*)settingsBundle { + NSArray *preferenceSpecifiers = [settingsBundle objectForKey:kIASKPreferenceSpecifiers]; + NSInteger sectionCount = -1; + NSMutableArray *dataSource = [[NSMutableArray alloc] init]; + + for (NSDictionary *specifier in preferenceSpecifiers) { + if ([(NSString*)[specifier objectForKey:kIASKType] isEqualToString:kIASKPSGroupSpecifier]) { + NSMutableArray *newArray = [[NSMutableArray alloc] init]; + + [newArray addObject:specifier]; + [dataSource addObject:newArray]; + sectionCount++; + } + else { + if (sectionCount == -1) { + NSMutableArray *newArray = [[NSMutableArray alloc] init]; + [dataSource addObject:newArray]; + sectionCount++; + } + + IASKSpecifier *newSpecifier = [[IASKSpecifier alloc] initWithSpecifier:specifier]; + [(NSMutableArray*)[dataSource objectAtIndex:sectionCount] addObject:newSpecifier]; + } + } + [self setDataSource:dataSource]; +} + +- (BOOL)_sectionHasHeading:(NSInteger)section { + return [[[[self dataSource] objectAtIndex:section] objectAtIndex:0] isKindOfClass:[NSDictionary class]]; +} + +- (NSInteger)numberOfSections { + return [[self dataSource] count]; +} + +- (NSInteger)numberOfRowsForSection:(NSInteger)section { + int headingCorrection = [self _sectionHasHeading:section] ? 1 : 0; + return [(NSArray*)[[self dataSource] objectAtIndex:section] count] - headingCorrection; +} + +- (IASKSpecifier*)specifierForIndexPath:(NSIndexPath*)indexPath { + int headingCorrection = [self _sectionHasHeading:indexPath.section] ? 1 : 0; + + IASKSpecifier *specifier = [[[self dataSource] objectAtIndex:indexPath.section] objectAtIndex:(indexPath.row+headingCorrection)]; + specifier.settingsReader = self; + return specifier; +} + +- (NSIndexPath*)indexPathForKey:(NSString *)key { + for (NSUInteger sectionIndex = 0; sectionIndex < self.dataSource.count; sectionIndex++) { + NSArray *section = [self.dataSource objectAtIndex:sectionIndex]; + for (NSUInteger rowIndex = 0; rowIndex < section.count; rowIndex++) { + IASKSpecifier *specifier = (IASKSpecifier*)[section objectAtIndex:rowIndex]; + if ([specifier isKindOfClass:[IASKSpecifier class]] && [specifier.key isEqualToString:key]) { + NSUInteger correctedRowIndex = rowIndex - [self _sectionHasHeading:sectionIndex]; + return [NSIndexPath indexPathForRow:correctedRowIndex inSection:sectionIndex]; + } + } + } + return nil; +} + +- (IASKSpecifier*)specifierForKey:(NSString*)key { + for (NSArray *specifiers in _dataSource) { + for (id sp in specifiers) { + if ([sp isKindOfClass:[IASKSpecifier class]]) { + if ([[sp key] isEqualToString:key]) { + return sp; + } + } + } + } + return nil; +} + +- (NSString*)titleForSection:(NSInteger)section { + if ([self _sectionHasHeading:section]) { + NSDictionary *dict = [[[self dataSource] objectAtIndex:section] objectAtIndex:kIASKSectionHeaderIndex]; + return [self titleForStringId:[dict objectForKey:kIASKTitle]]; + } + return nil; +} + +- (NSString*)keyForSection:(NSInteger)section { + if ([self _sectionHasHeading:section]) { + return [[[[self dataSource] objectAtIndex:section] objectAtIndex:kIASKSectionHeaderIndex] objectForKey:kIASKKey]; + } + return nil; +} + +- (NSString*)footerTextForSection:(NSInteger)section { + if ([self _sectionHasHeading:section]) { + NSDictionary *dict = [[[self dataSource] objectAtIndex:section] objectAtIndex:kIASKSectionHeaderIndex]; + return [self titleForStringId:[dict objectForKey:kIASKFooterText]]; + } + return nil; +} + +- (NSString*)titleForStringId:(NSString*)stringId { + return [_bundle localizedStringForKey:stringId value:stringId table:self.localizationTable]; +} + +- (NSString*)pathForImageNamed:(NSString*)image { + return [[self bundlePath] stringByAppendingPathComponent:image]; +} + +- (NSString *)platformSuffix { + BOOL isPad = NO; +#if (__IPHONE_OS_VERSION_MAX_ALLOWED >= 30200) + isPad = UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad; +#endif + return isPad ? @"~ipad" : @"~iphone"; +} + +- (NSString *)file:(NSString *)file + withBundle:(NSString *)bundle + suffix:(NSString *)suffix + extension:(NSString *)extension { + + NSString *appBundle = [[NSBundle mainBundle] bundlePath]; + bundle = [appBundle stringByAppendingPathComponent:bundle]; + file = [file stringByAppendingFormat:@"%@%@", suffix, extension]; + return [bundle stringByAppendingPathComponent:file]; + +} + +- (NSString *)locateSettingsFile: (NSString *)file { + + // The file is searched in the following order: + // + // InAppSettings.bundle/FILE~DEVICE.inApp.plist + // InAppSettings.bundle/FILE.inApp.plist + // InAppSettings.bundle/FILE~DEVICE.plist + // InAppSettings.bundle/FILE.plist + // Settings.bundle/FILE~DEVICE.inApp.plist + // Settings.bundle/FILE.inApp.plist + // Settings.bundle/FILE~DEVICE.plist + // Settings.bundle/FILE.plist + // + // where DEVICE is either "iphone" or "ipad" depending on the current + // interface idiom. + // + // Settings.app uses the ~DEVICE suffixes since iOS 4.0. There are some + // differences from this implementation: + // - For an iPhone-only app running on iPad, Settings.app will not use the + // ~iphone suffix. There is no point in using these suffixes outside + // of universal apps anyway. + // - This implementation uses the device suffixes on iOS 3.x as well. + // - also check current locale (short only) + + NSArray *bundles = + [NSArray arrayWithObjects:kIASKBundleFolderAlt, kIASKBundleFolder, nil]; + + NSArray *extensions = + [NSArray arrayWithObjects:@".inApp.plist", @".plist", nil]; + + NSArray *suffixes = + [NSArray arrayWithObjects:[self platformSuffix], @"", nil]; + + NSArray *languages = + [NSArray arrayWithObjects:[[[NSLocale preferredLanguages] objectAtIndex:0] stringByAppendingString:KIASKBundleLocaleFolderExtension], @"", nil]; + + NSString *path = nil; + NSFileManager *fileManager = [NSFileManager defaultManager]; + + for (NSString *bundle in bundles) { + for (NSString *extension in extensions) { + for (NSString *suffix in suffixes) { + for (NSString *language in languages) { + path = [self file:file + withBundle:[bundle stringByAppendingPathComponent:language] + suffix:suffix + extension:extension]; + if ([fileManager fileExistsAtPath:path]) { + goto exitFromNestedLoop; + } + } + } + } + } + +exitFromNestedLoop: + return path; +} + +@end diff --git a/ios/iosremote/InAppSettingsKit/Models/IASKSettingsStore.h b/ios/iosremote/InAppSettingsKit/Models/IASKSettingsStore.h new file mode 100755 index 000000000000..79639acbe252 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Models/IASKSettingsStore.h @@ -0,0 +1,39 @@ +// +// IASKSettingsStore.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// Marc-Etienne M.Léveillé, Edovia Inc., http://www.edovia.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import <Foundation/Foundation.h> + +@protocol IASKSettingsStore <NSObject> +@required +- (void)setBool:(BOOL)value forKey:(NSString*)key; +- (void)setFloat:(float)value forKey:(NSString*)key; +- (void)setDouble:(double)value forKey:(NSString*)key; +- (void)setInteger:(int)value forKey:(NSString*)key; +- (void)setObject:(id)value forKey:(NSString*)key; +- (BOOL)boolForKey:(NSString*)key; +- (float)floatForKey:(NSString*)key; +- (double)doubleForKey:(NSString*)key; +- (int)integerForKey:(NSString*)key; +- (id)objectForKey:(NSString*)key; +- (BOOL)synchronize; // Write settings to a permanant storage. Returns YES on success, NO otherwise +@end + + +@interface IASKAbstractSettingsStore : NSObject <IASKSettingsStore> { +} + +@end diff --git a/ios/iosremote/InAppSettingsKit/Models/IASKSettingsStore.m b/ios/iosremote/InAppSettingsKit/Models/IASKSettingsStore.m new file mode 100755 index 000000000000..89484591f8cf --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Models/IASKSettingsStore.m @@ -0,0 +1,68 @@ +// +// IASKSettingsStore.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// Marc-Etienne M.Léveillé, Edovia Inc., http://www.edovia.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKSettingsStore.h" + +@implementation IASKAbstractSettingsStore + +- (void)setObject:(id)value forKey:(NSString*)key { + [NSException raise:@"Unimplemented" + format:@"setObject:forKey: must be implemented in subclasses of IASKAbstractSettingsStore"]; +} + +- (id)objectForKey:(NSString*)key { + [NSException raise:@"Unimplemented" + format:@"objectForKey: must be implemented in subclasses of IASKAbstractSettingsStore"]; + return nil; +} + +- (void)setBool:(BOOL)value forKey:(NSString*)key { + [self setObject:[NSNumber numberWithBool:value] forKey:key]; +} + +- (void)setFloat:(float)value forKey:(NSString*)key { + [self setObject:[NSNumber numberWithFloat:value] forKey:key]; +} + +- (void)setInteger:(int)value forKey:(NSString*)key { + [self setObject:[NSNumber numberWithInt:value] forKey:key]; +} + +- (void)setDouble:(double)value forKey:(NSString*)key { + [self setObject:[NSNumber numberWithDouble:value] forKey:key]; +} + +- (BOOL)boolForKey:(NSString*)key { + return [[self objectForKey:key] boolValue]; +} + +- (float)floatForKey:(NSString*)key { + return [[self objectForKey:key] floatValue]; +} +- (int)integerForKey:(NSString*)key { + return [[self objectForKey:key] intValue]; +} + +- (double)doubleForKey:(NSString*)key { + return [[self objectForKey:key] doubleValue]; +} + +- (BOOL)synchronize { + return NO; +} + +@end
\ No newline at end of file diff --git a/ios/iosremote/InAppSettingsKit/Models/IASKSettingsStoreFile.h b/ios/iosremote/InAppSettingsKit/Models/IASKSettingsStoreFile.h new file mode 100755 index 000000000000..54331ed979ca --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Models/IASKSettingsStoreFile.h @@ -0,0 +1,28 @@ +// +// IASKSettingsStoreFile.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// Marc-Etienne M.Léveillé, Edovia Inc., http://www.edovia.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import <Foundation/Foundation.h> +#import "IASKSettingsStore.h" + +@interface IASKSettingsStoreFile : IASKAbstractSettingsStore { + NSString * _filePath; + NSMutableDictionary * _dict; +} + +- (id)initWithPath:(NSString*)path; + +@end diff --git a/ios/iosremote/InAppSettingsKit/Models/IASKSettingsStoreFile.m b/ios/iosremote/InAppSettingsKit/Models/IASKSettingsStoreFile.m new file mode 100755 index 000000000000..3192650f3aae --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Models/IASKSettingsStoreFile.m @@ -0,0 +1,53 @@ +// +// IASKSettingsStoreFile.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// Marc-Etienne M.Léveillé, Edovia Inc., http://www.edovia.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKSettingsStoreFile.h" + + +@implementation IASKSettingsStoreFile + +- (id)initWithPath:(NSString*)path { + if((self = [super init])) { + _filePath = path; + _dict = [[NSMutableDictionary alloc] initWithContentsOfFile:path]; + if(_dict == nil) { + _dict = [[NSMutableDictionary alloc] init]; + } + } + return self; +} + +- (void)dealloc { + _dict = nil; + _filePath = nil; + +} + + +- (void)setObject:(id)value forKey:(NSString *)key { + [_dict setObject:value forKey:key]; +} + +- (id)objectForKey:(NSString *)key { + return [_dict objectForKey:key]; +} + +- (BOOL)synchronize { + return [_dict writeToFile:_filePath atomically:YES]; +} + +@end diff --git a/ios/iosremote/InAppSettingsKit/Models/IASKSettingsStoreUserDefaults.h b/ios/iosremote/InAppSettingsKit/Models/IASKSettingsStoreUserDefaults.h new file mode 100755 index 000000000000..c1d2fce3cf1c --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Models/IASKSettingsStoreUserDefaults.h @@ -0,0 +1,25 @@ +// +// IASKSettingsStoreUserDefaults.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// Marc-Etienne M.Léveillé, Edovia Inc., http://www.edovia.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import <Foundation/Foundation.h> +#import "IASKSettingsStore.h" + +@interface IASKSettingsStoreUserDefaults : IASKAbstractSettingsStore { + +} + +@end diff --git a/ios/iosremote/InAppSettingsKit/Models/IASKSettingsStoreUserDefaults.m b/ios/iosremote/InAppSettingsKit/Models/IASKSettingsStoreUserDefaults.m new file mode 100755 index 000000000000..c5979f80b356 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Models/IASKSettingsStoreUserDefaults.m @@ -0,0 +1,67 @@ +// +// IASKSettingsStoreUserDefaults.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// Marc-Etienne M.Léveillé, Edovia Inc., http://www.edovia.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKSettingsStoreUserDefaults.h" + + +@implementation IASKSettingsStoreUserDefaults + +- (void)setBool:(BOOL)value forKey:(NSString*)key { + [[NSUserDefaults standardUserDefaults] setBool:value forKey:key]; +} + +- (void)setFloat:(float)value forKey:(NSString*)key { + [[NSUserDefaults standardUserDefaults] setFloat:value forKey:key]; +} + +- (void)setDouble:(double)value forKey:(NSString*)key { + [[NSUserDefaults standardUserDefaults] setDouble:value forKey:key]; +} + +- (void)setInteger:(int)value forKey:(NSString*)key { + [[NSUserDefaults standardUserDefaults] setInteger:value forKey:key]; +} + +- (void)setObject:(id)value forKey:(NSString*)key { + [[NSUserDefaults standardUserDefaults] setObject:value forKey:key]; +} + +- (BOOL)boolForKey:(NSString*)key { + return [[NSUserDefaults standardUserDefaults] boolForKey:key]; +} + +- (float)floatForKey:(NSString*)key { + return [[NSUserDefaults standardUserDefaults] floatForKey:key]; +} + +- (double)doubleForKey:(NSString*)key { + return [[NSUserDefaults standardUserDefaults] doubleForKey:key]; +} + +- (int)integerForKey:(NSString*)key { + return [[NSUserDefaults standardUserDefaults] integerForKey:key]; +} + +- (id)objectForKey:(NSString*)key { + return [[NSUserDefaults standardUserDefaults] objectForKey:key]; +} + +- (BOOL)synchronize { + return [[NSUserDefaults standardUserDefaults] synchronize]; +} + +@end diff --git a/ios/iosremote/InAppSettingsKit/Models/IASKSpecifier.h b/ios/iosremote/InAppSettingsKit/Models/IASKSpecifier.h new file mode 100755 index 000000000000..5053c4052d0c --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Models/IASKSpecifier.h @@ -0,0 +1,59 @@ +// +// IASKSpecifier.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import <Foundation/Foundation.h> +#import <UIKit/UIKit.h> + +@class IASKSettingsReader; + +@interface IASKSpecifier : NSObject { + NSDictionary *_specifierDict; + NSDictionary *_multipleValuesDict; + IASKSettingsReader *__unsafe_unretained _settingsReader; +} +@property (nonatomic, strong) NSDictionary *specifierDict; +@property (nonatomic, unsafe_unretained) IASKSettingsReader *settingsReader; + +- (id)initWithSpecifier:(NSDictionary*)specifier; +- (NSString*)localizedObjectForKey:(NSString*)key; +- (NSString*)title; +- (NSString*)key; +- (NSString*)type; +- (NSString*)titleForCurrentValue:(id)currentValue; +- (NSInteger)multipleValuesCount; +- (NSArray*)multipleValues; +- (NSArray*)multipleTitles; +- (NSString*)file; +- (id)defaultValue; +- (id)defaultStringValue; +- (BOOL)defaultBoolValue; +- (id)trueValue; +- (id)falseValue; +- (float)minimumValue; +- (float)maximumValue; +- (NSString*)minimumValueImage; +- (NSString*)maximumValueImage; +- (BOOL)isSecure; +- (UIKeyboardType)keyboardType; +- (UITextAutocapitalizationType)autocapitalizationType; +- (UITextAutocorrectionType)autoCorrectionType; +- (NSString*)footerText; +- (Class)viewControllerClass; +- (SEL)viewControllerSelector; +-(Class)buttonClass; +-(SEL)buttonAction; + +@end diff --git a/ios/iosremote/InAppSettingsKit/Models/IASKSpecifier.m b/ios/iosremote/InAppSettingsKit/Models/IASKSpecifier.m new file mode 100755 index 000000000000..2ca65b2816e3 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Models/IASKSpecifier.m @@ -0,0 +1,239 @@ +// +// IASKSpecifier.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKSpecifier.h" +#import "IASKSettingsReader.h" + +@interface IASKSpecifier () +@property (nonatomic, strong) NSDictionary *multipleValuesDict; +- (void)_reinterpretValues:(NSDictionary*)specifierDict; +@end + +@implementation IASKSpecifier + +@synthesize specifierDict=_specifierDict; +@synthesize multipleValuesDict=_multipleValuesDict; +@synthesize settingsReader = _settingsReader; + +- (id)initWithSpecifier:(NSDictionary*)specifier { + if ((self = [super init])) { + [self setSpecifierDict:specifier]; + + if ([[self type] isEqualToString:kIASKPSMultiValueSpecifier] || + [[self type] isEqualToString:kIASKPSTitleValueSpecifier]) { + [self _reinterpretValues:[self specifierDict]]; + } + } + return self; +} + +- (void)dealloc { + _specifierDict = nil; + _multipleValuesDict = nil; + + _settingsReader = nil; + +} + +- (void)_reinterpretValues:(NSDictionary*)specifierDict { + NSArray *values = [_specifierDict objectForKey:kIASKValues]; + NSArray *titles = [_specifierDict objectForKey:kIASKTitles]; + + NSMutableDictionary *multipleValuesDict = [[NSMutableDictionary alloc] init]; + + if (values) { + [multipleValuesDict setObject:values forKey:kIASKValues]; + } + + if (titles) { + [multipleValuesDict setObject:titles forKey:kIASKTitles]; + } + + [self setMultipleValuesDict:multipleValuesDict]; +} +- (NSString*)localizedObjectForKey:(NSString*)key { + return [self.settingsReader titleForStringId:[_specifierDict objectForKey:key]]; +} + +- (NSString*)title { + return [self localizedObjectForKey:kIASKTitle]; +} + +- (NSString*)footerText { + return [self localizedObjectForKey:kIASKFooterText]; +} + +-(Class) viewControllerClass { + return NSClassFromString([_specifierDict objectForKey:kIASKViewControllerClass]); +} + +-(SEL) viewControllerSelector { + return NSSelectorFromString([_specifierDict objectForKey:kIASKViewControllerSelector]); +} + +-(Class)buttonClass { + return NSClassFromString([_specifierDict objectForKey:kIASKButtonClass]); +} + +-(SEL)buttonAction { + return NSSelectorFromString([_specifierDict objectForKey:kIASKButtonAction]); +} + +- (NSString*)key { + return [_specifierDict objectForKey:kIASKKey]; +} + +- (NSString*)type { + return [_specifierDict objectForKey:kIASKType]; +} + +- (NSString*)titleForCurrentValue:(id)currentValue { + NSArray *values = [self multipleValues]; + NSArray *titles = [self multipleTitles]; + if (values.count != titles.count) { + return nil; + } + NSInteger keyIndex = [values indexOfObject:currentValue]; + if (keyIndex == NSNotFound) { + return nil; + } + @try { + return [self.settingsReader titleForStringId:[titles objectAtIndex:keyIndex]]; + } + @catch (NSException * e) {} + return nil; +} + +- (NSInteger)multipleValuesCount { + return [[_multipleValuesDict objectForKey:kIASKValues] count]; +} + +- (NSArray*)multipleValues { + return [_multipleValuesDict objectForKey:kIASKValues]; +} + +- (NSArray*)multipleTitles { + return [_multipleValuesDict objectForKey:kIASKTitles]; +} + +- (NSString*)file { + return [_specifierDict objectForKey:kIASKFile]; +} + +- (id)defaultValue { + return [_specifierDict objectForKey:kIASKDefaultValue]; +} + +- (id)defaultStringValue { + return [[_specifierDict objectForKey:kIASKDefaultValue] description]; +} + +- (BOOL)defaultBoolValue { + id defaultValue = [self defaultValue]; + if ([defaultValue isEqual:[self trueValue]]) { + return YES; + } + if ([defaultValue isEqual:[self falseValue]]) { + return NO; + } + return [defaultValue boolValue]; +} + +- (id)trueValue { + return [_specifierDict objectForKey:kIASKTrueValue]; +} + +- (id)falseValue { + return [_specifierDict objectForKey:kIASKFalseValue]; +} + +- (float)minimumValue { + return [[_specifierDict objectForKey:kIASKMinimumValue] floatValue]; +} + +- (float)maximumValue { + return [[_specifierDict objectForKey:kIASKMaximumValue] floatValue]; +} + +- (NSString*)minimumValueImage { + return [_specifierDict objectForKey:kIASKMinimumValueImage]; +} + +- (NSString*)maximumValueImage { + return [_specifierDict objectForKey:kIASKMaximumValueImage]; +} + +- (BOOL)isSecure { + return [[_specifierDict objectForKey:kIASKIsSecure] boolValue]; +} + +- (UIKeyboardType)keyboardType { + if ([[_specifierDict objectForKey:KIASKKeyboardType] isEqualToString:kIASKKeyboardAlphabet]) { + return UIKeyboardTypeDefault; + } + else if ([[_specifierDict objectForKey:KIASKKeyboardType] isEqualToString:kIASKKeyboardNumbersAndPunctuation]) { + return UIKeyboardTypeNumbersAndPunctuation; + } + else if ([[_specifierDict objectForKey:KIASKKeyboardType] isEqualToString:kIASKKeyboardNumberPad]) { + return UIKeyboardTypeNumberPad; + } + else if ([[_specifierDict objectForKey:KIASKKeyboardType] isEqualToString:kIASKKeyboardDecimalPad]) { + if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber_iPhoneOS_4_1) { + return UIKeyboardTypeDecimalPad; + } + else { + return UIKeyboardTypeNumbersAndPunctuation; + } + } + else if ([[_specifierDict objectForKey:KIASKKeyboardType] isEqualToString:KIASKKeyboardURL]) { + return UIKeyboardTypeURL; + } + else if ([[_specifierDict objectForKey:KIASKKeyboardType] isEqualToString:kIASKKeyboardEmailAddress]) { + return UIKeyboardTypeEmailAddress; + } + return UIKeyboardTypeDefault; +} + +- (UITextAutocapitalizationType)autocapitalizationType { + if ([[_specifierDict objectForKey:kIASKAutocapitalizationType] isEqualToString:kIASKAutoCapNone]) { + return UITextAutocapitalizationTypeNone; + } + else if ([[_specifierDict objectForKey:kIASKAutocapitalizationType] isEqualToString:kIASKAutoCapSentences]) { + return UITextAutocapitalizationTypeSentences; + } + else if ([[_specifierDict objectForKey:kIASKAutocapitalizationType] isEqualToString:kIASKAutoCapWords]) { + return UITextAutocapitalizationTypeWords; + } + else if ([[_specifierDict objectForKey:kIASKAutocapitalizationType] isEqualToString:kIASKAutoCapAllCharacters]) { + return UITextAutocapitalizationTypeAllCharacters; + } + return UITextAutocapitalizationTypeNone; +} + +- (UITextAutocorrectionType)autoCorrectionType { + if ([[_specifierDict objectForKey:kIASKAutoCorrectionType] isEqualToString:kIASKAutoCorrDefault]) { + return UITextAutocorrectionTypeDefault; + } + else if ([[_specifierDict objectForKey:kIASKAutoCorrectionType] isEqualToString:kIASKAutoCorrNo]) { + return UITextAutocorrectionTypeNo; + } + else if ([[_specifierDict objectForKey:kIASKAutoCorrectionType] isEqualToString:kIASKAutoCorrYes]) { + return UITextAutocorrectionTypeYes; + } + return UITextAutocorrectionTypeDefault; +} + +@end diff --git a/ios/iosremote/InAppSettingsKit/Views/IASKPSSliderSpecifierViewCell.h b/ios/iosremote/InAppSettingsKit/Views/IASKPSSliderSpecifierViewCell.h new file mode 100755 index 000000000000..9a1f0f2318bf --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Views/IASKPSSliderSpecifierViewCell.h @@ -0,0 +1,31 @@ +// +// IASKPSSliderSpecifierViewCell.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import <UIKit/UIKit.h> + +@class IASKSlider; + +@interface IASKPSSliderSpecifierViewCell : UITableViewCell { + IASKSlider *__unsafe_unretained _slider; + UIImageView *__unsafe_unretained _minImage; + UIImageView *__unsafe_unretained _maxImage; +} + +@property (nonatomic, unsafe_unretained) IBOutlet IASKSlider *slider; +@property (nonatomic, unsafe_unretained) IBOutlet UIImageView *minImage; +@property (nonatomic, unsafe_unretained) IBOutlet UIImageView *maxImage; + +@end diff --git a/ios/iosremote/InAppSettingsKit/Views/IASKPSSliderSpecifierViewCell.m b/ios/iosremote/InAppSettingsKit/Views/IASKPSSliderSpecifierViewCell.m new file mode 100755 index 000000000000..69187e96a233 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Views/IASKPSSliderSpecifierViewCell.m @@ -0,0 +1,71 @@ +// +// IASKPSSliderSpecifierViewCell.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2009-2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKPSSliderSpecifierViewCell.h" +#import "IASKSlider.h" +#import "IASKSettingsReader.h" + +@implementation IASKPSSliderSpecifierViewCell + +@synthesize slider=_slider, + minImage=_minImage, + maxImage=_maxImage; + +- (void)layoutSubviews { + [super layoutSubviews]; + CGRect sliderBounds = _slider.bounds; + CGPoint sliderCenter = _slider.center; + const double superViewWidth = _slider.superview.frame.size.width; + + sliderCenter.x = superViewWidth / 2; + sliderBounds.size.width = superViewWidth - kIASKSliderNoImagesPadding * 2; + _minImage.hidden = YES; + _maxImage.hidden = YES; + + // Check if there are min and max images. If so, change the layout accordingly. + if (_minImage.image && _maxImage.image) { + // Both images + _minImage.hidden = NO; + _maxImage.hidden = NO; + sliderBounds.size.width = superViewWidth - kIASKSliderImagesPadding * 2; + } + else if (_minImage.image) { + // Min image + _minImage.hidden = NO; + sliderCenter.x += (kIASKSliderImagesPadding - kIASKSliderNoImagesPadding) / 2; + sliderBounds.size.width = superViewWidth - kIASKSliderNoImagesPadding - kIASKSliderImagesPadding; + } + else if (_maxImage.image) { + // Max image + _maxImage.hidden = NO; + sliderCenter.x -= (kIASKSliderImagesPadding - kIASKSliderNoImagesPadding) / 2; + sliderBounds.size.width = superViewWidth - kIASKSliderNoImagesPadding - kIASKSliderImagesPadding; + } + + _slider.bounds = sliderBounds; + _slider.center = sliderCenter; +} + +- (void)dealloc { + _minImage.image = nil; + _maxImage.image = nil; +} + +- (void)prepareForReuse { + _minImage.image = nil; + _maxImage.image = nil; +} +@end diff --git a/ios/iosremote/InAppSettingsKit/Views/IASKPSTextFieldSpecifierViewCell.h b/ios/iosremote/InAppSettingsKit/Views/IASKPSTextFieldSpecifierViewCell.h new file mode 100755 index 000000000000..2d6be581309e --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Views/IASKPSTextFieldSpecifierViewCell.h @@ -0,0 +1,29 @@ +// +// IASKPSTextFieldSpecifierViewCell.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import <UIKit/UIKit.h> + +@class IASKTextField; + +@interface IASKPSTextFieldSpecifierViewCell : UITableViewCell { + UILabel *__unsafe_unretained _label; + IASKTextField *__unsafe_unretained _textField; +} + +@property (nonatomic, unsafe_unretained) IBOutlet UILabel *label; +@property (nonatomic, unsafe_unretained) IBOutlet IASKTextField *textField; + +@end diff --git a/ios/iosremote/InAppSettingsKit/Views/IASKPSTextFieldSpecifierViewCell.m b/ios/iosremote/InAppSettingsKit/Views/IASKPSTextFieldSpecifierViewCell.m new file mode 100755 index 000000000000..39648c2f6d48 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Views/IASKPSTextFieldSpecifierViewCell.m @@ -0,0 +1,49 @@ +// +// IASKPSTextFieldSpecifierViewCell.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2009-2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKPSTextFieldSpecifierViewCell.h" +#import "IASKTextField.h" +#import "IASKSettingsReader.h" + +@implementation IASKPSTextFieldSpecifierViewCell + +@synthesize label=_label, + textField=_textField; + +- (void)layoutSubviews { + [super layoutSubviews]; + CGSize labelSize = [_label sizeThatFits:CGSizeZero]; + labelSize.width = MIN(labelSize.width, _label.bounds.size.width); + + CGRect textFieldFrame = _textField.frame; + textFieldFrame.origin.x = _label.frame.origin.x + MAX(kIASKMinLabelWidth, labelSize.width) + kIASKSpacing; + if (!_label.text.length) + textFieldFrame.origin.x = _label.frame.origin.x; + textFieldFrame.size.width = _textField.superview.frame.size.width - textFieldFrame.origin.x - _label.frame.origin.x; + _textField.frame = textFieldFrame; +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + + + + +@end diff --git a/ios/iosremote/InAppSettingsKit/Views/IASKPSTitleValueSpecifierViewCell.h b/ios/iosremote/InAppSettingsKit/Views/IASKPSTitleValueSpecifierViewCell.h new file mode 100755 index 000000000000..63d57f8d72a8 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Views/IASKPSTitleValueSpecifierViewCell.h @@ -0,0 +1,22 @@ +// +// IASKPSTitleValueSpecifierViewCell.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import <UIKit/UIKit.h> + + +@interface IASKPSTitleValueSpecifierViewCell : UITableViewCell + +@end diff --git a/ios/iosremote/InAppSettingsKit/Views/IASKPSTitleValueSpecifierViewCell.m b/ios/iosremote/InAppSettingsKit/Views/IASKPSTitleValueSpecifierViewCell.m new file mode 100755 index 000000000000..b14175de701d --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Views/IASKPSTitleValueSpecifierViewCell.m @@ -0,0 +1,57 @@ +// +// IASKPSTitleValueSpecifierViewCell.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2010: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKPSTitleValueSpecifierViewCell.h" +#import "IASKSettingsReader.h" + + +@implementation IASKPSTitleValueSpecifierViewCell + +- (void)layoutSubviews { + // left align the value if the title is empty + if (!self.textLabel.text.length) { + self.textLabel.text = self.detailTextLabel.text; + self.detailTextLabel.text = nil; + if ([self.reuseIdentifier isEqualToString:kIASKPSMultiValueSpecifier]) { + self.textLabel.font = [UIFont systemFontOfSize:[UIFont labelFontSize]]; + self.textLabel.textColor = self.detailTextLabel.textColor; + } + } + [super layoutSubviews]; + + CGSize viewSize = [self.textLabel superview].frame.size; + + //if there's an image, make room for it + CGFloat imageOffset = self.imageView.image ? self.imageView.bounds.size.width + self.imageView.frame.origin.x : 0; + + // set the left title label frame + CGFloat labelWidth = [self.textLabel sizeThatFits:CGSizeZero].width; + CGFloat minValueWidth = (self.detailTextLabel.text.length) ? kIASKMinValueWidth + kIASKSpacing : 0; + labelWidth = MIN(labelWidth, viewSize.width - minValueWidth - kIASKPaddingLeft -kIASKPaddingRight - imageOffset); + CGRect labelFrame = CGRectMake(kIASKPaddingLeft + imageOffset, 0, labelWidth, viewSize.height -2); + self.textLabel.frame = labelFrame; + + // set the right value label frame + if (self.detailTextLabel.text.length) { + CGRect valueFrame = CGRectMake(kIASKPaddingLeft + labelWidth + kIASKSpacing + imageOffset, + 0, + viewSize.width - (kIASKPaddingLeft + labelWidth + kIASKSpacing + imageOffset) - kIASKPaddingRight, + viewSize.height -2); + self.detailTextLabel.frame = valueFrame; + } +} + +@end diff --git a/ios/iosremote/InAppSettingsKit/Views/IASKPSToggleSwitchSpecifierViewCell.h b/ios/iosremote/InAppSettingsKit/Views/IASKPSToggleSwitchSpecifierViewCell.h new file mode 100755 index 000000000000..0617293cef75 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Views/IASKPSToggleSwitchSpecifierViewCell.h @@ -0,0 +1,29 @@ +// +// IASKPSToggleSwitchSpecifierViewCell.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import <UIKit/UIKit.h> + +@class IASKSwitch; + +@interface IASKPSToggleSwitchSpecifierViewCell : UITableViewCell { + UILabel *__unsafe_unretained _label; + IASKSwitch *__unsafe_unretained _toggle; +} + +@property (nonatomic, unsafe_unretained) IBOutlet UILabel *label; +@property (nonatomic, unsafe_unretained) IBOutlet IASKSwitch *toggle; + +@end diff --git a/ios/iosremote/InAppSettingsKit/Views/IASKPSToggleSwitchSpecifierViewCell.m b/ios/iosremote/InAppSettingsKit/Views/IASKPSToggleSwitchSpecifierViewCell.m new file mode 100755 index 000000000000..6a997ccee844 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Views/IASKPSToggleSwitchSpecifierViewCell.m @@ -0,0 +1,59 @@ +// +// IASKPSToggleSwitchSpecifierViewCell.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKPSToggleSwitchSpecifierViewCell.h" +#import "IASKSwitch.h" +#import "IASKSettingsReader.h" + +@implementation IASKPSToggleSwitchSpecifierViewCell + +@synthesize label=_label, + toggle=_toggle; + +- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) { + // Initialization code + } + return self; +} + + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + + + +- (void)layoutSubviews { + [super layoutSubviews]; + if(self.imageView.image) { + //resize the label to make room for the image + self.label.frame = CGRectMake(CGRectGetWidth(self.imageView.bounds) + self.imageView.frame.origin.x + kIASKSpacing, + self.label.frame.origin.y, + self.toggle.frame.origin.x - CGRectGetWidth(self.imageView.bounds) - 2.f * kIASKSpacing, + self.label.frame.size.height); + } else { + self.label.frame = CGRectMake(kIASKPaddingLeft, + self.label.frame.origin.y, + self.toggle.frame.origin.x - kIASKSpacing - kIASKPaddingLeft, + self.label.frame.size.height); + } +} + +@end diff --git a/ios/iosremote/InAppSettingsKit/Views/IASKSlider.h b/ios/iosremote/InAppSettingsKit/Views/IASKSlider.h new file mode 100755 index 000000000000..57ecd234b8e9 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Views/IASKSlider.h @@ -0,0 +1,26 @@ +// +// IASKSlider.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import <UIKit/UIKit.h> + + +@interface IASKSlider : UISlider { + NSString *_key; +} + +@property (nonatomic, strong) NSString *key; + +@end diff --git a/ios/iosremote/InAppSettingsKit/Views/IASKSlider.m b/ios/iosremote/InAppSettingsKit/Views/IASKSlider.m new file mode 100755 index 000000000000..e6addff98951 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Views/IASKSlider.m @@ -0,0 +1,29 @@ +// +// IASKSlider.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKSlider.h" + + +@implementation IASKSlider + +@synthesize key=_key; + +- (void)dealloc { + _key = nil; + +} + +@end diff --git a/ios/iosremote/InAppSettingsKit/Views/IASKSwitch.h b/ios/iosremote/InAppSettingsKit/Views/IASKSwitch.h new file mode 100755 index 000000000000..e183f297ed2e --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Views/IASKSwitch.h @@ -0,0 +1,26 @@ +// +// IASKSwitch.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import <UIKit/UIKit.h> + + +@interface IASKSwitch : UISwitch { + NSString *_key; +} + +@property (nonatomic, strong) NSString *key; + +@end diff --git a/ios/iosremote/InAppSettingsKit/Views/IASKSwitch.m b/ios/iosremote/InAppSettingsKit/Views/IASKSwitch.m new file mode 100755 index 000000000000..9d24ad8326c0 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Views/IASKSwitch.m @@ -0,0 +1,30 @@ +// +// IASKSwitch.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKSwitch.h" + + +@implementation IASKSwitch + +@synthesize key=_key; + +- (void)dealloc { + _key = nil; + +} + + +@end diff --git a/ios/iosremote/InAppSettingsKit/Views/IASKTextField.h b/ios/iosremote/InAppSettingsKit/Views/IASKTextField.h new file mode 100755 index 000000000000..73f5c5b393f8 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Views/IASKTextField.h @@ -0,0 +1,26 @@ +// +// IASKTextField.h +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import <UIKit/UIKit.h> + + +@interface IASKTextField : UITextField { + NSString *_key; +} + +@property (nonatomic, strong) NSString *key; + +@end diff --git a/ios/iosremote/InAppSettingsKit/Views/IASKTextField.m b/ios/iosremote/InAppSettingsKit/Views/IASKTextField.m new file mode 100755 index 000000000000..2b3cc7f6fb62 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Views/IASKTextField.m @@ -0,0 +1,29 @@ +// +// IASKTextField.m +// http://www.inappsettingskit.com +// +// Copyright (c) 2009: +// Luc Vandal, Edovia Inc., http://www.edovia.com +// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com +// All rights reserved. +// +// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, +// as the original authors of this code. You can give credit in a blog post, a tweet or on +// a info page of your app. Also, the original authors appreciate letting them know if you use this code. +// +// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php +// + +#import "IASKTextField.h" + + +@implementation IASKTextField + +@synthesize key=_key; + +- (void)dealloc { + _key = nil; + +} + +@end diff --git a/ios/iosremote/InAppSettingsKit/Xibs/IASKAppSettingsView.xib b/ios/iosremote/InAppSettingsKit/Xibs/IASKAppSettingsView.xib new file mode 100755 index 000000000000..74720fae37a5 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Xibs/IASKAppSettingsView.xib @@ -0,0 +1,222 @@ +<?xml version="1.0" encoding="UTF-8"?> +<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10"> + <data> + <int key="IBDocument.SystemTarget">1280</int> + <string key="IBDocument.SystemVersion">11B26</string> + <string key="IBDocument.InterfaceBuilderVersion">1934</string> + <string key="IBDocument.AppKitVersion">1138</string> + <string key="IBDocument.HIToolboxVersion">566.00</string> + <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> + <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string key="NS.object.0">931</string> + </object> + <object class="NSArray" key="IBDocument.IntegratedClassDependencies"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>IBProxyObject</string> + <string>IBUITableView</string> + </object> + <object class="NSArray" key="IBDocument.PluginDependencies"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + </object> + <object class="NSMutableDictionary" key="IBDocument.Metadata"> + <string key="NS.key.0">PluginDependencyRecalculationVersion</string> + <integer value="1" key="NS.object.0"/> + </object> + <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBProxyObject" id="372490531"> + <string key="IBProxiedObjectIdentifier">IBFilesOwner</string> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + <object class="IBProxyObject" id="975951072"> + <string key="IBProxiedObjectIdentifier">IBFirstResponder</string> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + <object class="IBUITableView" id="1838945"> + <reference key="NSNextResponder"/> + <int key="NSvFlags">274</int> + <string key="NSFrameSize">{320, 460}</string> + <reference key="NSSuperview"/> + <reference key="NSNextKeyView"/> + <object class="NSColor" key="IBUIBackgroundColor"> + <int key="NSColorSpace">10</int> + <object class="NSImage" key="NSImage"> + <int key="NSImageFlags">549453824</int> + <string key="NSSize">{512, 1}</string> + <object class="NSMutableArray" key="NSReps"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray"> + <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="0"/> + <object class="NSBitmapImageRep"> + <object class="NSData" key="NSTIFFRepresentation"> + <bytes key="NS.bytes">TU0AKgAACAjFzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/ +y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/ +xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/ +xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/ +xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/ +xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/ +xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/ +y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/ +y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/ +xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/ +xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/ +xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/ +xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/ +xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/ +y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/ +y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/ +xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/ +xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/ +xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/ +xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/ +xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/ +y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/ +y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/ +xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/ +xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/ +xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/ +xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/ +xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/ +y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/ +y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/ +xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/ +xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/ +xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/ +xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/ +xczS/8vS2P/L0tj/xczU/wANAQAAAwAAAAECAAAAAQEAAwAAAAEAAQAAAQIAAwAAAAQAAAiqAQMAAwAA +AAEAAQAAAQYAAwAAAAEAAgAAAREABAAAAAEAAAAIARIAAwAAAAEAAQAAARUAAwAAAAEABAAAARYAAwAA +AAEAAQAAARcABAAAAAEAAAgAARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAQAAAiyAAAAAAAI +AAgACAAIAAEAAQABAAE</bytes> + </object> + </object> + </object> + </object> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MCAwAA</bytes> + </object> + </object> + <string key="IBUIColorCocoaTouchKeyPath">groupTableViewBackgroundColor</string> + </object> + <bool key="IBUIOpaque">NO</bool> + <bool key="IBUIClipsSubviews">YES</bool> + <bool key="IBUIClearsContextBeforeDrawing">NO</bool> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + <bool key="IBUIBouncesZoom">NO</bool> + <int key="IBUIStyle">1</int> + <int key="IBUISeparatorStyle">1</int> + <int key="IBUISectionIndexMinimumDisplayRowCount">0</int> + <bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool> + <float key="IBUIRowHeight">44</float> + <float key="IBUISectionHeaderHeight">10</float> + <float key="IBUISectionFooterHeight">10</float> + </object> + </object> + <object class="IBObjectContainer" key="IBDocument.Objects"> + <object class="NSMutableArray" key="connectionRecords"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBConnectionRecord"> + <object class="IBCocoaTouchOutletConnection" key="connection"> + <string key="label">view</string> + <reference key="source" ref="372490531"/> + <reference key="destination" ref="1838945"/> + </object> + <int key="connectionID">10</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBCocoaTouchOutletConnection" key="connection"> + <string key="label">dataSource</string> + <reference key="source" ref="1838945"/> + <reference key="destination" ref="372490531"/> + </object> + <int key="connectionID">6</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBCocoaTouchOutletConnection" key="connection"> + <string key="label">delegate</string> + <reference key="source" ref="1838945"/> + <reference key="destination" ref="372490531"/> + </object> + <int key="connectionID">7</int> + </object> + </object> + <object class="IBMutableOrderedSet" key="objectRecords"> + <object class="NSArray" key="orderedObjects"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBObjectRecord"> + <int key="objectID">0</int> + <object class="NSArray" key="object" id="0"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <reference key="children" ref="1000"/> + <nil key="parent"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-1</int> + <reference key="object" ref="372490531"/> + <reference key="parent" ref="0"/> + <string key="objectName">File's Owner</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-2</int> + <reference key="object" ref="975951072"/> + <reference key="parent" ref="0"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">4</int> + <reference key="object" ref="1838945"/> + <reference key="parent" ref="0"/> + </object> + </object> + </object> + <object class="NSMutableDictionary" key="flattenedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>-1.CustomClassName</string> + <string>-1.IBPluginDependency</string> + <string>-2.CustomClassName</string> + <string>-2.IBPluginDependency</string> + <string>4.IBPluginDependency</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>IASKAppSettingsViewController</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string>UIResponder</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + </object> + </object> + <object class="NSMutableDictionary" key="unlocalizedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference key="dict.sortedKeys" ref="0"/> + <reference key="dict.values" ref="0"/> + </object> + <nil key="activeLocalization"/> + <object class="NSMutableDictionary" key="localizations"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference key="dict.sortedKeys" ref="0"/> + <reference key="dict.values" ref="0"/> + </object> + <nil key="sourceID"/> + <int key="maxID">10</int> + </object> + <object class="IBClassDescriber" key="IBDocument.Classes"/> + <int key="IBDocument.localizationMode">0</int> + <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string> + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string> + <real value="1280" key="NS.object.0"/> + </object> + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string> + <integer value="3000" key="NS.object.0"/> + </object> + <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool> + <int key="IBDocument.defaultPropertyAccessControl">3</int> + <string key="IBCocoaTouchPluginVersion">931</string> + </data> +</archive> diff --git a/ios/iosremote/InAppSettingsKit/Xibs/IASKAppSettingsWebView.xib b/ios/iosremote/InAppSettingsKit/Xibs/IASKAppSettingsWebView.xib new file mode 100755 index 000000000000..b814f05fcbe4 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Xibs/IASKAppSettingsWebView.xib @@ -0,0 +1,378 @@ +<?xml version="1.0" encoding="UTF-8"?> +<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10"> + <data> + <int key="IBDocument.SystemTarget">1024</int> + <string key="IBDocument.SystemVersion">10F569</string> + <string key="IBDocument.InterfaceBuilderVersion">804</string> + <string key="IBDocument.AppKitVersion">1038.29</string> + <string key="IBDocument.HIToolboxVersion">461.00</string> + <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> + <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string key="NS.object.0">123</string> + </object> + <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> + <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="1"/> + </object> + <object class="NSArray" key="IBDocument.PluginDependencies"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + </object> + <object class="NSMutableDictionary" key="IBDocument.Metadata"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys" id="0"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBProxyObject" id="372490531"> + <string key="IBProxiedObjectIdentifier">IBFilesOwner</string> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + <object class="IBProxyObject" id="975951072"> + <string key="IBProxiedObjectIdentifier">IBFirstResponder</string> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + <object class="IBUIView" id="191373211"> + <reference key="NSNextResponder"/> + <int key="NSvFlags">274</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBUIWebView" id="197045155"> + <reference key="NSNextResponder" ref="191373211"/> + <int key="NSvFlags">274</int> + <string key="NSFrameSize">{320, 460}</string> + <reference key="NSSuperview" ref="191373211"/> + <object class="NSColor" key="IBUIBackgroundColor" id="697334121"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MQA</bytes> + </object> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + </object> + <string key="NSFrameSize">{320, 460}</string> + <reference key="NSSuperview"/> + <reference key="IBUIBackgroundColor" ref="697334121"/> + <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + </object> + <object class="IBObjectContainer" key="IBDocument.Objects"> + <object class="NSMutableArray" key="connectionRecords"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBConnectionRecord"> + <object class="IBCocoaTouchOutletConnection" key="connection"> + <string key="label">view</string> + <reference key="source" ref="372490531"/> + <reference key="destination" ref="191373211"/> + </object> + <int key="connectionID">3</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBCocoaTouchOutletConnection" key="connection"> + <string key="label">webView</string> + <reference key="source" ref="372490531"/> + <reference key="destination" ref="197045155"/> + </object> + <int key="connectionID">5</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBCocoaTouchOutletConnection" key="connection"> + <string key="label">delegate</string> + <reference key="source" ref="197045155"/> + <reference key="destination" ref="372490531"/> + </object> + <int key="connectionID">6</int> + </object> + </object> + <object class="IBMutableOrderedSet" key="objectRecords"> + <object class="NSArray" key="orderedObjects"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBObjectRecord"> + <int key="objectID">0</int> + <reference key="object" ref="0"/> + <reference key="children" ref="1000"/> + <nil key="parent"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">1</int> + <reference key="object" ref="191373211"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="197045155"/> + </object> + <reference key="parent" ref="0"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-1</int> + <reference key="object" ref="372490531"/> + <reference key="parent" ref="0"/> + <string key="objectName">File's Owner</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-2</int> + <reference key="object" ref="975951072"/> + <reference key="parent" ref="0"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">4</int> + <reference key="object" ref="197045155"/> + <reference key="parent" ref="191373211"/> + </object> + </object> + </object> + <object class="NSMutableDictionary" key="flattenedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>-1.CustomClassName</string> + <string>-2.CustomClassName</string> + <string>1.IBEditorWindowLastContentRect</string> + <string>1.IBPluginDependency</string> + <string>4.IBPluginDependency</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>IASKAppSettingsWebViewController</string> + <string>UIResponder</string> + <string>{{354, 412}, {320, 480}}</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + </object> + </object> + <object class="NSMutableDictionary" key="unlocalizedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference key="dict.sortedKeys" ref="0"/> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <nil key="activeLocalization"/> + <object class="NSMutableDictionary" key="localizations"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference key="dict.sortedKeys" ref="0"/> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <nil key="sourceID"/> + <int key="maxID">6</int> + </object> + <object class="IBClassDescriber" key="IBDocument.Classes"> + <object class="NSMutableArray" key="referencedPartialClassDescriptions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBPartialClassDescription"> + <string key="className">IASKAppSettingsWebViewController</string> + <string key="superclassName">UIViewController</string> + <object class="NSMutableDictionary" key="outlets"> + <string key="NS.key.0">webView</string> + <string key="NS.object.0">UIWebView</string> + </object> + <object class="NSMutableDictionary" key="toOneOutletInfosByName"> + <string key="NS.key.0">webView</string> + <object class="IBToOneOutletInfo" key="NS.object.0"> + <string key="name">webView</string> + <string key="candidateClassName">UIWebView</string> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">../InAppSettingsKit/Controllers/IASKAppSettingsWebViewController.h</string> + </object> + </object> + </object> + <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSError.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSObject.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSThread.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSURL.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="842439622"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UIResponder</string> + <string key="superclassName">NSObject</string> + <reference key="sourceIdentifier" ref="842439622"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UISearchBar</string> + <string key="superclassName">UIView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UISearchDisplayController</string> + <string key="superclassName">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UIView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UITextField.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UIView</string> + <string key="superclassName">UIResponder</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UIView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UIViewController</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UIViewController</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UIViewController</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UIViewController</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UIViewController</string> + <string key="superclassName">UIResponder</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UIWebView</string> + <string key="superclassName">UIView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UIWebView.h</string> + </object> + </object> + </object> + </object> + <int key="IBDocument.localizationMode">0</int> + <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string> + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string> + <integer value="1024" key="NS.object.0"/> + </object> + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string> + <integer value="3100" key="NS.object.0"/> + </object> + <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool> + <string key="IBDocument.LastKnownRelativeProjectPath">../InAppSettingsKitSampleApp.xcodeproj</string> + <int key="IBDocument.defaultPropertyAccessControl">3</int> + <string key="IBCocoaTouchPluginVersion">123</string> + </data> +</archive> diff --git a/ios/iosremote/InAppSettingsKit/Xibs/IASKPSSliderSpecifierViewCell.xib b/ios/iosremote/InAppSettingsKit/Xibs/IASKPSSliderSpecifierViewCell.xib new file mode 100755 index 000000000000..67750384e20e --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Xibs/IASKPSSliderSpecifierViewCell.xib @@ -0,0 +1,251 @@ +<?xml version="1.0" encoding="UTF-8"?> +<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10"> + <data> + <int key="IBDocument.SystemTarget">1296</int> + <string key="IBDocument.SystemVersion">11D50</string> + <string key="IBDocument.InterfaceBuilderVersion">2182</string> + <string key="IBDocument.AppKitVersion">1138.32</string> + <string key="IBDocument.HIToolboxVersion">568.00</string> + <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> + <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string key="NS.object.0">1179</string> + </object> + <object class="NSArray" key="IBDocument.IntegratedClassDependencies"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>IBUISlider</string> + <string>IBUITableViewCell</string> + <string>IBUIImageView</string> + <string>IBProxyObject</string> + </object> + <object class="NSArray" key="IBDocument.PluginDependencies"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + </object> + <object class="NSMutableDictionary" key="IBDocument.Metadata"> + <string key="NS.key.0">PluginDependencyRecalculationVersion</string> + <integer value="1" key="NS.object.0"/> + </object> + <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBProxyObject" id="841351856"> + <string key="IBProxiedObjectIdentifier">IBFilesOwner</string> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + <object class="IBProxyObject" id="371349661"> + <string key="IBProxiedObjectIdentifier">IBFirstResponder</string> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + <object class="IBUITableViewCell" id="699910302"> + <reference key="NSNextResponder"/> + <int key="NSvFlags">290</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBUIView" id="833157797"> + <reference key="NSNextResponder" ref="699910302"/> + <int key="NSvFlags">256</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBUISlider" id="213296969"> + <reference key="NSNextResponder" ref="833157797"/> + <int key="NSvFlags">290</int> + <string key="NSFrame">{{52, 12}, {216, 23}}</string> + <reference key="NSSuperview" ref="833157797"/> + <reference key="NSNextKeyView" ref="343121076"/> + <bool key="IBUIOpaque">NO</bool> + <bool key="IBUIClipsSubviews">YES</bool> + <bool key="IBUIMultipleTouchEnabled">YES</bool> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + <int key="IBUIContentHorizontalAlignment">0</int> + <int key="IBUIContentVerticalAlignment">0</int> + <float key="IBUIValue">0.5</float> + <bool key="IBUIContinuous">NO</bool> + </object> + <object class="IBUIImageView" id="343121076"> + <reference key="NSNextResponder" ref="833157797"/> + <int key="NSvFlags">289</int> + <string key="NSFrame">{{289, 13}, {21, 21}}</string> + <reference key="NSSuperview" ref="833157797"/> + <reference key="NSNextKeyView"/> + <bool key="IBUIOpaque">NO</bool> + <bool key="IBUIClearsContextBeforeDrawing">NO</bool> + <int key="IBUIContentMode">8</int> + <bool key="IBUIUserInteractionEnabled">NO</bool> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + <object class="IBUIImageView" id="408162837"> + <reference key="NSNextResponder" ref="833157797"/> + <int key="NSvFlags">292</int> + <string key="NSFrame">{{10, 13}, {21, 21}}</string> + <reference key="NSSuperview" ref="833157797"/> + <reference key="NSNextKeyView" ref="213296969"/> + <bool key="IBUIOpaque">NO</bool> + <bool key="IBUIClearsContextBeforeDrawing">NO</bool> + <int key="IBUIContentMode">7</int> + <bool key="IBUIUserInteractionEnabled">NO</bool> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + </object> + <string key="NSFrameSize">{320, 43}</string> + <reference key="NSSuperview" ref="699910302"/> + <reference key="NSNextKeyView" ref="408162837"/> + <object class="NSColor" key="IBUIBackgroundColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MCAwAA</bytes> + </object> + <bool key="IBUIOpaque">NO</bool> + <bool key="IBUIClipsSubviews">YES</bool> + <int key="IBUIContentMode">4</int> + <bool key="IBUIMultipleTouchEnabled">YES</bool> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + </object> + <string key="NSFrameSize">{320, 44}</string> + <reference key="NSSuperview"/> + <reference key="NSNextKeyView" ref="833157797"/> + <object class="NSColor" key="IBUIBackgroundColor"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MC45Njg2Mjc0NTEgMC45Njg2Mjc0NTEgMC45Njg2Mjc0NTEAA</bytes> + </object> + <bool key="IBUIClipsSubviews">YES</bool> + <bool key="IBUIClearsContextBeforeDrawing">NO</bool> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + <int key="IBUISelectionStyle">0</int> + <reference key="IBUIContentView" ref="833157797"/> + <string key="IBUIReuseIdentifier">PSSliderSpecifier</string> + </object> + </object> + <object class="IBObjectContainer" key="IBDocument.Objects"> + <object class="NSMutableArray" key="connectionRecords"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBConnectionRecord"> + <object class="IBCocoaTouchOutletConnection" key="connection"> + <string key="label">slider</string> + <reference key="source" ref="699910302"/> + <reference key="destination" ref="213296969"/> + </object> + <int key="connectionID">12</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBCocoaTouchOutletConnection" key="connection"> + <string key="label">maxImage</string> + <reference key="source" ref="699910302"/> + <reference key="destination" ref="343121076"/> + </object> + <int key="connectionID">13</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBCocoaTouchOutletConnection" key="connection"> + <string key="label">minImage</string> + <reference key="source" ref="699910302"/> + <reference key="destination" ref="408162837"/> + </object> + <int key="connectionID">14</int> + </object> + </object> + <object class="IBMutableOrderedSet" key="objectRecords"> + <object class="NSArray" key="orderedObjects"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBObjectRecord"> + <int key="objectID">0</int> + <object class="NSArray" key="object" id="0"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <reference key="children" ref="1000"/> + <nil key="parent"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-1</int> + <reference key="object" ref="841351856"/> + <reference key="parent" ref="0"/> + <string key="objectName">File's Owner</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-2</int> + <reference key="object" ref="371349661"/> + <reference key="parent" ref="0"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">2</int> + <reference key="object" ref="699910302"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="408162837"/> + <reference ref="343121076"/> + <reference ref="213296969"/> + </object> + <reference key="parent" ref="0"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">3</int> + <reference key="object" ref="213296969"/> + <reference key="parent" ref="699910302"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">6</int> + <reference key="object" ref="343121076"/> + <reference key="parent" ref="699910302"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">9</int> + <reference key="object" ref="408162837"/> + <reference key="parent" ref="699910302"/> + </object> + </object> + </object> + <object class="NSMutableDictionary" key="flattenedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>-1.IBPluginDependency</string> + <string>-2.CustomClassName</string> + <string>-2.IBPluginDependency</string> + <string>2.CustomClassName</string> + <string>2.IBPluginDependency</string> + <string>3.CustomClassName</string> + <string>3.IBPluginDependency</string> + <string>6.IBPluginDependency</string> + <string>9.IBPluginDependency</string> + </object> + <object class="NSArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string>UIResponder</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string>IASKPSSliderSpecifierViewCell</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string>IASKSlider</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + </object> + </object> + <object class="NSMutableDictionary" key="unlocalizedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference key="dict.sortedKeys" ref="0"/> + <reference key="dict.values" ref="0"/> + </object> + <nil key="activeLocalization"/> + <object class="NSMutableDictionary" key="localizations"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference key="dict.sortedKeys" ref="0"/> + <reference key="dict.values" ref="0"/> + </object> + <nil key="sourceID"/> + <int key="maxID">14</int> + </object> + <object class="IBClassDescriber" key="IBDocument.Classes"/> + <int key="IBDocument.localizationMode">0</int> + <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string> + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string> + <real value="1296" key="NS.object.0"/> + </object> + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string> + <integer value="3100" key="NS.object.0"/> + </object> + <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool> + <int key="IBDocument.defaultPropertyAccessControl">3</int> + <string key="IBCocoaTouchPluginVersion">1179</string> + </data> +</archive> diff --git a/ios/iosremote/InAppSettingsKit/Xibs/IASKPSTextFieldSpecifierViewCell.xib b/ios/iosremote/InAppSettingsKit/Xibs/IASKPSTextFieldSpecifierViewCell.xib new file mode 100755 index 000000000000..43a553b9c963 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Xibs/IASKPSTextFieldSpecifierViewCell.xib @@ -0,0 +1,254 @@ +<?xml version="1.0" encoding="UTF-8"?> +<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10"> + <data> + <int key="IBDocument.SystemTarget">1296</int> + <string key="IBDocument.SystemVersion">11D50</string> + <string key="IBDocument.InterfaceBuilderVersion">2182</string> + <string key="IBDocument.AppKitVersion">1138.32</string> + <string key="IBDocument.HIToolboxVersion">568.00</string> + <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> + <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string key="NS.object.0">1179</string> + </object> + <object class="NSArray" key="IBDocument.IntegratedClassDependencies"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>IBUITableViewCell</string> + <string>IBUILabel</string> + <string>IBUITextField</string> + <string>IBProxyObject</string> + </object> + <object class="NSArray" key="IBDocument.PluginDependencies"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + </object> + <object class="NSMutableDictionary" key="IBDocument.Metadata"> + <string key="NS.key.0">PluginDependencyRecalculationVersion</string> + <integer value="1" key="NS.object.0"/> + </object> + <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBProxyObject" id="841351856"> + <string key="IBProxiedObjectIdentifier">IBFilesOwner</string> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + <object class="IBProxyObject" id="371349661"> + <string key="IBProxiedObjectIdentifier">IBFirstResponder</string> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + <object class="IBUITableViewCell" id="639928991"> + <reference key="NSNextResponder"/> + <int key="NSvFlags">290</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBUIView" id="642554623"> + <reference key="NSNextResponder" ref="639928991"/> + <int key="NSvFlags">256</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBUILabel" id="68117349"> + <reference key="NSNextResponder" ref="642554623"/> + <int key="NSvFlags">294</int> + <string key="NSFrame">{{9, 11}, {240, 21}}</string> + <reference key="NSSuperview" ref="642554623"/> + <bool key="IBUIOpaque">NO</bool> + <bool key="IBUIClipsSubviews">YES</bool> + <bool key="IBUIUserInteractionEnabled">NO</bool> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + <string key="IBUIText">Label</string> + <object class="NSColor" key="IBUITextColor"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MCAwIDAAA</bytes> + </object> + <nil key="IBUIHighlightedColor"/> + <int key="IBUIBaselineAdjustment">1</int> + <float key="IBUIMinimumFontSize">10</float> + <object class="IBUIFontDescription" key="IBUIFontDescription"> + <string key="name">Helvetica-Bold</string> + <string key="family">Helvetica</string> + <int key="traits">2</int> + <double key="pointSize">17</double> + </object> + <object class="NSFont" key="IBUIFont"> + <string key="NSName">Helvetica-Bold</string> + <double key="NSSize">17</double> + <int key="NSfFlags">16</int> + </object> + </object> + <object class="IBUITextField" id="239084550"> + <reference key="NSNextResponder" ref="642554623"/> + <int key="NSvFlags">291</int> + <string key="NSFrame">{{100, 11}, {201, 21}}</string> + <reference key="NSSuperview" ref="642554623"/> + <bool key="IBUIOpaque">NO</bool> + <bool key="IBUIClearsContextBeforeDrawing">NO</bool> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + <string key="IBUIText">hello</string> + <object class="NSColor" key="IBUITextColor"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MC4yNzQ1MDk4MiAwLjM3NjQ3MDYgMC41MjE1Njg2NgA</bytes> + </object> + <bool key="IBUIAdjustsFontSizeToFit">YES</bool> + <float key="IBUIMinimumFontSize">10</float> + <object class="IBUITextInputTraits" key="IBUITextInputTraits"> + <int key="IBUIReturnKeyType">9</int> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + <object class="IBUIFontDescription" key="IBUIFontDescription"> + <string key="name">Helvetica</string> + <string key="family">Helvetica</string> + <int key="traits">0</int> + <double key="pointSize">17</double> + </object> + <object class="NSFont" key="IBUIFont"> + <string key="NSName">Helvetica</string> + <double key="NSSize">17</double> + <int key="NSfFlags">16</int> + </object> + </object> + </object> + <string key="NSFrameSize">{320, 43}</string> + <reference key="NSSuperview" ref="639928991"/> + <object class="NSColor" key="IBUIBackgroundColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MCAwAA</bytes> + </object> + <bool key="IBUIOpaque">NO</bool> + <bool key="IBUIClipsSubviews">YES</bool> + <int key="IBUIContentMode">4</int> + <bool key="IBUIMultipleTouchEnabled">YES</bool> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + </object> + <string key="NSFrameSize">{320, 44}</string> + <reference key="NSSuperview"/> + <object class="NSColor" key="IBUIBackgroundColor"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MC45Njg2Mjc0NTEgMC45Njg2Mjc0NTEgMC45Njg2Mjc0NTEAA</bytes> + </object> + <bool key="IBUIClipsSubviews">YES</bool> + <bool key="IBUIClearsContextBeforeDrawing">NO</bool> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + <int key="IBUISelectionStyle">0</int> + <reference key="IBUIContentView" ref="642554623"/> + <string key="IBUIReuseIdentifier">PSTextFieldSpecifier</string> + </object> + </object> + <object class="IBObjectContainer" key="IBDocument.Objects"> + <object class="NSMutableArray" key="connectionRecords"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBConnectionRecord"> + <object class="IBCocoaTouchOutletConnection" key="connection"> + <string key="label">label</string> + <reference key="source" ref="639928991"/> + <reference key="destination" ref="68117349"/> + </object> + <int key="connectionID">8</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBCocoaTouchOutletConnection" key="connection"> + <string key="label">textField</string> + <reference key="source" ref="639928991"/> + <reference key="destination" ref="239084550"/> + </object> + <int key="connectionID">9</int> + </object> + </object> + <object class="IBMutableOrderedSet" key="objectRecords"> + <object class="NSArray" key="orderedObjects"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBObjectRecord"> + <int key="objectID">0</int> + <object class="NSArray" key="object" id="0"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <reference key="children" ref="1000"/> + <nil key="parent"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-1</int> + <reference key="object" ref="841351856"/> + <reference key="parent" ref="0"/> + <string key="objectName">File's Owner</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-2</int> + <reference key="object" ref="371349661"/> + <reference key="parent" ref="0"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">2</int> + <reference key="object" ref="639928991"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="239084550"/> + <reference ref="68117349"/> + </object> + <reference key="parent" ref="0"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">3</int> + <reference key="object" ref="68117349"/> + <reference key="parent" ref="639928991"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">4</int> + <reference key="object" ref="239084550"/> + <reference key="parent" ref="639928991"/> + </object> + </object> + </object> + <object class="NSMutableDictionary" key="flattenedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>-1.IBPluginDependency</string> + <string>-2.CustomClassName</string> + <string>-2.IBPluginDependency</string> + <string>2.CustomClassName</string> + <string>2.IBPluginDependency</string> + <string>3.IBPluginDependency</string> + <string>4.CustomClassName</string> + <string>4.IBPluginDependency</string> + </object> + <object class="NSArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string>UIResponder</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string>IASKPSTextFieldSpecifierViewCell</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string>IASKTextField</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + </object> + </object> + <object class="NSMutableDictionary" key="unlocalizedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference key="dict.sortedKeys" ref="0"/> + <reference key="dict.values" ref="0"/> + </object> + <nil key="activeLocalization"/> + <object class="NSMutableDictionary" key="localizations"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference key="dict.sortedKeys" ref="0"/> + <reference key="dict.values" ref="0"/> + </object> + <nil key="sourceID"/> + <int key="maxID">9</int> + </object> + <object class="IBClassDescriber" key="IBDocument.Classes"/> + <int key="IBDocument.localizationMode">0</int> + <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string> + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string> + <real value="1296" key="NS.object.0"/> + </object> + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string> + <integer value="3100" key="NS.object.0"/> + </object> + <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool> + <int key="IBDocument.defaultPropertyAccessControl">3</int> + <string key="IBCocoaTouchPluginVersion">1179</string> + </data> +</archive> diff --git a/ios/iosremote/InAppSettingsKit/Xibs/IASKPSToggleSwitchSpecifierViewCell.xib b/ios/iosremote/InAppSettingsKit/Xibs/IASKPSToggleSwitchSpecifierViewCell.xib new file mode 100755 index 000000000000..2e5803f2e35f --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Xibs/IASKPSToggleSwitchSpecifierViewCell.xib @@ -0,0 +1,237 @@ +<?xml version="1.0" encoding="UTF-8"?> +<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10"> + <data> + <int key="IBDocument.SystemTarget">1296</int> + <string key="IBDocument.SystemVersion">11D50</string> + <string key="IBDocument.InterfaceBuilderVersion">2182</string> + <string key="IBDocument.AppKitVersion">1138.32</string> + <string key="IBDocument.HIToolboxVersion">568.00</string> + <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> + <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string key="NS.object.0">1179</string> + </object> + <object class="NSArray" key="IBDocument.IntegratedClassDependencies"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>IBUITableViewCell</string> + <string>IBUISwitch</string> + <string>IBUILabel</string> + <string>IBProxyObject</string> + </object> + <object class="NSArray" key="IBDocument.PluginDependencies"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + </object> + <object class="NSMutableDictionary" key="IBDocument.Metadata"> + <string key="NS.key.0">PluginDependencyRecalculationVersion</string> + <integer value="1" key="NS.object.0"/> + </object> + <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBProxyObject" id="841351856"> + <string key="IBProxiedObjectIdentifier">IBFilesOwner</string> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + <object class="IBProxyObject" id="371349661"> + <string key="IBProxiedObjectIdentifier">IBFirstResponder</string> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + <object class="IBUITableViewCell" id="507262743"> + <reference key="NSNextResponder"/> + <int key="NSvFlags">290</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBUIView" id="659685403"> + <reference key="NSNextResponder" ref="507262743"/> + <int key="NSvFlags">256</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBUILabel" id="697203718"> + <reference key="NSNextResponder" ref="659685403"/> + <int key="NSvFlags">294</int> + <string key="NSFrame">{{9, 10}, {200, 21}}</string> + <reference key="NSSuperview" ref="659685403"/> + <bool key="IBUIOpaque">NO</bool> + <bool key="IBUIClipsSubviews">YES</bool> + <bool key="IBUIUserInteractionEnabled">NO</bool> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + <string key="IBUIText">Label</string> + <object class="NSColor" key="IBUITextColor"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MCAwIDAAA</bytes> + </object> + <nil key="IBUIHighlightedColor"/> + <int key="IBUIBaselineAdjustment">1</int> + <float key="IBUIMinimumFontSize">10</float> + <object class="IBUIFontDescription" key="IBUIFontDescription"> + <string key="name">Helvetica-Bold</string> + <string key="family">Helvetica</string> + <int key="traits">2</int> + <double key="pointSize">17</double> + </object> + <object class="NSFont" key="IBUIFont"> + <string key="NSName">Helvetica-Bold</string> + <double key="NSSize">17</double> + <int key="NSfFlags">16</int> + </object> + </object> + <object class="IBUISwitch" id="297989004"> + <reference key="NSNextResponder" ref="659685403"/> + <int key="NSvFlags">289</int> + <string key="NSFrame">{{218, 8}, {94, 27}}</string> + <reference key="NSSuperview" ref="659685403"/> + <bool key="IBUIOpaque">NO</bool> + <bool key="IBUIClipsSubviews">YES</bool> + <bool key="IBUIMultipleTouchEnabled">YES</bool> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + <int key="IBUIContentHorizontalAlignment">0</int> + <int key="IBUIContentVerticalAlignment">0</int> + <bool key="IBUIOn">YES</bool> + </object> + </object> + <string key="NSFrameSize">{320, 43}</string> + <reference key="NSSuperview" ref="507262743"/> + <object class="NSColor" key="IBUIBackgroundColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MCAwAA</bytes> + </object> + <bool key="IBUIOpaque">NO</bool> + <bool key="IBUIClipsSubviews">YES</bool> + <int key="IBUIContentMode">4</int> + <bool key="IBUIMultipleTouchEnabled">YES</bool> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + </object> + <string key="NSFrameSize">{320, 44}</string> + <reference key="NSSuperview"/> + <object class="NSColor" key="IBUIBackgroundColor"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MC45Njg2Mjc0NTEgMC45Njg2Mjc0NTEgMC45Njg2Mjc0NTEAA</bytes> + </object> + <bool key="IBUIClipsSubviews">YES</bool> + <bool key="IBUIClearsContextBeforeDrawing">NO</bool> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + <int key="IBUISelectionStyle">0</int> + <reference key="IBUIContentView" ref="659685403"/> + <string key="IBUIReuseIdentifier">PSToggleSwitchSpecifier</string> + </object> + </object> + <object class="IBObjectContainer" key="IBDocument.Objects"> + <object class="NSMutableArray" key="connectionRecords"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBConnectionRecord"> + <object class="IBCocoaTouchOutletConnection" key="connection"> + <string key="label">toggle</string> + <reference key="source" ref="507262743"/> + <reference key="destination" ref="297989004"/> + </object> + <int key="connectionID">8</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBCocoaTouchOutletConnection" key="connection"> + <string key="label">label</string> + <reference key="source" ref="507262743"/> + <reference key="destination" ref="697203718"/> + </object> + <int key="connectionID">9</int> + </object> + </object> + <object class="IBMutableOrderedSet" key="objectRecords"> + <object class="NSArray" key="orderedObjects"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBObjectRecord"> + <int key="objectID">0</int> + <object class="NSArray" key="object" id="0"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <reference key="children" ref="1000"/> + <nil key="parent"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-1</int> + <reference key="object" ref="841351856"/> + <reference key="parent" ref="0"/> + <string key="objectName">File's Owner</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-2</int> + <reference key="object" ref="371349661"/> + <reference key="parent" ref="0"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">2</int> + <reference key="object" ref="507262743"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="697203718"/> + <reference ref="297989004"/> + </object> + <reference key="parent" ref="0"/> + <string key="objectName">Toggle Switch Specifier View Cell - PSToggleSwitchSpecifier</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">3</int> + <reference key="object" ref="697203718"/> + <reference key="parent" ref="507262743"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">4</int> + <reference key="object" ref="297989004"/> + <reference key="parent" ref="507262743"/> + </object> + </object> + </object> + <object class="NSMutableDictionary" key="flattenedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>-1.IBPluginDependency</string> + <string>-2.CustomClassName</string> + <string>-2.IBPluginDependency</string> + <string>2.CustomClassName</string> + <string>2.IBPluginDependency</string> + <string>3.IBPluginDependency</string> + <string>4.CustomClassName</string> + <string>4.IBPluginDependency</string> + </object> + <object class="NSArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string>UIResponder</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string>IASKPSToggleSwitchSpecifierViewCell</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string>IASKSwitch</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + </object> + </object> + <object class="NSMutableDictionary" key="unlocalizedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference key="dict.sortedKeys" ref="0"/> + <reference key="dict.values" ref="0"/> + </object> + <nil key="activeLocalization"/> + <object class="NSMutableDictionary" key="localizations"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference key="dict.sortedKeys" ref="0"/> + <reference key="dict.values" ref="0"/> + </object> + <nil key="sourceID"/> + <int key="maxID">9</int> + </object> + <object class="IBClassDescriber" key="IBDocument.Classes"/> + <int key="IBDocument.localizationMode">0</int> + <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string> + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string> + <real value="1296" key="NS.object.0"/> + </object> + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string> + <integer value="3100" key="NS.object.0"/> + </object> + <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool> + <int key="IBDocument.defaultPropertyAccessControl">3</int> + <string key="IBCocoaTouchPluginVersion">1179</string> + </data> +</archive> diff --git a/ios/iosremote/InAppSettingsKit/Xibs/IASKSpecifierValuesView.xib b/ios/iosremote/InAppSettingsKit/Xibs/IASKSpecifierValuesView.xib new file mode 100755 index 000000000000..9c7ff86e6ea2 --- /dev/null +++ b/ios/iosremote/InAppSettingsKit/Xibs/IASKSpecifierValuesView.xib @@ -0,0 +1,255 @@ +<?xml version="1.0" encoding="UTF-8"?> +<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10"> + <data> + <int key="IBDocument.SystemTarget">768</int> + <string key="IBDocument.SystemVersion">10J567</string> + <string key="IBDocument.InterfaceBuilderVersion">1294</string> + <string key="IBDocument.AppKitVersion">1038.35</string> + <string key="IBDocument.HIToolboxVersion">462.00</string> + <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> + <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string key="NS.object.0">294</string> + </object> + <object class="NSArray" key="IBDocument.IntegratedClassDependencies"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>IBProxyObject</string> + <string>IBUIView</string> + <string>IBUITableView</string> + </object> + <object class="NSArray" key="IBDocument.PluginDependencies"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + </object> + <object class="NSMutableDictionary" key="IBDocument.Metadata"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys" id="0"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <reference key="dict.values" ref="0"/> + </object> + <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBProxyObject" id="372490531"> + <string key="IBProxiedObjectIdentifier">IBFilesOwner</string> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + <object class="IBProxyObject" id="975951072"> + <string key="IBProxiedObjectIdentifier">IBFirstResponder</string> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + <object class="IBUIView" id="191373211"> + <reference key="NSNextResponder"/> + <int key="NSvFlags">292</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBUITableView" id="575792171"> + <reference key="NSNextResponder" ref="191373211"/> + <int key="NSvFlags">274</int> + <string key="NSFrameSize">{320, 460}</string> + <reference key="NSSuperview" ref="191373211"/> + <reference key="NSWindow"/> + <reference key="NSNextKeyView"/> + <object class="NSColor" key="IBUIBackgroundColor"> + <int key="NSColorSpace">10</int> + <object class="NSImage" key="NSImage"> + <int key="NSImageFlags">549453824</int> + <string key="NSSize">{84, 1}</string> + <object class="NSMutableArray" key="NSReps"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray"> + <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="0"/> + <object class="NSBitmapImageRep"> + <object class="NSData" key="NSTIFFRepresentation"> + <bytes key="NS.bytes">TU0AKgAAAVjFzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/ +y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/ +xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/ +xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/ +xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/ +xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P8ADQEAAAMAAAABAFQAAAEB +AAMAAAABAAEAAAECAAMAAAAEAAAB+gEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABAAEAAAEXAAQAAAABAAABUAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAACAgAAAAAACAAIAAgACAABAAEAAQABA</bytes> + </object> + </object> + </object> + </object> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MCAwAA</bytes> + </object> + </object> + <string key="IBUIColorCocoaTouchKeyPath">groupTableViewBackgroundColor</string> + </object> + <bool key="IBUIOpaque">NO</bool> + <bool key="IBUIClipsSubviews">YES</bool> + <bool key="IBUIClearsContextBeforeDrawing">NO</bool> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + <bool key="IBUIBouncesZoom">NO</bool> + <int key="IBUIStyle">1</int> + <int key="IBUISeparatorStyle">1</int> + <int key="IBUISectionIndexMinimumDisplayRowCount">0</int> + <bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool> + <float key="IBUIRowHeight">44</float> + <float key="IBUISectionHeaderHeight">10</float> + <float key="IBUISectionFooterHeight">10</float> + </object> + </object> + <string key="NSFrameSize">{320, 460}</string> + <reference key="NSSuperview"/> + <reference key="NSWindow"/> + <reference key="NSNextKeyView" ref="575792171"/> + <object class="NSColor" key="IBUIBackgroundColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MQA</bytes> + <object class="NSColorSpace" key="NSCustomColorSpace"> + <int key="NSID">2</int> + </object> + </object> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + </object> + <object class="IBObjectContainer" key="IBDocument.Objects"> + <object class="NSMutableArray" key="connectionRecords"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBConnectionRecord"> + <object class="IBCocoaTouchOutletConnection" key="connection"> + <string key="label">view</string> + <reference key="source" ref="372490531"/> + <reference key="destination" ref="191373211"/> + </object> + <int key="connectionID">3</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBCocoaTouchOutletConnection" key="connection"> + <string key="label">dataSource</string> + <reference key="source" ref="575792171"/> + <reference key="destination" ref="372490531"/> + </object> + <int key="connectionID">5</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBCocoaTouchOutletConnection" key="connection"> + <string key="label">delegate</string> + <reference key="source" ref="575792171"/> + <reference key="destination" ref="372490531"/> + </object> + <int key="connectionID">6</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBCocoaTouchOutletConnection" key="connection"> + <string key="label">_tableView</string> + <reference key="source" ref="372490531"/> + <reference key="destination" ref="575792171"/> + </object> + <int key="connectionID">7</int> + </object> + </object> + <object class="IBMutableOrderedSet" key="objectRecords"> + <object class="NSArray" key="orderedObjects"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBObjectRecord"> + <int key="objectID">0</int> + <reference key="object" ref="0"/> + <reference key="children" ref="1000"/> + <nil key="parent"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">1</int> + <reference key="object" ref="191373211"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="575792171"/> + </object> + <reference key="parent" ref="0"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-1</int> + <reference key="object" ref="372490531"/> + <reference key="parent" ref="0"/> + <string key="objectName">File's Owner</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-2</int> + <reference key="object" ref="975951072"/> + <reference key="parent" ref="0"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">4</int> + <reference key="object" ref="575792171"/> + <reference key="parent" ref="191373211"/> + </object> + </object> + </object> + <object class="NSMutableDictionary" key="flattenedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>-1.CustomClassName</string> + <string>-2.CustomClassName</string> + <string>1.IBEditorWindowLastContentRect</string> + <string>1.IBPluginDependency</string> + <string>4.IBPluginDependency</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>IASKSpecifierValuesViewController</string> + <string>UIResponder</string> + <string>{{556, 432}, {320, 460}}</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + </object> + </object> + <object class="NSMutableDictionary" key="unlocalizedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference key="dict.sortedKeys" ref="0"/> + <reference key="dict.values" ref="0"/> + </object> + <nil key="activeLocalization"/> + <object class="NSMutableDictionary" key="localizations"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference key="dict.sortedKeys" ref="0"/> + <reference key="dict.values" ref="0"/> + </object> + <nil key="sourceID"/> + <int key="maxID">7</int> + </object> + <object class="IBClassDescriber" key="IBDocument.Classes"> + <object class="NSMutableArray" key="referencedPartialClassDescriptions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBPartialClassDescription"> + <string key="className">IASKSpecifierValuesViewController</string> + <string key="superclassName">UIViewController</string> + <object class="NSMutableDictionary" key="outlets"> + <string key="NS.key.0">_tableView</string> + <string key="NS.object.0">UITableView</string> + </object> + <object class="NSMutableDictionary" key="toOneOutletInfosByName"> + <string key="NS.key.0">_tableView</string> + <object class="IBToOneOutletInfo" key="NS.object.0"> + <string key="name">_tableView</string> + <string key="candidateClassName">UITableView</string> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">./Classes/IASKSpecifierValuesViewController.h</string> + </object> + </object> + </object> + </object> + <int key="IBDocument.localizationMode">0</int> + <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string> + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string> + <integer value="768" key="NS.object.0"/> + </object> + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string> + <integer value="3000" key="NS.object.0"/> + </object> + <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool> + <int key="IBDocument.defaultPropertyAccessControl">3</int> + <string key="IBCocoaTouchPluginVersion">294</string> + </data> +</archive> diff --git a/ios/iosremote/Settings.bundle/Root.plist b/ios/iosremote/Settings.bundle/Root.plist new file mode 100644 index 000000000000..12eb920d9b57 --- /dev/null +++ b/ios/iosremote/Settings.bundle/Root.plist @@ -0,0 +1,109 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>PreferenceSpecifiers</key> + <array> + <dict> + <key>Title</key> + <string>General</string> + <key>Type</key> + <string>PSGroupSpecifier</string> + </dict> + <dict> + <key>Values</key> + <array> + <integer>0</integer> + <integer>1</integer> + </array> + <key>Type</key> + <string>PSMultiValueSpecifier</string> + <key>Title</key> + <string>Default Timing Widget</string> + <key>Key</key> + <string>DEFAULT_TIMING_WIDGET</string> + <key>DefaultValue</key> + <integer>0</integer> + <key>Titles</key> + <array> + <string>Stopwatch</string> + <string>Countdown Timer</string> + </array> + </dict> + <dict> + <key>Type</key> + <string>PSGroupSpecifier</string> + <key>Title</key> + <string>Stopwatch</string> + </dict> + <dict> + <key>Type</key> + <string>PSToggleSwitchSpecifier</string> + <key>Title</key> + <string>Auto-Start</string> + <key>Key</key> + <string>STOPWATCH_AUTO_START</string> + <key>DefaultValue</key> + <false/> + </dict> + <dict> + <key>Type</key> + <string>PSGroupSpecifier</string> + <key>Title</key> + <string>Countdown Timer</string> + </dict> + <dict> + <key>Values</key> + <array> + <integer>3</integer> + <integer>5</integer> + <integer>10</integer> + <integer>15</integer> + <integer>20</integer> + <integer>30</integer> + <integer>40</integer> + </array> + <key>Titles</key> + <array> + <string>3</string> + <string>5</string> + <string>10</string> + <string>15</string> + <string>20</string> + <string>30</string> + <string>40</string> + </array> + <key>Type</key> + <string>PSMultiValueSpecifier</string> + <key>Title</key> + <string>Default Duration (mins)</string> + <key>Key</key> + <string>TIMER_DEFAULT_DURATION</string> + <key>DefaultValue</key> + <integer>10</integer> + </dict> + <dict> + <key>Type</key> + <string>PSToggleSwitchSpecifier</string> + <key>Title</key> + <string>Auto-Start</string> + <key>Key</key> + <string>TIMER_AUTO_START</string> + <key>DefaultValue</key> + <false/> + </dict> + <dict> + <key>Type</key> + <string>PSToggleSwitchSpecifier</string> + <key>Title</key> + <string>Vibration</string> + <key>Key</key> + <string>TIMER_VIBRATION</string> + <key>DefaultValue</key> + <false/> + </dict> + </array> + <key>StringsTable</key> + <string>Root</string> +</dict> +</plist> diff --git a/ios/iosremote/Settings.bundle/en.lproj/Root.strings b/ios/iosremote/Settings.bundle/en.lproj/Root.strings Binary files differnew file mode 100644 index 000000000000..8cd87b9d6b20 --- /dev/null +++ b/ios/iosremote/Settings.bundle/en.lproj/Root.strings diff --git a/ios/iosremote/UserDefaults.plist b/ios/iosremote/UserDefaults.plist index a1048659f22e..7ff0a5cb199d 100644 --- a/ios/iosremote/UserDefaults.plist +++ b/ios/iosremote/UserDefaults.plist @@ -4,9 +4,5 @@ <dict> <key>HOWTO_GUIDE_SEEN</key> <false/> - <key>TOUCH_POINTER_ENABLED</key> - <true/> - <key>TIMER_AUTOSTART_ENABLED</key> - <false/> </dict> </plist> diff --git a/ios/iosremote/en.lproj/iPad_autosize.storyboard b/ios/iosremote/en.lproj/iPad_autosize.storyboard index d257bf74b584..2265ebeb89e8 100644 --- a/ios/iosremote/en.lproj/iPad_autosize.storyboard +++ b/ios/iosremote/en.lproj/iPad_autosize.storyboard @@ -15,20 +15,20 @@ <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> <prototypes> <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="server_item_cell" editingAccessoryType="disclosureIndicator" textLabel="h0a-Zq-2vY" detailTextLabel="Fsp-wI-AAW" style="IBUITableViewCellStyleValue1" id="HZp-VJ-Pgz"> - <rect key="frame" x="0.0" y="119" width="540" height="44"/> + <rect key="frame" x="0.0" y="54" width="540" height="45"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> + <rect key="frame" x="31" y="1" width="478" height="43"/> <autoresizingMask key="autoresizingMask"/> <subviews> <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="h0a-Zq-2vY"> - <rect key="frame" x="15" y="12" width="32" height="20"/> + <rect key="frame" x="10" y="11" width="32" height="22"/> <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> </label> <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Fsp-wI-AAW"> - <rect key="frame" x="481" y="12" width="44" height="20"/> + <rect key="frame" x="424" y="11" width="44" height="22"/> <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> <color key="textColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/> <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> @@ -59,8 +59,8 @@ <connections> <outlet property="serverTable" destination="0vt-Sx-o55" id="Szp-pH-0rk"/> <segue destination="m26-i1-eiL" kind="push" identifier="pinValidation" id="yUv-cB-P15"/> - <segue destination="B8g-8S-pgn" kind="push" identifier="SlideShowPreview" id="XCJ-4d-eG4"/> <segue destination="Grm-Od-s6s" kind="push" identifier="howtoSegue" id="hRz-3h-McA"/> + <segue destination="M9Q-tM-7CQ" kind="push" identifier="SlideShowPreview" id="jsD-4W-bFm"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="KBf-aZ-Hhk" sceneMemberID="firstResponder"/> @@ -100,12 +100,12 @@ <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackOpaque"/> <connections> <outlet property="pinLabel" destination="Bp1-Dv-nt4" id="6xd-P5-J5U"/> - <segue destination="B8g-8S-pgn" kind="push" identifier="pinValidated" id="gCy-Mv-VrC"/> + <segue destination="M9Q-tM-7CQ" kind="push" identifier="pinValidated" id="nkI-m0-Ps8"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="gh4-1U-6Dm" userLabel="First Responder" sceneMemberID="firstResponder"/> </objects> - <point key="canvasLocation" x="1024" y="-500"/> + <point key="canvasLocation" x="1004" y="-510"/> </scene> <!--New Server View Controller - New Server--> <scene sceneID="RcY-Im-ohw"> @@ -119,19 +119,19 @@ <tableViewSection footerTitle="" id="CVG-Eq-rLd"> <cells> <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="b8A-jh-k26" customClass="EditableTableViewCell"> - <rect key="frame" x="0.0" y="99" width="540" height="44"/> + <rect key="frame" x="0.0" y="30" width="540" height="45"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> + <rect key="frame" x="31" y="1" width="478" height="43"/> <autoresizingMask key="autoresizingMask"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> </view> </tableViewCell> <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="jrI-wU-4NT" customClass="EditableTableViewCell"> - <rect key="frame" x="0.0" y="143" width="540" height="44"/> + <rect key="frame" x="0.0" y="75" width="540" height="44"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> + <rect key="frame" x="31" y="0.0" width="478" height="43"/> <autoresizingMask key="autoresizingMask"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> </view> @@ -158,81 +158,70 @@ <point key="canvasLocation" x="1024" y="-1831"/> </scene> <!--Slide Show Preview Table vc ipad--> - <scene sceneID="ejm-Sz-YCw"> + <scene sceneID="5gD-BL-PRq"> <objects> - <tableViewController storyboardIdentifier="slideShowPreview" id="B8g-8S-pgn" customClass="slideShowPreviewTable_vc_ipad" sceneMemberID="viewController"> - <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="Pc5-8o-PrW"> + <viewController storyboardIdentifier="slideShowPreview" id="M9Q-tM-7CQ" customClass="slideShowPreviewTable_vc_ipad" sceneMemberID="viewController"> + <view key="view" contentMode="scaleToFill" id="8vR-9Z-5Vk"> <rect key="frame" x="0.0" y="64" width="540" height="556"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/> - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> - <view key="tableHeaderView" contentMode="scaleToFill" id="YCJ-J4-RGt"> - <rect key="frame" x="0.0" y="0.0" width="540" height="281"/> - <subviews> - <view contentMode="scaleToFill" id="Is1-dX-SaP"> - <rect key="frame" x="0.0" y="37" width="540" height="208"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> - <subviews> - <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Title of the presentation(TODO)" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="5" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="JEW-I6-sw5"> - <rect key="frame" x="20" y="20" width="500" height="168"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/> - <fontDescription key="fontDescription" name="HiraKakuProN-W6" family="Hiragino Kaku Gothic ProN" pointSize="27"/> - <color key="textColor" red="0.21176470589999999" green="0.81568627449999997" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> - <nil key="highlightedColor"/> - </label> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> - </view> - </subviews> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - <sections> - <tableViewSection id="gMl-dC-GqD"> - <cells> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="tqg-R4-Coi"> - <rect key="frame" x="0.0" y="291" width="540" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="f4z-FH-mar"> - <rect key="frame" x="0.0" y="336" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="5jP-bD-Vcy"> - <rect key="frame" x="0.0" y="380" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - </cells> - </tableViewSection> - </sections> - <connections> - <outlet property="dataSource" destination="B8g-8S-pgn" id="SGm-yW-lAs"/> - <outlet property="delegate" destination="B8g-8S-pgn" id="p2A-1P-NJP"/> - </connections> - </tableView> - <navigationItem key="navigationItem" id="4ju-ge-QPw"/> - <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackOpaque"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <subviews> + <view contentMode="scaleToFill" id="iAg-GA-qtj"> + <rect key="frame" x="0.0" y="20" width="540" height="234"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Presentation Title" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="sXT-OZ-7y3"> + <rect key="frame" x="20" y="20" width="500" height="194"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" type="system" pointSize="24"/> + <color key="textColor" red="0.39589986310000003" green="0.87052349449999999" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> + <nil key="highlightedColor"/> + </label> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> + </view> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="0k4-5k-dza"> + <rect key="frame" x="182" y="363" width="177" height="44"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> + <state key="normal" title="Start Presentation" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPresentationAction:" destination="M9Q-tM-7CQ" eventType="touchUpInside" id="ZcD-xo-Cvg"/> + </connections> + </button> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="02F-Tj-9xO" userLabel="slideShowPreview"> + <rect key="frame" x="201" y="438" width="138" height="44"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="17"/> + <state key="normal" title="Preferences" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPrefSettings:" destination="M9Q-tM-7CQ" eventType="touchUpInside" id="oUK-cn-Bx7"/> + </connections> + </button> + </subviews> + <color key="backgroundColor" red="0.92941176469999998" green="0.92941176469999998" blue="0.92941176469999998" alpha="1" colorSpace="calibratedRGB"/> + </view> + <navigationItem key="navigationItem" id="CJJ-Ti-ahy"/> <connections> - <outlet property="optionsTable" destination="Pc5-8o-PrW" id="18R-Zo-CBq"/> - <outlet property="titleLabel" destination="JEW-I6-sw5" id="1AH-TC-z10"/> + <outlet property="prefButton" destination="02F-Tj-9xO" id="vc4-VF-px0"/> + <outlet property="startButton" destination="0k4-5k-dza" id="sMZ-jn-IzZ"/> + <outlet property="titleLabel" destination="sXT-OZ-7y3" id="U2U-p1-it2"/> </connections> - </tableViewController> - <placeholder placeholderIdentifier="IBFirstResponder" id="gg2-6d-fyF" userLabel="First Responder" sceneMemberID="firstResponder"/> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="gp3-Xs-lfE" userLabel="First Responder" sceneMemberID="firstResponder"/> </objects> - <point key="canvasLocation" x="1768" y="-1374"/> + <point key="canvasLocation" x="1754" y="-1374"/> </scene> <!--Base Presentation View Controller--> <scene sceneID="5zi-ge-3SF"> @@ -541,22 +530,18 @@ <rect key="frame" x="0.0" y="22" width="320" height="178"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="320" height="178"/> + <rect key="frame" x="0.0" y="0.0" width="320" height="177"/> <autoresizingMask key="autoresizingMask"/> <subviews> <imageView userInteractionEnabled="NO" tag="1" contentMode="scaleToFill" image="Default.png" id="dn1-99-Dde"> <rect key="frame" x="44" y="3.5" width="233" height="163"/> </imageView> - <label clipsSubviews="YES" userInteractionEnabled="NO" tag="2" contentMode="left" text="1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="1" highlighted="YES" id="qrH-bi-qw7"> - <rect key="frame" x="-605" y="149" width="29" height="21"/> - <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> - <accessibility key="accessibilityConfiguration"> - <accessibilityTraits key="traits" none="YES" selected="YES" staticText="YES"/> - </accessibility> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="2" contentMode="left" text="1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="b5V-aR-n9S"> + <rect key="frame" x="245" y="145" width="32" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <color key="backgroundColor" white="0.80146555659999996" alpha="1" colorSpace="calibratedWhite"/> <fontDescription key="fontDescription" type="system" pointSize="17"/> - <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> - <nil key="highlightedColor"/> + <color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/> </label> </subviews> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> @@ -615,6 +600,7 @@ <image name="Default.png" width="320" height="480"/> <image name="WTPairingScreenshot.png" width="474" height="312"/> <image name="add.png" width="30" height="30"/> + <image name="buttonBackground.png" width="45" height="45"/> <image name="more_ipad.png" width="60" height="60"/> <image name="nextButton_normal.png" width="42" height="230"/> <image name="nextButton_pressed.png" width="42" height="230"/> @@ -693,18 +679,18 @@ <relationship kind="action" name="cancelModalView:"/> </relationships> </class> - <class className="slideShowPreviewTable_vc" superclassName="UITableViewController"> + <class className="slideShowPreviewTable_vc" superclassName="UIViewController"> <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc.h"/> <relationships> + <relationship kind="action" name="startPrefSettings:"/> <relationship kind="action" name="startPresentationAction:"/> - <relationship kind="outlet" name="optionsTable" candidateClass="UITableView"/> + <relationship kind="outlet" name="prefButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="startButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="titleLabel" candidateClass="UILabel"/> </relationships> </class> <class className="slideShowPreviewTable_vc_ipad" superclassName="slideShowPreviewTable_vc"> <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc_ipad.h"/> - <relationships> - <relationship kind="outlet" name="titleLabel" candidateClass="UILabel"/> - </relationships> </class> <class className="slideShowSwipeInList_ipad" superclassName="UITableViewController"> <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowSwipeInList_ipad.h"/> @@ -717,6 +703,6 @@ </simulatedMetricsContainer> <inferredMetricsTieBreakers> <segue reference="YbL-aj-gxv"/> - <segue reference="gCy-Mv-VrC"/> + <segue reference="jsD-4W-bFm"/> </inferredMetricsTieBreakers> </document>
\ No newline at end of file diff --git a/ios/iosremote/en.lproj/iPad_autosize.strings b/ios/iosremote/en.lproj/iPad_autosize.strings Binary files differindex 1ed9cbdeaa13..ad30821d3a19 100644 --- a/ios/iosremote/en.lproj/iPad_autosize.strings +++ b/ios/iosremote/en.lproj/iPad_autosize.strings diff --git a/ios/iosremote/en.lproj/iPad_autosize_old.storyboard b/ios/iosremote/en.lproj/iPad_autosize_old.storyboard index d257bf74b584..2265ebeb89e8 100644 --- a/ios/iosremote/en.lproj/iPad_autosize_old.storyboard +++ b/ios/iosremote/en.lproj/iPad_autosize_old.storyboard @@ -15,20 +15,20 @@ <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> <prototypes> <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="server_item_cell" editingAccessoryType="disclosureIndicator" textLabel="h0a-Zq-2vY" detailTextLabel="Fsp-wI-AAW" style="IBUITableViewCellStyleValue1" id="HZp-VJ-Pgz"> - <rect key="frame" x="0.0" y="119" width="540" height="44"/> + <rect key="frame" x="0.0" y="54" width="540" height="45"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> + <rect key="frame" x="31" y="1" width="478" height="43"/> <autoresizingMask key="autoresizingMask"/> <subviews> <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="h0a-Zq-2vY"> - <rect key="frame" x="15" y="12" width="32" height="20"/> + <rect key="frame" x="10" y="11" width="32" height="22"/> <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> </label> <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Fsp-wI-AAW"> - <rect key="frame" x="481" y="12" width="44" height="20"/> + <rect key="frame" x="424" y="11" width="44" height="22"/> <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> <color key="textColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/> <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> @@ -59,8 +59,8 @@ <connections> <outlet property="serverTable" destination="0vt-Sx-o55" id="Szp-pH-0rk"/> <segue destination="m26-i1-eiL" kind="push" identifier="pinValidation" id="yUv-cB-P15"/> - <segue destination="B8g-8S-pgn" kind="push" identifier="SlideShowPreview" id="XCJ-4d-eG4"/> <segue destination="Grm-Od-s6s" kind="push" identifier="howtoSegue" id="hRz-3h-McA"/> + <segue destination="M9Q-tM-7CQ" kind="push" identifier="SlideShowPreview" id="jsD-4W-bFm"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="KBf-aZ-Hhk" sceneMemberID="firstResponder"/> @@ -100,12 +100,12 @@ <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackOpaque"/> <connections> <outlet property="pinLabel" destination="Bp1-Dv-nt4" id="6xd-P5-J5U"/> - <segue destination="B8g-8S-pgn" kind="push" identifier="pinValidated" id="gCy-Mv-VrC"/> + <segue destination="M9Q-tM-7CQ" kind="push" identifier="pinValidated" id="nkI-m0-Ps8"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="gh4-1U-6Dm" userLabel="First Responder" sceneMemberID="firstResponder"/> </objects> - <point key="canvasLocation" x="1024" y="-500"/> + <point key="canvasLocation" x="1004" y="-510"/> </scene> <!--New Server View Controller - New Server--> <scene sceneID="RcY-Im-ohw"> @@ -119,19 +119,19 @@ <tableViewSection footerTitle="" id="CVG-Eq-rLd"> <cells> <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="b8A-jh-k26" customClass="EditableTableViewCell"> - <rect key="frame" x="0.0" y="99" width="540" height="44"/> + <rect key="frame" x="0.0" y="30" width="540" height="45"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> + <rect key="frame" x="31" y="1" width="478" height="43"/> <autoresizingMask key="autoresizingMask"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> </view> </tableViewCell> <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="jrI-wU-4NT" customClass="EditableTableViewCell"> - <rect key="frame" x="0.0" y="143" width="540" height="44"/> + <rect key="frame" x="0.0" y="75" width="540" height="44"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> + <rect key="frame" x="31" y="0.0" width="478" height="43"/> <autoresizingMask key="autoresizingMask"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> </view> @@ -158,81 +158,70 @@ <point key="canvasLocation" x="1024" y="-1831"/> </scene> <!--Slide Show Preview Table vc ipad--> - <scene sceneID="ejm-Sz-YCw"> + <scene sceneID="5gD-BL-PRq"> <objects> - <tableViewController storyboardIdentifier="slideShowPreview" id="B8g-8S-pgn" customClass="slideShowPreviewTable_vc_ipad" sceneMemberID="viewController"> - <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="Pc5-8o-PrW"> + <viewController storyboardIdentifier="slideShowPreview" id="M9Q-tM-7CQ" customClass="slideShowPreviewTable_vc_ipad" sceneMemberID="viewController"> + <view key="view" contentMode="scaleToFill" id="8vR-9Z-5Vk"> <rect key="frame" x="0.0" y="64" width="540" height="556"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/> - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> - <view key="tableHeaderView" contentMode="scaleToFill" id="YCJ-J4-RGt"> - <rect key="frame" x="0.0" y="0.0" width="540" height="281"/> - <subviews> - <view contentMode="scaleToFill" id="Is1-dX-SaP"> - <rect key="frame" x="0.0" y="37" width="540" height="208"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> - <subviews> - <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Title of the presentation(TODO)" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="5" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="JEW-I6-sw5"> - <rect key="frame" x="20" y="20" width="500" height="168"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/> - <fontDescription key="fontDescription" name="HiraKakuProN-W6" family="Hiragino Kaku Gothic ProN" pointSize="27"/> - <color key="textColor" red="0.21176470589999999" green="0.81568627449999997" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> - <nil key="highlightedColor"/> - </label> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> - </view> - </subviews> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - <sections> - <tableViewSection id="gMl-dC-GqD"> - <cells> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="tqg-R4-Coi"> - <rect key="frame" x="0.0" y="291" width="540" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="f4z-FH-mar"> - <rect key="frame" x="0.0" y="336" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="5jP-bD-Vcy"> - <rect key="frame" x="0.0" y="380" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - </cells> - </tableViewSection> - </sections> - <connections> - <outlet property="dataSource" destination="B8g-8S-pgn" id="SGm-yW-lAs"/> - <outlet property="delegate" destination="B8g-8S-pgn" id="p2A-1P-NJP"/> - </connections> - </tableView> - <navigationItem key="navigationItem" id="4ju-ge-QPw"/> - <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackOpaque"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <subviews> + <view contentMode="scaleToFill" id="iAg-GA-qtj"> + <rect key="frame" x="0.0" y="20" width="540" height="234"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Presentation Title" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="sXT-OZ-7y3"> + <rect key="frame" x="20" y="20" width="500" height="194"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" type="system" pointSize="24"/> + <color key="textColor" red="0.39589986310000003" green="0.87052349449999999" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> + <nil key="highlightedColor"/> + </label> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> + </view> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="0k4-5k-dza"> + <rect key="frame" x="182" y="363" width="177" height="44"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> + <state key="normal" title="Start Presentation" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPresentationAction:" destination="M9Q-tM-7CQ" eventType="touchUpInside" id="ZcD-xo-Cvg"/> + </connections> + </button> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="02F-Tj-9xO" userLabel="slideShowPreview"> + <rect key="frame" x="201" y="438" width="138" height="44"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="17"/> + <state key="normal" title="Preferences" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPrefSettings:" destination="M9Q-tM-7CQ" eventType="touchUpInside" id="oUK-cn-Bx7"/> + </connections> + </button> + </subviews> + <color key="backgroundColor" red="0.92941176469999998" green="0.92941176469999998" blue="0.92941176469999998" alpha="1" colorSpace="calibratedRGB"/> + </view> + <navigationItem key="navigationItem" id="CJJ-Ti-ahy"/> <connections> - <outlet property="optionsTable" destination="Pc5-8o-PrW" id="18R-Zo-CBq"/> - <outlet property="titleLabel" destination="JEW-I6-sw5" id="1AH-TC-z10"/> + <outlet property="prefButton" destination="02F-Tj-9xO" id="vc4-VF-px0"/> + <outlet property="startButton" destination="0k4-5k-dza" id="sMZ-jn-IzZ"/> + <outlet property="titleLabel" destination="sXT-OZ-7y3" id="U2U-p1-it2"/> </connections> - </tableViewController> - <placeholder placeholderIdentifier="IBFirstResponder" id="gg2-6d-fyF" userLabel="First Responder" sceneMemberID="firstResponder"/> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="gp3-Xs-lfE" userLabel="First Responder" sceneMemberID="firstResponder"/> </objects> - <point key="canvasLocation" x="1768" y="-1374"/> + <point key="canvasLocation" x="1754" y="-1374"/> </scene> <!--Base Presentation View Controller--> <scene sceneID="5zi-ge-3SF"> @@ -541,22 +530,18 @@ <rect key="frame" x="0.0" y="22" width="320" height="178"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="320" height="178"/> + <rect key="frame" x="0.0" y="0.0" width="320" height="177"/> <autoresizingMask key="autoresizingMask"/> <subviews> <imageView userInteractionEnabled="NO" tag="1" contentMode="scaleToFill" image="Default.png" id="dn1-99-Dde"> <rect key="frame" x="44" y="3.5" width="233" height="163"/> </imageView> - <label clipsSubviews="YES" userInteractionEnabled="NO" tag="2" contentMode="left" text="1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="1" highlighted="YES" id="qrH-bi-qw7"> - <rect key="frame" x="-605" y="149" width="29" height="21"/> - <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> - <accessibility key="accessibilityConfiguration"> - <accessibilityTraits key="traits" none="YES" selected="YES" staticText="YES"/> - </accessibility> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="2" contentMode="left" text="1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="b5V-aR-n9S"> + <rect key="frame" x="245" y="145" width="32" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <color key="backgroundColor" white="0.80146555659999996" alpha="1" colorSpace="calibratedWhite"/> <fontDescription key="fontDescription" type="system" pointSize="17"/> - <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> - <nil key="highlightedColor"/> + <color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/> </label> </subviews> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> @@ -615,6 +600,7 @@ <image name="Default.png" width="320" height="480"/> <image name="WTPairingScreenshot.png" width="474" height="312"/> <image name="add.png" width="30" height="30"/> + <image name="buttonBackground.png" width="45" height="45"/> <image name="more_ipad.png" width="60" height="60"/> <image name="nextButton_normal.png" width="42" height="230"/> <image name="nextButton_pressed.png" width="42" height="230"/> @@ -693,18 +679,18 @@ <relationship kind="action" name="cancelModalView:"/> </relationships> </class> - <class className="slideShowPreviewTable_vc" superclassName="UITableViewController"> + <class className="slideShowPreviewTable_vc" superclassName="UIViewController"> <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc.h"/> <relationships> + <relationship kind="action" name="startPrefSettings:"/> <relationship kind="action" name="startPresentationAction:"/> - <relationship kind="outlet" name="optionsTable" candidateClass="UITableView"/> + <relationship kind="outlet" name="prefButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="startButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="titleLabel" candidateClass="UILabel"/> </relationships> </class> <class className="slideShowPreviewTable_vc_ipad" superclassName="slideShowPreviewTable_vc"> <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc_ipad.h"/> - <relationships> - <relationship kind="outlet" name="titleLabel" candidateClass="UILabel"/> - </relationships> </class> <class className="slideShowSwipeInList_ipad" superclassName="UITableViewController"> <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowSwipeInList_ipad.h"/> @@ -717,6 +703,6 @@ </simulatedMetricsContainer> <inferredMetricsTieBreakers> <segue reference="YbL-aj-gxv"/> - <segue reference="gCy-Mv-VrC"/> + <segue reference="jsD-4W-bFm"/> </inferredMetricsTieBreakers> </document>
\ No newline at end of file diff --git a/ios/iosremote/fr.lproj/iPad_autosize.storyboard b/ios/iosremote/fr.lproj/iPad_autosize.storyboard index 462be6a40de1..68de0c7a781d 100644 --- a/ios/iosremote/fr.lproj/iPad_autosize.storyboard +++ b/ios/iosremote/fr.lproj/iPad_autosize.storyboard @@ -15,20 +15,20 @@ <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> <prototypes> <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="server_item_cell" editingAccessoryType="disclosureIndicator" textLabel="h0a-Zq-2vY" detailTextLabel="Fsp-wI-AAW" style="IBUITableViewCellStyleValue1" id="HZp-VJ-Pgz"> - <rect key="frame" x="0.0" y="119" width="540" height="44"/> + <rect key="frame" x="0.0" y="54" width="540" height="45"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> + <rect key="frame" x="31" y="1" width="478" height="43"/> <autoresizingMask key="autoresizingMask"/> <subviews> <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="h0a-Zq-2vY"> - <rect key="frame" x="15" y="12" width="32" height="20"/> + <rect key="frame" x="10" y="11" width="32" height="22"/> <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> </label> <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Fsp-wI-AAW"> - <rect key="frame" x="481" y="12" width="44" height="20"/> + <rect key="frame" x="424" y="11" width="44" height="22"/> <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> <color key="textColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/> <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> @@ -59,8 +59,8 @@ <connections> <outlet property="serverTable" destination="0vt-Sx-o55" id="Szp-pH-0rk"/> <segue destination="m26-i1-eiL" kind="push" identifier="pinValidation" id="yUv-cB-P15"/> - <segue destination="B8g-8S-pgn" kind="push" identifier="SlideShowPreview" id="XCJ-4d-eG4"/> <segue destination="Grm-Od-s6s" kind="push" identifier="howtoSegue" id="hRz-3h-McA"/> + <segue destination="M9Q-tM-7CQ" kind="push" identifier="SlideShowPreview" id="jsD-4W-bFm"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="KBf-aZ-Hhk" sceneMemberID="firstResponder"/> @@ -100,12 +100,12 @@ <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackOpaque"/> <connections> <outlet property="pinLabel" destination="Bp1-Dv-nt4" id="6xd-P5-J5U"/> - <segue destination="B8g-8S-pgn" kind="push" identifier="pinValidated" id="gCy-Mv-VrC"/> + <segue destination="M9Q-tM-7CQ" kind="push" identifier="pinValidated" id="nkI-m0-Ps8"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="gh4-1U-6Dm" userLabel="First Responder" sceneMemberID="firstResponder"/> </objects> - <point key="canvasLocation" x="1024" y="-500"/> + <point key="canvasLocation" x="1004" y="-510"/> </scene> <!--New Server View Controller - Nouvelle Connection--> <scene sceneID="RcY-Im-ohw"> @@ -119,19 +119,19 @@ <tableViewSection footerTitle="" id="CVG-Eq-rLd"> <cells> <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="b8A-jh-k26" customClass="EditableTableViewCell"> - <rect key="frame" x="0.0" y="99" width="540" height="44"/> + <rect key="frame" x="0.0" y="30" width="540" height="45"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> + <rect key="frame" x="31" y="1" width="478" height="43"/> <autoresizingMask key="autoresizingMask"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> </view> </tableViewCell> <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="jrI-wU-4NT" customClass="EditableTableViewCell"> - <rect key="frame" x="0.0" y="143" width="540" height="44"/> + <rect key="frame" x="0.0" y="75" width="540" height="44"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> + <rect key="frame" x="31" y="0.0" width="478" height="43"/> <autoresizingMask key="autoresizingMask"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> </view> @@ -158,81 +158,70 @@ <point key="canvasLocation" x="1024" y="-1831"/> </scene> <!--Slide Show Preview Table vc ipad--> - <scene sceneID="ejm-Sz-YCw"> + <scene sceneID="5gD-BL-PRq"> <objects> - <tableViewController storyboardIdentifier="slideShowPreview" id="B8g-8S-pgn" customClass="slideShowPreviewTable_vc_ipad" sceneMemberID="viewController"> - <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="Pc5-8o-PrW"> + <viewController storyboardIdentifier="slideShowPreview" id="M9Q-tM-7CQ" customClass="slideShowPreviewTable_vc_ipad" sceneMemberID="viewController"> + <view key="view" contentMode="scaleToFill" id="8vR-9Z-5Vk"> <rect key="frame" x="0.0" y="64" width="540" height="556"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/> - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> - <view key="tableHeaderView" contentMode="scaleToFill" id="YCJ-J4-RGt"> - <rect key="frame" x="0.0" y="0.0" width="540" height="281"/> - <subviews> - <view contentMode="scaleToFill" id="Is1-dX-SaP"> - <rect key="frame" x="0.0" y="37" width="540" height="208"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> - <subviews> - <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Titre du document" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="5" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="JEW-I6-sw5"> - <rect key="frame" x="20" y="20" width="500" height="168"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/> - <fontDescription key="fontDescription" name="HiraKakuProN-W6" family="Hiragino Kaku Gothic ProN" pointSize="27"/> - <color key="textColor" red="0.21176470589999999" green="0.81568627449999997" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> - <nil key="highlightedColor"/> - </label> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> - </view> - </subviews> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - <sections> - <tableViewSection id="gMl-dC-GqD"> - <cells> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="tqg-R4-Coi"> - <rect key="frame" x="0.0" y="291" width="540" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="f4z-FH-mar"> - <rect key="frame" x="0.0" y="336" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="5jP-bD-Vcy"> - <rect key="frame" x="0.0" y="380" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - </cells> - </tableViewSection> - </sections> - <connections> - <outlet property="dataSource" destination="B8g-8S-pgn" id="SGm-yW-lAs"/> - <outlet property="delegate" destination="B8g-8S-pgn" id="p2A-1P-NJP"/> - </connections> - </tableView> - <navigationItem key="navigationItem" id="4ju-ge-QPw"/> - <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackOpaque"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <subviews> + <view contentMode="scaleToFill" id="iAg-GA-qtj"> + <rect key="frame" x="0.0" y="20" width="540" height="234"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Presentation Title" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="sXT-OZ-7y3"> + <rect key="frame" x="20" y="20" width="500" height="194"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" type="system" pointSize="24"/> + <color key="textColor" red="0.39589986310000003" green="0.87052349449999999" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> + <nil key="highlightedColor"/> + </label> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> + </view> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="0k4-5k-dza"> + <rect key="frame" x="182" y="363" width="177" height="44"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> + <state key="normal" title="Start Presentation" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPresentationAction:" destination="M9Q-tM-7CQ" eventType="touchUpInside" id="ZcD-xo-Cvg"/> + </connections> + </button> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="02F-Tj-9xO" userLabel="slideShowPreview"> + <rect key="frame" x="201" y="438" width="138" height="44"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="17"/> + <state key="normal" title="Preferences" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPrefSettings:" destination="M9Q-tM-7CQ" eventType="touchUpInside" id="oUK-cn-Bx7"/> + </connections> + </button> + </subviews> + <color key="backgroundColor" red="0.92941176469999998" green="0.92941176469999998" blue="0.92941176469999998" alpha="1" colorSpace="calibratedRGB"/> + </view> + <navigationItem key="navigationItem" id="CJJ-Ti-ahy"/> <connections> - <outlet property="optionsTable" destination="Pc5-8o-PrW" id="18R-Zo-CBq"/> - <outlet property="titleLabel" destination="JEW-I6-sw5" id="1AH-TC-z10"/> + <outlet property="prefButton" destination="02F-Tj-9xO" id="vc4-VF-px0"/> + <outlet property="startButton" destination="0k4-5k-dza" id="sMZ-jn-IzZ"/> + <outlet property="titleLabel" destination="sXT-OZ-7y3" id="U2U-p1-it2"/> </connections> - </tableViewController> - <placeholder placeholderIdentifier="IBFirstResponder" id="gg2-6d-fyF" userLabel="First Responder" sceneMemberID="firstResponder"/> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="gp3-Xs-lfE" userLabel="First Responder" sceneMemberID="firstResponder"/> </objects> - <point key="canvasLocation" x="1768" y="-1374"/> + <point key="canvasLocation" x="1754" y="-1374"/> </scene> <!--Base Presentation View Controller--> <scene sceneID="5zi-ge-3SF"> @@ -541,22 +530,18 @@ <rect key="frame" x="0.0" y="22" width="320" height="178"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="320" height="178"/> + <rect key="frame" x="0.0" y="0.0" width="320" height="177"/> <autoresizingMask key="autoresizingMask"/> <subviews> <imageView userInteractionEnabled="NO" tag="1" contentMode="scaleToFill" image="Default.png" id="dn1-99-Dde"> <rect key="frame" x="44" y="3.5" width="233" height="163"/> </imageView> - <label clipsSubviews="YES" userInteractionEnabled="NO" tag="2" contentMode="left" text="1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="1" highlighted="YES" id="qrH-bi-qw7"> - <rect key="frame" x="-605" y="147" width="29" height="21"/> - <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> - <accessibility key="accessibilityConfiguration"> - <accessibilityTraits key="traits" none="YES" selected="YES" staticText="YES"/> - </accessibility> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="2" contentMode="left" text="1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="b5V-aR-n9S"> + <rect key="frame" x="245" y="145" width="32" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <color key="backgroundColor" white="0.80146555659999996" alpha="1" colorSpace="calibratedWhite"/> <fontDescription key="fontDescription" type="system" pointSize="17"/> - <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> - <nil key="highlightedColor"/> + <color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/> </label> </subviews> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> @@ -615,6 +600,7 @@ <image name="Default.png" width="320" height="480"/> <image name="WTPairingScreenshot.png" width="474" height="312"/> <image name="add.png" width="30" height="30"/> + <image name="buttonBackground.png" width="45" height="45"/> <image name="more_ipad.png" width="60" height="60"/> <image name="nextButton_normal.png" width="42" height="230"/> <image name="nextButton_pressed.png" width="42" height="230"/> @@ -693,18 +679,18 @@ <relationship kind="action" name="cancelModalView:"/> </relationships> </class> - <class className="slideShowPreviewTable_vc" superclassName="UITableViewController"> + <class className="slideShowPreviewTable_vc" superclassName="UIViewController"> <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc.h"/> <relationships> + <relationship kind="action" name="startPrefSettings:"/> <relationship kind="action" name="startPresentationAction:"/> - <relationship kind="outlet" name="optionsTable" candidateClass="UITableView"/> + <relationship kind="outlet" name="prefButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="startButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="titleLabel" candidateClass="UILabel"/> </relationships> </class> <class className="slideShowPreviewTable_vc_ipad" superclassName="slideShowPreviewTable_vc"> <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc_ipad.h"/> - <relationships> - <relationship kind="outlet" name="titleLabel" candidateClass="UILabel"/> - </relationships> </class> <class className="slideShowSwipeInList_ipad" superclassName="UITableViewController"> <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowSwipeInList_ipad.h"/> @@ -717,6 +703,6 @@ </simulatedMetricsContainer> <inferredMetricsTieBreakers> <segue reference="YbL-aj-gxv"/> - <segue reference="gCy-Mv-VrC"/> + <segue reference="jsD-4W-bFm"/> </inferredMetricsTieBreakers> </document>
\ No newline at end of file diff --git a/ios/iosremote/fr.lproj/iPad_autosize.strings b/ios/iosremote/fr.lproj/iPad_autosize.strings Binary files differindex 4f924d49312c..71f37a85b7b6 100644 --- a/ios/iosremote/fr.lproj/iPad_autosize.strings +++ b/ios/iosremote/fr.lproj/iPad_autosize.strings diff --git a/ios/iosremote/fr.lproj/iPad_autosize_old.storyboard b/ios/iosremote/fr.lproj/iPad_autosize_old.storyboard index 6c9451e51931..68de0c7a781d 100644 --- a/ios/iosremote/fr.lproj/iPad_autosize_old.storyboard +++ b/ios/iosremote/fr.lproj/iPad_autosize_old.storyboard @@ -15,20 +15,20 @@ <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> <prototypes> <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="server_item_cell" editingAccessoryType="disclosureIndicator" textLabel="h0a-Zq-2vY" detailTextLabel="Fsp-wI-AAW" style="IBUITableViewCellStyleValue1" id="HZp-VJ-Pgz"> - <rect key="frame" x="0.0" y="119" width="540" height="44"/> + <rect key="frame" x="0.0" y="54" width="540" height="45"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> + <rect key="frame" x="31" y="1" width="478" height="43"/> <autoresizingMask key="autoresizingMask"/> <subviews> <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="h0a-Zq-2vY"> - <rect key="frame" x="15" y="12" width="32" height="20"/> + <rect key="frame" x="10" y="11" width="32" height="22"/> <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> </label> <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Fsp-wI-AAW"> - <rect key="frame" x="481" y="12" width="44" height="20"/> + <rect key="frame" x="424" y="11" width="44" height="22"/> <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> <color key="textColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/> <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> @@ -59,8 +59,8 @@ <connections> <outlet property="serverTable" destination="0vt-Sx-o55" id="Szp-pH-0rk"/> <segue destination="m26-i1-eiL" kind="push" identifier="pinValidation" id="yUv-cB-P15"/> - <segue destination="B8g-8S-pgn" kind="push" identifier="SlideShowPreview" id="XCJ-4d-eG4"/> <segue destination="Grm-Od-s6s" kind="push" identifier="howtoSegue" id="hRz-3h-McA"/> + <segue destination="M9Q-tM-7CQ" kind="push" identifier="SlideShowPreview" id="jsD-4W-bFm"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="KBf-aZ-Hhk" sceneMemberID="firstResponder"/> @@ -100,12 +100,12 @@ <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackOpaque"/> <connections> <outlet property="pinLabel" destination="Bp1-Dv-nt4" id="6xd-P5-J5U"/> - <segue destination="B8g-8S-pgn" kind="push" identifier="pinValidated" id="gCy-Mv-VrC"/> + <segue destination="M9Q-tM-7CQ" kind="push" identifier="pinValidated" id="nkI-m0-Ps8"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="gh4-1U-6Dm" userLabel="First Responder" sceneMemberID="firstResponder"/> </objects> - <point key="canvasLocation" x="1024" y="-500"/> + <point key="canvasLocation" x="1004" y="-510"/> </scene> <!--New Server View Controller - Nouvelle Connection--> <scene sceneID="RcY-Im-ohw"> @@ -119,19 +119,19 @@ <tableViewSection footerTitle="" id="CVG-Eq-rLd"> <cells> <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="b8A-jh-k26" customClass="EditableTableViewCell"> - <rect key="frame" x="0.0" y="99" width="540" height="44"/> + <rect key="frame" x="0.0" y="30" width="540" height="45"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> + <rect key="frame" x="31" y="1" width="478" height="43"/> <autoresizingMask key="autoresizingMask"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> </view> </tableViewCell> <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="jrI-wU-4NT" customClass="EditableTableViewCell"> - <rect key="frame" x="0.0" y="143" width="540" height="44"/> + <rect key="frame" x="0.0" y="75" width="540" height="44"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> + <rect key="frame" x="31" y="0.0" width="478" height="43"/> <autoresizingMask key="autoresizingMask"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> </view> @@ -158,81 +158,70 @@ <point key="canvasLocation" x="1024" y="-1831"/> </scene> <!--Slide Show Preview Table vc ipad--> - <scene sceneID="ejm-Sz-YCw"> + <scene sceneID="5gD-BL-PRq"> <objects> - <tableViewController storyboardIdentifier="slideShowPreview" id="B8g-8S-pgn" customClass="slideShowPreviewTable_vc_ipad" sceneMemberID="viewController"> - <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="Pc5-8o-PrW"> + <viewController storyboardIdentifier="slideShowPreview" id="M9Q-tM-7CQ" customClass="slideShowPreviewTable_vc_ipad" sceneMemberID="viewController"> + <view key="view" contentMode="scaleToFill" id="8vR-9Z-5Vk"> <rect key="frame" x="0.0" y="64" width="540" height="556"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/> - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> - <view key="tableHeaderView" contentMode="scaleToFill" id="YCJ-J4-RGt"> - <rect key="frame" x="0.0" y="0.0" width="540" height="281"/> - <subviews> - <view contentMode="scaleToFill" id="Is1-dX-SaP"> - <rect key="frame" x="0.0" y="37" width="540" height="208"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> - <subviews> - <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Titre du document" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="5" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="JEW-I6-sw5"> - <rect key="frame" x="20" y="20" width="500" height="168"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/> - <fontDescription key="fontDescription" name="HiraKakuProN-W6" family="Hiragino Kaku Gothic ProN" pointSize="27"/> - <color key="textColor" red="0.21176470589999999" green="0.81568627449999997" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> - <nil key="highlightedColor"/> - </label> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> - </view> - </subviews> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - <sections> - <tableViewSection id="gMl-dC-GqD"> - <cells> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="tqg-R4-Coi"> - <rect key="frame" x="0.0" y="291" width="540" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="f4z-FH-mar"> - <rect key="frame" x="0.0" y="336" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="5jP-bD-Vcy"> - <rect key="frame" x="0.0" y="380" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - </cells> - </tableViewSection> - </sections> - <connections> - <outlet property="dataSource" destination="B8g-8S-pgn" id="SGm-yW-lAs"/> - <outlet property="delegate" destination="B8g-8S-pgn" id="p2A-1P-NJP"/> - </connections> - </tableView> - <navigationItem key="navigationItem" id="4ju-ge-QPw"/> - <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackOpaque"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <subviews> + <view contentMode="scaleToFill" id="iAg-GA-qtj"> + <rect key="frame" x="0.0" y="20" width="540" height="234"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Presentation Title" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="sXT-OZ-7y3"> + <rect key="frame" x="20" y="20" width="500" height="194"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" type="system" pointSize="24"/> + <color key="textColor" red="0.39589986310000003" green="0.87052349449999999" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> + <nil key="highlightedColor"/> + </label> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> + </view> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="0k4-5k-dza"> + <rect key="frame" x="182" y="363" width="177" height="44"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> + <state key="normal" title="Start Presentation" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPresentationAction:" destination="M9Q-tM-7CQ" eventType="touchUpInside" id="ZcD-xo-Cvg"/> + </connections> + </button> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="02F-Tj-9xO" userLabel="slideShowPreview"> + <rect key="frame" x="201" y="438" width="138" height="44"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="17"/> + <state key="normal" title="Preferences" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPrefSettings:" destination="M9Q-tM-7CQ" eventType="touchUpInside" id="oUK-cn-Bx7"/> + </connections> + </button> + </subviews> + <color key="backgroundColor" red="0.92941176469999998" green="0.92941176469999998" blue="0.92941176469999998" alpha="1" colorSpace="calibratedRGB"/> + </view> + <navigationItem key="navigationItem" id="CJJ-Ti-ahy"/> <connections> - <outlet property="optionsTable" destination="Pc5-8o-PrW" id="18R-Zo-CBq"/> - <outlet property="titleLabel" destination="JEW-I6-sw5" id="1AH-TC-z10"/> + <outlet property="prefButton" destination="02F-Tj-9xO" id="vc4-VF-px0"/> + <outlet property="startButton" destination="0k4-5k-dza" id="sMZ-jn-IzZ"/> + <outlet property="titleLabel" destination="sXT-OZ-7y3" id="U2U-p1-it2"/> </connections> - </tableViewController> - <placeholder placeholderIdentifier="IBFirstResponder" id="gg2-6d-fyF" userLabel="First Responder" sceneMemberID="firstResponder"/> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="gp3-Xs-lfE" userLabel="First Responder" sceneMemberID="firstResponder"/> </objects> - <point key="canvasLocation" x="1768" y="-1374"/> + <point key="canvasLocation" x="1754" y="-1374"/> </scene> <!--Base Presentation View Controller--> <scene sceneID="5zi-ge-3SF"> @@ -345,7 +334,7 @@ </connections> </button> <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" directionalLockEnabled="YES" bounces="NO" alwaysBounceHorizontal="YES" pagingEnabled="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" id="DUv-gH-oAo"> - <rect key="frame" x="0.0" y="-1" width="691" height="102"/> + <rect key="frame" x="0.0" y="-1" width="698" height="102"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES"/> <subviews> <view contentMode="scaleToFill" id="JaD-yW-hWg" userLabel="View - StopWatch"> @@ -541,22 +530,18 @@ <rect key="frame" x="0.0" y="22" width="320" height="178"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="320" height="178"/> + <rect key="frame" x="0.0" y="0.0" width="320" height="177"/> <autoresizingMask key="autoresizingMask"/> <subviews> <imageView userInteractionEnabled="NO" tag="1" contentMode="scaleToFill" image="Default.png" id="dn1-99-Dde"> <rect key="frame" x="44" y="3.5" width="233" height="163"/> </imageView> - <label clipsSubviews="YES" userInteractionEnabled="NO" tag="2" contentMode="left" text="1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="1" highlighted="YES" id="qrH-bi-qw7"> - <rect key="frame" x="-605" y="147" width="29" height="21"/> - <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> - <accessibility key="accessibilityConfiguration"> - <accessibilityTraits key="traits" none="YES" selected="YES" staticText="YES"/> - </accessibility> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="2" contentMode="left" text="1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="b5V-aR-n9S"> + <rect key="frame" x="245" y="145" width="32" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <color key="backgroundColor" white="0.80146555659999996" alpha="1" colorSpace="calibratedWhite"/> <fontDescription key="fontDescription" type="system" pointSize="17"/> - <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> - <nil key="highlightedColor"/> + <color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/> </label> </subviews> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> @@ -615,6 +600,7 @@ <image name="Default.png" width="320" height="480"/> <image name="WTPairingScreenshot.png" width="474" height="312"/> <image name="add.png" width="30" height="30"/> + <image name="buttonBackground.png" width="45" height="45"/> <image name="more_ipad.png" width="60" height="60"/> <image name="nextButton_normal.png" width="42" height="230"/> <image name="nextButton_pressed.png" width="42" height="230"/> @@ -693,18 +679,18 @@ <relationship kind="action" name="cancelModalView:"/> </relationships> </class> - <class className="slideShowPreviewTable_vc" superclassName="UITableViewController"> + <class className="slideShowPreviewTable_vc" superclassName="UIViewController"> <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc.h"/> <relationships> + <relationship kind="action" name="startPrefSettings:"/> <relationship kind="action" name="startPresentationAction:"/> - <relationship kind="outlet" name="optionsTable" candidateClass="UITableView"/> + <relationship kind="outlet" name="prefButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="startButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="titleLabel" candidateClass="UILabel"/> </relationships> </class> <class className="slideShowPreviewTable_vc_ipad" superclassName="slideShowPreviewTable_vc"> <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc_ipad.h"/> - <relationships> - <relationship kind="outlet" name="titleLabel" candidateClass="UILabel"/> - </relationships> </class> <class className="slideShowSwipeInList_ipad" superclassName="UITableViewController"> <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowSwipeInList_ipad.h"/> @@ -717,6 +703,6 @@ </simulatedMetricsContainer> <inferredMetricsTieBreakers> <segue reference="YbL-aj-gxv"/> - <segue reference="gCy-Mv-VrC"/> + <segue reference="jsD-4W-bFm"/> </inferredMetricsTieBreakers> </document>
\ No newline at end of file diff --git a/ios/iosremote/iosremote.xcodeproj/project.pbxproj b/ios/iosremote/iosremote.xcodeproj/project.pbxproj index b8793aa6d4a6..a8781fbb6430 100644 --- a/ios/iosremote/iosremote.xcodeproj/project.pbxproj +++ b/ios/iosremote/iosremote.xcodeproj/project.pbxproj @@ -114,6 +114,29 @@ 8CAF3DE017D0DFFD00F931E5 /* WTcontrol~iphone.png in Resources */ = {isa = PBXBuildFile; fileRef = 8CAF3DDE17D0DFFD00F931E5 /* WTcontrol~iphone.png */; }; 8CAF3DE317D1D5D700F931E5 /* more_ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 8CAF3DE117D1D5D600F931E5 /* more_ipad.png */; }; 8CAF3DE417D1D5D700F931E5 /* more_ipad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8CAF3DE217D1D5D700F931E5 /* more_ipad@2x.png */; }; + 8CBF9DEB17DDBFA70044D949 /* IASKAppSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CBF9DC417DDBFA70044D949 /* IASKAppSettingsViewController.m */; }; + 8CBF9DEC17DDBFA70044D949 /* IASKAppSettingsWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CBF9DC617DDBFA70044D949 /* IASKAppSettingsWebViewController.m */; }; + 8CBF9DED17DDBFA70044D949 /* IASKSpecifierValuesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CBF9DC817DDBFA70044D949 /* IASKSpecifierValuesViewController.m */; }; + 8CBF9DEE17DDBFA70044D949 /* IASKSettingsReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CBF9DCC17DDBFA70044D949 /* IASKSettingsReader.m */; }; + 8CBF9DEF17DDBFA70044D949 /* IASKSettingsStore.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CBF9DCE17DDBFA70044D949 /* IASKSettingsStore.m */; }; + 8CBF9DF017DDBFA70044D949 /* IASKSettingsStoreFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CBF9DD017DDBFA70044D949 /* IASKSettingsStoreFile.m */; }; + 8CBF9DF117DDBFA70044D949 /* IASKSettingsStoreUserDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CBF9DD217DDBFA70044D949 /* IASKSettingsStoreUserDefaults.m */; }; + 8CBF9DF217DDBFA70044D949 /* IASKSpecifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CBF9DD417DDBFA70044D949 /* IASKSpecifier.m */; }; + 8CBF9DF317DDBFA70044D949 /* IASKPSSliderSpecifierViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CBF9DD717DDBFA70044D949 /* IASKPSSliderSpecifierViewCell.m */; }; + 8CBF9DF417DDBFA70044D949 /* IASKPSTextFieldSpecifierViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CBF9DD917DDBFA70044D949 /* IASKPSTextFieldSpecifierViewCell.m */; }; + 8CBF9DF517DDBFA70044D949 /* IASKPSTitleValueSpecifierViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CBF9DDB17DDBFA70044D949 /* IASKPSTitleValueSpecifierViewCell.m */; }; + 8CBF9DF617DDBFA70044D949 /* IASKPSToggleSwitchSpecifierViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CBF9DDD17DDBFA70044D949 /* IASKPSToggleSwitchSpecifierViewCell.m */; }; + 8CBF9DF717DDBFA70044D949 /* IASKSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CBF9DDF17DDBFA70044D949 /* IASKSlider.m */; }; + 8CBF9DF817DDBFA70044D949 /* IASKSwitch.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CBF9DE117DDBFA70044D949 /* IASKSwitch.m */; }; + 8CBF9DF917DDBFA70044D949 /* IASKTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CBF9DE317DDBFA70044D949 /* IASKTextField.m */; }; + 8CBF9DFA17DDBFA70044D949 /* IASKAppSettingsView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8CBF9DE517DDBFA70044D949 /* IASKAppSettingsView.xib */; }; + 8CBF9DFB17DDBFA70044D949 /* IASKAppSettingsWebView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8CBF9DE617DDBFA70044D949 /* IASKAppSettingsWebView.xib */; }; + 8CBF9DFC17DDBFA70044D949 /* IASKPSSliderSpecifierViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8CBF9DE717DDBFA70044D949 /* IASKPSSliderSpecifierViewCell.xib */; }; + 8CBF9DFD17DDBFA70044D949 /* IASKPSTextFieldSpecifierViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8CBF9DE817DDBFA70044D949 /* IASKPSTextFieldSpecifierViewCell.xib */; }; + 8CBF9DFE17DDBFA70044D949 /* IASKPSToggleSwitchSpecifierViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8CBF9DE917DDBFA70044D949 /* IASKPSToggleSwitchSpecifierViewCell.xib */; }; + 8CBF9DFF17DDBFA70044D949 /* IASKSpecifierValuesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8CBF9DEA17DDBFA70044D949 /* IASKSpecifierValuesView.xib */; }; + 8CBF9E0117DDC1A80044D949 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8CBF9E0017DDC1A80044D949 /* MessageUI.framework */; }; + 8CBF9E0317DDD2230044D949 /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 8CBF9E0217DDD2230044D949 /* Settings.bundle */; }; 8CD6EC6817CBBAF40071827A /* WalkThroughPageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CD6EC6617CBBAF40071827A /* WalkThroughPageViewController.m */; }; 8CD6EC6917CBBAF40071827A /* WalkThroughPageViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8CD6EC6717CBBAF40071827A /* WalkThroughPageViewController.xib */; }; 8CD6EC7017CC3FA00071827A /* WalkThroughContainerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CD6EC6F17CC3FA00071827A /* WalkThroughContainerViewController.m */; }; @@ -291,6 +314,45 @@ 8CAF3DDE17D0DFFD00F931E5 /* WTcontrol~iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "WTcontrol~iphone.png"; path = "iosremote/WTcontrol~iphone.png"; sourceTree = "<group>"; }; 8CAF3DE117D1D5D600F931E5 /* more_ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = more_ipad.png; path = iosremote/more_ipad.png; sourceTree = "<group>"; }; 8CAF3DE217D1D5D700F931E5 /* more_ipad@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "more_ipad@2x.png"; path = "iosremote/more_ipad@2x.png"; sourceTree = "<group>"; }; + 8CBF9DC317DDBFA70044D949 /* IASKAppSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKAppSettingsViewController.h; sourceTree = "<group>"; }; + 8CBF9DC417DDBFA70044D949 /* IASKAppSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKAppSettingsViewController.m; sourceTree = "<group>"; }; + 8CBF9DC517DDBFA70044D949 /* IASKAppSettingsWebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKAppSettingsWebViewController.h; sourceTree = "<group>"; }; + 8CBF9DC617DDBFA70044D949 /* IASKAppSettingsWebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKAppSettingsWebViewController.m; sourceTree = "<group>"; }; + 8CBF9DC717DDBFA70044D949 /* IASKSpecifierValuesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSpecifierValuesViewController.h; sourceTree = "<group>"; }; + 8CBF9DC817DDBFA70044D949 /* IASKSpecifierValuesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSpecifierValuesViewController.m; sourceTree = "<group>"; }; + 8CBF9DC917DDBFA70044D949 /* IASKViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKViewController.h; sourceTree = "<group>"; }; + 8CBF9DCB17DDBFA70044D949 /* IASKSettingsReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSettingsReader.h; sourceTree = "<group>"; }; + 8CBF9DCC17DDBFA70044D949 /* IASKSettingsReader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSettingsReader.m; sourceTree = "<group>"; }; + 8CBF9DCD17DDBFA70044D949 /* IASKSettingsStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSettingsStore.h; sourceTree = "<group>"; }; + 8CBF9DCE17DDBFA70044D949 /* IASKSettingsStore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSettingsStore.m; sourceTree = "<group>"; }; + 8CBF9DCF17DDBFA70044D949 /* IASKSettingsStoreFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSettingsStoreFile.h; sourceTree = "<group>"; }; + 8CBF9DD017DDBFA70044D949 /* IASKSettingsStoreFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSettingsStoreFile.m; sourceTree = "<group>"; }; + 8CBF9DD117DDBFA70044D949 /* IASKSettingsStoreUserDefaults.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSettingsStoreUserDefaults.h; sourceTree = "<group>"; }; + 8CBF9DD217DDBFA70044D949 /* IASKSettingsStoreUserDefaults.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSettingsStoreUserDefaults.m; sourceTree = "<group>"; }; + 8CBF9DD317DDBFA70044D949 /* IASKSpecifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSpecifier.h; sourceTree = "<group>"; }; + 8CBF9DD417DDBFA70044D949 /* IASKSpecifier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSpecifier.m; sourceTree = "<group>"; }; + 8CBF9DD617DDBFA70044D949 /* IASKPSSliderSpecifierViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKPSSliderSpecifierViewCell.h; sourceTree = "<group>"; }; + 8CBF9DD717DDBFA70044D949 /* IASKPSSliderSpecifierViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKPSSliderSpecifierViewCell.m; sourceTree = "<group>"; }; + 8CBF9DD817DDBFA70044D949 /* IASKPSTextFieldSpecifierViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKPSTextFieldSpecifierViewCell.h; sourceTree = "<group>"; }; + 8CBF9DD917DDBFA70044D949 /* IASKPSTextFieldSpecifierViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKPSTextFieldSpecifierViewCell.m; sourceTree = "<group>"; }; + 8CBF9DDA17DDBFA70044D949 /* IASKPSTitleValueSpecifierViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKPSTitleValueSpecifierViewCell.h; sourceTree = "<group>"; }; + 8CBF9DDB17DDBFA70044D949 /* IASKPSTitleValueSpecifierViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKPSTitleValueSpecifierViewCell.m; sourceTree = "<group>"; }; + 8CBF9DDC17DDBFA70044D949 /* IASKPSToggleSwitchSpecifierViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKPSToggleSwitchSpecifierViewCell.h; sourceTree = "<group>"; }; + 8CBF9DDD17DDBFA70044D949 /* IASKPSToggleSwitchSpecifierViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKPSToggleSwitchSpecifierViewCell.m; sourceTree = "<group>"; }; + 8CBF9DDE17DDBFA70044D949 /* IASKSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSlider.h; sourceTree = "<group>"; }; + 8CBF9DDF17DDBFA70044D949 /* IASKSlider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSlider.m; sourceTree = "<group>"; }; + 8CBF9DE017DDBFA70044D949 /* IASKSwitch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSwitch.h; sourceTree = "<group>"; }; + 8CBF9DE117DDBFA70044D949 /* IASKSwitch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSwitch.m; sourceTree = "<group>"; }; + 8CBF9DE217DDBFA70044D949 /* IASKTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKTextField.h; sourceTree = "<group>"; }; + 8CBF9DE317DDBFA70044D949 /* IASKTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKTextField.m; sourceTree = "<group>"; }; + 8CBF9DE517DDBFA70044D949 /* IASKAppSettingsView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = IASKAppSettingsView.xib; sourceTree = "<group>"; }; + 8CBF9DE617DDBFA70044D949 /* IASKAppSettingsWebView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = IASKAppSettingsWebView.xib; sourceTree = "<group>"; }; + 8CBF9DE717DDBFA70044D949 /* IASKPSSliderSpecifierViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = IASKPSSliderSpecifierViewCell.xib; sourceTree = "<group>"; }; + 8CBF9DE817DDBFA70044D949 /* IASKPSTextFieldSpecifierViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = IASKPSTextFieldSpecifierViewCell.xib; sourceTree = "<group>"; }; + 8CBF9DE917DDBFA70044D949 /* IASKPSToggleSwitchSpecifierViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = IASKPSToggleSwitchSpecifierViewCell.xib; sourceTree = "<group>"; }; + 8CBF9DEA17DDBFA70044D949 /* IASKSpecifierValuesView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = IASKSpecifierValuesView.xib; sourceTree = "<group>"; }; + 8CBF9E0017DDC1A80044D949 /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; }; + 8CBF9E0217DDD2230044D949 /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = "<group>"; }; 8CD6EC6517CBBAF40071827A /* WalkThroughPageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WalkThroughPageViewController.h; path = iosremote/WalkThroughPageViewController.h; sourceTree = "<group>"; }; 8CD6EC6617CBBAF40071827A /* WalkThroughPageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WalkThroughPageViewController.m; path = iosremote/WalkThroughPageViewController.m; sourceTree = "<group>"; }; 8CD6EC6717CBBAF40071827A /* WalkThroughPageViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = WalkThroughPageViewController.xib; path = iosremote/WalkThroughPageViewController.xib; sourceTree = "<group>"; }; @@ -313,6 +375,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 8CBF9E0117DDC1A80044D949 /* MessageUI.framework in Frameworks */, 8C19F41F17B02A8A005BDB61 /* QuartzCore.framework in Frameworks */, 8C19F41D17B00899005BDB61 /* SystemConfiguration.framework in Frameworks */, 571102701794128E007D343B /* libz.dylib in Frameworks */, @@ -382,6 +445,8 @@ 57C6E3E6175E06E800E8BC5F = { isa = PBXGroup; children = ( + 8CBF9E0217DDD2230044D949 /* Settings.bundle */, + 8CBF9E0017DDC1A80044D949 /* MessageUI.framework */, 8C19F41E17B02A8A005BDB61 /* QuartzCore.framework */, 8C19F41C17B00899005BDB61 /* SystemConfiguration.framework */, 8C1A170217A28AB900B4BB3C /* Shared */, @@ -523,8 +588,10 @@ 8C1A170417A28AFD00B4BB3C /* Controllers */, 8C1A170317A28AC900B4BB3C /* Application */, ); + indentWidth = 4; name = Shared; sourceTree = "<group>"; + tabWidth = 4; }; 8C1A170317A28AC900B4BB3C /* Application */ = { isa = PBXGroup; @@ -557,6 +624,7 @@ 8C1A170517A28B0E00B4BB3C /* Library */ = { isa = PBXGroup; children = ( + 8CBF9DC117DDBFA70044D949 /* InAppSettingsKit */, BE9EBD061765BF0800283FD2 /* CoreImage.framework */, 57DC7006178D84490050FC58 /* CoreMotion.framework */, 8C26E5C417A52607007DA4B7 /* MGSplitViewController */, @@ -689,6 +757,82 @@ name = Controllers; sourceTree = "<group>"; }; + 8CBF9DC117DDBFA70044D949 /* InAppSettingsKit */ = { + isa = PBXGroup; + children = ( + 8CBF9DC217DDBFA70044D949 /* Controllers */, + 8CBF9DCA17DDBFA70044D949 /* Models */, + 8CBF9DD517DDBFA70044D949 /* Views */, + 8CBF9DE417DDBFA70044D949 /* Xibs */, + ); + path = InAppSettingsKit; + sourceTree = "<group>"; + }; + 8CBF9DC217DDBFA70044D949 /* Controllers */ = { + isa = PBXGroup; + children = ( + 8CBF9DC317DDBFA70044D949 /* IASKAppSettingsViewController.h */, + 8CBF9DC417DDBFA70044D949 /* IASKAppSettingsViewController.m */, + 8CBF9DC517DDBFA70044D949 /* IASKAppSettingsWebViewController.h */, + 8CBF9DC617DDBFA70044D949 /* IASKAppSettingsWebViewController.m */, + 8CBF9DC717DDBFA70044D949 /* IASKSpecifierValuesViewController.h */, + 8CBF9DC817DDBFA70044D949 /* IASKSpecifierValuesViewController.m */, + 8CBF9DC917DDBFA70044D949 /* IASKViewController.h */, + ); + path = Controllers; + sourceTree = "<group>"; + }; + 8CBF9DCA17DDBFA70044D949 /* Models */ = { + isa = PBXGroup; + children = ( + 8CBF9DCB17DDBFA70044D949 /* IASKSettingsReader.h */, + 8CBF9DCC17DDBFA70044D949 /* IASKSettingsReader.m */, + 8CBF9DCD17DDBFA70044D949 /* IASKSettingsStore.h */, + 8CBF9DCE17DDBFA70044D949 /* IASKSettingsStore.m */, + 8CBF9DCF17DDBFA70044D949 /* IASKSettingsStoreFile.h */, + 8CBF9DD017DDBFA70044D949 /* IASKSettingsStoreFile.m */, + 8CBF9DD117DDBFA70044D949 /* IASKSettingsStoreUserDefaults.h */, + 8CBF9DD217DDBFA70044D949 /* IASKSettingsStoreUserDefaults.m */, + 8CBF9DD317DDBFA70044D949 /* IASKSpecifier.h */, + 8CBF9DD417DDBFA70044D949 /* IASKSpecifier.m */, + ); + path = Models; + sourceTree = "<group>"; + }; + 8CBF9DD517DDBFA70044D949 /* Views */ = { + isa = PBXGroup; + children = ( + 8CBF9DD617DDBFA70044D949 /* IASKPSSliderSpecifierViewCell.h */, + 8CBF9DD717DDBFA70044D949 /* IASKPSSliderSpecifierViewCell.m */, + 8CBF9DD817DDBFA70044D949 /* IASKPSTextFieldSpecifierViewCell.h */, + 8CBF9DD917DDBFA70044D949 /* IASKPSTextFieldSpecifierViewCell.m */, + 8CBF9DDA17DDBFA70044D949 /* IASKPSTitleValueSpecifierViewCell.h */, + 8CBF9DDB17DDBFA70044D949 /* IASKPSTitleValueSpecifierViewCell.m */, + 8CBF9DDC17DDBFA70044D949 /* IASKPSToggleSwitchSpecifierViewCell.h */, + 8CBF9DDD17DDBFA70044D949 /* IASKPSToggleSwitchSpecifierViewCell.m */, + 8CBF9DDE17DDBFA70044D949 /* IASKSlider.h */, + 8CBF9DDF17DDBFA70044D949 /* IASKSlider.m */, + 8CBF9DE017DDBFA70044D949 /* IASKSwitch.h */, + 8CBF9DE117DDBFA70044D949 /* IASKSwitch.m */, + 8CBF9DE217DDBFA70044D949 /* IASKTextField.h */, + 8CBF9DE317DDBFA70044D949 /* IASKTextField.m */, + ); + path = Views; + sourceTree = "<group>"; + }; + 8CBF9DE417DDBFA70044D949 /* Xibs */ = { + isa = PBXGroup; + children = ( + 8CBF9DE517DDBFA70044D949 /* IASKAppSettingsView.xib */, + 8CBF9DE617DDBFA70044D949 /* IASKAppSettingsWebView.xib */, + 8CBF9DE717DDBFA70044D949 /* IASKPSSliderSpecifierViewCell.xib */, + 8CBF9DE817DDBFA70044D949 /* IASKPSTextFieldSpecifierViewCell.xib */, + 8CBF9DE917DDBFA70044D949 /* IASKPSToggleSwitchSpecifierViewCell.xib */, + 8CBF9DEA17DDBFA70044D949 /* IASKSpecifierValuesView.xib */, + ); + path = Xibs; + sourceTree = "<group>"; + }; 8CD6EC6A17CBBAFF0071827A /* Views */ = { isa = PBXGroup; children = ( @@ -826,6 +970,13 @@ 8C3A648C17DCBE9E004A77D9 /* timer_settime_btn_dark.png in Resources */, 8C3A648D17DCBE9E004A77D9 /* timer_settime_btn_dark@2x.png in Resources */, 8C3A648E17DCBE9E004A77D9 /* timer_start_btn_dark.png in Resources */, + 8CBF9DFA17DDBFA70044D949 /* IASKAppSettingsView.xib in Resources */, + 8CBF9DFB17DDBFA70044D949 /* IASKAppSettingsWebView.xib in Resources */, + 8CBF9DFC17DDBFA70044D949 /* IASKPSSliderSpecifierViewCell.xib in Resources */, + 8CBF9DFD17DDBFA70044D949 /* IASKPSTextFieldSpecifierViewCell.xib in Resources */, + 8CBF9DFE17DDBFA70044D949 /* IASKPSToggleSwitchSpecifierViewCell.xib in Resources */, + 8CBF9DFF17DDBFA70044D949 /* IASKSpecifierValuesView.xib in Resources */, + 8CBF9E0317DDD2230044D949 /* Settings.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -890,6 +1041,21 @@ 8CD6EC7017CC3FA00071827A /* WalkThroughContainerViewController.m in Sources */, 8C23B46917DA158C00FB4DE6 /* UIView+Shadowing.m in Sources */, 8C23B47017DB419300FB4DE6 /* Timer.m in Sources */, + 8CBF9DEB17DDBFA70044D949 /* IASKAppSettingsViewController.m in Sources */, + 8CBF9DEC17DDBFA70044D949 /* IASKAppSettingsWebViewController.m in Sources */, + 8CBF9DED17DDBFA70044D949 /* IASKSpecifierValuesViewController.m in Sources */, + 8CBF9DEE17DDBFA70044D949 /* IASKSettingsReader.m in Sources */, + 8CBF9DEF17DDBFA70044D949 /* IASKSettingsStore.m in Sources */, + 8CBF9DF017DDBFA70044D949 /* IASKSettingsStoreFile.m in Sources */, + 8CBF9DF117DDBFA70044D949 /* IASKSettingsStoreUserDefaults.m in Sources */, + 8CBF9DF217DDBFA70044D949 /* IASKSpecifier.m in Sources */, + 8CBF9DF317DDBFA70044D949 /* IASKPSSliderSpecifierViewCell.m in Sources */, + 8CBF9DF417DDBFA70044D949 /* IASKPSTextFieldSpecifierViewCell.m in Sources */, + 8CBF9DF517DDBFA70044D949 /* IASKPSTitleValueSpecifierViewCell.m in Sources */, + 8CBF9DF617DDBFA70044D949 /* IASKPSToggleSwitchSpecifierViewCell.m in Sources */, + 8CBF9DF717DDBFA70044D949 /* IASKSlider.m in Sources */, + 8CBF9DF817DDBFA70044D949 /* IASKSwitch.m in Sources */, + 8CBF9DF917DDBFA70044D949 /* IASKTextField.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/ios/iosremote/iosremote/AppDelegate.h b/ios/iosremote/iosremote/AppDelegate.h index 5a1573434a75..ff1dd19e7bdc 100644 --- a/ios/iosremote/iosremote/AppDelegate.h +++ b/ios/iosremote/iosremote/AppDelegate.h @@ -12,11 +12,8 @@ @class ViewController; @interface AppDelegate : UIResponder <UIApplicationDelegate> { - // make sure we instanciate only once motionManager - CMMotionManager *motionManager; } -@property (readonly) CMMotionManager *motionManager; @property (strong, nonatomic) UIWindow *window; @end diff --git a/ios/iosremote/iosremote/AppDelegate.m b/ios/iosremote/iosremote/AppDelegate.m index 8e4e12feb8e7..6eeb1243639a 100644 --- a/ios/iosremote/iosremote/AppDelegate.m +++ b/ios/iosremote/iosremote/AppDelegate.m @@ -7,7 +7,6 @@ // file, You can obtain one at http://mozilla.org/MPL/2.0/. #import "AppDelegate.h" -#import "ControlVariables.h" #import "UINavigationController+Theme.h" #define UIColorFromRGB(rgbValue) [UIColor \ @@ -56,13 +55,19 @@ blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0] pageControl.pageIndicatorTintColor = UIColorFromRGB(0x2980b9); pageControl.currentPageIndicatorTintColor = UIColorFromRGB(0x1abc9c); } + + [self reconfigure]; + return YES; } -- (CMMotionManager *)motionManager +- (void) reconfigure { - if (!motionManager) motionManager = [[CMMotionManager alloc] init]; - return motionManager; + kDefaultTimerWidget = [[NSUserDefaults standardUserDefaults] integerForKey:@"DEFAULT_TIMING_WIDGET"]; + kCountDownTimerDefaultDuration = [[NSUserDefaults standardUserDefaults] integerForKey:@"TIMER_DEFAULT_DURATION"]; + kStopwatchAutoStart = [[NSUserDefaults standardUserDefaults] boolForKey:@"STOPWATCH_AUTO_START"]; + kCountDownTimerAutoStart = [[NSUserDefaults standardUserDefaults] boolForKey:@"TIMER_AUTO_START"]; + kCountDownTimerVibration = [[NSUserDefaults standardUserDefaults] boolForKey:@"TIMER_VIBRATION"]; } - (void)applicationWillResignActive:(UIApplication *)application diff --git a/ios/iosremote/iosremote/BasePresentationViewController.h b/ios/iosremote/iosremote/BasePresentationViewController.h index 8374ebf80711..05a9819d78fc 100644 --- a/ios/iosremote/iosremote/BasePresentationViewController.h +++ b/ios/iosremote/iosremote/BasePresentationViewController.h @@ -21,6 +21,8 @@ @property (weak, nonatomic) IBOutlet UIButton *previousButton; @property (weak, nonatomic) IBOutlet UIButton *nextButton; +@property (strong, nonatomic) UIViewController * initialNavController; + // Split view controller - (void) hideMaster:(BOOL)hideState; @property BOOL masterIsHiddenWhenLandscape; diff --git a/ios/iosremote/iosremote/BasePresentationViewController.m b/ios/iosremote/iosremote/BasePresentationViewController.m index 742ab66e0fba..d4ad6bd0576c 100644 --- a/ios/iosremote/iosremote/BasePresentationViewController.m +++ b/ios/iosremote/iosremote/BasePresentationViewController.m @@ -18,7 +18,8 @@ #import "Timer.h" #import "PopoverView.h" #import "UIView+Shadowing.h" -#import "ControlVariables.h" +#import "LibONavigationController.h" +#import "AppDelegate.h" #import <QuartzCore/QuartzCore.h> #import <CoreText/CoreText.h> @@ -79,7 +80,8 @@ [cell setTag:-indexPath.row - 1]; [cell.thumbnail setTag:1]; - NSLog(@"cell at Tag %d created", cell.tag); + + [cell.thumbnail setShadow]; [self.comManager.interpreter.slideShow getContentAtIndex:indexPath.row forView:cell]; @@ -210,6 +212,7 @@ UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"iPad_autosize" bundle: nil]; server_list_vc_ipad * slvc = [mainStoryboard instantiateViewControllerWithIdentifier:@"serverList"]; + self.initialNavController = slvc; slvc.modalPresentationStyle = UIModalPresentationFormSheet; slvc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self presentViewController:slvc animated:YES completion:^{}]; @@ -258,11 +261,9 @@ 794.0, /*self.NotesView.frame.size.height + self.horizontalTableView.frame.size.height*/ 303.0); self.horizontalTableView.bounds = CGRectMake(0, 0, 129, 768); - } completion:^(BOOL finished) { -// [self.horizontalTableView setHidden:NO]; -// [self.horizontalTableView reloadData]; - }]; + } completion:nil]; } + [self.popoverTimePickerController dismissPopoverAnimated:YES]; } - (SlideShow *)slideshow @@ -298,13 +299,9 @@ self.horizontalTableView.rowHeight = kCellWidth; - UIImageView *bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"slideshowRail"]]; - [bgImageView setFrame:self.horizontalTableView.frame]; - - self.horizontalTableView.backgroundView = bgImageView; + self.horizontalTableView.backgroundColor = [UIColor colorWithRed:.674509804 green:.729411765 blue:.760784314 alpha:1.0]; - self.horizontalTableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine; - self.horizontalTableView.separatorColor = [UIColor clearColor]; + self.horizontalTableView.separatorStyle = UITableViewCellSeparatorStyleNone; NSOperationQueue *mainQueue = [NSOperationQueue mainQueue]; @@ -325,6 +322,12 @@ [self.timerView setShadowLight]; self.timer.delegate = self; self.stopWatchTimerScrollView.contentSize = CGSizeMake(1240, 62); + + + CGRect frame = self.stopWatchTimerScrollView.frame; + frame.origin.x = frame.size.width * kDefaultTimerWidget; + frame.origin.y = 0; + [self.stopWatchTimerScrollView scrollRectToVisible:frame animated:YES]; } - (void)viewDidAppear:(BOOL)animated @@ -340,14 +343,12 @@ [self.welcome_blocking_page setAlpha:1]; } completion:nil]; -// NSLog(@"%f %f %f %f", self.NotesView.frame.origin.x, self.NotesView.frame.origin.y, self.NotesView.frame.size.height, self.NotesView.frame.size.width); if (UIInterfaceOrientationIsLandscape(self.interfaceOrientation)) { [UIView animateWithDuration:0.25 animations:^{ self.NotesView.frame = CGRectMake(-15.0, /*self.NotesView.frame.origin.y - self.horizontalTableView.frame.size.height*/ 466.0, self.NotesView.frame.size.width, /*self.NotesView.frame.size.height + self.horizontalTableView.frame.size.height*/ 176.0); - NSLog(@"h:%f", self.horizontalTableView.bounds.size.height); }]; } else { [UIView animateWithDuration:0.25 animations:^{ @@ -380,14 +381,13 @@ if ([self.comManager.interpreter.slideShow size] == 0) [self setWelcomePageVisible:YES]; if (!self.presentedViewController) { - UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"iPad_autosize" - bundle: nil]; - slideShowPreviewTable_vc_ipad * sspt = [mainStoryboard instantiateViewControllerWithIdentifier:@"slideShowPreview"]; + // We fire up the retained initialNavController which will bring back the preview view controller page. + self.initialNavController.modalPresentationStyle = UIModalPresentationFormSheet; + self.initialNavController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; - sspt.modalPresentationStyle = UIModalPresentationFormSheet; - sspt.modalTransitionStyle = UIModalTransitionStyleCoverVertical; - - [self presentViewController:sspt animated:YES completion:^{}]; + [self presentViewController:self.initialNavController animated:YES completion:^{}]; + [self.timer clear]; + [self.stopWatch clear]; } }]; [self startConnectionModal:nil]; @@ -408,8 +408,10 @@ [self setWelcomePageVisible:visible]; [self.currentSlideImageView setUserInteractionEnabled:YES]; } - if ([[NSUserDefaults standardUserDefaults] boolForKey:KEY_TIMER]) + if (kStopwatchAutoStart) [self.stopWatch start]; + if (kCountDownTimerAutoStart) + [self.timer start]; }]; self.slideshow.delegate = self; } @@ -426,6 +428,7 @@ - (void) viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; + [self.popoverTimePickerController dismissPopoverAnimated:YES]; } @@ -436,6 +439,7 @@ } - (void)viewDidUnload { + [self.popoverTimePickerController dismissPopoverAnimated:YES]; [self setHorizontalTableView:nil]; [self setNotesView:nil]; [self setNoteWebView:nil]; @@ -541,6 +545,9 @@ static BOOL isBlank = NO; #pragma mark - Reconnection - (void) didReceiveDisconnection { + //Dismiss time picker in case that users didn't have the time to tap elsewhere to dismiss it. + [self.popoverTimePickerController dismissPopoverAnimated:YES]; + [self dismissViewControllerAnimated:YES completion:^{ [self startConnectionModal:nil]; }]; diff --git a/ios/iosremote/iosremote/Communication/Client.m b/ios/iosremote/iosremote/Communication/Client.m index 6c03f05ede42..70aead015b35 100644 --- a/ios/iosremote/iosremote/Communication/Client.m +++ b/ios/iosremote/iosremote/Communication/Client.m @@ -103,8 +103,6 @@ NSLock *streamStatusLock; // Look up if there is already a pin code for this client. NSUserDefaults * userDefaluts = [NSUserDefaults standardUserDefaults]; - if(!userDefaluts) - NSLog(@"userDefaults nil"); NSInteger newPin = [userDefaluts integerForKey:self.name]; // If not, generate one. diff --git a/ios/iosremote/iosremote/Communication/CommunicationManager.m b/ios/iosremote/iosremote/Communication/CommunicationManager.m index 3c003d03d135..69f1de8b22ea 100644 --- a/ios/iosremote/iosremote/Communication/CommunicationManager.m +++ b/ios/iosremote/iosremote/Communication/CommunicationManager.m @@ -143,9 +143,6 @@ self = [self init]; NSUserDefaults * userDefaluts = [NSUserDefaults standardUserDefaults]; - if(!userDefaluts) - NSLog(@"userDefaults nil"); - NSData *dataRepresentingExistingServers = [userDefaluts objectForKey:ExistingServersKey]; if (dataRepresentingExistingServers != nil) { diff --git a/ios/iosremote/iosremote/ControlVariables.h b/ios/iosremote/iosremote/ControlVariables.h index 83a87cd3c3b5..3db19f6bebc5 100644 --- a/ios/iosremote/iosremote/ControlVariables.h +++ b/ios/iosremote/iosremote/ControlVariables.h @@ -47,4 +47,7 @@ #define kAppSmallTextFont [UIFont fontWithName:@"HelveticaNeue" size:14.0f] +int kDefaultTimerWidget, kCountDownTimerDefaultDuration; +BOOL kStopwatchAutoStart, kCountDownTimerAutoStart, kCountDownTimerVibration; + #endif diff --git a/ios/iosremote/iosremote/HorizontalSlideCell.m b/ios/iosremote/iosremote/HorizontalSlideCell.m index f9661d76b86a..c918c547e032 100644 --- a/ios/iosremote/iosremote/HorizontalSlideCell.m +++ b/ios/iosremote/iosremote/HorizontalSlideCell.m @@ -7,7 +7,6 @@ // file, You can obtain one at http://mozilla.org/MPL/2.0/. #import "HorizontalSlideCell.h" -#import "ControlVariables.h" @implementation HorizontalSlideCell diff --git a/ios/iosremote/iosremote/Timer.m b/ios/iosremote/iosremote/Timer.m index 2929ca1fc589..8a1b59222095 100644 --- a/ios/iosremote/iosremote/Timer.m +++ b/ios/iosremote/iosremote/Timer.m @@ -34,7 +34,7 @@ int initSecondsLeft; self = [super init]; self.state = TIMER_STATE_CLEARED; self.set = NO; - secondsLeft = 0; + secondsLeft = kCountDownTimerDefaultDuration * 60; return self; } diff --git a/ios/iosremote/iosremote/UIViewController+LibOStyling.m b/ios/iosremote/iosremote/UIViewController+LibOStyling.m index b9cd7ef51077..0ec108d37bb9 100644 --- a/ios/iosremote/iosremote/UIViewController+LibOStyling.m +++ b/ios/iosremote/iosremote/UIViewController+LibOStyling.m @@ -7,7 +7,6 @@ */ #import "UIViewController+LibOStyling.h" -#import "ControlVariables.h" #import "Timer.h" #import "stopWatch.h" diff --git a/ios/iosremote/iosremote/en.lproj/iPhone_autoSize.storyboard b/ios/iosremote/iosremote/en.lproj/iPhone_autoSize.storyboard index edc3083b3210..2348f44f12a3 100644 --- a/ios/iosremote/iosremote/en.lproj/iPhone_autoSize.storyboard +++ b/ios/iosremote/iosremote/en.lproj/iPhone_autoSize.storyboard @@ -73,8 +73,8 @@ <connections> <outlet property="serverTable" destination="naQ-T4-jWV" id="hd3-Vm-fk6"/> <segue destination="UPe-3R-KdQ" kind="push" identifier="pinValidation" id="UQQ-pV-3o3"/> - <segue destination="Ybo-9c-MB8" kind="push" identifier="SlideShowPreview" id="EWS-Nn-mQc"/> <segue destination="xbC-af-Ssw" kind="push" identifier="howtoSegue" id="gc3-eP-dlL"/> + <segue destination="clb-xa-kbC" kind="push" identifier="SlideShowPreview" id="0SL-2n-fWY"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="4" sceneMemberID="firstResponder"/> @@ -113,7 +113,7 @@ <navigationItem key="navigationItem" id="c3o-oA-oin"/> <connections> <outlet property="pinLabel" destination="f2u-bG-5ak" id="Y7S-6h-awe"/> - <segue destination="Ybo-9c-MB8" kind="push" identifier="pinValidated" id="pTl-ua-9pr"/> + <segue destination="clb-xa-kbC" kind="push" identifier="pinValidated" id="5gZ-R8-9y7"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="iok-RC-uS6" userLabel="First Responder" sceneMemberID="firstResponder"/> @@ -173,6 +173,73 @@ </objects> <point key="canvasLocation" x="604" y="-475"/> </scene> + <!--Slide Show Preview Table vc iphone--> + <scene sceneID="Okd-pU-rsp"> + <objects> + <viewController id="clb-xa-kbC" customClass="slideShowPreviewTable_vc_iphone" sceneMemberID="viewController"> + <view key="view" contentMode="scaleToFill" id="YiY-DI-phW"> + <rect key="frame" x="0.0" y="64" width="320" height="504"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <subviews> + <view contentMode="scaleToFill" id="v0p-8b-LF3"> + <rect key="frame" x="0.0" y="20" width="320" height="180"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES"/> + <subviews> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Presentation Title" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="5" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="3qH-vt-uVP"> + <rect key="frame" x="20" y="20" width="280" height="140"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <fontDescription key="fontDescription" type="system" pointSize="24"/> + <color key="textColor" red="0.39589986310000003" green="0.87052349449999999" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> + <nil key="highlightedColor"/> + </label> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> + </view> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="ry2-Av-6er" userLabel="slideShowPreview"> + <rect key="frame" x="101" y="393" width="118" height="44"/> + <autoresizingMask key="autoresizingMask" flexibleMinY="YES"/> + <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> + <state key="normal" title="Preferences" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPrefSettings:" destination="clb-xa-kbC" eventType="touchUpInside" id="Vku-7x-W0P"/> + </connections> + </button> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="h9u-yi-XwD"> + <rect key="frame" x="77" y="328" width="166" height="47"/> + <autoresizingMask key="autoresizingMask" flexibleMinY="YES"/> + <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> + <state key="normal" title="Start Presentation" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPresentationAction:" destination="clb-xa-kbC" eventType="touchUpInside" id="JAB-Hw-8ed"/> + </connections> + </button> + </subviews> + <color key="backgroundColor" red="0.92941176469999998" green="0.92941176469999998" blue="0.92941176469999998" alpha="1" colorSpace="calibratedRGB"/> + </view> + <navigationItem key="navigationItem" id="AXt-EI-0Z5"/> + <connections> + <outlet property="prefButton" destination="ry2-Av-6er" id="86W-Q5-ThH"/> + <outlet property="startButton" destination="h9u-yi-XwD" id="FYY-7H-Bvm"/> + <outlet property="titleLabel" destination="3qH-vt-uVP" id="SKw-9E-eDC"/> + <segue destination="LZb-9n-W8N" kind="push" identifier="slideShowSegue" id="r8H-3e-A9k"/> + </connections> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="1nc-Wo-te6" userLabel="First Responder" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="612" y="460"/> + </scene> <!--Reveal View Controller--> <scene sceneID="koC-gb-LIk"> <objects> @@ -468,7 +535,6 @@ <color key="titleColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> </state> <connections> - <action selector="accPointerAction:" destination="Ivv-3X-Nhr" eventType="touchDown" id="35J-B2-GIE"/> <action selector="accPointerAction:" destination="Ivv-3X-Nhr" eventType="touchUpOutside" id="F8W-M1-8Lb"/> <action selector="accPointerAction:" destination="Ivv-3X-Nhr" eventType="touchUpInside" id="Lb1-HF-wdh"/> <action selector="pointerAction:" destination="Ivv-3X-Nhr" eventType="touchDown" id="gK9-ff-k1g"/> @@ -497,83 +563,6 @@ </objects> <point key="canvasLocation" x="2290" y="1807"/> </scene> - <!--Slide Show Preview Table vc iphone--> - <scene sceneID="Tvi-bD-vMC"> - <objects> - <tableViewController id="Ybo-9c-MB8" customClass="slideShowPreviewTable_vc_iphone" sceneMemberID="viewController"> - <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="singleLineEtched" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="rWA-v3-wtf"> - <rect key="frame" x="0.0" y="64" width="320" height="504"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/> - <color key="backgroundColor" red="0.93333713503649562" green="0.9260378649635036" blue="0.92826186131386856" alpha="1" colorSpace="calibratedRGB"/> - <view key="tableHeaderView" contentMode="scaleToFill" id="nOZ-aL-o5J"> - <rect key="frame" x="0.0" y="0.0" width="320" height="157"/> - <subviews> - <view contentMode="scaleToFill" id="9RB-yM-BkW"> - <rect key="frame" x="0.0" y="17" width="320" height="140"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> - <subviews> - <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Title of the presentation(TODO)" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="7" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="wJK-w7-Zs9"> - <rect key="frame" x="20" y="20" width="280" height="100"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/> - <fontDescription key="fontDescription" name="HiraKakuProN-W6" family="Hiragino Kaku Gothic ProN" pointSize="19"/> - <color key="textColor" red="0.21176470589999999" green="0.81568627449999997" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> - <nil key="highlightedColor"/> - </label> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> - </view> - </subviews> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - <sections> - <tableViewSection id="8wQ-rK-ve4"> - <cells> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="0D7-tO-bVg"> - <rect key="frame" x="0.0" y="167" width="320" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="10" y="1" width="300" height="43"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="LrN-2p-yDw"> - <rect key="frame" x="0.0" y="212" width="320" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="10" y="0.0" width="300" height="43"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="Cdv-T8-mH7"> - <rect key="frame" x="0.0" y="256" width="320" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="10" y="0.0" width="300" height="43"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - </cells> - </tableViewSection> - </sections> - <connections> - <outlet property="dataSource" destination="Ybo-9c-MB8" id="nDU-cr-5RV"/> - <outlet property="delegate" destination="Ybo-9c-MB8" id="6Gf-g5-zXK"/> - </connections> - </tableView> - <navigationItem key="navigationItem" id="TMc-Fg-zXV"/> - <connections> - <outlet property="optionsTable" destination="rWA-v3-wtf" id="qXR-p3-aap"/> - <outlet property="titleLabel" destination="wJK-w7-Zs9" id="ZPz-9h-et8"/> - <segue destination="LZb-9n-W8N" kind="push" identifier="slideShowSegue" id="ATf-mQ-0ht"/> - </connections> - </tableViewController> - <placeholder placeholderIdentifier="IBFirstResponder" id="z5S-eI-1pb" userLabel="First Responder" sceneMemberID="firstResponder"/> - </objects> - <point key="canvasLocation" x="604" y="309"/> - </scene> <!--LibO Navigation Controller--> <scene sceneID="yRe-s4-oKK"> <objects> @@ -597,6 +586,7 @@ <image name="Default-568h.png" width="640" height="1136"/> <image name="WTPairingScreenshot.png" width="474" height="312"/> <image name="add.png" width="30" height="30"/> + <image name="buttonBackground.png" width="45" height="45"/> <image name="ic_launcher.png" width="16" height="16"/> <image name="pointer.png" width="143" height="147"/> <image name="pointer_pushed.png" width="143" height="147"/> @@ -608,14 +598,86 @@ <image name="timer_settime_btn.png" width="60" height="60"/> <image name="timer_start_btn.png" width="60" height="60"/> </resources> + <classes> + <class className="EditableTableViewCell" superclassName="UITableViewCell"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/EditableTableViewCell.h"/> + </class> + <class className="LibONavigationController" superclassName="UINavigationController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/LibONavigationController.h"/> + </class> + <class className="SWRevealViewController" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/SWRevealViewController.h"/> + <relationships> + <relationship kind="action" name="callDP:"/> + </relationships> + </class> + <class className="WalkThroughContainerViewController" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/WalkThroughContainerViewController.h"/> + </class> + <class className="newServerViewController" superclassName="UITableViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/newServerViewController.h"/> + <relationships> + <relationship kind="action" name="save:"/> + <relationship kind="outlet" name="saveButton" candidateClass="UIBarButtonItem"/> + </relationships> + </class> + <class className="pinValidation_vc" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/pinValidation_vc.h"/> + <relationships> + <relationship kind="outlet" name="pinLabel" candidateClass="UILabel"/> + <relationship kind="outlet" name="statusLabel" candidateClass="UILabel"/> + </relationships> + </class> + <class className="server_list_vc" superclassName="UITableViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/server_list_vc.h"/> + <relationships> + <relationship kind="outlet" name="serverTable" candidateClass="UITableView"/> + </relationships> + </class> + <class className="slideShowPreviewTable_vc" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc.h"/> + <relationships> + <relationship kind="action" name="startPrefSettings:"/> + <relationship kind="action" name="startPresentationAction:"/> + <relationship kind="outlet" name="prefButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="startButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="titleLabel" candidateClass="UILabel"/> + </relationships> + </class> + <class className="slideShowPreviewTable_vc_iphone" superclassName="slideShowPreviewTable_vc"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc_iphone.h"/> + </class> + <class className="slideShowSwipeInList" superclassName="UITableViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowSwipeInList.h"/> + </class> + <class className="slideShow_vc" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShow_vc.h"/> + <relationships> + <relationship kind="action" name="nextSlideAction:"/> + <relationship kind="action" name="pointerAction:"/> + <relationship kind="action" name="previousSlideAction:"/> + <relationship kind="outlet" name="blockingView" candidateClass="UIView"/> + <relationship kind="outlet" name="bottomView" candidateClass="UIView"/> + <relationship kind="outlet" name="lecturer_notes" candidateClass="UIWebView"/> + <relationship kind="outlet" name="movingPointer" candidateClass="UIView"/> + <relationship kind="outlet" name="notesView" candidateClass="UIView"/> + <relationship kind="outlet" name="pointerBtn" candidateClass="UIButton"/> + <relationship kind="outlet" name="revealButtonItem" candidateClass="UIBarButtonItem"/> + <relationship kind="outlet" name="secondarySlideView" candidateClass="UIImageView"/> + <relationship kind="outlet" name="slideNumber" candidateClass="UILabel"/> + <relationship kind="outlet" name="slideView" candidateClass="UIImageView"/> + <relationship kind="outlet" name="touchPointerImage" candidateClass="UIImageView"/> + </relationships> + </class> + </classes> <simulatedMetricsContainer key="defaultSimulatedMetrics"> <simulatedStatusBarMetrics key="statusBar"/> <simulatedOrientationMetrics key="orientation"/> <simulatedScreenMetrics key="destination" type="retina4"/> </simulatedMetricsContainer> <inferredMetricsTieBreakers> - <segue reference="eIY-4P-1sI"/> - <segue reference="pTl-ua-9pr"/> <segue reference="mx5-BO-ZzL"/> + <segue reference="5gZ-R8-9y7"/> + <segue reference="eIY-4P-1sI"/> </inferredMetricsTieBreakers> </document>
\ No newline at end of file diff --git a/ios/iosremote/iosremote/en.lproj/iPhone_autoSize.strings b/ios/iosremote/iosremote/en.lproj/iPhone_autoSize.strings Binary files differindex 8f60258ce29e..35fc4a7256e7 100644 --- a/ios/iosremote/iosremote/en.lproj/iPhone_autoSize.strings +++ b/ios/iosremote/iosremote/en.lproj/iPhone_autoSize.strings diff --git a/ios/iosremote/iosremote/en.lproj/iPhone_autoSize_old.storyboard b/ios/iosremote/iosremote/en.lproj/iPhone_autoSize_old.storyboard index edc3083b3210..2348f44f12a3 100644 --- a/ios/iosremote/iosremote/en.lproj/iPhone_autoSize_old.storyboard +++ b/ios/iosremote/iosremote/en.lproj/iPhone_autoSize_old.storyboard @@ -73,8 +73,8 @@ <connections> <outlet property="serverTable" destination="naQ-T4-jWV" id="hd3-Vm-fk6"/> <segue destination="UPe-3R-KdQ" kind="push" identifier="pinValidation" id="UQQ-pV-3o3"/> - <segue destination="Ybo-9c-MB8" kind="push" identifier="SlideShowPreview" id="EWS-Nn-mQc"/> <segue destination="xbC-af-Ssw" kind="push" identifier="howtoSegue" id="gc3-eP-dlL"/> + <segue destination="clb-xa-kbC" kind="push" identifier="SlideShowPreview" id="0SL-2n-fWY"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="4" sceneMemberID="firstResponder"/> @@ -113,7 +113,7 @@ <navigationItem key="navigationItem" id="c3o-oA-oin"/> <connections> <outlet property="pinLabel" destination="f2u-bG-5ak" id="Y7S-6h-awe"/> - <segue destination="Ybo-9c-MB8" kind="push" identifier="pinValidated" id="pTl-ua-9pr"/> + <segue destination="clb-xa-kbC" kind="push" identifier="pinValidated" id="5gZ-R8-9y7"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="iok-RC-uS6" userLabel="First Responder" sceneMemberID="firstResponder"/> @@ -173,6 +173,73 @@ </objects> <point key="canvasLocation" x="604" y="-475"/> </scene> + <!--Slide Show Preview Table vc iphone--> + <scene sceneID="Okd-pU-rsp"> + <objects> + <viewController id="clb-xa-kbC" customClass="slideShowPreviewTable_vc_iphone" sceneMemberID="viewController"> + <view key="view" contentMode="scaleToFill" id="YiY-DI-phW"> + <rect key="frame" x="0.0" y="64" width="320" height="504"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <subviews> + <view contentMode="scaleToFill" id="v0p-8b-LF3"> + <rect key="frame" x="0.0" y="20" width="320" height="180"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES"/> + <subviews> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Presentation Title" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="5" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="3qH-vt-uVP"> + <rect key="frame" x="20" y="20" width="280" height="140"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <fontDescription key="fontDescription" type="system" pointSize="24"/> + <color key="textColor" red="0.39589986310000003" green="0.87052349449999999" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> + <nil key="highlightedColor"/> + </label> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> + </view> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="ry2-Av-6er" userLabel="slideShowPreview"> + <rect key="frame" x="101" y="393" width="118" height="44"/> + <autoresizingMask key="autoresizingMask" flexibleMinY="YES"/> + <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> + <state key="normal" title="Preferences" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPrefSettings:" destination="clb-xa-kbC" eventType="touchUpInside" id="Vku-7x-W0P"/> + </connections> + </button> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="h9u-yi-XwD"> + <rect key="frame" x="77" y="328" width="166" height="47"/> + <autoresizingMask key="autoresizingMask" flexibleMinY="YES"/> + <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> + <state key="normal" title="Start Presentation" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPresentationAction:" destination="clb-xa-kbC" eventType="touchUpInside" id="JAB-Hw-8ed"/> + </connections> + </button> + </subviews> + <color key="backgroundColor" red="0.92941176469999998" green="0.92941176469999998" blue="0.92941176469999998" alpha="1" colorSpace="calibratedRGB"/> + </view> + <navigationItem key="navigationItem" id="AXt-EI-0Z5"/> + <connections> + <outlet property="prefButton" destination="ry2-Av-6er" id="86W-Q5-ThH"/> + <outlet property="startButton" destination="h9u-yi-XwD" id="FYY-7H-Bvm"/> + <outlet property="titleLabel" destination="3qH-vt-uVP" id="SKw-9E-eDC"/> + <segue destination="LZb-9n-W8N" kind="push" identifier="slideShowSegue" id="r8H-3e-A9k"/> + </connections> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="1nc-Wo-te6" userLabel="First Responder" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="612" y="460"/> + </scene> <!--Reveal View Controller--> <scene sceneID="koC-gb-LIk"> <objects> @@ -468,7 +535,6 @@ <color key="titleColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> </state> <connections> - <action selector="accPointerAction:" destination="Ivv-3X-Nhr" eventType="touchDown" id="35J-B2-GIE"/> <action selector="accPointerAction:" destination="Ivv-3X-Nhr" eventType="touchUpOutside" id="F8W-M1-8Lb"/> <action selector="accPointerAction:" destination="Ivv-3X-Nhr" eventType="touchUpInside" id="Lb1-HF-wdh"/> <action selector="pointerAction:" destination="Ivv-3X-Nhr" eventType="touchDown" id="gK9-ff-k1g"/> @@ -497,83 +563,6 @@ </objects> <point key="canvasLocation" x="2290" y="1807"/> </scene> - <!--Slide Show Preview Table vc iphone--> - <scene sceneID="Tvi-bD-vMC"> - <objects> - <tableViewController id="Ybo-9c-MB8" customClass="slideShowPreviewTable_vc_iphone" sceneMemberID="viewController"> - <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="singleLineEtched" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="rWA-v3-wtf"> - <rect key="frame" x="0.0" y="64" width="320" height="504"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/> - <color key="backgroundColor" red="0.93333713503649562" green="0.9260378649635036" blue="0.92826186131386856" alpha="1" colorSpace="calibratedRGB"/> - <view key="tableHeaderView" contentMode="scaleToFill" id="nOZ-aL-o5J"> - <rect key="frame" x="0.0" y="0.0" width="320" height="157"/> - <subviews> - <view contentMode="scaleToFill" id="9RB-yM-BkW"> - <rect key="frame" x="0.0" y="17" width="320" height="140"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> - <subviews> - <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Title of the presentation(TODO)" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="7" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="wJK-w7-Zs9"> - <rect key="frame" x="20" y="20" width="280" height="100"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/> - <fontDescription key="fontDescription" name="HiraKakuProN-W6" family="Hiragino Kaku Gothic ProN" pointSize="19"/> - <color key="textColor" red="0.21176470589999999" green="0.81568627449999997" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> - <nil key="highlightedColor"/> - </label> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> - </view> - </subviews> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - <sections> - <tableViewSection id="8wQ-rK-ve4"> - <cells> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="0D7-tO-bVg"> - <rect key="frame" x="0.0" y="167" width="320" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="10" y="1" width="300" height="43"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="LrN-2p-yDw"> - <rect key="frame" x="0.0" y="212" width="320" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="10" y="0.0" width="300" height="43"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="Cdv-T8-mH7"> - <rect key="frame" x="0.0" y="256" width="320" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="10" y="0.0" width="300" height="43"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - </cells> - </tableViewSection> - </sections> - <connections> - <outlet property="dataSource" destination="Ybo-9c-MB8" id="nDU-cr-5RV"/> - <outlet property="delegate" destination="Ybo-9c-MB8" id="6Gf-g5-zXK"/> - </connections> - </tableView> - <navigationItem key="navigationItem" id="TMc-Fg-zXV"/> - <connections> - <outlet property="optionsTable" destination="rWA-v3-wtf" id="qXR-p3-aap"/> - <outlet property="titleLabel" destination="wJK-w7-Zs9" id="ZPz-9h-et8"/> - <segue destination="LZb-9n-W8N" kind="push" identifier="slideShowSegue" id="ATf-mQ-0ht"/> - </connections> - </tableViewController> - <placeholder placeholderIdentifier="IBFirstResponder" id="z5S-eI-1pb" userLabel="First Responder" sceneMemberID="firstResponder"/> - </objects> - <point key="canvasLocation" x="604" y="309"/> - </scene> <!--LibO Navigation Controller--> <scene sceneID="yRe-s4-oKK"> <objects> @@ -597,6 +586,7 @@ <image name="Default-568h.png" width="640" height="1136"/> <image name="WTPairingScreenshot.png" width="474" height="312"/> <image name="add.png" width="30" height="30"/> + <image name="buttonBackground.png" width="45" height="45"/> <image name="ic_launcher.png" width="16" height="16"/> <image name="pointer.png" width="143" height="147"/> <image name="pointer_pushed.png" width="143" height="147"/> @@ -608,14 +598,86 @@ <image name="timer_settime_btn.png" width="60" height="60"/> <image name="timer_start_btn.png" width="60" height="60"/> </resources> + <classes> + <class className="EditableTableViewCell" superclassName="UITableViewCell"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/EditableTableViewCell.h"/> + </class> + <class className="LibONavigationController" superclassName="UINavigationController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/LibONavigationController.h"/> + </class> + <class className="SWRevealViewController" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/SWRevealViewController.h"/> + <relationships> + <relationship kind="action" name="callDP:"/> + </relationships> + </class> + <class className="WalkThroughContainerViewController" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/WalkThroughContainerViewController.h"/> + </class> + <class className="newServerViewController" superclassName="UITableViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/newServerViewController.h"/> + <relationships> + <relationship kind="action" name="save:"/> + <relationship kind="outlet" name="saveButton" candidateClass="UIBarButtonItem"/> + </relationships> + </class> + <class className="pinValidation_vc" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/pinValidation_vc.h"/> + <relationships> + <relationship kind="outlet" name="pinLabel" candidateClass="UILabel"/> + <relationship kind="outlet" name="statusLabel" candidateClass="UILabel"/> + </relationships> + </class> + <class className="server_list_vc" superclassName="UITableViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/server_list_vc.h"/> + <relationships> + <relationship kind="outlet" name="serverTable" candidateClass="UITableView"/> + </relationships> + </class> + <class className="slideShowPreviewTable_vc" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc.h"/> + <relationships> + <relationship kind="action" name="startPrefSettings:"/> + <relationship kind="action" name="startPresentationAction:"/> + <relationship kind="outlet" name="prefButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="startButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="titleLabel" candidateClass="UILabel"/> + </relationships> + </class> + <class className="slideShowPreviewTable_vc_iphone" superclassName="slideShowPreviewTable_vc"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc_iphone.h"/> + </class> + <class className="slideShowSwipeInList" superclassName="UITableViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowSwipeInList.h"/> + </class> + <class className="slideShow_vc" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShow_vc.h"/> + <relationships> + <relationship kind="action" name="nextSlideAction:"/> + <relationship kind="action" name="pointerAction:"/> + <relationship kind="action" name="previousSlideAction:"/> + <relationship kind="outlet" name="blockingView" candidateClass="UIView"/> + <relationship kind="outlet" name="bottomView" candidateClass="UIView"/> + <relationship kind="outlet" name="lecturer_notes" candidateClass="UIWebView"/> + <relationship kind="outlet" name="movingPointer" candidateClass="UIView"/> + <relationship kind="outlet" name="notesView" candidateClass="UIView"/> + <relationship kind="outlet" name="pointerBtn" candidateClass="UIButton"/> + <relationship kind="outlet" name="revealButtonItem" candidateClass="UIBarButtonItem"/> + <relationship kind="outlet" name="secondarySlideView" candidateClass="UIImageView"/> + <relationship kind="outlet" name="slideNumber" candidateClass="UILabel"/> + <relationship kind="outlet" name="slideView" candidateClass="UIImageView"/> + <relationship kind="outlet" name="touchPointerImage" candidateClass="UIImageView"/> + </relationships> + </class> + </classes> <simulatedMetricsContainer key="defaultSimulatedMetrics"> <simulatedStatusBarMetrics key="statusBar"/> <simulatedOrientationMetrics key="orientation"/> <simulatedScreenMetrics key="destination" type="retina4"/> </simulatedMetricsContainer> <inferredMetricsTieBreakers> - <segue reference="eIY-4P-1sI"/> - <segue reference="pTl-ua-9pr"/> <segue reference="mx5-BO-ZzL"/> + <segue reference="5gZ-R8-9y7"/> + <segue reference="eIY-4P-1sI"/> </inferredMetricsTieBreakers> </document>
\ No newline at end of file diff --git a/ios/iosremote/iosremote/fr.lproj/iPhone_autoSize.storyboard b/ios/iosremote/iosremote/fr.lproj/iPhone_autoSize.storyboard index 8825a870a220..fad3ed75707d 100644 --- a/ios/iosremote/iosremote/fr.lproj/iPhone_autoSize.storyboard +++ b/ios/iosremote/iosremote/fr.lproj/iPhone_autoSize.storyboard @@ -75,8 +75,8 @@ Contrôle Distant</string> <connections> <outlet property="serverTable" destination="naQ-T4-jWV" id="hd3-Vm-fk6"/> <segue destination="UPe-3R-KdQ" kind="push" identifier="pinValidation" id="UQQ-pV-3o3"/> - <segue destination="Ybo-9c-MB8" kind="push" identifier="SlideShowPreview" id="EWS-Nn-mQc"/> <segue destination="xbC-af-Ssw" kind="push" identifier="howtoSegue" id="gc3-eP-dlL"/> + <segue destination="clb-xa-kbC" kind="push" identifier="SlideShowPreview" id="0SL-2n-fWY"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="4" sceneMemberID="firstResponder"/> @@ -115,7 +115,7 @@ Contrôle Distant</string> <navigationItem key="navigationItem" id="c3o-oA-oin"/> <connections> <outlet property="pinLabel" destination="f2u-bG-5ak" id="Y7S-6h-awe"/> - <segue destination="Ybo-9c-MB8" kind="push" identifier="pinValidated" id="pTl-ua-9pr"/> + <segue destination="clb-xa-kbC" kind="push" identifier="pinValidated" id="5gZ-R8-9y7"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="iok-RC-uS6" userLabel="First Responder" sceneMemberID="firstResponder"/> @@ -175,6 +175,73 @@ Contrôle Distant</string> </objects> <point key="canvasLocation" x="604" y="-475"/> </scene> + <!--Slide Show Preview Table vc iphone--> + <scene sceneID="Okd-pU-rsp"> + <objects> + <viewController id="clb-xa-kbC" customClass="slideShowPreviewTable_vc_iphone" sceneMemberID="viewController"> + <view key="view" contentMode="scaleToFill" id="YiY-DI-phW"> + <rect key="frame" x="0.0" y="64" width="320" height="504"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <subviews> + <view contentMode="scaleToFill" id="v0p-8b-LF3"> + <rect key="frame" x="0.0" y="20" width="320" height="180"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES"/> + <subviews> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Presentation Title" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="5" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="3qH-vt-uVP"> + <rect key="frame" x="20" y="20" width="280" height="140"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <fontDescription key="fontDescription" type="system" pointSize="24"/> + <color key="textColor" red="0.39589986310000003" green="0.87052349449999999" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> + <nil key="highlightedColor"/> + </label> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> + </view> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="ry2-Av-6er" userLabel="slideShowPreview"> + <rect key="frame" x="101" y="393" width="118" height="44"/> + <autoresizingMask key="autoresizingMask" flexibleMinY="YES"/> + <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> + <state key="normal" title="Preferences" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPrefSettings:" destination="clb-xa-kbC" eventType="touchUpInside" id="Vku-7x-W0P"/> + </connections> + </button> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="h9u-yi-XwD"> + <rect key="frame" x="77" y="328" width="166" height="47"/> + <autoresizingMask key="autoresizingMask" flexibleMinY="YES"/> + <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> + <state key="normal" title="Start Presentation" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPresentationAction:" destination="clb-xa-kbC" eventType="touchUpInside" id="JAB-Hw-8ed"/> + </connections> + </button> + </subviews> + <color key="backgroundColor" red="0.92941176469999998" green="0.92941176469999998" blue="0.92941176469999998" alpha="1" colorSpace="calibratedRGB"/> + </view> + <navigationItem key="navigationItem" id="AXt-EI-0Z5"/> + <connections> + <outlet property="prefButton" destination="ry2-Av-6er" id="86W-Q5-ThH"/> + <outlet property="startButton" destination="h9u-yi-XwD" id="FYY-7H-Bvm"/> + <outlet property="titleLabel" destination="3qH-vt-uVP" id="SKw-9E-eDC"/> + <segue destination="LZb-9n-W8N" kind="push" identifier="slideShowSegue" id="r8H-3e-A9k"/> + </connections> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="1nc-Wo-te6" userLabel="First Responder" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="612" y="460"/> + </scene> <!--Reveal View Controller--> <scene sceneID="koC-gb-LIk"> <objects> @@ -470,7 +537,6 @@ Contrôle Distant</string> <color key="titleColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> </state> <connections> - <action selector="accPointerAction:" destination="Ivv-3X-Nhr" eventType="touchDown" id="35J-B2-GIE"/> <action selector="accPointerAction:" destination="Ivv-3X-Nhr" eventType="touchUpOutside" id="F8W-M1-8Lb"/> <action selector="accPointerAction:" destination="Ivv-3X-Nhr" eventType="touchUpInside" id="Lb1-HF-wdh"/> <action selector="pointerAction:" destination="Ivv-3X-Nhr" eventType="touchDown" id="gK9-ff-k1g"/> @@ -499,83 +565,6 @@ Contrôle Distant</string> </objects> <point key="canvasLocation" x="2290" y="1807"/> </scene> - <!--Slide Show Preview Table vc iphone--> - <scene sceneID="Tvi-bD-vMC"> - <objects> - <tableViewController id="Ybo-9c-MB8" customClass="slideShowPreviewTable_vc_iphone" sceneMemberID="viewController"> - <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="singleLineEtched" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="rWA-v3-wtf"> - <rect key="frame" x="0.0" y="64" width="320" height="504"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/> - <color key="backgroundColor" red="0.93333713503649562" green="0.9260378649635036" blue="0.92826186131386856" alpha="1" colorSpace="calibratedRGB"/> - <view key="tableHeaderView" contentMode="scaleToFill" id="nOZ-aL-o5J"> - <rect key="frame" x="0.0" y="0.0" width="320" height="157"/> - <subviews> - <view contentMode="scaleToFill" id="9RB-yM-BkW"> - <rect key="frame" x="0.0" y="17" width="320" height="140"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> - <subviews> - <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Titre du document" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="7" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="wJK-w7-Zs9"> - <rect key="frame" x="20" y="20" width="280" height="100"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/> - <fontDescription key="fontDescription" name="HiraKakuProN-W6" family="Hiragino Kaku Gothic ProN" pointSize="19"/> - <color key="textColor" red="0.21176470589999999" green="0.81568627449999997" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> - <nil key="highlightedColor"/> - </label> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> - </view> - </subviews> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - <sections> - <tableViewSection id="8wQ-rK-ve4"> - <cells> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="0D7-tO-bVg"> - <rect key="frame" x="0.0" y="167" width="320" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="10" y="1" width="300" height="43"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="LrN-2p-yDw"> - <rect key="frame" x="0.0" y="212" width="320" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="10" y="0.0" width="300" height="43"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="Cdv-T8-mH7"> - <rect key="frame" x="0.0" y="256" width="320" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="10" y="0.0" width="300" height="43"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - </cells> - </tableViewSection> - </sections> - <connections> - <outlet property="dataSource" destination="Ybo-9c-MB8" id="nDU-cr-5RV"/> - <outlet property="delegate" destination="Ybo-9c-MB8" id="6Gf-g5-zXK"/> - </connections> - </tableView> - <navigationItem key="navigationItem" id="TMc-Fg-zXV"/> - <connections> - <outlet property="optionsTable" destination="rWA-v3-wtf" id="qXR-p3-aap"/> - <outlet property="titleLabel" destination="wJK-w7-Zs9" id="ZPz-9h-et8"/> - <segue destination="LZb-9n-W8N" kind="push" identifier="slideShowSegue" id="ATf-mQ-0ht"/> - </connections> - </tableViewController> - <placeholder placeholderIdentifier="IBFirstResponder" id="z5S-eI-1pb" userLabel="First Responder" sceneMemberID="firstResponder"/> - </objects> - <point key="canvasLocation" x="604" y="309"/> - </scene> <!--LibO Navigation Controller--> <scene sceneID="yRe-s4-oKK"> <objects> @@ -599,6 +588,7 @@ Contrôle Distant</string> <image name="Default-568h.png" width="640" height="1136"/> <image name="WTPairingScreenshot.png" width="474" height="312"/> <image name="add.png" width="30" height="30"/> + <image name="buttonBackground.png" width="45" height="45"/> <image name="ic_launcher.png" width="16" height="16"/> <image name="pointer.png" width="143" height="147"/> <image name="pointer_pushed.png" width="143" height="147"/> @@ -610,14 +600,86 @@ Contrôle Distant</string> <image name="timer_settime_btn.png" width="60" height="60"/> <image name="timer_start_btn.png" width="60" height="60"/> </resources> + <classes> + <class className="EditableTableViewCell" superclassName="UITableViewCell"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/EditableTableViewCell.h"/> + </class> + <class className="LibONavigationController" superclassName="UINavigationController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/LibONavigationController.h"/> + </class> + <class className="SWRevealViewController" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/SWRevealViewController.h"/> + <relationships> + <relationship kind="action" name="callDP:"/> + </relationships> + </class> + <class className="WalkThroughContainerViewController" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/WalkThroughContainerViewController.h"/> + </class> + <class className="newServerViewController" superclassName="UITableViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/newServerViewController.h"/> + <relationships> + <relationship kind="action" name="save:"/> + <relationship kind="outlet" name="saveButton" candidateClass="UIBarButtonItem"/> + </relationships> + </class> + <class className="pinValidation_vc" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/pinValidation_vc.h"/> + <relationships> + <relationship kind="outlet" name="pinLabel" candidateClass="UILabel"/> + <relationship kind="outlet" name="statusLabel" candidateClass="UILabel"/> + </relationships> + </class> + <class className="server_list_vc" superclassName="UITableViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/server_list_vc.h"/> + <relationships> + <relationship kind="outlet" name="serverTable" candidateClass="UITableView"/> + </relationships> + </class> + <class className="slideShowPreviewTable_vc" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc.h"/> + <relationships> + <relationship kind="action" name="startPrefSettings:"/> + <relationship kind="action" name="startPresentationAction:"/> + <relationship kind="outlet" name="prefButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="startButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="titleLabel" candidateClass="UILabel"/> + </relationships> + </class> + <class className="slideShowPreviewTable_vc_iphone" superclassName="slideShowPreviewTable_vc"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc_iphone.h"/> + </class> + <class className="slideShowSwipeInList" superclassName="UITableViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowSwipeInList.h"/> + </class> + <class className="slideShow_vc" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShow_vc.h"/> + <relationships> + <relationship kind="action" name="nextSlideAction:"/> + <relationship kind="action" name="pointerAction:"/> + <relationship kind="action" name="previousSlideAction:"/> + <relationship kind="outlet" name="blockingView" candidateClass="UIView"/> + <relationship kind="outlet" name="bottomView" candidateClass="UIView"/> + <relationship kind="outlet" name="lecturer_notes" candidateClass="UIWebView"/> + <relationship kind="outlet" name="movingPointer" candidateClass="UIView"/> + <relationship kind="outlet" name="notesView" candidateClass="UIView"/> + <relationship kind="outlet" name="pointerBtn" candidateClass="UIButton"/> + <relationship kind="outlet" name="revealButtonItem" candidateClass="UIBarButtonItem"/> + <relationship kind="outlet" name="secondarySlideView" candidateClass="UIImageView"/> + <relationship kind="outlet" name="slideNumber" candidateClass="UILabel"/> + <relationship kind="outlet" name="slideView" candidateClass="UIImageView"/> + <relationship kind="outlet" name="touchPointerImage" candidateClass="UIImageView"/> + </relationships> + </class> + </classes> <simulatedMetricsContainer key="defaultSimulatedMetrics"> <simulatedStatusBarMetrics key="statusBar"/> <simulatedOrientationMetrics key="orientation"/> <simulatedScreenMetrics key="destination" type="retina4"/> </simulatedMetricsContainer> <inferredMetricsTieBreakers> - <segue reference="eIY-4P-1sI"/> - <segue reference="pTl-ua-9pr"/> <segue reference="mx5-BO-ZzL"/> + <segue reference="5gZ-R8-9y7"/> + <segue reference="eIY-4P-1sI"/> </inferredMetricsTieBreakers> </document>
\ No newline at end of file diff --git a/ios/iosremote/iosremote/fr.lproj/iPhone_autoSize.strings b/ios/iosremote/iosremote/fr.lproj/iPhone_autoSize.strings Binary files differindex a3d897943a10..a46df5ea55c1 100644 --- a/ios/iosremote/iosremote/fr.lproj/iPhone_autoSize.strings +++ b/ios/iosremote/iosremote/fr.lproj/iPhone_autoSize.strings diff --git a/ios/iosremote/iosremote/fr.lproj/iPhone_autoSize_old.storyboard b/ios/iosremote/iosremote/fr.lproj/iPhone_autoSize_old.storyboard index 8825a870a220..fad3ed75707d 100644 --- a/ios/iosremote/iosremote/fr.lproj/iPhone_autoSize_old.storyboard +++ b/ios/iosremote/iosremote/fr.lproj/iPhone_autoSize_old.storyboard @@ -75,8 +75,8 @@ Contrôle Distant</string> <connections> <outlet property="serverTable" destination="naQ-T4-jWV" id="hd3-Vm-fk6"/> <segue destination="UPe-3R-KdQ" kind="push" identifier="pinValidation" id="UQQ-pV-3o3"/> - <segue destination="Ybo-9c-MB8" kind="push" identifier="SlideShowPreview" id="EWS-Nn-mQc"/> <segue destination="xbC-af-Ssw" kind="push" identifier="howtoSegue" id="gc3-eP-dlL"/> + <segue destination="clb-xa-kbC" kind="push" identifier="SlideShowPreview" id="0SL-2n-fWY"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="4" sceneMemberID="firstResponder"/> @@ -115,7 +115,7 @@ Contrôle Distant</string> <navigationItem key="navigationItem" id="c3o-oA-oin"/> <connections> <outlet property="pinLabel" destination="f2u-bG-5ak" id="Y7S-6h-awe"/> - <segue destination="Ybo-9c-MB8" kind="push" identifier="pinValidated" id="pTl-ua-9pr"/> + <segue destination="clb-xa-kbC" kind="push" identifier="pinValidated" id="5gZ-R8-9y7"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="iok-RC-uS6" userLabel="First Responder" sceneMemberID="firstResponder"/> @@ -175,6 +175,73 @@ Contrôle Distant</string> </objects> <point key="canvasLocation" x="604" y="-475"/> </scene> + <!--Slide Show Preview Table vc iphone--> + <scene sceneID="Okd-pU-rsp"> + <objects> + <viewController id="clb-xa-kbC" customClass="slideShowPreviewTable_vc_iphone" sceneMemberID="viewController"> + <view key="view" contentMode="scaleToFill" id="YiY-DI-phW"> + <rect key="frame" x="0.0" y="64" width="320" height="504"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <subviews> + <view contentMode="scaleToFill" id="v0p-8b-LF3"> + <rect key="frame" x="0.0" y="20" width="320" height="180"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES"/> + <subviews> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Presentation Title" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="5" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="3qH-vt-uVP"> + <rect key="frame" x="20" y="20" width="280" height="140"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <fontDescription key="fontDescription" type="system" pointSize="24"/> + <color key="textColor" red="0.39589986310000003" green="0.87052349449999999" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> + <nil key="highlightedColor"/> + </label> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> + </view> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="ry2-Av-6er" userLabel="slideShowPreview"> + <rect key="frame" x="101" y="393" width="118" height="44"/> + <autoresizingMask key="autoresizingMask" flexibleMinY="YES"/> + <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> + <state key="normal" title="Preferences" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPrefSettings:" destination="clb-xa-kbC" eventType="touchUpInside" id="Vku-7x-W0P"/> + </connections> + </button> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="h9u-yi-XwD"> + <rect key="frame" x="77" y="328" width="166" height="47"/> + <autoresizingMask key="autoresizingMask" flexibleMinY="YES"/> + <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> + <state key="normal" title="Start Presentation" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPresentationAction:" destination="clb-xa-kbC" eventType="touchUpInside" id="JAB-Hw-8ed"/> + </connections> + </button> + </subviews> + <color key="backgroundColor" red="0.92941176469999998" green="0.92941176469999998" blue="0.92941176469999998" alpha="1" colorSpace="calibratedRGB"/> + </view> + <navigationItem key="navigationItem" id="AXt-EI-0Z5"/> + <connections> + <outlet property="prefButton" destination="ry2-Av-6er" id="86W-Q5-ThH"/> + <outlet property="startButton" destination="h9u-yi-XwD" id="FYY-7H-Bvm"/> + <outlet property="titleLabel" destination="3qH-vt-uVP" id="SKw-9E-eDC"/> + <segue destination="LZb-9n-W8N" kind="push" identifier="slideShowSegue" id="r8H-3e-A9k"/> + </connections> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="1nc-Wo-te6" userLabel="First Responder" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="612" y="460"/> + </scene> <!--Reveal View Controller--> <scene sceneID="koC-gb-LIk"> <objects> @@ -470,7 +537,6 @@ Contrôle Distant</string> <color key="titleColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> </state> <connections> - <action selector="accPointerAction:" destination="Ivv-3X-Nhr" eventType="touchDown" id="35J-B2-GIE"/> <action selector="accPointerAction:" destination="Ivv-3X-Nhr" eventType="touchUpOutside" id="F8W-M1-8Lb"/> <action selector="accPointerAction:" destination="Ivv-3X-Nhr" eventType="touchUpInside" id="Lb1-HF-wdh"/> <action selector="pointerAction:" destination="Ivv-3X-Nhr" eventType="touchDown" id="gK9-ff-k1g"/> @@ -499,83 +565,6 @@ Contrôle Distant</string> </objects> <point key="canvasLocation" x="2290" y="1807"/> </scene> - <!--Slide Show Preview Table vc iphone--> - <scene sceneID="Tvi-bD-vMC"> - <objects> - <tableViewController id="Ybo-9c-MB8" customClass="slideShowPreviewTable_vc_iphone" sceneMemberID="viewController"> - <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="singleLineEtched" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="rWA-v3-wtf"> - <rect key="frame" x="0.0" y="64" width="320" height="504"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/> - <color key="backgroundColor" red="0.93333713503649562" green="0.9260378649635036" blue="0.92826186131386856" alpha="1" colorSpace="calibratedRGB"/> - <view key="tableHeaderView" contentMode="scaleToFill" id="nOZ-aL-o5J"> - <rect key="frame" x="0.0" y="0.0" width="320" height="157"/> - <subviews> - <view contentMode="scaleToFill" id="9RB-yM-BkW"> - <rect key="frame" x="0.0" y="17" width="320" height="140"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> - <subviews> - <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Titre du document" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="7" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="wJK-w7-Zs9"> - <rect key="frame" x="20" y="20" width="280" height="100"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/> - <fontDescription key="fontDescription" name="HiraKakuProN-W6" family="Hiragino Kaku Gothic ProN" pointSize="19"/> - <color key="textColor" red="0.21176470589999999" green="0.81568627449999997" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> - <nil key="highlightedColor"/> - </label> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> - </view> - </subviews> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - <sections> - <tableViewSection id="8wQ-rK-ve4"> - <cells> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="0D7-tO-bVg"> - <rect key="frame" x="0.0" y="167" width="320" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="10" y="1" width="300" height="43"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="LrN-2p-yDw"> - <rect key="frame" x="0.0" y="212" width="320" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="10" y="0.0" width="300" height="43"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="Cdv-T8-mH7"> - <rect key="frame" x="0.0" y="256" width="320" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="10" y="0.0" width="300" height="43"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - </cells> - </tableViewSection> - </sections> - <connections> - <outlet property="dataSource" destination="Ybo-9c-MB8" id="nDU-cr-5RV"/> - <outlet property="delegate" destination="Ybo-9c-MB8" id="6Gf-g5-zXK"/> - </connections> - </tableView> - <navigationItem key="navigationItem" id="TMc-Fg-zXV"/> - <connections> - <outlet property="optionsTable" destination="rWA-v3-wtf" id="qXR-p3-aap"/> - <outlet property="titleLabel" destination="wJK-w7-Zs9" id="ZPz-9h-et8"/> - <segue destination="LZb-9n-W8N" kind="push" identifier="slideShowSegue" id="ATf-mQ-0ht"/> - </connections> - </tableViewController> - <placeholder placeholderIdentifier="IBFirstResponder" id="z5S-eI-1pb" userLabel="First Responder" sceneMemberID="firstResponder"/> - </objects> - <point key="canvasLocation" x="604" y="309"/> - </scene> <!--LibO Navigation Controller--> <scene sceneID="yRe-s4-oKK"> <objects> @@ -599,6 +588,7 @@ Contrôle Distant</string> <image name="Default-568h.png" width="640" height="1136"/> <image name="WTPairingScreenshot.png" width="474" height="312"/> <image name="add.png" width="30" height="30"/> + <image name="buttonBackground.png" width="45" height="45"/> <image name="ic_launcher.png" width="16" height="16"/> <image name="pointer.png" width="143" height="147"/> <image name="pointer_pushed.png" width="143" height="147"/> @@ -610,14 +600,86 @@ Contrôle Distant</string> <image name="timer_settime_btn.png" width="60" height="60"/> <image name="timer_start_btn.png" width="60" height="60"/> </resources> + <classes> + <class className="EditableTableViewCell" superclassName="UITableViewCell"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/EditableTableViewCell.h"/> + </class> + <class className="LibONavigationController" superclassName="UINavigationController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/LibONavigationController.h"/> + </class> + <class className="SWRevealViewController" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/SWRevealViewController.h"/> + <relationships> + <relationship kind="action" name="callDP:"/> + </relationships> + </class> + <class className="WalkThroughContainerViewController" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/WalkThroughContainerViewController.h"/> + </class> + <class className="newServerViewController" superclassName="UITableViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/newServerViewController.h"/> + <relationships> + <relationship kind="action" name="save:"/> + <relationship kind="outlet" name="saveButton" candidateClass="UIBarButtonItem"/> + </relationships> + </class> + <class className="pinValidation_vc" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/pinValidation_vc.h"/> + <relationships> + <relationship kind="outlet" name="pinLabel" candidateClass="UILabel"/> + <relationship kind="outlet" name="statusLabel" candidateClass="UILabel"/> + </relationships> + </class> + <class className="server_list_vc" superclassName="UITableViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/server_list_vc.h"/> + <relationships> + <relationship kind="outlet" name="serverTable" candidateClass="UITableView"/> + </relationships> + </class> + <class className="slideShowPreviewTable_vc" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc.h"/> + <relationships> + <relationship kind="action" name="startPrefSettings:"/> + <relationship kind="action" name="startPresentationAction:"/> + <relationship kind="outlet" name="prefButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="startButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="titleLabel" candidateClass="UILabel"/> + </relationships> + </class> + <class className="slideShowPreviewTable_vc_iphone" superclassName="slideShowPreviewTable_vc"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc_iphone.h"/> + </class> + <class className="slideShowSwipeInList" superclassName="UITableViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowSwipeInList.h"/> + </class> + <class className="slideShow_vc" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShow_vc.h"/> + <relationships> + <relationship kind="action" name="nextSlideAction:"/> + <relationship kind="action" name="pointerAction:"/> + <relationship kind="action" name="previousSlideAction:"/> + <relationship kind="outlet" name="blockingView" candidateClass="UIView"/> + <relationship kind="outlet" name="bottomView" candidateClass="UIView"/> + <relationship kind="outlet" name="lecturer_notes" candidateClass="UIWebView"/> + <relationship kind="outlet" name="movingPointer" candidateClass="UIView"/> + <relationship kind="outlet" name="notesView" candidateClass="UIView"/> + <relationship kind="outlet" name="pointerBtn" candidateClass="UIButton"/> + <relationship kind="outlet" name="revealButtonItem" candidateClass="UIBarButtonItem"/> + <relationship kind="outlet" name="secondarySlideView" candidateClass="UIImageView"/> + <relationship kind="outlet" name="slideNumber" candidateClass="UILabel"/> + <relationship kind="outlet" name="slideView" candidateClass="UIImageView"/> + <relationship kind="outlet" name="touchPointerImage" candidateClass="UIImageView"/> + </relationships> + </class> + </classes> <simulatedMetricsContainer key="defaultSimulatedMetrics"> <simulatedStatusBarMetrics key="statusBar"/> <simulatedOrientationMetrics key="orientation"/> <simulatedScreenMetrics key="destination" type="retina4"/> </simulatedMetricsContainer> <inferredMetricsTieBreakers> - <segue reference="eIY-4P-1sI"/> - <segue reference="pTl-ua-9pr"/> <segue reference="mx5-BO-ZzL"/> + <segue reference="5gZ-R8-9y7"/> + <segue reference="eIY-4P-1sI"/> </inferredMetricsTieBreakers> </document>
\ No newline at end of file diff --git a/ios/iosremote/iosremote/iosremote-Prefix.pch b/ios/iosremote/iosremote/iosremote-Prefix.pch index 4e499e106105..7c895573a66e 100644 --- a/ios/iosremote/iosremote/iosremote-Prefix.pch +++ b/ios/iosremote/iosremote/iosremote-Prefix.pch @@ -12,4 +12,5 @@ #import <UIKit/UIKit.h> #import <Foundation/Foundation.h> #import "TestFlight.h" + #import "ControlVariables.h" #endif diff --git a/ios/iosremote/iosremote/serverList_vc.m b/ios/iosremote/iosremote/serverList_vc.m index d6aacae24dc3..dbbbc8c1d607 100644 --- a/ios/iosremote/iosremote/serverList_vc.m +++ b/ios/iosremote/iosremote/serverList_vc.m @@ -11,7 +11,6 @@ #import "newServer_vc.h" #import "Server.h" #import "Client.h" -#import "ControlVariables.h" #import "PopoverView.h" #include <sys/socket.h> diff --git a/ios/iosremote/iosremote/slideShowPreviewTable_vc.h b/ios/iosremote/iosremote/slideShowPreviewTable_vc.h index ee0e3bacfb36..31dbeb87621a 100644 --- a/ios/iosremote/iosremote/slideShowPreviewTable_vc.h +++ b/ios/iosremote/iosremote/slideShowPreviewTable_vc.h @@ -11,18 +11,20 @@ #define OPTION_TIMER NSLocalizedString(@"Timer auto-start", nil) #define OPTION_POINTER NSLocalizedString(@"Touch pointer", nil) -#define KEY_TIMER @"TIMER_AUTOSTART_ENABLED" -#define KEY_POINTER @"TOUCH_POINTER_ENABLED" +#define STOPWATCH_AUTO_START @"STOPWATCH_AUTO_START" -@interface slideShowPreviewTable_vc : UITableViewController <UITableViewDataSource, UITableViewDelegate> +@interface slideShowPreviewTable_vc : UIViewController <UITableViewDataSource, UITableViewDelegate> -@property (strong, nonatomic) IBOutlet UITableView *optionsTable; @property (nonatomic, strong) CommunicationManager * comManager; -@property (nonatomic, strong) id slideShowStartObserver; -@property (nonatomic, strong) NSArray * optionsArray; +@property (nonatomic, strong) id slideShowStartObserver; @property (nonatomic, strong) id titleObserver; --(IBAction)startPresentationAction:(id)sender; +@property (weak, nonatomic) IBOutlet UILabel *titleLabel; +@property (weak, nonatomic) IBOutlet UIButton *startButton; +@property (weak, nonatomic) IBOutlet UIButton *prefButton; + +- (IBAction)startPresentationAction:(id)sender; +- (IBAction)startPrefSettings:(id)sender; @end diff --git a/ios/iosremote/iosremote/slideShowPreviewTable_vc.m b/ios/iosremote/iosremote/slideShowPreviewTable_vc.m index 1aa3ceab4b47..87ba962e1667 100644 --- a/ios/iosremote/iosremote/slideShowPreviewTable_vc.m +++ b/ios/iosremote/iosremote/slideShowPreviewTable_vc.m @@ -10,21 +10,20 @@ #import "CommunicationManager.h" #import "CommandTransmitter.h" #import "CommandInterpreter.h" -#import "ControlVariables.h" #import "SlideShow.h" +#import "IASKAppSettingsViewController.h" @interface slideShowPreviewTable_vc () -@property (nonatomic, weak) UIButton * startButton; +@property (nonatomic, strong) IASKAppSettingsViewController *appSettingsViewController; @end @implementation slideShowPreviewTable_vc @synthesize startButton = _startButton; -@synthesize optionsTable = _optionsTable; -@synthesize optionsArray = _optionsArray; @synthesize titleObserver = _titleObserver; +@synthesize appSettingsViewController = _appSettingsViewController; - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { @@ -35,9 +34,9 @@ } } -- (id)initWithStyle:(UITableViewStyle)style +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { - self = [super initWithStyle:style]; + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } @@ -47,6 +46,14 @@ - (void)viewDidLoad { [super viewDidLoad]; + + // Setting up UIButton stretchable background + UIImage *backgroundImage = [UIImage imageNamed:@"buttonBackground"]; + UIEdgeInsets insets = UIEdgeInsetsMake(20, 7, 20, 7); + UIImage *stretchableBackgroundImage = [backgroundImage resizableImageWithCapInsets:insets]; + [self.startButton setBackgroundImage:stretchableBackgroundImage forState:UIControlStateNormal]; + [self.prefButton setBackgroundImage:stretchableBackgroundImage forState:UIControlStateNormal]; + } - (void) viewDidDisappear:(BOOL)animated @@ -64,104 +71,30 @@ #pragma mark - Table view data source - -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section -{ - return [self.optionsArray count]; -} - -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath -{ - static NSString *CellIdentifier = @"optionCell"; - UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; - - if (cell == nil) { - cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; - UISwitch *toggleSwitch = [[UISwitch alloc] init]; - cell.accessoryView = [[UIView alloc] initWithFrame:toggleSwitch.frame]; - if (indexPath.row == 0) { - [toggleSwitch setOn:[[NSUserDefaults standardUserDefaults] boolForKey:KEY_TIMER]]; - } else { - [toggleSwitch setOn:[[NSUserDefaults standardUserDefaults] boolForKey:KEY_POINTER]]; - } - [cell.accessoryView addSubview:toggleSwitch]; - } - cell.textLabel.text = [self.optionsArray objectAtIndex:indexPath.row]; - - return cell; -} - - -(IBAction)startPresentationAction:(id)sender { - for (UITableViewCell *cell in self.tableView.visibleCells) { - UISwitch * toggle = [[[cell accessoryView] subviews] objectAtIndex:0]; - - if ([cell.textLabel.text isEqualToString:OPTION_TIMER]) - [[NSUserDefaults standardUserDefaults] setBool:[toggle isOn] forKey:KEY_TIMER]; - else if ([cell.textLabel.text isEqualToString:OPTION_POINTER]) - [[NSUserDefaults standardUserDefaults] setBool:[toggle isOn] forKey:KEY_POINTER]; - } [[self.comManager transmitter] startPresentation]; } -- (UIButton *)startButton{ - if (_startButton == nil) { - _startButton = [UIButton buttonWithType:UIButtonTypeCustom]; - [_startButton setBackgroundImage:[UIImage imageNamed:@"navBarButtonNormal"] forState:UIControlStateNormal]; - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { - _startButton.frame = CGRectMake(145.0, 30.0, 160.0, 40.0); - } else { - self.modalViewController.view.backgroundColor = [UIColor clearColor]; - _startButton.frame = CGRectMake(260.0, 50.0, 180.0, 40.0); - } - [_startButton setTitle:NSLocalizedString(@"Start Presentation", nil) forState:UIControlStateNormal]; - [_startButton setTitleColor:kTintColor forState:UIControlStateNormal]; - [_startButton setTitleColor:[UIColor lightGrayColor] forState:UIControlStateHighlighted]; - [_startButton addTarget:self action:@selector(startPresentationAction:) forControlEvents:UIControlEventTouchUpInside]; - - UIImage *backgroundImage = [UIImage imageNamed:@"buttonBackground"]; - UIEdgeInsets insets = UIEdgeInsetsMake(20, 7, 20, 7); - UIImage *stretchableBackgroundImage = [backgroundImage resizableImageWithCapInsets:insets]; - - [_startButton setBackgroundImage:stretchableBackgroundImage forState:UIControlStateNormal]; - _startButton.tag = 1; - } - return _startButton; -} - -- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section -{ - UIView* customView; - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { - customView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 100.0)]; - } else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) - customView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 540.0, 100.0)]; - [customView addSubview:self.startButton]; - - customView.center = CGPointMake(tableView.center.x, customView.center.y); - self.startButton.center = customView.center; - return customView; -} - -- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section -{ - return 100.0; +- (IBAction)startPrefSettings:(id)sender { + self.appSettingsViewController.showDoneButton = NO; + [self.navigationController pushViewController:self.appSettingsViewController animated:YES]; } -#pragma mark - Table view delegate - -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath -{ - UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath]; - UISwitch * toggle = [[[cell accessoryView] subviews] objectAtIndex:0]; - [toggle setOn:![toggle isOn] animated:YES]; - [cell setSelected:NO animated:YES]; +#pragma mark - IN app setting +- (IASKAppSettingsViewController*)appSettingsViewController { + if (!_appSettingsViewController) { + _appSettingsViewController = [[IASKAppSettingsViewController alloc] initWithNibName:@"IASKAppSettingsView" bundle:nil]; + _appSettingsViewController.delegate = self; + } + return _appSettingsViewController; } - (void)viewDidUnload { - [self setOptionsTable:nil]; [[NSNotificationCenter defaultCenter] removeObserver:self.slideShowStartObserver]; self.slideShowStartObserver = nil; + [self setStartButton:nil]; + [self setPrefButton:nil]; + [self setTitleLabel:nil]; [super viewDidUnload]; } @end diff --git a/ios/iosremote/iosremote/slideShowPreviewTable_vc_ipad.h b/ios/iosremote/iosremote/slideShowPreviewTable_vc_ipad.h index 50946bc83d6f..0359b9e61bc0 100644 --- a/ios/iosremote/iosremote/slideShowPreviewTable_vc_ipad.h +++ b/ios/iosremote/iosremote/slideShowPreviewTable_vc_ipad.h @@ -17,6 +17,5 @@ @interface slideShowPreviewTable_vc_ipad : slideShowPreviewTable_vc @property (strong, nonatomic) id <MainSplitViewControllerProtocol> delegate; -@property (weak, nonatomic) IBOutlet UILabel *titleLabel; @end diff --git a/ios/iosremote/iosremote/slideShowPreviewTable_vc_ipad.m b/ios/iosremote/iosremote/slideShowPreviewTable_vc_ipad.m index ca09716fc721..33b3a185969c 100644 --- a/ios/iosremote/iosremote/slideShowPreviewTable_vc_ipad.m +++ b/ios/iosremote/iosremote/slideShowPreviewTable_vc_ipad.m @@ -39,11 +39,6 @@ self.delegate = (MainSplitViewController *) self.navigationController.presentingViewController; else self.delegate = (MainSplitViewController *) self.presentingViewController; - NSLog(@"%@", [self.delegate class]); - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { - self.optionsArray = [NSArray arrayWithObjects:OPTION_TIMER, nil]; - } else - self.optionsArray = [NSArray arrayWithObjects:OPTION_TIMER, OPTION_POINTER, nil]; self.comManager = [CommunicationManager sharedComManager]; self.comManager.delegate = self; @@ -67,7 +62,6 @@ { [super viewDidAppear:animated]; if ([self.comManager.interpreter.slideShow size] > 0){ - NSLog(@"3"); [self.delegate didReceivePresentationStarted]; } NSOperationQueue *mainQueue = [NSOperationQueue mainQueue]; @@ -87,7 +81,6 @@ - (void)viewDidUnload { - [self setTitleLabel:nil]; [super viewDidUnload]; } @end diff --git a/ios/iosremote/iosremote/slideShowPreviewTable_vc_iphone.h b/ios/iosremote/iosremote/slideShowPreviewTable_vc_iphone.h index ed1e551102e5..df100d35451a 100644 --- a/ios/iosremote/iosremote/slideShowPreviewTable_vc_iphone.h +++ b/ios/iosremote/iosremote/slideShowPreviewTable_vc_iphone.h @@ -10,6 +10,5 @@ #import "slideShowPreviewTable_vc.h" @interface slideShowPreviewTable_vc_iphone : slideShowPreviewTable_vc -@property (weak, nonatomic) IBOutlet UILabel *titleLabel; @end diff --git a/ios/iosremote/iosremote/slideShowPreviewTable_vc_iphone.m b/ios/iosremote/iosremote/slideShowPreviewTable_vc_iphone.m index e1cf5089fb7d..8da5fe7608ae 100644 --- a/ios/iosremote/iosremote/slideShowPreviewTable_vc_iphone.m +++ b/ios/iosremote/iosremote/slideShowPreviewTable_vc_iphone.m @@ -15,7 +15,6 @@ - (void) viewDidLoad { [super viewDidLoad]; - self.optionsArray = [NSArray arrayWithObjects:OPTION_TIMER, OPTION_POINTER, nil]; self.comManager = [CommunicationManager sharedComManager]; self.comManager.delegate = self; diff --git a/ios/iosremote/iosremote/slideShowSwipeInList_ipad.m b/ios/iosremote/iosremote/slideShowSwipeInList_ipad.m index 753dbb6352e5..eb4042605668 100644 --- a/ios/iosremote/iosremote/slideShowSwipeInList_ipad.m +++ b/ios/iosremote/iosremote/slideShowSwipeInList_ipad.m @@ -13,6 +13,7 @@ #import "CommandTransmitter.h" #import "SWRevealViewController.h" #import "slideShowPreviewTable_vc.h" +#import "UIView+Shadowing.h" #import <QuartzCore/CALayer.h> @interface slideShowSwipeInList_ipad () @@ -69,10 +70,7 @@ dispatch_queue_t backgroundQueue; [self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES]; } }]; - UIImageView *bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"slideshowRail"]]; - [bgImageView setFrame:self.tableView.frame]; - - self.tableView.backgroundView = bgImageView; + self.tableView.backgroundColor = [UIColor colorWithRed:.674509804 green:.729411765 blue:.760784314 alpha:1.0]; } - (void)viewDidUnload @@ -128,7 +126,9 @@ dispatch_queue_t backgroundQueue; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: CellIdentifier]; UILabel * slideNumber = (UILabel *)[cell viewWithTag:2]; + UIImageView * thumbnail = (UIImageView *)[cell viewWithTag:1]; + [thumbnail setShadow]; // Starting 20, all tags are used for thumbnails in this sidebar [cell setTag:20+indexPath.row]; [self.slideshow getContentAtIndex:indexPath.row forView:cell]; diff --git a/ios/iosremote/iosremote/slideShowSwipeInList_iphone.m b/ios/iosremote/iosremote/slideShowSwipeInList_iphone.m index ff65812653ca..984d2cff3368 100644 --- a/ios/iosremote/iosremote/slideShowSwipeInList_iphone.m +++ b/ios/iosremote/iosremote/slideShowSwipeInList_iphone.m @@ -13,7 +13,6 @@ #import "CommandTransmitter.h" #import "SWRevealViewController.h" #import "slideShowPreviewTable_vc.h" -#import "ControlVariables.h" #import "stopWatch.h" #import "Timer.h" #import "UIImageView+setImageAnimated.h" @@ -51,15 +50,20 @@ dispatch_queue_t backgroundQueue; self.clearsSelectionOnViewWillAppear = NO; // set stopwatch as default, users may swipe for a timer - self.currentPage = 0; - [self.revealViewController setOwner:STOPWATCH]; + self.currentPage = kDefaultTimerWidget; + [self.revealViewController setOwner:kDefaultTimerWidget]; + // Instanciate stopwatch and start if autostart is set self.stopWatch = [[stopWatch alloc] init]; - if ([[NSUserDefaults standardUserDefaults] boolForKey:KEY_TIMER]) { + if (kStopwatchAutoStart) { [self.stopWatch start]; } + // Instanciate timer and start if autostart is set self.timer = [[Timer alloc] init]; + if (kCountDownTimerAutoStart){ + [self.timer start]; + } self.tableView.backgroundColor = [UIColor colorWithRed:.674509804 green:.729411765 blue:.760784314 alpha:1.0]; } @@ -210,6 +214,12 @@ dispatch_queue_t backgroundQueue; UIScrollView * scroll = (UIScrollView *) [cell viewWithTag:7]; scroll.contentSize = CGSizeMake(412, 120); + + CGRect frame = scroll.frame; + frame.origin.x = frame.size.width * kDefaultTimerWidget; + frame.origin.y = 0; + [scroll scrollRectToVisible:frame animated:YES]; + return cell; } else { static NSString *CellIdentifier = @"slide"; diff --git a/ios/iosremote/iosremote/slideShow_vc_iphone.h b/ios/iosremote/iosremote/slideShow_vc_iphone.h index 67f3b6026c91..49d11dacf5e2 100644 --- a/ios/iosremote/iosremote/slideShow_vc_iphone.h +++ b/ios/iosremote/iosremote/slideShow_vc_iphone.h @@ -14,7 +14,6 @@ - (IBAction)nextSlideAction:(id)sender; - (IBAction)previousSlideAction:(id)sender; - (IBAction)pointerAction:(id)sender; -- (IBAction)accPointerAction:(id)sender; @property (weak, nonatomic) IBOutlet UIView *notesView; @property (weak, nonatomic) IBOutlet UIWebView *lecturer_notes; diff --git a/ios/iosremote/iosremote/slideShow_vc_iphone.m b/ios/iosremote/iosremote/slideShow_vc_iphone.m index de33023ab999..148166662ded 100644 --- a/ios/iosremote/iosremote/slideShow_vc_iphone.m +++ b/ios/iosremote/iosremote/slideShow_vc_iphone.m @@ -42,8 +42,6 @@ // SWReveal Controller @property (readwrite) IBOutlet UIBarButtonItem* revealButtonItem; -@property int count; - @end @implementation slideShow_vc @@ -68,129 +66,19 @@ return motionManager; } -- (void)startMotionDetect -{ - // __block float stepMoveFactorX = 5; - // __block float stepMoveFactorY = 5; - // __block double refX, refY; - - [self.motionManager - startAccelerometerUpdatesToQueue:[[NSOperationQueue alloc] init] - withHandler:^(CMAccelerometerData *data, NSError *error) - { - - dispatch_async(dispatch_get_main_queue(), - ^{ - CGRect rect = self.movingPointer.frame; - NSLog(@"x:%f y:%f z:%f", data.acceleration.x, data.acceleration.y, data.acceleration.z); - // Used to calibrate pointer based on initial position - // if (self.pointerCalibrationOn){ - // refX = data.acceleration.x; - // refY = data.acceleration.y; - // self.pointerCalibrationOn = NO; - // } - // float movetoX = rect.origin.x + ((data.acceleration.x - refX) * stepMoveFactorX); - - float movetoX = self.touchPointerImage.frame.origin.x + self.touchPointerImage.frame.size.width * ABS(data.acceleration.x - self.refLeftUpperGravity.x) / ABS(self.refRightUpperGravity.x - self.refLeftUpperGravity.x); - float maxX = self.touchPointerImage.frame.origin.x + self.touchPointerImage.frame.size.width - rect.size.width; - - // float movetoY = (rect.origin.y) + ((data.acceleration.y - refY) * stepMoveFactorY); - float movetoY = self.touchPointerImage.frame.origin.y + self.touchPointerImage.frame.size.height * ABS(data.acceleration.y - self.refRightUpperGravity.y) / ABS(self.refRightLowerGravity.y - self.refRightUpperGravity.y); - float maxY = self.touchPointerImage.frame.origin.y + self.touchPointerImage.frame.size.height; - - if ( movetoX > self.touchPointerImage.frame.origin.x && movetoX < maxX ) { - rect.origin.x = movetoX; - }; - - if ( movetoY > self.touchPointerImage.frame.origin.y && movetoY < maxY ) { - rect.origin.y = movetoY; - }; - - [UIView animateWithDuration:0 delay:0 - options:UIViewAnimationOptionCurveEaseIn - animations:^{ - self.movingPointer.frame = rect; - } - completion:nil - ]; - }); - }]; -} - -- (IBAction)accPointerAction:(id)sender{ - BOOL acc = [[NSUserDefaults standardUserDefaults] boolForKey:KEY_POINTER]; - if (!acc) { - static BOOL pointer = NO; - if (!pointer){ - [self startMotionDetect]; - [self.movingPointer setHidden:NO]; - } - else { - [self.motionManager stopAccelerometerUpdates]; - self.pointerCalibrationOn = NO; - [self.movingPointer setHidden:YES]; - } - pointer = !pointer; - } -} - // Not localized for now since this is subject to fundemental changes - (IBAction)pointerAction:(id)sender { - if (self.count == 0 || self.count == 1){ - CGPoint p; - p.x = [self.motionManager accelerometerData].acceleration.x; - p.y = [self.motionManager accelerometerData].acceleration.y; - self.refLeftUpperGravity = p; - if (self.count == 1) { - UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Calibration" - message:@"Upper left corner calibrated, now point your device to the upper right corner of the screen and click Pointer button again" - delegate:nil - cancelButtonTitle:@"OK" - otherButtonTitles:@"Help", nil]; - [message show]; - } - ++self.count; - } else if (self.count == 2 || self.count == 3) { - CGPoint p; - p.x = [self.motionManager accelerometerData].acceleration.x; - p.y = [self.motionManager accelerometerData].acceleration.y; - self.refRightUpperGravity = p; - if (self.count == 3) { - UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Calibration" - message:@"Upper right corner calibrated, now point your device to the lower right corner of the screen and click Pointer button again!" - delegate:nil - cancelButtonTitle:@"OK" - otherButtonTitles:@"Help", nil]; - [message show]; - } - ++self.count; - } else if (self.count == 4 || self.count == 5) { - CGPoint p; - p.x = [self.motionManager accelerometerData].acceleration.x; - p.y = [self.motionManager accelerometerData].acceleration.y; - self.refRightLowerGravity = p; - if (self.count == 5) { - UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Calibration" - message:@"Lower right corner calibrated, enjoy your pointer!" - delegate:nil - cancelButtonTitle:@"OK" - otherButtonTitles:@"Help", nil]; - [message show]; - } - ++self.count; + if ([self.touchPointerImage isHidden]){ + [self.slideshow getContentAtIndex:self.slideshow.currentSlide forView:self.touchPointerImage]; + CGPoint p = self.view.center; + p.y -= 50; + self.touchPointerImage.center = p; + [self.view removeGestureRecognizer:self.revealViewController.panGestureRecognizer]; } else { - if ([self.touchPointerImage isHidden]){ - [self.slideshow getContentAtIndex:self.slideshow.currentSlide forView:self.touchPointerImage]; - CGPoint p = self.view.center; - p.y -= 50; - self.touchPointerImage.center = p; - [self.view removeGestureRecognizer:self.revealViewController.panGestureRecognizer]; - } else { - [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer]; - } - [self.touchPointerImage fadeInfadeOutwithDuration:0.0 maxAlpha:1.0]; - [self.blockingView fadeInfadeOutwithDuration:0.0 maxAlpha:0.7]; + [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer]; } + [self.touchPointerImage fadeInfadeOutwithDuration:0.0 maxAlpha:1.0]; + [self.blockingView fadeInfadeOutwithDuration:0.0 maxAlpha:0.7]; } - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { @@ -313,16 +201,6 @@ self.pointerCalibrationOn = NO; self.movingPointer.layer.cornerRadius = 3; - BOOL acc = [[NSUserDefaults standardUserDefaults] boolForKey:KEY_POINTER]; - if (!acc) { - // Hook up acc detection - [self.pointerBtn addTarget:self action:@selector(pointerAction:) forControlEvents:UIControlEventTouchUpOutside]; - [self.pointerBtn addTarget:self action:@selector(pointerAction:) forControlEvents:UIControlEventTouchUpInside]; - } else { - // Disable all calibration functions for acc based pointer - self.count = INT_MAX; - } - [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer]; } @@ -385,14 +263,11 @@ - (void) viewDidDisappear:(BOOL)animated { - self.count = 0; [[NSNotificationCenter defaultCenter] removeObserver:self.slideShowFinishedObserver]; [[NSNotificationCenter defaultCenter] removeObserver:self.slideShowImageNoteReadyObserver]; [super viewDidDisappear:animated]; } - - - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; diff --git a/ios/iosremote/iosremote/zh-Hans.lproj/iPhone_autoSize.storyboard b/ios/iosremote/iosremote/zh-Hans.lproj/iPhone_autoSize.storyboard index d75f29357a64..6a703f70e437 100644 --- a/ios/iosremote/iosremote/zh-Hans.lproj/iPhone_autoSize.storyboard +++ b/ios/iosremote/iosremote/zh-Hans.lproj/iPhone_autoSize.storyboard @@ -73,8 +73,8 @@ <connections> <outlet property="serverTable" destination="naQ-T4-jWV" id="hd3-Vm-fk6"/> <segue destination="UPe-3R-KdQ" kind="push" identifier="pinValidation" id="UQQ-pV-3o3"/> - <segue destination="Ybo-9c-MB8" kind="push" identifier="SlideShowPreview" id="EWS-Nn-mQc"/> <segue destination="xbC-af-Ssw" kind="push" identifier="howtoSegue" id="gc3-eP-dlL"/> + <segue destination="clb-xa-kbC" kind="push" identifier="SlideShowPreview" id="0SL-2n-fWY"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="4" sceneMemberID="firstResponder"/> @@ -113,7 +113,7 @@ <navigationItem key="navigationItem" id="c3o-oA-oin"/> <connections> <outlet property="pinLabel" destination="f2u-bG-5ak" id="Y7S-6h-awe"/> - <segue destination="Ybo-9c-MB8" kind="push" identifier="pinValidated" id="pTl-ua-9pr"/> + <segue destination="clb-xa-kbC" kind="push" identifier="pinValidated" id="5gZ-R8-9y7"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="iok-RC-uS6" userLabel="First Responder" sceneMemberID="firstResponder"/> @@ -173,6 +173,73 @@ </objects> <point key="canvasLocation" x="604" y="-475"/> </scene> + <!--Slide Show Preview Table vc iphone--> + <scene sceneID="Okd-pU-rsp"> + <objects> + <viewController id="clb-xa-kbC" customClass="slideShowPreviewTable_vc_iphone" sceneMemberID="viewController"> + <view key="view" contentMode="scaleToFill" id="YiY-DI-phW"> + <rect key="frame" x="0.0" y="64" width="320" height="504"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <subviews> + <view contentMode="scaleToFill" id="v0p-8b-LF3"> + <rect key="frame" x="0.0" y="20" width="320" height="180"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES"/> + <subviews> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Presentation Title" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="5" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="3qH-vt-uVP"> + <rect key="frame" x="20" y="20" width="280" height="140"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <fontDescription key="fontDescription" type="system" pointSize="24"/> + <color key="textColor" red="0.39589986310000003" green="0.87052349449999999" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> + <nil key="highlightedColor"/> + </label> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> + </view> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="ry2-Av-6er" userLabel="slideShowPreview"> + <rect key="frame" x="101" y="393" width="118" height="44"/> + <autoresizingMask key="autoresizingMask" flexibleMinY="YES"/> + <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> + <state key="normal" title="Preferences" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPrefSettings:" destination="clb-xa-kbC" eventType="touchUpInside" id="Vku-7x-W0P"/> + </connections> + </button> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="h9u-yi-XwD"> + <rect key="frame" x="77" y="328" width="166" height="47"/> + <autoresizingMask key="autoresizingMask" flexibleMinY="YES"/> + <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> + <state key="normal" title="Start Presentation" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPresentationAction:" destination="clb-xa-kbC" eventType="touchUpInside" id="JAB-Hw-8ed"/> + </connections> + </button> + </subviews> + <color key="backgroundColor" red="0.92941176469999998" green="0.92941176469999998" blue="0.92941176469999998" alpha="1" colorSpace="calibratedRGB"/> + </view> + <navigationItem key="navigationItem" id="AXt-EI-0Z5"/> + <connections> + <outlet property="prefButton" destination="ry2-Av-6er" id="86W-Q5-ThH"/> + <outlet property="startButton" destination="h9u-yi-XwD" id="FYY-7H-Bvm"/> + <outlet property="titleLabel" destination="3qH-vt-uVP" id="SKw-9E-eDC"/> + <segue destination="LZb-9n-W8N" kind="push" identifier="slideShowSegue" id="r8H-3e-A9k"/> + </connections> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="1nc-Wo-te6" userLabel="First Responder" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="612" y="460"/> + </scene> <!--Reveal View Controller--> <scene sceneID="koC-gb-LIk"> <objects> @@ -468,7 +535,6 @@ <color key="titleColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> </state> <connections> - <action selector="accPointerAction:" destination="Ivv-3X-Nhr" eventType="touchDown" id="35J-B2-GIE"/> <action selector="accPointerAction:" destination="Ivv-3X-Nhr" eventType="touchUpOutside" id="F8W-M1-8Lb"/> <action selector="accPointerAction:" destination="Ivv-3X-Nhr" eventType="touchUpInside" id="Lb1-HF-wdh"/> <action selector="pointerAction:" destination="Ivv-3X-Nhr" eventType="touchDown" id="gK9-ff-k1g"/> @@ -497,83 +563,6 @@ </objects> <point key="canvasLocation" x="2290" y="1807"/> </scene> - <!--Slide Show Preview Table vc iphone--> - <scene sceneID="Tvi-bD-vMC"> - <objects> - <tableViewController id="Ybo-9c-MB8" customClass="slideShowPreviewTable_vc_iphone" sceneMemberID="viewController"> - <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="singleLineEtched" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="rWA-v3-wtf"> - <rect key="frame" x="0.0" y="64" width="320" height="504"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/> - <color key="backgroundColor" red="0.93333713503649562" green="0.9260378649635036" blue="0.92826186131386856" alpha="1" colorSpace="calibratedRGB"/> - <view key="tableHeaderView" contentMode="scaleToFill" id="nOZ-aL-o5J"> - <rect key="frame" x="0.0" y="0.0" width="320" height="157"/> - <subviews> - <view contentMode="scaleToFill" id="9RB-yM-BkW"> - <rect key="frame" x="0.0" y="17" width="320" height="140"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> - <subviews> - <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="演示文稿标题" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="7" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="wJK-w7-Zs9"> - <rect key="frame" x="20" y="20" width="280" height="100"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/> - <fontDescription key="fontDescription" name="HiraKakuProN-W6" family="Hiragino Kaku Gothic ProN" pointSize="19"/> - <color key="textColor" red="0.21176470589999999" green="0.81568627449999997" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> - <nil key="highlightedColor"/> - </label> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> - </view> - </subviews> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - <sections> - <tableViewSection id="8wQ-rK-ve4"> - <cells> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="0D7-tO-bVg"> - <rect key="frame" x="0.0" y="167" width="320" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="10" y="1" width="300" height="43"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="LrN-2p-yDw"> - <rect key="frame" x="0.0" y="212" width="320" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="10" y="0.0" width="300" height="43"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="Cdv-T8-mH7"> - <rect key="frame" x="0.0" y="256" width="320" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="10" y="0.0" width="300" height="43"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - </cells> - </tableViewSection> - </sections> - <connections> - <outlet property="dataSource" destination="Ybo-9c-MB8" id="nDU-cr-5RV"/> - <outlet property="delegate" destination="Ybo-9c-MB8" id="6Gf-g5-zXK"/> - </connections> - </tableView> - <navigationItem key="navigationItem" id="TMc-Fg-zXV"/> - <connections> - <outlet property="optionsTable" destination="rWA-v3-wtf" id="qXR-p3-aap"/> - <outlet property="titleLabel" destination="wJK-w7-Zs9" id="ZPz-9h-et8"/> - <segue destination="LZb-9n-W8N" kind="push" identifier="slideShowSegue" id="ATf-mQ-0ht"/> - </connections> - </tableViewController> - <placeholder placeholderIdentifier="IBFirstResponder" id="z5S-eI-1pb" userLabel="First Responder" sceneMemberID="firstResponder"/> - </objects> - <point key="canvasLocation" x="604" y="309"/> - </scene> <!--LibO Navigation Controller--> <scene sceneID="yRe-s4-oKK"> <objects> @@ -597,6 +586,7 @@ <image name="Default-568h.png" width="640" height="1136"/> <image name="WTPairingScreenshot.png" width="474" height="312"/> <image name="add.png" width="30" height="30"/> + <image name="buttonBackground.png" width="45" height="45"/> <image name="ic_launcher.png" width="16" height="16"/> <image name="pointer.png" width="143" height="147"/> <image name="pointer_pushed.png" width="143" height="147"/> @@ -608,14 +598,86 @@ <image name="timer_settime_btn.png" width="60" height="60"/> <image name="timer_start_btn.png" width="60" height="60"/> </resources> + <classes> + <class className="EditableTableViewCell" superclassName="UITableViewCell"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/EditableTableViewCell.h"/> + </class> + <class className="LibONavigationController" superclassName="UINavigationController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/LibONavigationController.h"/> + </class> + <class className="SWRevealViewController" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/SWRevealViewController.h"/> + <relationships> + <relationship kind="action" name="callDP:"/> + </relationships> + </class> + <class className="WalkThroughContainerViewController" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/WalkThroughContainerViewController.h"/> + </class> + <class className="newServerViewController" superclassName="UITableViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/newServerViewController.h"/> + <relationships> + <relationship kind="action" name="save:"/> + <relationship kind="outlet" name="saveButton" candidateClass="UIBarButtonItem"/> + </relationships> + </class> + <class className="pinValidation_vc" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/pinValidation_vc.h"/> + <relationships> + <relationship kind="outlet" name="pinLabel" candidateClass="UILabel"/> + <relationship kind="outlet" name="statusLabel" candidateClass="UILabel"/> + </relationships> + </class> + <class className="server_list_vc" superclassName="UITableViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/server_list_vc.h"/> + <relationships> + <relationship kind="outlet" name="serverTable" candidateClass="UITableView"/> + </relationships> + </class> + <class className="slideShowPreviewTable_vc" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc.h"/> + <relationships> + <relationship kind="action" name="startPrefSettings:"/> + <relationship kind="action" name="startPresentationAction:"/> + <relationship kind="outlet" name="prefButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="startButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="titleLabel" candidateClass="UILabel"/> + </relationships> + </class> + <class className="slideShowPreviewTable_vc_iphone" superclassName="slideShowPreviewTable_vc"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc_iphone.h"/> + </class> + <class className="slideShowSwipeInList" superclassName="UITableViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowSwipeInList.h"/> + </class> + <class className="slideShow_vc" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShow_vc.h"/> + <relationships> + <relationship kind="action" name="nextSlideAction:"/> + <relationship kind="action" name="pointerAction:"/> + <relationship kind="action" name="previousSlideAction:"/> + <relationship kind="outlet" name="blockingView" candidateClass="UIView"/> + <relationship kind="outlet" name="bottomView" candidateClass="UIView"/> + <relationship kind="outlet" name="lecturer_notes" candidateClass="UIWebView"/> + <relationship kind="outlet" name="movingPointer" candidateClass="UIView"/> + <relationship kind="outlet" name="notesView" candidateClass="UIView"/> + <relationship kind="outlet" name="pointerBtn" candidateClass="UIButton"/> + <relationship kind="outlet" name="revealButtonItem" candidateClass="UIBarButtonItem"/> + <relationship kind="outlet" name="secondarySlideView" candidateClass="UIImageView"/> + <relationship kind="outlet" name="slideNumber" candidateClass="UILabel"/> + <relationship kind="outlet" name="slideView" candidateClass="UIImageView"/> + <relationship kind="outlet" name="touchPointerImage" candidateClass="UIImageView"/> + </relationships> + </class> + </classes> <simulatedMetricsContainer key="defaultSimulatedMetrics"> <simulatedStatusBarMetrics key="statusBar"/> <simulatedOrientationMetrics key="orientation"/> <simulatedScreenMetrics key="destination" type="retina4"/> </simulatedMetricsContainer> <inferredMetricsTieBreakers> - <segue reference="eIY-4P-1sI"/> - <segue reference="pTl-ua-9pr"/> <segue reference="mx5-BO-ZzL"/> + <segue reference="5gZ-R8-9y7"/> + <segue reference="eIY-4P-1sI"/> </inferredMetricsTieBreakers> </document>
\ No newline at end of file diff --git a/ios/iosremote/iosremote/zh-Hans.lproj/iPhone_autoSize.strings b/ios/iosremote/iosremote/zh-Hans.lproj/iPhone_autoSize.strings Binary files differindex f062848166d1..c8ad37c724ae 100644 --- a/ios/iosremote/iosremote/zh-Hans.lproj/iPhone_autoSize.strings +++ b/ios/iosremote/iosremote/zh-Hans.lproj/iPhone_autoSize.strings diff --git a/ios/iosremote/iosremote/zh-Hans.lproj/iPhone_autoSize_old.storyboard b/ios/iosremote/iosremote/zh-Hans.lproj/iPhone_autoSize_old.storyboard index d75f29357a64..6a703f70e437 100644 --- a/ios/iosremote/iosremote/zh-Hans.lproj/iPhone_autoSize_old.storyboard +++ b/ios/iosremote/iosremote/zh-Hans.lproj/iPhone_autoSize_old.storyboard @@ -73,8 +73,8 @@ <connections> <outlet property="serverTable" destination="naQ-T4-jWV" id="hd3-Vm-fk6"/> <segue destination="UPe-3R-KdQ" kind="push" identifier="pinValidation" id="UQQ-pV-3o3"/> - <segue destination="Ybo-9c-MB8" kind="push" identifier="SlideShowPreview" id="EWS-Nn-mQc"/> <segue destination="xbC-af-Ssw" kind="push" identifier="howtoSegue" id="gc3-eP-dlL"/> + <segue destination="clb-xa-kbC" kind="push" identifier="SlideShowPreview" id="0SL-2n-fWY"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="4" sceneMemberID="firstResponder"/> @@ -113,7 +113,7 @@ <navigationItem key="navigationItem" id="c3o-oA-oin"/> <connections> <outlet property="pinLabel" destination="f2u-bG-5ak" id="Y7S-6h-awe"/> - <segue destination="Ybo-9c-MB8" kind="push" identifier="pinValidated" id="pTl-ua-9pr"/> + <segue destination="clb-xa-kbC" kind="push" identifier="pinValidated" id="5gZ-R8-9y7"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="iok-RC-uS6" userLabel="First Responder" sceneMemberID="firstResponder"/> @@ -173,6 +173,73 @@ </objects> <point key="canvasLocation" x="604" y="-475"/> </scene> + <!--Slide Show Preview Table vc iphone--> + <scene sceneID="Okd-pU-rsp"> + <objects> + <viewController id="clb-xa-kbC" customClass="slideShowPreviewTable_vc_iphone" sceneMemberID="viewController"> + <view key="view" contentMode="scaleToFill" id="YiY-DI-phW"> + <rect key="frame" x="0.0" y="64" width="320" height="504"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <subviews> + <view contentMode="scaleToFill" id="v0p-8b-LF3"> + <rect key="frame" x="0.0" y="20" width="320" height="180"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES"/> + <subviews> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Presentation Title" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="5" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="3qH-vt-uVP"> + <rect key="frame" x="20" y="20" width="280" height="140"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <fontDescription key="fontDescription" type="system" pointSize="24"/> + <color key="textColor" red="0.39589986310000003" green="0.87052349449999999" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> + <nil key="highlightedColor"/> + </label> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> + </view> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="ry2-Av-6er" userLabel="slideShowPreview"> + <rect key="frame" x="101" y="393" width="118" height="44"/> + <autoresizingMask key="autoresizingMask" flexibleMinY="YES"/> + <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> + <state key="normal" title="Preferences" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPrefSettings:" destination="clb-xa-kbC" eventType="touchUpInside" id="Vku-7x-W0P"/> + </connections> + </button> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="h9u-yi-XwD"> + <rect key="frame" x="77" y="328" width="166" height="47"/> + <autoresizingMask key="autoresizingMask" flexibleMinY="YES"/> + <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> + <state key="normal" title="Start Presentation" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPresentationAction:" destination="clb-xa-kbC" eventType="touchUpInside" id="JAB-Hw-8ed"/> + </connections> + </button> + </subviews> + <color key="backgroundColor" red="0.92941176469999998" green="0.92941176469999998" blue="0.92941176469999998" alpha="1" colorSpace="calibratedRGB"/> + </view> + <navigationItem key="navigationItem" id="AXt-EI-0Z5"/> + <connections> + <outlet property="prefButton" destination="ry2-Av-6er" id="86W-Q5-ThH"/> + <outlet property="startButton" destination="h9u-yi-XwD" id="FYY-7H-Bvm"/> + <outlet property="titleLabel" destination="3qH-vt-uVP" id="SKw-9E-eDC"/> + <segue destination="LZb-9n-W8N" kind="push" identifier="slideShowSegue" id="r8H-3e-A9k"/> + </connections> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="1nc-Wo-te6" userLabel="First Responder" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="612" y="460"/> + </scene> <!--Reveal View Controller--> <scene sceneID="koC-gb-LIk"> <objects> @@ -468,7 +535,6 @@ <color key="titleColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> </state> <connections> - <action selector="accPointerAction:" destination="Ivv-3X-Nhr" eventType="touchDown" id="35J-B2-GIE"/> <action selector="accPointerAction:" destination="Ivv-3X-Nhr" eventType="touchUpOutside" id="F8W-M1-8Lb"/> <action selector="accPointerAction:" destination="Ivv-3X-Nhr" eventType="touchUpInside" id="Lb1-HF-wdh"/> <action selector="pointerAction:" destination="Ivv-3X-Nhr" eventType="touchDown" id="gK9-ff-k1g"/> @@ -497,83 +563,6 @@ </objects> <point key="canvasLocation" x="2290" y="1807"/> </scene> - <!--Slide Show Preview Table vc iphone--> - <scene sceneID="Tvi-bD-vMC"> - <objects> - <tableViewController id="Ybo-9c-MB8" customClass="slideShowPreviewTable_vc_iphone" sceneMemberID="viewController"> - <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="singleLineEtched" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="rWA-v3-wtf"> - <rect key="frame" x="0.0" y="64" width="320" height="504"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/> - <color key="backgroundColor" red="0.93333713503649562" green="0.9260378649635036" blue="0.92826186131386856" alpha="1" colorSpace="calibratedRGB"/> - <view key="tableHeaderView" contentMode="scaleToFill" id="nOZ-aL-o5J"> - <rect key="frame" x="0.0" y="0.0" width="320" height="157"/> - <subviews> - <view contentMode="scaleToFill" id="9RB-yM-BkW"> - <rect key="frame" x="0.0" y="17" width="320" height="140"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> - <subviews> - <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="演示文稿标题" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="7" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="wJK-w7-Zs9"> - <rect key="frame" x="20" y="20" width="280" height="100"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/> - <fontDescription key="fontDescription" name="HiraKakuProN-W6" family="Hiragino Kaku Gothic ProN" pointSize="19"/> - <color key="textColor" red="0.21176470589999999" green="0.81568627449999997" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> - <nil key="highlightedColor"/> - </label> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> - </view> - </subviews> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - <sections> - <tableViewSection id="8wQ-rK-ve4"> - <cells> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="0D7-tO-bVg"> - <rect key="frame" x="0.0" y="167" width="320" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="10" y="1" width="300" height="43"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="LrN-2p-yDw"> - <rect key="frame" x="0.0" y="212" width="320" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="10" y="0.0" width="300" height="43"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="Cdv-T8-mH7"> - <rect key="frame" x="0.0" y="256" width="320" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="10" y="0.0" width="300" height="43"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - </cells> - </tableViewSection> - </sections> - <connections> - <outlet property="dataSource" destination="Ybo-9c-MB8" id="nDU-cr-5RV"/> - <outlet property="delegate" destination="Ybo-9c-MB8" id="6Gf-g5-zXK"/> - </connections> - </tableView> - <navigationItem key="navigationItem" id="TMc-Fg-zXV"/> - <connections> - <outlet property="optionsTable" destination="rWA-v3-wtf" id="qXR-p3-aap"/> - <outlet property="titleLabel" destination="wJK-w7-Zs9" id="ZPz-9h-et8"/> - <segue destination="LZb-9n-W8N" kind="push" identifier="slideShowSegue" id="ATf-mQ-0ht"/> - </connections> - </tableViewController> - <placeholder placeholderIdentifier="IBFirstResponder" id="z5S-eI-1pb" userLabel="First Responder" sceneMemberID="firstResponder"/> - </objects> - <point key="canvasLocation" x="604" y="309"/> - </scene> <!--LibO Navigation Controller--> <scene sceneID="yRe-s4-oKK"> <objects> @@ -597,6 +586,7 @@ <image name="Default-568h.png" width="640" height="1136"/> <image name="WTPairingScreenshot.png" width="474" height="312"/> <image name="add.png" width="30" height="30"/> + <image name="buttonBackground.png" width="45" height="45"/> <image name="ic_launcher.png" width="16" height="16"/> <image name="pointer.png" width="143" height="147"/> <image name="pointer_pushed.png" width="143" height="147"/> @@ -608,14 +598,86 @@ <image name="timer_settime_btn.png" width="60" height="60"/> <image name="timer_start_btn.png" width="60" height="60"/> </resources> + <classes> + <class className="EditableTableViewCell" superclassName="UITableViewCell"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/EditableTableViewCell.h"/> + </class> + <class className="LibONavigationController" superclassName="UINavigationController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/LibONavigationController.h"/> + </class> + <class className="SWRevealViewController" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/SWRevealViewController.h"/> + <relationships> + <relationship kind="action" name="callDP:"/> + </relationships> + </class> + <class className="WalkThroughContainerViewController" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/WalkThroughContainerViewController.h"/> + </class> + <class className="newServerViewController" superclassName="UITableViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/newServerViewController.h"/> + <relationships> + <relationship kind="action" name="save:"/> + <relationship kind="outlet" name="saveButton" candidateClass="UIBarButtonItem"/> + </relationships> + </class> + <class className="pinValidation_vc" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/pinValidation_vc.h"/> + <relationships> + <relationship kind="outlet" name="pinLabel" candidateClass="UILabel"/> + <relationship kind="outlet" name="statusLabel" candidateClass="UILabel"/> + </relationships> + </class> + <class className="server_list_vc" superclassName="UITableViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/server_list_vc.h"/> + <relationships> + <relationship kind="outlet" name="serverTable" candidateClass="UITableView"/> + </relationships> + </class> + <class className="slideShowPreviewTable_vc" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc.h"/> + <relationships> + <relationship kind="action" name="startPrefSettings:"/> + <relationship kind="action" name="startPresentationAction:"/> + <relationship kind="outlet" name="prefButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="startButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="titleLabel" candidateClass="UILabel"/> + </relationships> + </class> + <class className="slideShowPreviewTable_vc_iphone" superclassName="slideShowPreviewTable_vc"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc_iphone.h"/> + </class> + <class className="slideShowSwipeInList" superclassName="UITableViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowSwipeInList.h"/> + </class> + <class className="slideShow_vc" superclassName="UIViewController"> + <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShow_vc.h"/> + <relationships> + <relationship kind="action" name="nextSlideAction:"/> + <relationship kind="action" name="pointerAction:"/> + <relationship kind="action" name="previousSlideAction:"/> + <relationship kind="outlet" name="blockingView" candidateClass="UIView"/> + <relationship kind="outlet" name="bottomView" candidateClass="UIView"/> + <relationship kind="outlet" name="lecturer_notes" candidateClass="UIWebView"/> + <relationship kind="outlet" name="movingPointer" candidateClass="UIView"/> + <relationship kind="outlet" name="notesView" candidateClass="UIView"/> + <relationship kind="outlet" name="pointerBtn" candidateClass="UIButton"/> + <relationship kind="outlet" name="revealButtonItem" candidateClass="UIBarButtonItem"/> + <relationship kind="outlet" name="secondarySlideView" candidateClass="UIImageView"/> + <relationship kind="outlet" name="slideNumber" candidateClass="UILabel"/> + <relationship kind="outlet" name="slideView" candidateClass="UIImageView"/> + <relationship kind="outlet" name="touchPointerImage" candidateClass="UIImageView"/> + </relationships> + </class> + </classes> <simulatedMetricsContainer key="defaultSimulatedMetrics"> <simulatedStatusBarMetrics key="statusBar"/> <simulatedOrientationMetrics key="orientation"/> <simulatedScreenMetrics key="destination" type="retina4"/> </simulatedMetricsContainer> <inferredMetricsTieBreakers> - <segue reference="eIY-4P-1sI"/> - <segue reference="pTl-ua-9pr"/> <segue reference="mx5-BO-ZzL"/> + <segue reference="5gZ-R8-9y7"/> + <segue reference="eIY-4P-1sI"/> </inferredMetricsTieBreakers> </document>
\ No newline at end of file diff --git a/ios/iosremote/zh-Hans.lproj/iPad_autosize.storyboard b/ios/iosremote/zh-Hans.lproj/iPad_autosize.storyboard index 3345e0e74b33..9893c34c8c6c 100644 --- a/ios/iosremote/zh-Hans.lproj/iPad_autosize.storyboard +++ b/ios/iosremote/zh-Hans.lproj/iPad_autosize.storyboard @@ -22,13 +22,13 @@ <autoresizingMask key="autoresizingMask"/> <subviews> <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="h0a-Zq-2vY"> - <rect key="frame" x="15" y="12" width="32" height="20"/> + <rect key="frame" x="10" y="11" width="32" height="22"/> <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> </label> <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Fsp-wI-AAW"> - <rect key="frame" x="481" y="12" width="44" height="20"/> + <rect key="frame" x="424" y="11" width="44" height="22"/> <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> <color key="textColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/> <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> @@ -59,8 +59,8 @@ <connections> <outlet property="serverTable" destination="0vt-Sx-o55" id="Szp-pH-0rk"/> <segue destination="m26-i1-eiL" kind="push" identifier="pinValidation" id="yUv-cB-P15"/> - <segue destination="B8g-8S-pgn" kind="push" identifier="SlideShowPreview" id="XCJ-4d-eG4"/> <segue destination="Grm-Od-s6s" kind="push" identifier="howtoSegue" id="hRz-3h-McA"/> + <segue destination="M9Q-tM-7CQ" kind="push" identifier="SlideShowPreview" id="jsD-4W-bFm"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="KBf-aZ-Hhk" sceneMemberID="firstResponder"/> @@ -100,12 +100,12 @@ <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackOpaque"/> <connections> <outlet property="pinLabel" destination="Bp1-Dv-nt4" id="6xd-P5-J5U"/> - <segue destination="B8g-8S-pgn" kind="push" identifier="pinValidated" id="gCy-Mv-VrC"/> + <segue destination="M9Q-tM-7CQ" kind="push" identifier="pinValidated" id="nkI-m0-Ps8"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="gh4-1U-6Dm" userLabel="First Responder" sceneMemberID="firstResponder"/> </objects> - <point key="canvasLocation" x="1024" y="-500"/> + <point key="canvasLocation" x="1004" y="-510"/> </scene> <!--New Server View Controller - 建立新链接--> <scene sceneID="RcY-Im-ohw"> @@ -119,19 +119,19 @@ <tableViewSection footerTitle="" id="CVG-Eq-rLd"> <cells> <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="b8A-jh-k26" customClass="EditableTableViewCell"> - <rect key="frame" x="0.0" y="99" width="540" height="44"/> + <rect key="frame" x="0.0" y="30" width="540" height="45"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> + <rect key="frame" x="31" y="1" width="478" height="43"/> <autoresizingMask key="autoresizingMask"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> </view> </tableViewCell> <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="jrI-wU-4NT" customClass="EditableTableViewCell"> - <rect key="frame" x="0.0" y="143" width="540" height="44"/> + <rect key="frame" x="0.0" y="75" width="540" height="44"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> + <rect key="frame" x="31" y="0.0" width="478" height="43"/> <autoresizingMask key="autoresizingMask"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> </view> @@ -158,81 +158,70 @@ <point key="canvasLocation" x="1024" y="-1831"/> </scene> <!--Slide Show Preview Table vc ipad--> - <scene sceneID="ejm-Sz-YCw"> + <scene sceneID="5gD-BL-PRq"> <objects> - <tableViewController storyboardIdentifier="slideShowPreview" id="B8g-8S-pgn" customClass="slideShowPreviewTable_vc_ipad" sceneMemberID="viewController"> - <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="Pc5-8o-PrW"> + <viewController storyboardIdentifier="slideShowPreview" id="M9Q-tM-7CQ" customClass="slideShowPreviewTable_vc_ipad" sceneMemberID="viewController"> + <view key="view" contentMode="scaleToFill" id="8vR-9Z-5Vk"> <rect key="frame" x="0.0" y="64" width="540" height="556"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/> - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> - <view key="tableHeaderView" contentMode="scaleToFill" id="YCJ-J4-RGt"> - <rect key="frame" x="0.0" y="0.0" width="540" height="281"/> - <subviews> - <view contentMode="scaleToFill" id="Is1-dX-SaP"> - <rect key="frame" x="0.0" y="37" width="540" height="208"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> - <subviews> - <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="演示文稿标题" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="5" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="JEW-I6-sw5"> - <rect key="frame" x="20" y="20" width="500" height="168"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/> - <fontDescription key="fontDescription" name="HiraKakuProN-W6" family="Hiragino Kaku Gothic ProN" pointSize="27"/> - <color key="textColor" red="0.21176470589999999" green="0.81568627449999997" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> - <nil key="highlightedColor"/> - </label> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> - </view> - </subviews> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - <sections> - <tableViewSection id="gMl-dC-GqD"> - <cells> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="tqg-R4-Coi"> - <rect key="frame" x="0.0" y="291" width="540" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="f4z-FH-mar"> - <rect key="frame" x="0.0" y="336" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="5jP-bD-Vcy"> - <rect key="frame" x="0.0" y="380" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - </cells> - </tableViewSection> - </sections> - <connections> - <outlet property="dataSource" destination="B8g-8S-pgn" id="SGm-yW-lAs"/> - <outlet property="delegate" destination="B8g-8S-pgn" id="p2A-1P-NJP"/> - </connections> - </tableView> - <navigationItem key="navigationItem" id="4ju-ge-QPw"/> - <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackOpaque"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <subviews> + <view contentMode="scaleToFill" id="iAg-GA-qtj"> + <rect key="frame" x="0.0" y="20" width="540" height="234"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Presentation Title" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="sXT-OZ-7y3"> + <rect key="frame" x="20" y="20" width="500" height="194"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" type="system" pointSize="24"/> + <color key="textColor" red="0.39589986310000003" green="0.87052349449999999" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> + <nil key="highlightedColor"/> + </label> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> + </view> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="0k4-5k-dza"> + <rect key="frame" x="182" y="363" width="177" height="44"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> + <state key="normal" title="Start Presentation" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPresentationAction:" destination="M9Q-tM-7CQ" eventType="touchUpInside" id="ZcD-xo-Cvg"/> + </connections> + </button> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="02F-Tj-9xO" userLabel="slideShowPreview"> + <rect key="frame" x="201" y="438" width="138" height="44"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="17"/> + <state key="normal" title="Preferences" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPrefSettings:" destination="M9Q-tM-7CQ" eventType="touchUpInside" id="oUK-cn-Bx7"/> + </connections> + </button> + </subviews> + <color key="backgroundColor" red="0.92941176469999998" green="0.92941176469999998" blue="0.92941176469999998" alpha="1" colorSpace="calibratedRGB"/> + </view> + <navigationItem key="navigationItem" id="CJJ-Ti-ahy"/> <connections> - <outlet property="optionsTable" destination="Pc5-8o-PrW" id="18R-Zo-CBq"/> - <outlet property="titleLabel" destination="JEW-I6-sw5" id="1AH-TC-z10"/> + <outlet property="prefButton" destination="02F-Tj-9xO" id="vc4-VF-px0"/> + <outlet property="startButton" destination="0k4-5k-dza" id="sMZ-jn-IzZ"/> + <outlet property="titleLabel" destination="sXT-OZ-7y3" id="U2U-p1-it2"/> </connections> - </tableViewController> - <placeholder placeholderIdentifier="IBFirstResponder" id="gg2-6d-fyF" userLabel="First Responder" sceneMemberID="firstResponder"/> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="gp3-Xs-lfE" userLabel="First Responder" sceneMemberID="firstResponder"/> </objects> - <point key="canvasLocation" x="1768" y="-1374"/> + <point key="canvasLocation" x="1754" y="-1374"/> </scene> <!--Base Presentation View Controller--> <scene sceneID="5zi-ge-3SF"> @@ -541,22 +530,18 @@ <rect key="frame" x="0.0" y="22" width="320" height="178"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="320" height="178"/> + <rect key="frame" x="0.0" y="0.0" width="320" height="177"/> <autoresizingMask key="autoresizingMask"/> <subviews> <imageView userInteractionEnabled="NO" tag="1" contentMode="scaleToFill" image="Default.png" id="dn1-99-Dde"> <rect key="frame" x="44" y="3.5" width="233" height="163"/> </imageView> - <label clipsSubviews="YES" userInteractionEnabled="NO" tag="2" contentMode="left" text="1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="1" highlighted="YES" id="qrH-bi-qw7"> - <rect key="frame" x="-605" y="149" width="29" height="21"/> - <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> - <accessibility key="accessibilityConfiguration"> - <accessibilityTraits key="traits" none="YES" selected="YES" staticText="YES"/> - </accessibility> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="2" contentMode="left" text="1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="b5V-aR-n9S"> + <rect key="frame" x="245" y="145" width="32" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <color key="backgroundColor" white="0.80146555659999996" alpha="1" colorSpace="calibratedWhite"/> <fontDescription key="fontDescription" type="system" pointSize="17"/> - <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> - <nil key="highlightedColor"/> + <color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/> </label> </subviews> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> @@ -615,6 +600,7 @@ <image name="Default.png" width="320" height="480"/> <image name="WTPairingScreenshot.png" width="474" height="312"/> <image name="add.png" width="30" height="30"/> + <image name="buttonBackground.png" width="45" height="45"/> <image name="more_ipad.png" width="60" height="60"/> <image name="nextButton_normal.png" width="42" height="230"/> <image name="nextButton_pressed.png" width="42" height="230"/> @@ -693,18 +679,18 @@ <relationship kind="action" name="cancelModalView:"/> </relationships> </class> - <class className="slideShowPreviewTable_vc" superclassName="UITableViewController"> + <class className="slideShowPreviewTable_vc" superclassName="UIViewController"> <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc.h"/> <relationships> + <relationship kind="action" name="startPrefSettings:"/> <relationship kind="action" name="startPresentationAction:"/> - <relationship kind="outlet" name="optionsTable" candidateClass="UITableView"/> + <relationship kind="outlet" name="prefButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="startButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="titleLabel" candidateClass="UILabel"/> </relationships> </class> <class className="slideShowPreviewTable_vc_ipad" superclassName="slideShowPreviewTable_vc"> <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc_ipad.h"/> - <relationships> - <relationship kind="outlet" name="titleLabel" candidateClass="UILabel"/> - </relationships> </class> <class className="slideShowSwipeInList_ipad" superclassName="UITableViewController"> <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowSwipeInList_ipad.h"/> @@ -717,6 +703,6 @@ </simulatedMetricsContainer> <inferredMetricsTieBreakers> <segue reference="YbL-aj-gxv"/> - <segue reference="gCy-Mv-VrC"/> + <segue reference="jsD-4W-bFm"/> </inferredMetricsTieBreakers> </document>
\ No newline at end of file diff --git a/ios/iosremote/zh-Hans.lproj/iPad_autosize.strings b/ios/iosremote/zh-Hans.lproj/iPad_autosize.strings Binary files differindex 07311c046eea..2569a2fc646d 100644 --- a/ios/iosremote/zh-Hans.lproj/iPad_autosize.strings +++ b/ios/iosremote/zh-Hans.lproj/iPad_autosize.strings diff --git a/ios/iosremote/zh-Hans.lproj/iPad_autosize_old.storyboard b/ios/iosremote/zh-Hans.lproj/iPad_autosize_old.storyboard index 4209ccedb509..9893c34c8c6c 100644 --- a/ios/iosremote/zh-Hans.lproj/iPad_autosize_old.storyboard +++ b/ios/iosremote/zh-Hans.lproj/iPad_autosize_old.storyboard @@ -22,13 +22,13 @@ <autoresizingMask key="autoresizingMask"/> <subviews> <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="h0a-Zq-2vY"> - <rect key="frame" x="15" y="12" width="32" height="20"/> + <rect key="frame" x="10" y="11" width="32" height="22"/> <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> </label> <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Fsp-wI-AAW"> - <rect key="frame" x="481" y="12" width="44" height="20"/> + <rect key="frame" x="424" y="11" width="44" height="22"/> <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> <color key="textColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/> <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> @@ -59,8 +59,8 @@ <connections> <outlet property="serverTable" destination="0vt-Sx-o55" id="Szp-pH-0rk"/> <segue destination="m26-i1-eiL" kind="push" identifier="pinValidation" id="yUv-cB-P15"/> - <segue destination="B8g-8S-pgn" kind="push" identifier="SlideShowPreview" id="XCJ-4d-eG4"/> <segue destination="Grm-Od-s6s" kind="push" identifier="howtoSegue" id="hRz-3h-McA"/> + <segue destination="M9Q-tM-7CQ" kind="push" identifier="SlideShowPreview" id="jsD-4W-bFm"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="KBf-aZ-Hhk" sceneMemberID="firstResponder"/> @@ -100,12 +100,12 @@ <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackOpaque"/> <connections> <outlet property="pinLabel" destination="Bp1-Dv-nt4" id="6xd-P5-J5U"/> - <segue destination="B8g-8S-pgn" kind="push" identifier="pinValidated" id="gCy-Mv-VrC"/> + <segue destination="M9Q-tM-7CQ" kind="push" identifier="pinValidated" id="nkI-m0-Ps8"/> </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="gh4-1U-6Dm" userLabel="First Responder" sceneMemberID="firstResponder"/> </objects> - <point key="canvasLocation" x="1024" y="-500"/> + <point key="canvasLocation" x="1004" y="-510"/> </scene> <!--New Server View Controller - 建立新链接--> <scene sceneID="RcY-Im-ohw"> @@ -119,19 +119,19 @@ <tableViewSection footerTitle="" id="CVG-Eq-rLd"> <cells> <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="b8A-jh-k26" customClass="EditableTableViewCell"> - <rect key="frame" x="0.0" y="99" width="540" height="44"/> + <rect key="frame" x="0.0" y="30" width="540" height="45"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> + <rect key="frame" x="31" y="1" width="478" height="43"/> <autoresizingMask key="autoresizingMask"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> </view> </tableViewCell> <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="jrI-wU-4NT" customClass="EditableTableViewCell"> - <rect key="frame" x="0.0" y="143" width="540" height="44"/> + <rect key="frame" x="0.0" y="75" width="540" height="44"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> + <rect key="frame" x="31" y="0.0" width="478" height="43"/> <autoresizingMask key="autoresizingMask"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> </view> @@ -158,81 +158,70 @@ <point key="canvasLocation" x="1024" y="-1831"/> </scene> <!--Slide Show Preview Table vc ipad--> - <scene sceneID="ejm-Sz-YCw"> + <scene sceneID="5gD-BL-PRq"> <objects> - <tableViewController storyboardIdentifier="slideShowPreview" id="B8g-8S-pgn" customClass="slideShowPreviewTable_vc_ipad" sceneMemberID="viewController"> - <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="Pc5-8o-PrW"> + <viewController storyboardIdentifier="slideShowPreview" id="M9Q-tM-7CQ" customClass="slideShowPreviewTable_vc_ipad" sceneMemberID="viewController"> + <view key="view" contentMode="scaleToFill" id="8vR-9Z-5Vk"> <rect key="frame" x="0.0" y="64" width="540" height="556"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/> - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> - <view key="tableHeaderView" contentMode="scaleToFill" id="YCJ-J4-RGt"> - <rect key="frame" x="0.0" y="0.0" width="540" height="281"/> - <subviews> - <view contentMode="scaleToFill" id="Is1-dX-SaP"> - <rect key="frame" x="0.0" y="37" width="540" height="208"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> - <subviews> - <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="演示文稿标题" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="5" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="JEW-I6-sw5"> - <rect key="frame" x="20" y="20" width="500" height="168"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/> - <fontDescription key="fontDescription" name="HiraKakuProN-W6" family="Hiragino Kaku Gothic ProN" pointSize="27"/> - <color key="textColor" red="0.21176470589999999" green="0.81568627449999997" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> - <nil key="highlightedColor"/> - </label> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> - </view> - </subviews> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - <sections> - <tableViewSection id="gMl-dC-GqD"> - <cells> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="tqg-R4-Coi"> - <rect key="frame" x="0.0" y="291" width="540" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="45"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="f4z-FH-mar"> - <rect key="frame" x="0.0" y="336" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="5jP-bD-Vcy"> - <rect key="frame" x="0.0" y="380" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="540" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> - </view> - </tableViewCell> - </cells> - </tableViewSection> - </sections> - <connections> - <outlet property="dataSource" destination="B8g-8S-pgn" id="SGm-yW-lAs"/> - <outlet property="delegate" destination="B8g-8S-pgn" id="p2A-1P-NJP"/> - </connections> - </tableView> - <navigationItem key="navigationItem" id="4ju-ge-QPw"/> - <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackOpaque"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <subviews> + <view contentMode="scaleToFill" id="iAg-GA-qtj"> + <rect key="frame" x="0.0" y="20" width="540" height="234"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Presentation Title" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="sXT-OZ-7y3"> + <rect key="frame" x="20" y="20" width="500" height="194"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" type="system" pointSize="24"/> + <color key="textColor" red="0.39589986310000003" green="0.87052349449999999" blue="0.78039215689999997" alpha="1" colorSpace="calibratedRGB"/> + <nil key="highlightedColor"/> + </label> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> + </view> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="0k4-5k-dza"> + <rect key="frame" x="182" y="363" width="177" height="44"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/> + <state key="normal" title="Start Presentation" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPresentationAction:" destination="M9Q-tM-7CQ" eventType="touchUpInside" id="ZcD-xo-Cvg"/> + </connections> + </button> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="02F-Tj-9xO" userLabel="slideShowPreview"> + <rect key="frame" x="201" y="438" width="138" height="44"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="17"/> + <state key="normal" title="Preferences" backgroundImage="buttonBackground.png"> + <color key="titleColor" red="1" green="0.50196078430000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startPrefSettings:" destination="M9Q-tM-7CQ" eventType="touchUpInside" id="oUK-cn-Bx7"/> + </connections> + </button> + </subviews> + <color key="backgroundColor" red="0.92941176469999998" green="0.92941176469999998" blue="0.92941176469999998" alpha="1" colorSpace="calibratedRGB"/> + </view> + <navigationItem key="navigationItem" id="CJJ-Ti-ahy"/> <connections> - <outlet property="optionsTable" destination="Pc5-8o-PrW" id="18R-Zo-CBq"/> - <outlet property="titleLabel" destination="JEW-I6-sw5" id="1AH-TC-z10"/> + <outlet property="prefButton" destination="02F-Tj-9xO" id="vc4-VF-px0"/> + <outlet property="startButton" destination="0k4-5k-dza" id="sMZ-jn-IzZ"/> + <outlet property="titleLabel" destination="sXT-OZ-7y3" id="U2U-p1-it2"/> </connections> - </tableViewController> - <placeholder placeholderIdentifier="IBFirstResponder" id="gg2-6d-fyF" userLabel="First Responder" sceneMemberID="firstResponder"/> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="gp3-Xs-lfE" userLabel="First Responder" sceneMemberID="firstResponder"/> </objects> - <point key="canvasLocation" x="1768" y="-1374"/> + <point key="canvasLocation" x="1754" y="-1374"/> </scene> <!--Base Presentation View Controller--> <scene sceneID="5zi-ge-3SF"> @@ -345,7 +334,7 @@ </connections> </button> <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" directionalLockEnabled="YES" bounces="NO" alwaysBounceHorizontal="YES" pagingEnabled="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" id="DUv-gH-oAo"> - <rect key="frame" x="0.0" y="-1" width="691" height="102"/> + <rect key="frame" x="0.0" y="-1" width="698" height="102"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES"/> <subviews> <view contentMode="scaleToFill" id="JaD-yW-hWg" userLabel="View - StopWatch"> @@ -541,22 +530,18 @@ <rect key="frame" x="0.0" y="22" width="320" height="178"/> <autoresizingMask key="autoresizingMask"/> <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> - <rect key="frame" x="0.0" y="0.0" width="320" height="178"/> + <rect key="frame" x="0.0" y="0.0" width="320" height="177"/> <autoresizingMask key="autoresizingMask"/> <subviews> <imageView userInteractionEnabled="NO" tag="1" contentMode="scaleToFill" image="Default.png" id="dn1-99-Dde"> <rect key="frame" x="44" y="3.5" width="233" height="163"/> </imageView> - <label clipsSubviews="YES" userInteractionEnabled="NO" tag="2" contentMode="left" text="1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="1" highlighted="YES" id="qrH-bi-qw7"> - <rect key="frame" x="-605" y="149" width="29" height="21"/> - <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> - <accessibility key="accessibilityConfiguration"> - <accessibilityTraits key="traits" none="YES" selected="YES" staticText="YES"/> - </accessibility> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="2" contentMode="left" text="1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="b5V-aR-n9S"> + <rect key="frame" x="245" y="145" width="32" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <color key="backgroundColor" white="0.80146555659999996" alpha="1" colorSpace="calibratedWhite"/> <fontDescription key="fontDescription" type="system" pointSize="17"/> - <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> - <nil key="highlightedColor"/> + <color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/> </label> </subviews> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> @@ -615,6 +600,7 @@ <image name="Default.png" width="320" height="480"/> <image name="WTPairingScreenshot.png" width="474" height="312"/> <image name="add.png" width="30" height="30"/> + <image name="buttonBackground.png" width="45" height="45"/> <image name="more_ipad.png" width="60" height="60"/> <image name="nextButton_normal.png" width="42" height="230"/> <image name="nextButton_pressed.png" width="42" height="230"/> @@ -693,18 +679,18 @@ <relationship kind="action" name="cancelModalView:"/> </relationships> </class> - <class className="slideShowPreviewTable_vc" superclassName="UITableViewController"> + <class className="slideShowPreviewTable_vc" superclassName="UIViewController"> <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc.h"/> <relationships> + <relationship kind="action" name="startPrefSettings:"/> <relationship kind="action" name="startPresentationAction:"/> - <relationship kind="outlet" name="optionsTable" candidateClass="UITableView"/> + <relationship kind="outlet" name="prefButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="startButton" candidateClass="UIButton"/> + <relationship kind="outlet" name="titleLabel" candidateClass="UILabel"/> </relationships> </class> <class className="slideShowPreviewTable_vc_ipad" superclassName="slideShowPreviewTable_vc"> <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc_ipad.h"/> - <relationships> - <relationship kind="outlet" name="titleLabel" candidateClass="UILabel"/> - </relationships> </class> <class className="slideShowSwipeInList_ipad" superclassName="UITableViewController"> <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowSwipeInList_ipad.h"/> @@ -717,6 +703,6 @@ </simulatedMetricsContainer> <inferredMetricsTieBreakers> <segue reference="YbL-aj-gxv"/> - <segue reference="gCy-Mv-VrC"/> + <segue reference="jsD-4W-bFm"/> </inferredMetricsTieBreakers> </document>
\ No newline at end of file |