Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file modified OCCalendarView/OCCalendarView.h
100644 → 100755
Empty file.
111 changes: 65 additions & 46 deletions OCCalendarView/OCCalendarView.m
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,12 @@ - (id)initAtPoint:(CGPoint)p withFrame:(CGRect)frame arrowPosition:(OCArrowPosit
if(self) {
self.backgroundColor = [UIColor clearColor];

calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];

NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSUInteger unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
NSDateComponents *dateParts = [calendar components:unitFlags fromDate:[NSDate date]];
currentMonth = [dateParts month];
currentYear = [dateParts year];
currentMonth = (int)[dateParts month];
currentYear = (int)[dateParts year];

arrowPosition = arrowPos;
startCellX = -1;
Expand Down Expand Up @@ -167,12 +167,11 @@ - (NSDate *)getStartDate {
[dateParts setYear:year];
[dateParts setDay:1];
NSDate *dateOnFirst = [calendar dateFromComponents:dateParts];
[dateParts release];
NSDateComponents *weekdayComponents = [calendar components:NSWeekdayCalendarUnit fromDate:dateOnFirst];
int weekdayOfFirst = [weekdayComponents weekday];
NSDateComponents *weekdayComponents = [calendar components:NSCalendarUnitWeekday fromDate:dateOnFirst];
int weekdayOfFirst = (int)[weekdayComponents weekday];

int numDaysInMonth = [calendar rangeOfUnit:NSDayCalendarUnit
inUnit:NSMonthCalendarUnit
int numDaysInMonth = (int)[calendar rangeOfUnit:NSCalendarUnitDay
inUnit:NSCalendarUnitMonth
forDate:dateOnFirst].length;

if(startPoint.y == 0 && startPoint.x+1 < weekdayOfFirst) {
Expand All @@ -198,7 +197,7 @@ - (NSDate *)getStartDate {
}
}

NSDateComponents *comps = [[[NSDateComponents alloc] init] autorelease];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:day];
[comps setMonth:month];
[comps setYear:year];
Expand All @@ -224,12 +223,11 @@ - (NSDate *)getEndDate {
[dateParts setYear:year];
[dateParts setDay:1];
NSDate *dateOnFirst = [calendar dateFromComponents:dateParts];
[dateParts release];
NSDateComponents *weekdayComponents = [calendar components:NSWeekdayCalendarUnit fromDate:dateOnFirst];
int weekdayOfFirst = [weekdayComponents weekday];
NSDateComponents *weekdayComponents = [calendar components:NSCalendarUnitWeekday fromDate:dateOnFirst];
int weekdayOfFirst = (int)[weekdayComponents weekday];

int numDaysInMonth = [calendar rangeOfUnit:NSDayCalendarUnit
inUnit:NSMonthCalendarUnit
int numDaysInMonth = (int)[calendar rangeOfUnit:NSCalendarUnitDay
inUnit:NSCalendarUnitMonth
forDate:dateOnFirst].length;
if(endPoint.y == 0 && endPoint.x+1 < weekdayOfFirst) {
day = endPoint.x - weekdayOfFirst + 2;
Expand All @@ -256,7 +254,7 @@ - (NSDate *)getEndDate {
}
}

NSDateComponents *comps = [[[NSDateComponents alloc] init] autorelease];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:day];
[comps setMonth:month];
[comps setYear:year];
Expand All @@ -268,13 +266,13 @@ - (NSDate *)getEndDate {
- (void)setStartDate:(NSDate *)sDate {
//NSLog(@"setStartDate");

NSDateComponents *sComponents = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:sDate];
NSDateComponents *sComponents = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear fromDate:sDate];

if([sComponents month] != currentMonth) {
currentMonth = [sComponents month];
currentMonth = (int)[sComponents month];
}
if([sComponents year] != currentYear) {
currentYear = [sComponents year];
currentYear = (int)[sComponents year];
}
int day = 1;
int month = currentMonth;
Expand All @@ -286,12 +284,11 @@ - (void)setStartDate:(NSDate *)sDate {
[dateParts setYear:year];
[dateParts setDay:1];
NSDate *dateOnFirst = [calendar dateFromComponents:dateParts];
[dateParts release];
NSDateComponents *weekdayComponents = [calendar components:NSWeekdayCalendarUnit fromDate:dateOnFirst];
int weekdayOfFirst = [weekdayComponents weekday];
NSDateComponents *weekdayComponents = [calendar components:NSCalendarUnitWeekday fromDate:dateOnFirst];
int weekdayOfFirst = (int)[weekdayComponents weekday];

int numDaysInMonth = [calendar rangeOfUnit:NSDayCalendarUnit
inUnit:NSMonthCalendarUnit
int numDaysInMonth = (int)[calendar rangeOfUnit:NSCalendarUnitDay
inUnit:NSCalendarUnitMonth
forDate:dateOnFirst].length;

BOOL breakLoop = NO;
Expand Down Expand Up @@ -322,13 +319,13 @@ - (void)setStartDate:(NSDate *)sDate {

- (void)setEndDate:(NSDate *)eDate {
//NSLog(@"setEndDate");
NSDateComponents *eComponents = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:eDate];
NSDateComponents *eComponents = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear fromDate:eDate];

if([eComponents month] != currentMonth) {
currentMonth = [eComponents month];
currentMonth = (int)[eComponents month];
}
if([eComponents year] != currentYear) {
currentYear = [eComponents year];
currentYear = (int)[eComponents year];
}
int day = 1;
int month = currentMonth;
Expand All @@ -340,12 +337,11 @@ - (void)setEndDate:(NSDate *)eDate {
[dateParts setYear:year];
[dateParts setDay:1];
NSDate *dateOnFirst = [calendar dateFromComponents:dateParts];
[dateParts release];
NSDateComponents *weekdayComponents = [calendar components:NSWeekdayCalendarUnit fromDate:dateOnFirst];
int weekdayOfFirst = [weekdayComponents weekday];
NSDateComponents *weekdayComponents = [calendar components:NSCalendarUnitWeekday fromDate:dateOnFirst];
int weekdayOfFirst = (int)[weekdayComponents weekday];

int numDaysInMonth = [calendar rangeOfUnit:NSDayCalendarUnit
inUnit:NSMonthCalendarUnit
int numDaysInMonth = (int)[calendar rangeOfUnit:NSCalendarUnitDay
inUnit:NSCalendarUnitMonth
forDate:dateOnFirst].length;

BOOL breakLoop = NO;
Expand Down Expand Up @@ -608,7 +604,16 @@ -(void) renderCalendarViewForPhone
CGContextSetShadowWithColor(context, shadow2Offset, shadow2BlurRadius, shadow2);
CGRect dayHeaderFrame = CGRectMake(63+i*hDiff, 75, 30, 14);
[[UIColor whiteColor] setFill];
[((NSString *)[dayTitles objectAtIndex:i]) drawInRect: dayHeaderFrame withFont: [UIFont fontWithName: @"Helvetica" size: 12] lineBreakMode: UILineBreakModeWordWrap alignment: UITextAlignmentCenter];
UIFont *font = [UIFont fontWithName:@"Helvetica" size:12.0];
NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
paragraphStyle.alignment = NSTextAlignmentCenter;
NSDictionary *attrsDictionary = @{NSParagraphStyleAttributeName : paragraphStyle,
NSFontAttributeName : font,
NSForegroundColorAttributeName : [UIColor whiteColor]};

[((NSString *)[dayTitles objectAtIndex:i]) drawAtPoint:dayHeaderFrame.origin withAttributes:attrsDictionary];

CGContextRestoreGState(context);
}

Expand All @@ -622,7 +627,15 @@ -(void) renderCalendarViewForPhone
CGContextSetShadowWithColor(context, shadow2Offset, shadow2BlurRadius, shadow2);
CGRect textFrame = CGRectMake(94, 53, 220, 18);
[[UIColor whiteColor] setFill];
[monthTitle drawInRect: textFrame withFont: [UIFont fontWithName: @"Helvetica" size: 12] lineBreakMode: UILineBreakModeWordWrap alignment: UITextAlignmentCenter];
UIFont *font = [UIFont fontWithName:@"Helvetica" size:12.0];
NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
paragraphStyle.alignment = NSTextAlignmentCenter;
NSDictionary *attrsDictionary = @{NSParagraphStyleAttributeName : paragraphStyle,
NSFontAttributeName : font,
NSForegroundColorAttributeName : [UIColor whiteColor]};

[monthTitle drawAtPoint:textFrame.origin withAttributes:attrsDictionary];
CGContextRestoreGState(context);

//// backArrow Drawing
Expand Down Expand Up @@ -827,7 +840,15 @@ -(void) renderCalendarViewForPad
CGContextSetShadowWithColor(context, shadow2Offset, shadow2BlurRadius, shadow2);
CGRect dayHeaderFrame = CGRectMake(60+i*hDiff, 75, 30, 14);
[[UIColor whiteColor] setFill];
[((NSString *)[dayTitles objectAtIndex:i]) drawInRect: dayHeaderFrame withFont: [UIFont fontWithName: @"Helvetica" size: 12] lineBreakMode: UILineBreakModeWordWrap alignment: UITextAlignmentCenter];
UIFont *font = [UIFont fontWithName:@"Helvetica" size:12.0];
NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
paragraphStyle.alignment = NSTextAlignmentCenter;
NSDictionary *attrsDictionary = @{NSParagraphStyleAttributeName : paragraphStyle,
NSFontAttributeName : font,
NSForegroundColorAttributeName : [UIColor whiteColor]};

[((NSString *)[dayTitles objectAtIndex:i]) drawAtPoint:dayHeaderFrame.origin withAttributes:attrsDictionary];
CGContextRestoreGState(context);
}

Expand All @@ -841,7 +862,15 @@ -(void) renderCalendarViewForPad
CGContextSetShadowWithColor(context, shadow2Offset, shadow2BlurRadius, shadow2);
CGRect textFrame = CGRectMake(94, 53, 220, 18);
[[UIColor whiteColor] setFill];
[monthTitle drawInRect: textFrame withFont: [UIFont fontWithName: @"Helvetica" size: 12] lineBreakMode: UILineBreakModeWordWrap alignment: UITextAlignmentCenter];
UIFont *font = [UIFont fontWithName:@"Helvetica" size:12.0];
NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
paragraphStyle.alignment = NSTextAlignmentCenter;
NSDictionary *attrsDictionary = @{NSParagraphStyleAttributeName : paragraphStyle,
NSFontAttributeName : font,
NSForegroundColorAttributeName : [UIColor whiteColor]};

[monthTitle drawAtPoint:textFrame.origin withAttributes:attrsDictionary];
CGContextRestoreGState(context);

//// backArrow Drawing
Expand Down Expand Up @@ -871,14 +900,4 @@ -(void) renderCalendarViewForPad

}


- (void)dealloc {

[selectionView release];
[calendar release];

[super dealloc];

}

@end
2 changes: 1 addition & 1 deletion OCCalendarView/OCCalendarViewController.h
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
@end

@interface OCCalendarViewController : UIViewController <UIGestureRecognizerDelegate> {
id <OCCalendarDelegate> delegate;
id <OCCalendarDelegate> calendarDelegate;

UILabel *toolTipLabel;
OCCalendarView *calView;
Expand Down
23 changes: 7 additions & 16 deletions OCCalendarView/OCCalendarViewController.m
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,10 @@ - (void)loadView {
bgView.backgroundColor = [UIColor clearColor];
UITapGestureRecognizer *tapG = [[UITapGestureRecognizer alloc] init];
tapG.delegate = self;
[bgView addGestureRecognizer:[tapG autorelease]];
[bgView addGestureRecognizer:tapG];
[bgView setUserInteractionEnabled:YES];

[self.view addSubview:[bgView autorelease]];
[self.view addSubview:bgView];

int width = 390;
int height = 300;
Expand All @@ -69,7 +69,7 @@ - (void)loadView {
if(self.endDate) {
[calView setEndDate:endDate];
}
[self.view addSubview:[calView autorelease]];
[self.view addSubview:calView];
}

- (void)viewDidAppear:(BOOL)animated {
Expand All @@ -78,25 +78,22 @@ - (void)viewDidAppear:(BOOL)animated {

- (void)setStartDate:(NSDate *)sDate {
if(startDate) {
[startDate release];
startDate = nil;
}
startDate = [sDate retain];
[calView setStartDate:startDate];
}

- (void)setEndDate:(NSDate *)eDate {
if(endDate) {
[endDate release];
endDate = nil;
}
endDate = [eDate retain];
endDate = eDate;
[calView setEndDate:endDate];
}

- (void)removeCalView {
startDate = [[calView getStartDate] retain];
endDate = [[calView getEndDate] retain];
startDate = [calView getStartDate];
endDate = [calView getEndDate];

//NSLog(@"startDate:%@ endDate:%@", startDate.description, endDate.description);

Expand Down Expand Up @@ -134,7 +131,7 @@ - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceive
int height = 300;

calView = [[OCCalendarView alloc] initAtPoint:point withFrame:CGRectMake(point.x - width*0.5, point.y - 31.4, width, height)];
[self.view addSubview:[calView autorelease]];
[self.view addSubview:calView];
}

return YES;
Expand All @@ -145,10 +142,4 @@ - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interface
return YES;
}

- (void)dealloc {
self.startDate = nil;
self.endDate = nil;
[super dealloc];
}

@end
Empty file modified OCCalendarView/OCDaysView.h
100644 → 100755
Empty file.
Loading