[dasher: 9/21] iPhone: support iPad-size screen also, inc settings/toolbar in landscape mode



commit bc28db2e9e7b2fb9631ce4aeab96cbd8848a6fa4
Author: Alan Lawrence <acl33 inf phy cam ac uk>
Date:   Wed Jun 22 12:18:42 2011 +0100

    iPhone: support iPad-size screen also, inc settings/toolbar in landscape mode
    
    Updated splashscreen (*2, in iPhone / iPad resolutions);
    RM Locked.png (hourglass), use splashscreen instead
    
    TODO: speed slider non-functional, and tilting fails in landscape orientation...

 Src/iPhone/Classes/DasherAppDelegate.h      |    6 +-
 Src/iPhone/Classes/DasherAppDelegate.mm     |   96 ++++++++++-----------------
 Src/iPhone/Classes/IPhoneInputs.mm          |    4 +-
 Src/iPhone/Classes/ParametersController.mm  |   24 +++++--
 Src/iPhone/Dasher.xcodeproj/project.pbxproj |   18 +++---
 Src/iPhone/Default.png                      |  Bin 15915 -> 29076 bytes
 Src/iPhone/Locked.png                       |  Bin 27258 -> 0 bytes
 7 files changed, 64 insertions(+), 84 deletions(-)
---
diff --git a/Src/iPhone/Classes/DasherAppDelegate.h b/Src/iPhone/Classes/DasherAppDelegate.h
index 766784a..10dc759 100644
--- a/Src/iPhone/Classes/DasherAppDelegate.h
+++ b/Src/iPhone/Classes/DasherAppDelegate.h
@@ -28,7 +28,7 @@
   UITextView *messageLabel;
   UISlider *speedSlider;
   BOOL doneSetup;
-  BOOL m_bLandscapeSupported;
+  BOOL m_bAllowsRotation;
   /// Should really be part of UIViewController (lockable), below...but then, how to find?
   UILabel *screenLockLabel;
   NSMutableArray *toolbarItems;
@@ -53,12 +53,10 @@
 - (NSString *)textAtOffset:(unsigned int)offset Length:(unsigned int)length;
 - (void)setLockText:(NSString *)s;
 - (void)displayMessage:(NSString *)msg;
-- (void)setLandscapeSupported:(BOOL)supported;
 + (DasherAppDelegate *)theApp;
 
-//@property (nonatomic, retain) IBOutlet EAGLView *glView;
-//@property (nonatomic, retain) IBOutlet UIWindow *window;
 @property (readonly) CDasherInterfaceBridge *dasherInterface;
+ property BOOL allowsRotation;
 @end
 
 @interface UIViewController (lockable)
diff --git a/Src/iPhone/Classes/DasherAppDelegate.mm b/Src/iPhone/Classes/DasherAppDelegate.mm
index ad42cc6..5d3369d 100644
--- a/Src/iPhone/Classes/DasherAppDelegate.mm
+++ b/Src/iPhone/Classes/DasherAppDelegate.mm
@@ -32,6 +32,16 @@
 }
 @end
 
+ interface UINavigationController (MultiOrient)
+-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation;
+ end
+
+ implementation UINavigationController (MultiOrient)
+-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
+  return toInterfaceOrientation != UIInterfaceOrientationPortraitUpsideDown;
+}
+ end
+
 
 //declare some private methods!
 @interface DasherAppDelegate ()
@@ -45,6 +55,7 @@
 - (void)selectEAGLContext;
 @property (retain) UILabel *screenLockLabel;
 @property (retain) NSString *lockText;
+ property (retain) UIWindow *window;
 @property (nonatomic,retain) NSString *m_wordBoundary;
 @property (nonatomic,retain) NSString *m_sentenceBoundary;
 @property (nonatomic,retain) NSString *m_lineBoundary;
@@ -75,13 +86,15 @@ static SModuleSettings _miscSettings[] = { //note iStep and string description a
 @synthesize m_wordBoundary;
 @synthesize m_sentenceBoundary;
 @synthesize m_lineBoundary;
+ synthesize allowsRotation = m_bAllowsRotation;
+ synthesize window;
 
 -(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
   if (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
     return NO;
-  if (m_bLandscapeSupported || interfaceOrientation == UIInterfaceOrientationPortrait)
-    return YES;
-  return NO;
+  if (m_bAllowsRotation) return YES;
+  UIInterfaceOrientation current = self.interfaceOrientation;
+  return interfaceOrientation == current;
 }
 
 -(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
@@ -89,72 +102,29 @@ static SModuleSettings _miscSettings[] = { //note iStep and string description a
   [self doLayout:self.interfaceOrientation];
 }
 
--(void)viewWillAppear:(BOOL)animated {
-  if (m_bLandscapeSupported) {
-    UIDeviceOrientation devOrient = [[UIDevice currentDevice] orientation];
-    UIInterfaceOrientation intOrient;
-    CGAffineTransform trans;
-    switch (devOrient) {
-      case UIDeviceOrientationLandscapeLeft:
-        intOrient = UIInterfaceOrientationLandscapeRight;
-        trans = CGAffineTransformMakeRotation(M_PI/2.0);
-        break;
-      case UIDeviceOrientationLandscapeRight:
-        intOrient = UIInterfaceOrientationLandscapeLeft;
-        trans = CGAffineTransformMakeRotation(-M_PI/2.0);
-        break;
-      case UIDeviceOrientationPortrait:
-      case UIDeviceOrientationPortraitUpsideDown:
-      default: //???
-        intOrient = UIInterfaceOrientationPortrait;
-        trans = CGAffineTransformIdentity;
-        break;
-    }
-    if (self.interfaceOrientation != intOrient) {
-      [[UIApplication sharedApplication] setStatusBarOrientation:intOrient];
-      self.view.transform = trans;
-      [self doLayout:intOrient];
-    }
-  }
-}
-
--(void)setLandscapeSupported:(BOOL)bLandscapeSupported {
-  m_bLandscapeSupported = bLandscapeSupported;
-  //note that if we've just _enabled_ landscape support when the phone
-  // was previously in landscape orientation (but the interface _not_),
-  // there will be no rotation event sent by the OS; however,
-  // we do our best to adjust the interface to suit (i.e., putting it into
-  // landscape mode, now that it newly supports this) in viewWillAppear:, above.
-
-  //The case of _disabling_ landscape support when the phone+interface were already in landscape
-  // orientation, we do _not_ need to handle (for now): the landscape interface does not allow
-  // calling up the settings in order to select a different input method (which might disable it!)
-}
-
 /// Sets sizes of toolbar and textview according to supplied orientation
 /// Also computes and returns desired size of glView, and sets said _iff_ glView is non-nil
 -(CGRect)doLayout:(UIInterfaceOrientation)orient {
-  CGRect appFrame = [UIScreen mainScreen].applicationFrame;
-  window.frame=appFrame;
-  self.view.frame = CGRectMake(0.0, 0.0, appFrame.size.width, appFrame.size.height);
+  self.view.frame = [UIScreen mainScreen].applicationFrame;
 
-  CGSize mainSize = self.view.bounds.size;
+  const CGSize mainSize = self.view.bounds.size;
+  //now always display toolbar, even in landscape
+  const int barHeight(mainSize.height/20);
+  const int mainHeight(mainSize.height - barHeight);
+  tools.frame = CGRectMake(0.0, mainHeight, mainSize.width, barHeight);
   CGRect dashRect,textRect;
   switch (orient) {
     case UIInterfaceOrientationPortrait: {
-      dashRect = CGRectMake(0.0, 0.0, mainSize.width, mainSize.height - 100.0);
-      textRect = CGRectMake(0.0, dashRect.size.height, mainSize.width, 70.0);
+      dashRect = CGRectMake(0.0, 0.0, mainSize.width, ((mainHeight*3)/4));
+      textRect = CGRectMake(0.0, dashRect.size.height, mainSize.width, mainHeight-dashRect.size.height);
       textView.bLandscape = NO;
-      tools.frame = CGRectMake(0.0, mainSize.height - 30.0, mainSize.width, 30.0);
-      [self.view addSubview:tools];
       break;
     }
     case UIInterfaceOrientationLandscapeRight:
     case UIInterfaceOrientationLandscapeLeft: {
-      textRect = CGRectMake(0.0, 0.0, 100.0, mainSize.height);//-30.0);
+      textRect = CGRectMake(0.0, 0.0, static_cast<int>((mainSize.width*2)/9), mainHeight);
+      dashRect = CGRectMake(textRect.size.width, 0.0, mainSize.width-textRect.size.width, mainHeight);
       textView.bLandscape = YES;
-      dashRect = CGRectMake(textRect.size.width, 0.0, mainSize.width-textRect.size.width, mainSize.height);//-30.0);
-      [tools removeFromSuperview];
       break;
     }
     default:
@@ -173,13 +143,13 @@ static SModuleSettings _miscSettings[] = { //note iStep and string description a
 - (void)applicationDidFinishLaunching:(UIApplication *)application {
   //by default, we support landscape mode (i.e. unless the input device _disables_ it)
   // - hence, set now, before the input device is activate()d...
-  m_bLandscapeSupported = YES;
+  m_bAllowsRotation = YES;
 
   //sizes set in doLayout, below...
-	window = [[UIWindow alloc] init];
+	self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
 	self.view = [[[UIView alloc] init] autorelease];
 
-	[window addSubview:self.view];
+	[self.window addSubview:self.view];
   
   //make object (this doesn't do anything much, initialization/Realize later
   // - but we have to set a screen before we Realize)
@@ -359,6 +329,7 @@ static SModuleSettings _miscSettings[] = { //note iStep and string description a
 
 -(void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated {
   [glView stopAnimation];
+  [[[UIApplication sharedApplication] keyWindow] setRootViewController:modalViewController];
   [super presentModalViewController:modalViewController animated:animated];
 }
 
@@ -595,9 +566,10 @@ static SModuleSettings _miscSettings[] = { //note iStep and string description a
   CGSize mainSize = [UIScreen mainScreen].applicationFrame.size;
   UIViewController *lockCon = [[[UIViewController alloc] init] autorelease];
   UIImageView *imgView = [[[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, mainSize.width, mainSize.height)] autorelease];
-  imgView.image = [UIImage imageNamed:@"Locked.png"];
+  imgView.image = [UIImage imageNamed:@"Default"];
+  imgView.contentMode = UIViewContentModeBottomRight;
   lockCon.view = imgView;
-  CGRect mainLabelRect = CGRectMake(40.0, 200.0, mainSize.width-80.0, 80.0);
+  CGRect mainLabelRect = CGRectMake(40.0, (mainSize.height*5)/12, mainSize.width-80.0, mainSize.height/6);
   UILabel *lbl1 = [[[UILabel alloc] initWithFrame:mainLabelRect] autorelease];
   lbl1.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8];
   lbl1.textColor = [UIColor whiteColor];
@@ -605,7 +577,7 @@ static SModuleSettings _miscSettings[] = { //note iStep and string description a
   lbl1.text = msg;
   lbl1.adjustsFontSizeToFitWidth = YES;
   [imgView addSubview:lbl1];
-  UILabel *lbl2 = [[[UILabel alloc] initWithFrame:CGRectMake(mainLabelRect.origin.x+20.0,mainLabelRect.origin.y+mainLabelRect.size.height+20,mainLabelRect.size.width-40, mainLabelRect.size.height-40)] autorelease];
+  UILabel *lbl2 = [[[UILabel alloc] initWithFrame:CGRectMake(mainLabelRect.origin.x+20.0,(mainSize.height*15)/24,mainLabelRect.size.width-40, mainSize.height/12)] autorelease];
   lbl2.backgroundColor = lbl1.backgroundColor;
   lbl2.textColor = lbl1.textColor;
   lbl2.textAlignment = UITextAlignmentCenter;
diff --git a/Src/iPhone/Classes/IPhoneInputs.mm b/Src/iPhone/Classes/IPhoneInputs.mm
index 4458a39..8e1d183 100644
--- a/Src/iPhone/Classes/IPhoneInputs.mm
+++ b/Src/iPhone/Classes/IPhoneInputs.mm
@@ -80,13 +80,13 @@ void CIPhoneTiltInput::NotifyTilt(float fx, float fy, float fz) {
 }
 
 void CIPhoneTiltInput::Activate() {
-  [[DasherAppDelegate theApp] setLandscapeSupported:NO];
+  [DasherAppDelegate theApp].allowsRotation=NO;
   UIAccelerometer*  theAccelerometer = [UIAccelerometer sharedAccelerometer];
   theAccelerometer.updateInterval = 0.01; //in secs
   theAccelerometer.delegate = deleg;
 }
 void CIPhoneTiltInput::Deactivate() {
-  [[DasherAppDelegate theApp] setLandscapeSupported:YES];
+  [DasherAppDelegate theApp].allowsRotation=YES;
   [UIAccelerometer sharedAccelerometer].delegate = nil;
 }
 
diff --git a/Src/iPhone/Classes/ParametersController.mm b/Src/iPhone/Classes/ParametersController.mm
index 3f399be..c221245 100644
--- a/Src/iPhone/Classes/ParametersController.mm
+++ b/Src/iPhone/Classes/ParametersController.mm
@@ -43,7 +43,7 @@ using Dasher::Settings::GetParameterName;
   view.backgroundColor = [UIColor whiteColor];
   
   int y=[self layoutOptionsOn:view startingAtY:15];
-  [view setContentSize:CGSizeMake(320.0,y-15)];
+  [view setContentSize:CGSizeMake([UIScreen mainScreen].applicationFrame.size.width,y-15)];
 }
 
 -(int)layoutOptionsOn:(UIView *)view startingAtY:(int)y {
@@ -53,6 +53,7 @@ using Dasher::Settings::GetParameterName;
 
 -(int)layoutModuleSettings:(SModuleSettings *)settings count:(int)count onView:(UIView *)view startingAtY:(int)y {
   CDasherInterfaceBridge *intf = [DasherAppDelegate theApp].dasherInterface;
+  CGSize appSize = [UIScreen mainScreen].applicationFrame.size;
   for (int i=0; i<count; i++) {
     if (settings[i].iType == T_BOOL) {
       UISwitch *sw=[self makeSwitch:NSStringFromStdString(GetParameterName(settings[i].iParameter)) onView:view atY:&y];
@@ -60,8 +61,9 @@ using Dasher::Settings::GetParameterName;
       sw.on = intf->GetBoolParameter(settings[i].iParameter);
       [sw addTarget:self action:@selector(boolParamChanged:) forControlEvents:UIControlEventValueChanged];
     } else if (settings[i].iType == T_LONG) {
-      UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(10.0, y, 300.0, 20.0)] autorelease];
-      UISlider *slider = [[[UISlider alloc] initWithFrame:CGRectMake(10.0, y+20, 300.0, 20.0)] autorelease];
+      UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(10.0, y, appSize.width-20, 20.0)] autorelease];
+      label.textAlignment = UITextAlignmentCenter;
+      UISlider *slider = [[[UISlider alloc] initWithFrame:CGRectMake(10.0, y+20, appSize.width-20, 20.0)] autorelease];
       slider.tag = (int)label; label.tag=(int)&settings[i];
       slider.minimumValue = settings[i].iMin; slider.maximumValue = settings[i].iMax;
       slider.value = intf->GetLongParameter(settings[i].iParameter);
@@ -75,17 +77,25 @@ using Dasher::Settings::GetParameterName;
 }
 
 -(UISwitch *)makeSwitch:(NSString *)title onView:(UIView *)view atY:(int *)pY {
-  UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(10.0, *pY, 190.0, 20.0)] autorelease];
+  CGFloat appWidth = [UIScreen mainScreen].applicationFrame.size.width;
+  const int textWidth(ceil([title sizeWithFont:[UIFont systemFontOfSize:[UIFont labelFontSize]]].width));
+
+  UISwitch *sw = [[[UISwitch alloc] initWithFrame:CGRectMake(10.0, *pY, appWidth/3, 20.0)] autorelease];
+  //UISwitch's ignore the size with which they are constructed and make themselves
+  // a default "sensible" size...
+  CGSize swSize = sw.frame.size;
+  UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(floor((appWidth-textWidth-swSize.width-20)/2), *pY, textWidth, swSize.height)] autorelease];
   label.text = title;
-  UISwitch *sw = [[[UISwitch alloc] initWithFrame:CGRectMake(210.0, *pY, 100.0, 20.0)] autorelease];
+  sw.frame = CGRectMake(label.frame.origin.x + textWidth+20, *pY, swSize.width, swSize.height);
+  
   [view addSubview:label];
   [view addSubview:sw];
-  *pY += 50;
+  *pY += swSize.height+30;
   return sw;
 }
 
 -(int)makeNoSettingsLabelOnView:(UIView *)view atY:(int)y {
-  UILabel *label=[[[UILabel alloc] initWithFrame:CGRectMake(10.0, y, 300.0, 20.0)] autorelease];
+  UILabel *label=[[[UILabel alloc] initWithFrame:CGRectMake(10.0, y, view.bounds.size.width-20, 20.0)] autorelease];
   label.text=@"No Settings";
   [view addSubview:label];
   return y+50;
diff --git a/Src/iPhone/Dasher.xcodeproj/project.pbxproj b/Src/iPhone/Dasher.xcodeproj/project.pbxproj
index b933151..1453409 100755
--- a/Src/iPhone/Dasher.xcodeproj/project.pbxproj
+++ b/Src/iPhone/Dasher.xcodeproj/project.pbxproj
@@ -20,6 +20,7 @@
 		3302678111B8026900C07880 /* scissors.png in Resources */ = {isa = PBXBuildFile; fileRef = 3302678011B8026900C07880 /* scissors.png */; };
 		3302678C11B8040D00C07880 /* spanner_lg.png in Resources */ = {isa = PBXBuildFile; fileRef = 3302678A11B8040D00C07880 /* spanner_lg.png */; };
 		3302678D11B8040D00C07880 /* spanner.png in Resources */ = {isa = PBXBuildFile; fileRef = 3302678B11B8040D00C07880 /* spanner.png */; };
+		3304E31313C6121A000B2971 /* Default~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 3304E31213C6121A000B2971 /* Default~ipad.png */; };
 		331C73C30F71750D004492FF /* COSXSettingsStore.mm in Sources */ = {isa = PBXBuildFile; fileRef = 331C73C20F71750D004492FF /* COSXSettingsStore.mm */; };
 		331C73F50F717594004492FF /* DasherUtil.mm in Sources */ = {isa = PBXBuildFile; fileRef = 331C73F40F717594004492FF /* DasherUtil.mm */; };
 		331F29430F7A9C270044EB9C /* alphabet-nest.xsl in Resources */ = {isa = PBXBuildFile; fileRef = 331F28B70F7A9C270044EB9C /* alphabet-nest.xsl */; };
@@ -214,7 +215,6 @@
 		3344FE640F71717C00506EAA /* UserLogParam.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3344FE0D0F71717C00506EAA /* UserLogParam.cpp */; };
 		3344FE650F71717C00506EAA /* UserLogTrial.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3344FE0F0F71717C00506EAA /* UserLogTrial.cpp */; };
 		3344FE660F71717C00506EAA /* XMLUtil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3344FE130F71717C00506EAA /* XMLUtil.cpp */; };
-		334AC9B8102AE19400CE6871 /* Locked.png in Resources */ = {isa = PBXBuildFile; fileRef = 334AC9B7102AE19400CE6871 /* Locked.png */; };
 		334B1BF111232A8E007A6DFF /* ParametersController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 334B1BF011232A8E007A6DFF /* ParametersController.mm */; };
 		3354AF4811ADBAFD006CF570 /* Actions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3354AF4711ADBAFD006CF570 /* Actions.mm */; };
 		3360335813ABDF3700417DFE /* ScreenGameModule.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3360335713ABDF3700417DFE /* ScreenGameModule.cpp */; };
@@ -251,9 +251,9 @@
 		3378A23F1335425300A96C5D /* AbstractXMLParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3378A23D1335425200A96C5D /* AbstractXMLParser.cpp */; };
 		3378A267133543B800A96C5D /* control.xml in Resources */ = {isa = PBXBuildFile; fileRef = 3378A266133543B800A96C5D /* control.xml */; };
 		337ECC1B10DD5E0700D0C6A5 /* ExpansionPolicy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 337ECC1910DD5E0700D0C6A5 /* ExpansionPolicy.cpp */; };
+		339E340E13C6206E007A2BCC /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 339E340D13C6206E007A2BCC /* Default.png */; };
 		339F8A330FF5088000282847 /* CalibrationController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 339F8A320FF5088000282847 /* CalibrationController.mm */; };
 		33B3430813A8A927009AE0D5 /* DashIntfScreenMsgs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 33B3430613A8A927009AE0D5 /* DashIntfScreenMsgs.cpp */; };
-		33C71AF20FF7B51700A20992 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 33C71AF10FF7B51700A20992 /* Default.png */; };
 		33CBB397101F422200510BF9 /* PPMPYLanguageModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 33CBB395101F422200510BF9 /* PPMPYLanguageModel.cpp */; };
 		33CBB4CD101F9E5F00510BF9 /* training_czechC_CS.txt in Resources */ = {isa = PBXBuildFile; fileRef = 33CBB4C7101F9E5F00510BF9 /* training_czechC_CS.txt */; };
 		33CBB4CE101F9E5F00510BF9 /* training_englishLC_GB.txt in Resources */ = {isa = PBXBuildFile; fileRef = 33CBB4C8101F9E5F00510BF9 /* training_englishLC_GB.txt */; };
@@ -305,6 +305,7 @@
 		3302678011B8026900C07880 /* scissors.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = scissors.png; sourceTree = "<group>"; };
 		3302678A11B8040D00C07880 /* spanner_lg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = spanner_lg.png; sourceTree = "<group>"; };
 		3302678B11B8040D00C07880 /* spanner.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = spanner.png; sourceTree = "<group>"; };
+		3304E31213C6121A000B2971 /* Default~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default~ipad.png"; sourceTree = "<group>"; };
 		331C73C10F71750D004492FF /* COSXSettingsStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = COSXSettingsStore.h; sourceTree = "<group>"; };
 		331C73C20F71750D004492FF /* COSXSettingsStore.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = COSXSettingsStore.mm; sourceTree = "<group>"; };
 		331C73F30F717594004492FF /* DasherUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DasherUtil.h; sourceTree = "<group>"; };
@@ -650,7 +651,6 @@
 		3344FE130F71717C00506EAA /* XMLUtil.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XMLUtil.cpp; sourceTree = "<group>"; };
 		3344FE140F71717C00506EAA /* XMLUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XMLUtil.h; sourceTree = "<group>"; };
 		3344FE740F71718B00506EAA /* I18n.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = I18n.h; sourceTree = "<group>"; };
-		334AC9B7102AE19400CE6871 /* Locked.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Locked.png; sourceTree = "<group>"; };
 		334B1BEF11232A8E007A6DFF /* ParametersController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParametersController.h; sourceTree = "<group>"; };
 		334B1BF011232A8E007A6DFF /* ParametersController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ParametersController.mm; sourceTree = "<group>"; };
 		334B1C2011233B8B007A6DFF /* ModuleSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ModuleSettings.h; sourceTree = "<group>"; };
@@ -698,12 +698,12 @@
 		3378A266133543B800A96C5D /* control.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = control.xml; path = ../../Data/control/control.xml; sourceTree = SOURCE_ROOT; };
 		337ECC1910DD5E0700D0C6A5 /* ExpansionPolicy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ExpansionPolicy.cpp; sourceTree = "<group>"; };
 		337ECC1A10DD5E0700D0C6A5 /* ExpansionPolicy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExpansionPolicy.h; sourceTree = "<group>"; };
+		339E340D13C6206E007A2BCC /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
 		339F8A310FF5088000282847 /* CalibrationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CalibrationController.h; sourceTree = "<group>"; };
 		339F8A320FF5088000282847 /* CalibrationController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CalibrationController.mm; sourceTree = "<group>"; };
 		33B342F313A8A8B2009AE0D5 /* Messages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Messages.h; sourceTree = "<group>"; };
 		33B3430613A8A927009AE0D5 /* DashIntfScreenMsgs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DashIntfScreenMsgs.cpp; sourceTree = "<group>"; };
 		33B3430713A8A927009AE0D5 /* DashIntfScreenMsgs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DashIntfScreenMsgs.h; sourceTree = "<group>"; };
-		33C71AF10FF7B51700A20992 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
 		33CBB395101F422200510BF9 /* PPMPYLanguageModel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PPMPYLanguageModel.cpp; sourceTree = "<group>"; };
 		33CBB396101F422200510BF9 /* PPMPYLanguageModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPMPYLanguageModel.h; sourceTree = "<group>"; };
 		33CBB4C7101F9E5F00510BF9 /* training_czechC_CS.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = training_czechC_CS.txt; sourceTree = "<group>"; };
@@ -845,7 +845,6 @@
 				3302678A11B8040D00C07880 /* spanner_lg.png */,
 				3302678B11B8040D00C07880 /* spanner.png */,
 				332F34D8103D9858008448D7 /* palette.png */,
-				334AC9B7102AE19400CE6871 /* Locked.png */,
 				3302672611B7F0D000C07880 /* copy.png */,
 				3334D4D21014740B0077948A /* misc.png */,
 				33DA5E2C11B70FA100011CD2 /* paste.png */,
@@ -861,7 +860,8 @@
 				33F87A230FB1C775003E737C /* MainWindow.xib */,
 				33F879F60FB1C27A003E737C /* Dasher.png */,
 				8D1107310486CEB800E47090 /* Info.plist */,
-				33C71AF10FF7B51700A20992 /* Default.png */,
+				3304E31213C6121A000B2971 /* Default~ipad.png */,
+				339E340D13C6206E007A2BCC /* Default.png */,
 			);
 			name = Resources;
 			sourceTree = "<group>";
@@ -1523,14 +1523,12 @@
 				33CBB4F2101FA33E00510BF9 /* alphabet.portuguese.xml in Resources */,
 				33CBB4F3101FA33E00510BF9 /* alphabet.swedish.xml in Resources */,
 				33CBB4F5101FA35900510BF9 /* training_basque_ES.txt in Resources */,
-				33C71AF20FF7B51700A20992 /* Default.png in Resources */,
 				33F61A5510123FBE00DB7685 /* mail.png in Resources */,
 				3334D44C1013620D0077948A /* cog.png in Resources */,
 				3334D49210137A1C0077948A /* pen.png in Resources */,
 				3334D4A3101385060077948A /* tilt.png in Resources */,
 				3334D4BC1014713B0077948A /* globe.png in Resources */,
 				3334D4D31014740B0077948A /* misc.png in Resources */,
-				334AC9B8102AE19400CE6871 /* Locked.png in Resources */,
 				332F34A3103D8F54008448D7 /* colour.blue.xml in Resources */,
 				332F34A4103D8F54008448D7 /* colour.dtd in Resources */,
 				332F34A5103D8F54008448D7 /* colour.euroasian.xml in Resources */,
@@ -1554,6 +1552,8 @@
 				3302678C11B8040D00C07880 /* spanner_lg.png in Resources */,
 				3302678D11B8040D00C07880 /* spanner.png in Resources */,
 				3378A267133543B800A96C5D /* control.xml in Resources */,
+				3304E31313C6121A000B2971 /* Default~ipad.png in Resources */,
+				339E340E13C6206E007A2BCC /* Default.png in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -1824,7 +1824,7 @@
 				PROVISIONING_PROFILE = "";
 				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
 				SDKROOT = iphoneos;
-				TARGETED_DEVICE_FAMILY = 1;
+				TARGETED_DEVICE_FAMILY = "1,2";
 			};
 			name = Debug;
 		};
diff --git a/Src/iPhone/Default.png b/Src/iPhone/Default.png
index b51e68c..dce335a 100644
Binary files a/Src/iPhone/Default.png and b/Src/iPhone/Default.png differ



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]