Kaydet (Commit) ae046d75 authored tarafından Siqi LIU's avatar Siqi LIU

Timer/Stopwatch for iPad redesigned

Change-Id: I04f6e2f6fe0f5458b73e20614f5c99f810a4840a
üst f500b2d7
......@@ -11,5 +11,6 @@
@interface UIView (Shadowing)
- (void) setShadow;
- (void) setShadowLight;
@end
......@@ -21,4 +21,14 @@
self.clipsToBounds = NO;
}
- (void) setShadowLight
{
self.layer.shadowColor = [[UIColor blackColor] CGColor];
self.layer.shadowOpacity = 0.3;
self.layer.shadowRadius = 3.0;
self.layer.shadowOffset = CGSizeMake(4.0f, 3.0f);
self.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.bounds].CGPath;
self.clipsToBounds = NO;
}
@end
......@@ -93,6 +93,12 @@
8C26E5D317A5AFE8007DA4B7 /* slideshowRail.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C26E5D117A5AFE8007DA4B7 /* slideshowRail.png */; };
8C26E5D417A5AFE8007DA4B7 /* slideshowRail@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C26E5D217A5AFE8007DA4B7 /* slideshowRail@2x.png */; };
8C26E5D717A68154007DA4B7 /* stopWatch.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C26E5D617A68154007DA4B7 /* stopWatch.m */; };
8C3A648817DCBE9E004A77D9 /* timer_clear_btn_dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C3A648117DCBE9E004A77D9 /* timer_clear_btn_dark.png */; };
8C3A648A17DCBE9E004A77D9 /* timer_pause_btn_dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C3A648317DCBE9E004A77D9 /* timer_pause_btn_dark.png */; };
8C3A648B17DCBE9E004A77D9 /* timer_pause_btn_dark@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C3A648417DCBE9E004A77D9 /* timer_pause_btn_dark@2x.png */; };
8C3A648C17DCBE9E004A77D9 /* timer_settime_btn_dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C3A648517DCBE9E004A77D9 /* timer_settime_btn_dark.png */; };
8C3A648D17DCBE9E004A77D9 /* timer_settime_btn_dark@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C3A648617DCBE9E004A77D9 /* timer_settime_btn_dark@2x.png */; };
8C3A648E17DCBE9E004A77D9 /* timer_start_btn_dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C3A648717DCBE9E004A77D9 /* timer_start_btn_dark.png */; };
8C94E69617CF7BF000B4848D /* WTPairingScreenshot.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C94E69517CF7BF000B4848D /* WTPairingScreenshot.png */; };
8CAD658517A2E84A00CFB661 /* MainSplitViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CAD658417A2E84A00CFB661 /* MainSplitViewController.m */; };
8CAD658817A2EDB200CFB661 /* slideShowPreviewTable_vc_ipad.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CAD658717A2EDB200CFB661 /* slideShowPreviewTable_vc_ipad.m */; };
......@@ -258,6 +264,12 @@
8C26E5D217A5AFE8007DA4B7 /* slideshowRail@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "slideshowRail@2x.png"; sourceTree = "<group>"; };
8C26E5D517A68154007DA4B7 /* stopWatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stopWatch.h; path = iosremote/stopWatch.h; sourceTree = "<group>"; };
8C26E5D617A68154007DA4B7 /* stopWatch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = stopWatch.m; path = iosremote/stopWatch.m; sourceTree = "<group>"; };
8C3A648117DCBE9E004A77D9 /* timer_clear_btn_dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = timer_clear_btn_dark.png; path = iosremote/timer_clear_btn_dark.png; sourceTree = "<group>"; };
8C3A648317DCBE9E004A77D9 /* timer_pause_btn_dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = timer_pause_btn_dark.png; path = iosremote/timer_pause_btn_dark.png; sourceTree = "<group>"; };
8C3A648417DCBE9E004A77D9 /* timer_pause_btn_dark@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "timer_pause_btn_dark@2x.png"; path = "iosremote/timer_pause_btn_dark@2x.png"; sourceTree = "<group>"; };
8C3A648517DCBE9E004A77D9 /* timer_settime_btn_dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = timer_settime_btn_dark.png; path = iosremote/timer_settime_btn_dark.png; sourceTree = "<group>"; };
8C3A648617DCBE9E004A77D9 /* timer_settime_btn_dark@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "timer_settime_btn_dark@2x.png"; path = "iosremote/timer_settime_btn_dark@2x.png"; sourceTree = "<group>"; };
8C3A648717DCBE9E004A77D9 /* timer_start_btn_dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = timer_start_btn_dark.png; path = iosremote/timer_start_btn_dark.png; sourceTree = "<group>"; };
8C94E69517CF7BF000B4848D /* WTPairingScreenshot.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = WTPairingScreenshot.png; path = iosremote/WTPairingScreenshot.png; sourceTree = "<group>"; };
8CAD658317A2E84A00CFB661 /* MainSplitViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MainSplitViewController.h; path = iosremote/MainSplitViewController.h; sourceTree = "<group>"; };
8CAD658417A2E84A00CFB661 /* MainSplitViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MainSplitViewController.m; path = iosremote/MainSplitViewController.m; sourceTree = "<group>"; };
......@@ -419,6 +431,12 @@
8C06B31917B7EC62002F5CF8 /* assets */ = {
isa = PBXGroup;
children = (
8C3A648117DCBE9E004A77D9 /* timer_clear_btn_dark.png */,
8C3A648317DCBE9E004A77D9 /* timer_pause_btn_dark.png */,
8C3A648417DCBE9E004A77D9 /* timer_pause_btn_dark@2x.png */,
8C3A648517DCBE9E004A77D9 /* timer_settime_btn_dark.png */,
8C3A648617DCBE9E004A77D9 /* timer_settime_btn_dark@2x.png */,
8C3A648717DCBE9E004A77D9 /* timer_start_btn_dark.png */,
8C23B46A17DB3B8600FB4DE6 /* timer_settime_btn.png */,
8C23B46B17DB3B8600FB4DE6 /* timer_settime_btn@2x.png */,
8CAF3DE117D1D5D600F931E5 /* more_ipad.png */,
......@@ -802,6 +820,12 @@
8CAF3DE417D1D5D700F931E5 /* more_ipad@2x.png in Resources */,
8C23B46C17DB3B8600FB4DE6 /* timer_settime_btn.png in Resources */,
8C23B46D17DB3B8600FB4DE6 /* timer_settime_btn@2x.png in Resources */,
8C3A648817DCBE9E004A77D9 /* timer_clear_btn_dark.png in Resources */,
8C3A648A17DCBE9E004A77D9 /* timer_pause_btn_dark.png in Resources */,
8C3A648B17DCBE9E004A77D9 /* timer_pause_btn_dark@2x.png in Resources */,
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 */,
);
runOnlyForDeploymentPostprocessing = 0;
};
......
......@@ -31,12 +31,24 @@
@property (strong, nonatomic) UIView *welcome_blocking_page;
@property (weak, nonatomic) IBOutlet UITableView *horizontalTableView;
@property (weak, nonatomic) IBOutlet UIButton *gearButton;
- (IBAction)popOverUp:(id)sender;
// Stopwatch/Timer
@property (weak, nonatomic) IBOutlet UIButton *startButton;
@property (weak, nonatomic) IBOutlet UIButton *clearButton;
@property (weak, nonatomic) IBOutlet UILabel *timeLabel;
@property (weak, nonatomic) IBOutlet UIButton *gearButton;
- (IBAction)popOverUp:(id)sender;
@property (weak, nonatomic) IBOutlet UIButton *timerStartButton;
@property (weak, nonatomic) IBOutlet UIButton *timerClearButton;
@property (weak, nonatomic) IBOutlet UIButton *timerSetTimeButton;
@property (weak, nonatomic) IBOutlet UILabel *timerTimeLabel;
@property (weak, nonatomic) IBOutlet UIView *stopWatchView;
@property (weak, nonatomic) IBOutlet UIView *timerView;
@property (weak, nonatomic) IBOutlet UIScrollView *stopWatchTimerScrollView;
//Reconnection
- (void) didReceiveDisconnection;
......
......@@ -15,8 +15,9 @@
#import "HorizontalSlideCell.h"
#import "MainSplitViewController.h"
#import "stopWatch.h"
#import "Timer.h"
#import "PopoverView.h"
#import "UIView+Shadowing.h"
#import "ControlVariables.h"
#import <QuartzCore/QuartzCore.h>
......@@ -26,7 +27,7 @@
#define CURRENT_SLIDE_IMAGEVIEW 19
#define CURRENT_SLIDE_NOTES 18
@interface BasePresentationViewController () <PopoverViewDelegate>
@interface BasePresentationViewController () <PopoverViewDelegate, TimerDelegate, UIPopoverControllerDelegate>
@property (nonatomic, strong) CommunicationManager *comManager;
@property (nonatomic, strong) id slideShowImageNoteReadyObserver;
......@@ -39,6 +40,8 @@
@property CGPoint refRightLowerGravity;
@property (nonatomic, strong) stopWatch * stopWatch;
@property (nonatomic, strong) Timer * timer;
@property (nonatomic, strong) UIPopoverController * popoverTimePickerController;
@property int count;
......@@ -51,6 +54,7 @@
@synthesize slideShowImageNoteReadyObserver = _slideShowImageNoteReadyObserver;
@synthesize slideShowFinishedObserver = _slideShowFinishedObserver;
@synthesize slideChangedObserver = _slideChangedObserver;
@synthesize popoverTimePickerController = _popoverTimePickerController;
#pragma mark - UITableView delegate
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
......@@ -316,6 +320,11 @@
}
}];
self.stopWatch = [[stopWatch alloc] initWithStartButton:self.startButton ClearButton:self.clearButton TimeLabel:self.timeLabel];
self.timer = [[Timer alloc] initWithStartButton:self.timerStartButton ClearButton:self.timerClearButton SetTimeButton:self.timerSetTimeButton TimeLabel:self.timerTimeLabel];
[self.stopWatchView setShadowLight];
[self.timerView setShadowLight];
self.timer.delegate = self;
self.stopWatchTimerScrollView.contentSize = CGSizeMake(1240, 62);
}
- (void)viewDidAppear:(BOOL)animated
......@@ -444,6 +453,9 @@
[self setClearButton:nil];
[self setTimeLabel:nil];
[self setGearButton:nil];
[self setStopWatchView:nil];
[self setTimerView:nil];
[self setStopWatchTimerScrollView:nil];
[super viewDidUnload];
}
......@@ -538,4 +550,32 @@ static BOOL isBlank = NO;
}
}
#pragma mark TimerDelegate
- (void)changeDate:(UIDatePicker *)sender {
[self.timer setSecondsLeft: sender.countDownDuration];
}
- (void)startTimePickerwithTimer:(Timer *) timer
{
UIViewController* popoverContent = [[UIViewController alloc] init]; //ViewController
UIView *popoverView = [[UIView alloc] init]; //view
popoverView.backgroundColor = [UIColor blackColor];
UIDatePicker *datePicker=[[UIDatePicker alloc]init];//Date picker
datePicker.frame=CGRectMake(0,44,320, 216);
datePicker.datePickerMode = UIDatePickerModeCountDownTimer;
[datePicker setTag:10];
[datePicker addTarget:self action:@selector(changeDate:) forControlEvents:UIControlEventValueChanged];
[popoverView addSubview:datePicker];
popoverContent.view = popoverView;
self.popoverTimePickerController = [[UIPopoverController alloc] initWithContentViewController:popoverContent];
self.popoverTimePickerController.delegate = self;
[self.popoverTimePickerController setPopoverContentSize:CGSizeMake(320, 264) animated:NO];
[self.popoverTimePickerController presentPopoverFromRect:self.timerSetTimeButton.frame inView:self.timerView permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
}
@end
......@@ -16,9 +16,11 @@
@protocol TimerDelegate <NSObject>
- (void) setTitle:(NSString *) title sender:(id)sender;
- (void) startTimePickerwithTimer:(Timer *) timer;
@optional
- (void) setTitle:(NSString *) title sender:(id)sender;
@end
@interface Timer : NSObject
......
......@@ -153,18 +153,37 @@ int initSecondsLeft;
- (void) updateStartButtonIcon
{
switch (self.state) {
case TIMER_STATE_RUNNING:
[self.startButton setImage:[UIImage imageNamed:@"timer_pause_btn"] forState:UIControlStateNormal];
break;
case TIMER_STATE_PAUSED:
[self.startButton setImage:[UIImage imageNamed:@"timer_start_btn"] forState:UIControlStateNormal];
break;
case TIMER_STATE_CLEARED:
[self.startButton setImage:[UIImage imageNamed:@"timer_start_btn"] forState:UIControlStateNormal];
break;
default:
break;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
switch (self.state) {
case TIMER_STATE_RUNNING:
[self.startButton setImage:[UIImage imageNamed:@"timer_pause_btn_dark"] forState:UIControlStateNormal];
[self.startButton setTitle:NSLocalizedString(@"Pause", @"Update button text in diffrent states") forState:UIControlStateNormal];
break;
case TIMER_STATE_PAUSED:
[self.startButton setImage:[UIImage imageNamed:@"timer_start_btn_dark"] forState:UIControlStateNormal];
[self.startButton setTitle:NSLocalizedString(@"Start", @"Update button text in diffrent states") forState:UIControlStateNormal];
break;
case TIMER_STATE_CLEARED:
[self.startButton setImage:[UIImage imageNamed:@"timer_start_btn_dark"] forState:UIControlStateNormal];
[self.startButton setTitle:NSLocalizedString(@"Start", @"Update button text in diffrent states") forState:UIControlStateNormal];
break;
default:
break;
}
} else {
switch (self.state) {
case TIMER_STATE_RUNNING:
[self.startButton setImage:[UIImage imageNamed:@"timer_pause_btn"] forState:UIControlStateNormal];
break;
case TIMER_STATE_PAUSED:
[self.startButton setImage:[UIImage imageNamed:@"timer_start_btn"] forState:UIControlStateNormal];
break;
case TIMER_STATE_CLEARED:
[self.startButton setImage:[UIImage imageNamed:@"timer_start_btn"] forState:UIControlStateNormal];
break;
default:
break;
}
}
}
......@@ -174,7 +193,7 @@ int initSecondsLeft;
self.timerTimer = nil;
self.state = TIMER_STATE_CLEARED;
[self.startButton setImage:[UIImage imageNamed:@"timer_start_btn"] forState:UIControlStateNormal];
[self updateStartButtonIcon];
[self.delegate setTitle:@"" sender:self];
secondsLeft = initSecondsLeft;
......
......@@ -123,18 +123,37 @@
- (void) updateStartButtonIcon
{
switch (self.state) {
case TIMER_STATE_RUNNING:
[self.startButton setImage:[UIImage imageNamed:@"timer_pause_btn"] forState:UIControlStateNormal];
break;
case TIMER_STATE_PAUSED:
[self.startButton setImage:[UIImage imageNamed:@"timer_start_btn"] forState:UIControlStateNormal];
break;
case TIMER_STATE_CLEARED:
[self.startButton setImage:[UIImage imageNamed:@"timer_start_btn"] forState:UIControlStateNormal];
break;
default:
break;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
switch (self.state) {
case TIMER_STATE_RUNNING:
[self.startButton setImage:[UIImage imageNamed:@"timer_pause_btn_dark"] forState:UIControlStateNormal];
[self.startButton setTitle:NSLocalizedString(@"Pause", @"Update button text in diffrent states") forState:UIControlStateNormal];
break;
case TIMER_STATE_PAUSED:
[self.startButton setImage:[UIImage imageNamed:@"timer_start_btn_dark"] forState:UIControlStateNormal];
[self.startButton setTitle:NSLocalizedString(@"Start", @"Update button text in diffrent states") forState:UIControlStateNormal];
break;
case TIMER_STATE_CLEARED:
[self.startButton setImage:[UIImage imageNamed:@"timer_start_btn_dark"] forState:UIControlStateNormal];
[self.startButton setTitle:NSLocalizedString(@"Start", @"Update button text in diffrent states") forState:UIControlStateNormal];
break;
default:
break;
}
} else {
switch (self.state) {
case TIMER_STATE_RUNNING:
[self.startButton setImage:[UIImage imageNamed:@"timer_pause_btn"] forState:UIControlStateNormal];
break;
case TIMER_STATE_PAUSED:
[self.startButton setImage:[UIImage imageNamed:@"timer_start_btn"] forState:UIControlStateNormal];
break;
case TIMER_STATE_CLEARED:
[self.startButton setImage:[UIImage imageNamed:@"timer_start_btn"] forState:UIControlStateNormal];
break;
default:
break;
}
}
}
......@@ -146,7 +165,8 @@
self.lastInterval = 0;
self.state = TIMER_STATE_CLEARED;
[self.startButton setImage:[UIImage imageNamed:@"timer_start_btn"] forState:UIControlStateNormal];
[self updateStartButtonIcon];
[self updateTimer];
[self.delegate setTitle:@"" sender:self];
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment