194 lines
3.8 KiB
Objective-C
194 lines
3.8 KiB
Objective-C
/* UIxCalDateSelector.m - this file is part of SOGo
|
|
*
|
|
* Copyright (C) 2006 Inverse inc.
|
|
*
|
|
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
|
*
|
|
* This file is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2, or (at your option)
|
|
* any later version.
|
|
*
|
|
* This file is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; see the file COPYING. If not, write to
|
|
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
* Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
#import <NGExtensions/NSCalendarDate+misc.h>
|
|
|
|
#import <SOGo/SOGoUser.h>
|
|
#import <SOGo/SOGoUserDefaults.h>
|
|
#import <SOGo/NSCalendarDate+SOGo.h>
|
|
|
|
#import "UIxCalDateSelector.h"
|
|
|
|
@implementation UIxCalDateSelector
|
|
|
|
/* binding accessors */
|
|
|
|
- (void) setSelectedDate: (NSCalendarDate *) _date
|
|
{
|
|
ASSIGN (selectedDate, _date);
|
|
[selectedDate setTimeZone: timeZone];
|
|
}
|
|
|
|
- (NSCalendarDate *) selectedDate
|
|
{
|
|
if (!selectedDate)
|
|
selectedDate = [super selectedDate];
|
|
|
|
return selectedDate;
|
|
}
|
|
|
|
- (NSString *) style
|
|
{
|
|
return style;
|
|
}
|
|
|
|
- (NSString *) headerStyle
|
|
{
|
|
return headerStyle;
|
|
}
|
|
|
|
- (NSString *) weekStyle
|
|
{
|
|
return weekStyle;
|
|
}
|
|
|
|
- (void) setTodayWeekStyle: (NSString *) _style
|
|
{
|
|
ASSIGN (todayWeekStyle, _style);
|
|
}
|
|
|
|
- (NSString *) todayWeekStyle
|
|
{
|
|
return ((todayWeekStyle)
|
|
? todayWeekStyle
|
|
: [self weekStyle]);
|
|
}
|
|
|
|
- (NSString *) dayHeaderStyle
|
|
{
|
|
return dayHeaderStyle;
|
|
}
|
|
|
|
- (void) setSelectedDayExtraStyle: (NSString *) _style
|
|
{
|
|
ASSIGN(selectedDayExtraStyle, _style);
|
|
}
|
|
|
|
- (NSString *) selectedDayExtraStyle
|
|
{
|
|
return selectedDayExtraStyle;
|
|
}
|
|
|
|
- (NSTimeZone *) viewTimeZone
|
|
{
|
|
return timeZone;
|
|
}
|
|
|
|
/* date ranges */
|
|
|
|
- (NSCalendarDate *) startDate
|
|
{
|
|
return [[self selectedDate] firstDayOfMonth];
|
|
}
|
|
|
|
- (unsigned int) firstDayOfWeek
|
|
{
|
|
SOGoUserDefaults *ud;
|
|
|
|
ud = [[context activeUser] userDefaults];
|
|
|
|
return [ud firstDayOfWeek];
|
|
}
|
|
|
|
/* labels */
|
|
|
|
- (NSString *) headerMonthValue
|
|
{
|
|
NSCalendarDate *date;
|
|
|
|
date = [self startDate];
|
|
|
|
return [NSString stringWithFormat: @"%.2d", (int)[date monthOfYear]];
|
|
}
|
|
|
|
- (NSString *) headerMonthString
|
|
{
|
|
NSCalendarDate *date;
|
|
|
|
date = [self startDate];
|
|
|
|
return [NSString stringWithFormat:@"%@",
|
|
[self localizedNameForMonthOfYear: [date monthOfYear]]];
|
|
}
|
|
|
|
- (NSString *) headerYearString
|
|
{
|
|
NSCalendarDate *date;
|
|
|
|
date = [self startDate];
|
|
|
|
return [NSString stringWithFormat: @"%d", (int)[date yearOfCommonEra]];
|
|
}
|
|
|
|
- (NSString *) localizedDayOfWeekName
|
|
{
|
|
return [self localizedAbbreviatedNameForDayOfWeek: [self dayOfWeek]];
|
|
}
|
|
|
|
/* stylesheets */
|
|
|
|
- (NSString *) currentWeekStyle
|
|
{
|
|
return (([currentWeekStart isDateInSameWeek:[NSCalendarDate date]] &&
|
|
[currentWeekStart isDateInSameMonth:[self selectedDate]])
|
|
? [self todayWeekStyle]
|
|
: [self weekStyle]);
|
|
}
|
|
|
|
- (NSString *) contentStyle
|
|
{
|
|
return (([currentDay isToday]
|
|
&& [currentDay isDateInSameMonth:[self selectedDate]])
|
|
? @"dayOfToday"
|
|
: (([currentDay monthOfYear] != [[self startDate] monthOfYear])
|
|
? @"inactiveDay"
|
|
: @"activeDay"));
|
|
}
|
|
|
|
- (NSString *) extraStyle
|
|
{
|
|
NSString *extraStyle;
|
|
|
|
if ([[self selectedDate] isDateOnSameDay: currentDay])
|
|
extraStyle = [self selectedDayExtraStyle];
|
|
else
|
|
extraStyle = nil;
|
|
|
|
return extraStyle;
|
|
}
|
|
|
|
/* URLs */
|
|
|
|
- (NSDictionary *) currentMonthQueryParameters
|
|
{
|
|
return [self queryParametersBySettingSelectedDate: [self startDate]];
|
|
}
|
|
|
|
/* overriding */
|
|
|
|
- (NSArray *) fetchCoreInfos
|
|
{
|
|
return nil;
|
|
}
|
|
|
|
@end
|