]> err.no Git - scalable-opengroupware.org/blob - SOGo/UI/Scheduler/UIxCalInlineMonthOverview.m
dc62d6542bfd60b596b1e1c5ce887144c1151433
[scalable-opengroupware.org] / SOGo / UI / Scheduler / UIxCalInlineMonthOverview.m
1 /*
2   Copyright (C) 2000-2004 SKYRIX Software AG
3
4   This file is part of OGo
5
6   OGo is free software; you can redistribute it and/or modify it under
7   the terms of the GNU Lesser General Public License as published by the
8   Free Software Foundation; either version 2, or (at your option) any
9   later version.
10
11   OGo is distributed in the hope that it will be useful, but WITHOUT ANY
12   WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
14   License for more details.
15
16   You should have received a copy of the GNU Lesser General Public
17   License along with OGo; see the file COPYING.  If not, write to the
18   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
19   02111-1307, USA.
20 */
21 // $Id$
22
23
24 #include "UIxCalMonthOverview.h"
25 #include <NGExtensions/NGExtensions.h>
26
27
28 @interface UIxCalInlineMonthOverview : UIxCalMonthOverview
29 {
30     NSCalendarDate *selectedDate;
31     NSString *style;
32     NSString *headerStyle;
33     NSString *weekStyle;
34     NSString *todayWeekStyle;
35     NSString *dayHeaderStyle;
36     NSString *dayBodyStyle;
37     NSString *todayBodyStyle;
38     NSString *inactiveDayBodyStyle;
39     NSString *selectedDayExtraStyle;
40     NSString *daySelectionHref;
41     NSString *weekSelectionHref;
42     NSString *monthSelectionHref;
43     BOOL showWeekColumn;
44     BOOL showYear;
45 }
46
47 @end
48
49 @implementation UIxCalInlineMonthOverview
50
51 /* init & dealloc */
52
53 - (void)dealloc {
54     [self->selectedDate release];
55     [self->style release];
56     [self->headerStyle release];
57     [self->weekStyle release];
58     [self->todayWeekStyle release];
59     [self->dayHeaderStyle release];
60     [self->dayBodyStyle release];
61     [self->todayBodyStyle release];
62     [self->inactiveDayBodyStyle release];
63     [self->selectedDayExtraStyle release];
64     [self->daySelectionHref release];
65     [self->weekSelectionHref release];
66     [self->monthSelectionHref release];
67     [super dealloc];
68 }
69
70
71 /* binding accessors */
72
73 - (void)setSelectedDate:(NSCalendarDate *)_date {
74     [_date setTimeZone:[self viewTimeZone]];
75     ASSIGN(self->selectedDate, _date);
76 }
77 - (NSCalendarDate *)selectedDate {
78     return self->selectedDate;
79 }
80 - (void)setStyle:(NSString *)_style {
81     ASSIGN(self->style, _style);
82 }
83 - (NSString *)style {
84     return self->style;
85 }
86 - (void)setHeaderStyle:(NSString *)_style {
87     ASSIGN(self->headerStyle, _style);
88 }
89 - (NSString *)headerStyle {
90     return self->headerStyle;
91 }
92 - (void)setWeekStyle:(NSString *)_style {
93     ASSIGN(self->weekStyle, _style);
94 }
95 - (NSString *)weekStyle {
96     return self->weekStyle;
97 }
98 - (void)setTodayWeekStyle:(NSString *)_style {
99     ASSIGN(self->todayWeekStyle, _style);
100 }
101 - (NSString *)todayWeekStyle {
102     if(self->todayWeekStyle)
103         return self->todayWeekStyle;
104     return [self weekStyle];
105 }
106 - (void)setDayHeaderStyle:(NSString *)_style {
107     ASSIGN(self->dayHeaderStyle, _style);
108 }
109 - (NSString *)dayHeaderStyle {
110     return self->dayHeaderStyle;
111 }
112 - (void)setDayBodyStyle:(NSString *)_style {
113     ASSIGN(self->dayBodyStyle, _style);
114 }
115 - (NSString *)dayBodyStyle {
116     return self->dayBodyStyle;
117 }
118 - (void)setTodayBodyStyle:(NSString *)_style {
119     ASSIGN(self->todayBodyStyle, _style);
120 }
121 - (NSString *)todayBodyStyle {
122     return self->todayBodyStyle;
123 }
124 - (void)setInactiveDayBodyStyle:(NSString *)_style {
125     ASSIGN(self->inactiveDayBodyStyle, _style);
126 }
127 - (NSString *)inactiveDayBodyStyle {
128     return self->inactiveDayBodyStyle;
129 }
130 - (void)setSelectedDayExtraStyle:(NSString *)_style {
131     ASSIGN(self->selectedDayExtraStyle, _style);
132 }
133 - (NSString *)selectedDayExtraStyle {
134     return self->selectedDayExtraStyle;
135 }
136 - (void)setDaySelectionHref:(NSString *)_href {
137     ASSIGN(self->daySelectionHref, _href);
138 }
139 - (NSString *)daySelectionHref {
140     return self->daySelectionHref;
141 }
142 - (BOOL)hasDaySelectionHref {
143     return self->daySelectionHref != nil;
144 }
145 - (void)setWeekSelectionHref:(NSString *)_href {
146     ASSIGN(self->weekSelectionHref, _href);
147 }
148 - (NSString *)weekSelectionHref {
149     return self->weekSelectionHref;
150 }
151 - (BOOL)hasWeekSelectionHref {
152     return self->weekSelectionHref != nil;
153 }
154 - (void)setMonthSelectionHref:(NSString *)_href {
155     ASSIGN(self->monthSelectionHref, _href);
156 }
157 - (NSString *)monthSelectionHref {
158     return self->monthSelectionHref;
159 }
160 - (BOOL)hasMonthSelectionHref {
161     return self->monthSelectionHref != nil;
162 }
163 - (void)setShowWeekColumn:(BOOL)_yn {
164     self->showWeekColumn = _yn;
165 }
166 - (BOOL)showWeekColumn {
167     return self->showWeekColumn;
168 }
169 - (void)setShowYear:(BOOL)_yn {
170     self->showYear = _yn;
171 }
172 - (BOOL)showYear {
173     return self->showYear;
174 }
175
176
177 /* date ranges */
178
179
180 - (NSCalendarDate *)startDate {
181     return [[self selectedDate] firstDayOfMonth];
182 }
183
184
185 /* labels */
186
187 - (NSString *)headerString {
188     NSString *label;
189     
190     label = [self localizedNameForMonthOfYear:[[self startDate] monthOfYear]];
191     if([self showYear]) {
192         label = [NSString stringWithFormat:@"%@ %d",
193             label,
194             [[self startDate] yearOfCommonEra]];
195     }
196     return label;
197 }
198
199 - (NSString *)localizedDayOfWeekName {
200     return [self localizedAbbreviatedNameForDayOfWeek:[self dayOfWeek]];
201 }
202
203
204 /* stylesheets */
205
206 - (NSString *)currentWeekStyle {
207     if([self->currentWeekStart isDateInSameWeek:[NSCalendarDate date]])
208         return [self todayWeekStyle];
209     return [self weekStyle];
210 }
211
212 - (NSString *)currentDayStyle {
213     return [self dayBodyStyle];
214 }
215
216 - (NSString *)contentStyle {
217     if([self->currentDay isToday])
218         return [self todayBodyStyle];
219     else if([self->currentDay monthOfYear] != [[self startDate] monthOfYear])
220         return [self inactiveDayBodyStyle];
221     return [self dayBodyStyle];
222 }
223
224 - (NSString *)extraStyle {
225     if([[self selectedDate] isDateOnSameDay:self->currentDay]) {
226         return [self selectedDayExtraStyle];
227     }
228     return nil;
229 }
230
231
232 /* URLs */
233
234 - (NSDictionary *)currentMonthQueryParameters {
235     return [self queryParametersBySettingSelectedDate:[self startDate]];
236 }
237
238 /* overriding */
239
240 - (NSArray *)fetchCoreInfos {
241     return nil;
242 }
243
244 @end