summaryrefslogtreecommitdiff
path: root/ios
diff options
context:
space:
mode:
authorSiqi LIU <me@siqi.fr>2013-09-09 14:34:37 +0200
committerSiqi LIU <me@siqi.fr>2013-09-09 14:36:15 +0200
commit8a1f535c3dbc624b70ba85078ab058f4b4f97f1f (patch)
tree0d1a4a3d0f571123f20a91301c505a4c864d46aa /ios
parent94ad163b3b86283c9d0e9270575922c98d4d4c69 (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')
-rwxr-xr-xios/iosremote/InAppSettingsKit/Controllers/IASKAppSettingsViewController.h84
-rwxr-xr-xios/iosremote/InAppSettingsKit/Controllers/IASKAppSettingsViewController.m796
-rwxr-xr-xios/iosremote/InAppSettingsKit/Controllers/IASKAppSettingsWebViewController.h30
-rwxr-xr-xios/iosremote/InAppSettingsKit/Controllers/IASKAppSettingsWebViewController.m144
-rwxr-xr-xios/iosremote/InAppSettingsKit/Controllers/IASKSpecifierValuesViewController.h36
-rwxr-xr-xios/iosremote/InAppSettingsKit/Controllers/IASKSpecifierValuesViewController.m202
-rwxr-xr-xios/iosremote/InAppSettingsKit/Controllers/IASKViewController.h26
-rwxr-xr-xios/iosremote/InAppSettingsKit/Models/IASKSettingsReader.h144
-rwxr-xr-xios/iosremote/InAppSettingsKit/Models/IASKSettingsReader.m266
-rwxr-xr-xios/iosremote/InAppSettingsKit/Models/IASKSettingsStore.h39
-rwxr-xr-xios/iosremote/InAppSettingsKit/Models/IASKSettingsStore.m68
-rwxr-xr-xios/iosremote/InAppSettingsKit/Models/IASKSettingsStoreFile.h28
-rwxr-xr-xios/iosremote/InAppSettingsKit/Models/IASKSettingsStoreFile.m53
-rwxr-xr-xios/iosremote/InAppSettingsKit/Models/IASKSettingsStoreUserDefaults.h25
-rwxr-xr-xios/iosremote/InAppSettingsKit/Models/IASKSettingsStoreUserDefaults.m67
-rwxr-xr-xios/iosremote/InAppSettingsKit/Models/IASKSpecifier.h59
-rwxr-xr-xios/iosremote/InAppSettingsKit/Models/IASKSpecifier.m239
-rwxr-xr-xios/iosremote/InAppSettingsKit/Views/IASKPSSliderSpecifierViewCell.h31
-rwxr-xr-xios/iosremote/InAppSettingsKit/Views/IASKPSSliderSpecifierViewCell.m71
-rwxr-xr-xios/iosremote/InAppSettingsKit/Views/IASKPSTextFieldSpecifierViewCell.h29
-rwxr-xr-xios/iosremote/InAppSettingsKit/Views/IASKPSTextFieldSpecifierViewCell.m49
-rwxr-xr-xios/iosremote/InAppSettingsKit/Views/IASKPSTitleValueSpecifierViewCell.h22
-rwxr-xr-xios/iosremote/InAppSettingsKit/Views/IASKPSTitleValueSpecifierViewCell.m57
-rwxr-xr-xios/iosremote/InAppSettingsKit/Views/IASKPSToggleSwitchSpecifierViewCell.h29
-rwxr-xr-xios/iosremote/InAppSettingsKit/Views/IASKPSToggleSwitchSpecifierViewCell.m59
-rwxr-xr-xios/iosremote/InAppSettingsKit/Views/IASKSlider.h26
-rwxr-xr-xios/iosremote/InAppSettingsKit/Views/IASKSlider.m29
-rwxr-xr-xios/iosremote/InAppSettingsKit/Views/IASKSwitch.h26
-rwxr-xr-xios/iosremote/InAppSettingsKit/Views/IASKSwitch.m30
-rwxr-xr-xios/iosremote/InAppSettingsKit/Views/IASKTextField.h26
-rwxr-xr-xios/iosremote/InAppSettingsKit/Views/IASKTextField.m29
-rwxr-xr-xios/iosremote/InAppSettingsKit/Xibs/IASKAppSettingsView.xib222
-rwxr-xr-xios/iosremote/InAppSettingsKit/Xibs/IASKAppSettingsWebView.xib378
-rwxr-xr-xios/iosremote/InAppSettingsKit/Xibs/IASKPSSliderSpecifierViewCell.xib251
-rwxr-xr-xios/iosremote/InAppSettingsKit/Xibs/IASKPSTextFieldSpecifierViewCell.xib254
-rwxr-xr-xios/iosremote/InAppSettingsKit/Xibs/IASKPSToggleSwitchSpecifierViewCell.xib237
-rwxr-xr-xios/iosremote/InAppSettingsKit/Xibs/IASKSpecifierValuesView.xib255
-rw-r--r--ios/iosremote/Settings.bundle/Root.plist109
-rw-r--r--ios/iosremote/Settings.bundle/en.lproj/Root.stringsbin0 -> 546 bytes
-rw-r--r--ios/iosremote/UserDefaults.plist4
-rw-r--r--ios/iosremote/en.lproj/iPad_autosize.storyboard180
-rw-r--r--ios/iosremote/en.lproj/iPad_autosize.stringsbin3990 -> 4466 bytes
-rw-r--r--ios/iosremote/en.lproj/iPad_autosize_old.storyboard180
-rw-r--r--ios/iosremote/fr.lproj/iPad_autosize.storyboard180
-rw-r--r--ios/iosremote/fr.lproj/iPad_autosize.stringsbin3994 -> 4526 bytes
-rw-r--r--ios/iosremote/fr.lproj/iPad_autosize_old.storyboard182
-rw-r--r--ios/iosremote/iosremote.xcodeproj/project.pbxproj166
-rw-r--r--ios/iosremote/iosremote/AppDelegate.h3
-rw-r--r--ios/iosremote/iosremote/AppDelegate.m13
-rw-r--r--ios/iosremote/iosremote/BasePresentationViewController.h2
-rw-r--r--ios/iosremote/iosremote/BasePresentationViewController.m51
-rw-r--r--ios/iosremote/iosremote/Communication/Client.m2
-rw-r--r--ios/iosremote/iosremote/Communication/CommunicationManager.m3
-rw-r--r--ios/iosremote/iosremote/ControlVariables.h3
-rw-r--r--ios/iosremote/iosremote/HorizontalSlideCell.m1
-rw-r--r--ios/iosremote/iosremote/Timer.m2
-rw-r--r--ios/iosremote/iosremote/UIViewController+LibOStyling.m1
-rw-r--r--ios/iosremote/iosremote/en.lproj/iPhone_autoSize.storyboard226
-rw-r--r--ios/iosremote/iosremote/en.lproj/iPhone_autoSize.stringsbin3162 -> 3638 bytes
-rw-r--r--ios/iosremote/iosremote/en.lproj/iPhone_autoSize_old.storyboard226
-rw-r--r--ios/iosremote/iosremote/fr.lproj/iPhone_autoSize.storyboard226
-rw-r--r--ios/iosremote/iosremote/fr.lproj/iPhone_autoSize.stringsbin3394 -> 3150 bytes
-rw-r--r--ios/iosremote/iosremote/fr.lproj/iPhone_autoSize_old.storyboard226
-rw-r--r--ios/iosremote/iosremote/iosremote-Prefix.pch1
-rw-r--r--ios/iosremote/iosremote/serverList_vc.m1
-rw-r--r--ios/iosremote/iosremote/slideShowPreviewTable_vc.h16
-rw-r--r--ios/iosremote/iosremote/slideShowPreviewTable_vc.m119
-rw-r--r--ios/iosremote/iosremote/slideShowPreviewTable_vc_ipad.h1
-rw-r--r--ios/iosremote/iosremote/slideShowPreviewTable_vc_ipad.m7
-rw-r--r--ios/iosremote/iosremote/slideShowPreviewTable_vc_iphone.h1
-rw-r--r--ios/iosremote/iosremote/slideShowPreviewTable_vc_iphone.m1
-rw-r--r--ios/iosremote/iosremote/slideShowSwipeInList_ipad.m8
-rw-r--r--ios/iosremote/iosremote/slideShowSwipeInList_iphone.m18
-rw-r--r--ios/iosremote/iosremote/slideShow_vc_iphone.h1
-rw-r--r--ios/iosremote/iosremote/slideShow_vc_iphone.m143
-rw-r--r--ios/iosremote/iosremote/zh-Hans.lproj/iPhone_autoSize.storyboard226
-rw-r--r--ios/iosremote/iosremote/zh-Hans.lproj/iPhone_autoSize.stringsbin3026 -> 2826 bytes
-rw-r--r--ios/iosremote/iosremote/zh-Hans.lproj/iPhone_autoSize_old.storyboard226
-rw-r--r--ios/iosremote/zh-Hans.lproj/iPad_autosize.storyboard176
-rw-r--r--ios/iosremote/zh-Hans.lproj/iPad_autosize.stringsbin3718 -> 4294 bytes
-rw-r--r--ios/iosremote/zh-Hans.lproj/iPad_autosize_old.storyboard178
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
new file mode 100644
index 000000000000..8cd87b9d6b20
--- /dev/null
+++ b/ios/iosremote/Settings.bundle/en.lproj/Root.strings
Binary files differ
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
index 1ed9cbdeaa13..ad30821d3a19 100644
--- a/ios/iosremote/en.lproj/iPad_autosize.strings
+++ b/ios/iosremote/en.lproj/iPad_autosize.strings
Binary files differ
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
index 4f924d49312c..71f37a85b7b6 100644
--- a/ios/iosremote/fr.lproj/iPad_autosize.strings
+++ b/ios/iosremote/fr.lproj/iPad_autosize.strings
Binary files differ
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
index 8f60258ce29e..35fc4a7256e7 100644
--- a/ios/iosremote/iosremote/en.lproj/iPhone_autoSize.strings
+++ b/ios/iosremote/iosremote/en.lproj/iPhone_autoSize.strings
Binary files differ
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
index a3d897943a10..a46df5ea55c1 100644
--- a/ios/iosremote/iosremote/fr.lproj/iPhone_autoSize.strings
+++ b/ios/iosremote/iosremote/fr.lproj/iPhone_autoSize.strings
Binary files differ
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
index f062848166d1..c8ad37c724ae 100644
--- a/ios/iosremote/iosremote/zh-Hans.lproj/iPhone_autoSize.strings
+++ b/ios/iosremote/iosremote/zh-Hans.lproj/iPhone_autoSize.strings
Binary files differ
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
index 07311c046eea..2569a2fc646d 100644
--- a/ios/iosremote/zh-Hans.lproj/iPad_autosize.strings
+++ b/ios/iosremote/zh-Hans.lproj/iPad_autosize.strings
Binary files differ
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