project_files/HedgewarsMobile/Classes/OverlayViewController.m
changeset 3525 1d7b056ff866
parent 3523 6592fbb969da
child 3535 9e78c1f3d8d8
equal deleted inserted replaced
3523:6592fbb969da 3525:1d7b056ff866
    18 #define HIDING_TIME_DEFAULT [NSDate dateWithTimeIntervalSinceNow:2.7]
    18 #define HIDING_TIME_DEFAULT [NSDate dateWithTimeIntervalSinceNow:2.7]
    19 #define HIDING_TIME_NEVER   [NSDate dateWithTimeIntervalSinceNow:10000]
    19 #define HIDING_TIME_NEVER   [NSDate dateWithTimeIntervalSinceNow:10000]
    20 
    20 
    21 
    21 
    22 @implementation OverlayViewController
    22 @implementation OverlayViewController
    23 @synthesize popoverController, popupMenu, writeChatTextField;
    23 @synthesize popoverController, popupMenu, writeChatTextField, spinningWheel;
    24 
       
    25 
    24 
    26 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
    25 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
    27 	return rotationManager(interfaceOrientation);
    26 	return rotationManager(interfaceOrientation);
    28 }
    27 }
    29 
    28 
   109 
   108 
   110 #pragma mark -
   109 #pragma mark -
   111 #pragma mark View Management
   110 #pragma mark View Management
   112 -(void) viewDidLoad {
   111 -(void) viewDidLoad {
   113     isPopoverVisible = NO;
   112     isPopoverVisible = NO;
       
   113     singleton = self.spinningWheel;
       
   114     canDim = NO;
   114     self.view.alpha = 0;
   115     self.view.alpha = 0;
   115     self.view.center = CGPointMake(self.view.frame.size.height/2.0, self.view.frame.size.width/2.0);
   116     self.view.center = CGPointMake(self.view.frame.size.height/2.0, self.view.frame.size.width/2.0);
   116     
   117     
   117     
   118     
   118     dimTimer = [[NSTimer alloc] initWithFireDate:[NSDate dateWithTimeIntervalSinceNow:6]
   119     dimTimer = [[NSTimer alloc] initWithFireDate:[NSDate dateWithTimeIntervalSinceNow:6]
   146 
   147 
   147 -(void) viewDidUnload {
   148 -(void) viewDidUnload {
   148     self.writeChatTextField = nil;
   149     self.writeChatTextField = nil;
   149     self.popoverController = nil;
   150     self.popoverController = nil;
   150     self.popupMenu = nil;
   151     self.popupMenu = nil;
       
   152     self.spinningWheel = nil;
   151     [super viewDidUnload];
   153     [super viewDidUnload];
   152     MSG_DIDUNLOAD();
   154     MSG_DIDUNLOAD();
   153 }
   155 }
   154 
   156 
   155 -(void) dealloc {
   157 -(void) dealloc {
   156 	[dimTimer invalidate];
   158 	[dimTimer invalidate];
   157     [writeChatTextField release];
   159     [writeChatTextField release];
   158     [popupMenu release];
   160     [popupMenu release];
   159     [popoverController release];
   161     [popoverController release];
   160     // dimTimer is autoreleased
   162     // dimTimer is autoreleased
       
   163     [spinningWheel release];
   161     [super dealloc];
   164     [super dealloc];
   162 }
   165 }
   163 
   166 
   164 #pragma mark -
   167 #pragma mark -
   165 #pragma mark Overlay actions and members
   168 #pragma mark Overlay actions and members
   169     [dimTimer setFireDate:HIDING_TIME_DEFAULT];
   172     [dimTimer setFireDate:HIDING_TIME_DEFAULT];
   170 }
   173 }
   171 
   174 
   172 // nice transition for dimming, should be called only by the timer himself
   175 // nice transition for dimming, should be called only by the timer himself
   173 -(void) dimOverlay {
   176 -(void) dimOverlay {
   174     [UIView beginAnimations:@"overlay dim" context:NULL];
   177     if (canDim) {
   175    	[UIView setAnimationDuration:0.6];
   178         [UIView beginAnimations:@"overlay dim" context:NULL];
   176     self.view.alpha = 0.2;
   179         [UIView setAnimationDuration:0.6];
   177 	[UIView commitAnimations];
   180         self.view.alpha = 0.2;
       
   181         [UIView commitAnimations];
       
   182     }
   178 }
   183 }
   179 
   184 
   180 // set the overlay visible and put off the timer for enough time
   185 // set the overlay visible and put off the timer for enough time
   181 -(void) activateOverlay {
   186 -(void) activateOverlay {
   182     self.view.alpha = 1;
   187     self.view.alpha = 1;
   294     }
   299     }
   295 }
   300 }
   296 
   301 
   297 -(void) textFieldDoneEditing:(id) sender{
   302 -(void) textFieldDoneEditing:(id) sender{
   298     [sender resignFirstResponder];
   303     [sender resignFirstResponder];
       
   304 }
       
   305 
       
   306 // this function is called by pascal FinishProgress and removes the spinning wheel when loading is done
       
   307 void spinningWheelDone (void) {
       
   308     [UIView beginAnimations:@"hiding spinning wheel" context:NULL];
       
   309     [UIView setAnimationDuration:0.7];
       
   310     singleton.alpha = 0;
       
   311     [UIView commitAnimations];
       
   312     [singleton performSelector:@selector(stopAnimating) withObject:nil afterDelay:0.7];
       
   313     canDim = YES;
   299 }
   314 }
   300 
   315 
   301 #pragma mark -
   316 #pragma mark -
   302 #pragma mark Custom touch event handling
   317 #pragma mark Custom touch event handling
   303 -(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
   318 -(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {