cocoaTouch/OverlayViewController.m
changeset 3395 095273ad0e08
parent 3385 361bd29293f4
child 3405 8fdb08497bf1
--- a/cocoaTouch/OverlayViewController.m	Sat May 01 21:53:31 2010 +0000
+++ b/cocoaTouch/OverlayViewController.m	Sat May 01 21:54:08 2010 +0000
@@ -32,28 +32,42 @@
 -(void) didRotate:(NSNotification *)notification {	
     UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
     CGRect rect = [[UIScreen mainScreen] bounds];
+    CGRect usefulRect = CGRectMake(0, 0, rect.size.width, rect.size.height);
+    UIView *sdlView = [[SDLUIKitDelegate sharedAppDelegate].uiwindow viewWithTag:SDL_VIEW_TAG];
     
-	if (orientation == UIDeviceOrientationLandscapeLeft) {
-        [UIView beginAnimations:@"flip1" context:NULL];
-        [UIView setAnimationDuration:0.8f];
-        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
-        [[SDLUIKitDelegate sharedAppDelegate].uiwindow viewWithTag:SDL_VIEW_TAG].transform = CGAffineTransformMakeRotation(degreesToRadian(0));
-        self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(90));
-        self.view.frame = CGRectMake(0, 0, rect.size.width, rect.size.height);
-        [UIView commitAnimations];
-	} else
-        if (orientation == UIDeviceOrientationLandscapeRight) {
-            [UIView beginAnimations:@"flip2" context:NULL];
-            [UIView setAnimationDuration:0.8f];
-            [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
-            [[SDLUIKitDelegate sharedAppDelegate].uiwindow viewWithTag:SDL_VIEW_TAG].transform = CGAffineTransformMakeRotation(degreesToRadian(180));
+    [UIView beginAnimations:@"rotation" context:NULL];
+    [UIView setAnimationDuration:0.8f];
+    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
+	switch (orientation) {
+        case UIDeviceOrientationLandscapeLeft:
+            sdlView.transform = CGAffineTransformMakeRotation(degreesToRadian(0));
+            self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(90));
+            HW_setLandscape(YES);
+            break;
+        case UIDeviceOrientationLandscapeRight:
+            sdlView.transform = CGAffineTransformMakeRotation(degreesToRadian(180));
             self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(-90));
-            self.view.frame = CGRectMake(0, 0, rect.size.width, rect.size.height);
-            [UIView commitAnimations];
-        }
+            HW_setLandscape(YES);
+            break;
+        case UIDeviceOrientationPortrait:
+            sdlView.transform = CGAffineTransformMakeRotation(degreesToRadian(270));
+            self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(0));
+            HW_setLandscape(NO);
+            break;
+        case UIDeviceOrientationPortraitUpsideDown:
+            sdlView.transform = CGAffineTransformMakeRotation(degreesToRadian(90));
+            self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(180));
+            HW_setLandscape(NO);
+            break;
+        default:
+            NSLog(@"warning - Unknown rotation status");
+            break;
+    }
+    self.view.frame = usefulRect;
+    sdlView.frame = usefulRect;
+    [UIView commitAnimations];
 }
 
-
 -(void) viewDidLoad {
 
     isPopoverVisible = NO;