{TABLEBG} WIDTH=$self->{SIZE}{width} >\n";
103
|
1
|
50
|
|
|
|
3
|
if ($self->{CELLWIDTH} < 40) { |
104
|
0
|
|
|
|
|
0
|
$string = "{TABLEBG} WIDTH=$self->{SIZE}{width} >\n";
105
|
|
|
|
|
|
|
} |
106
|
|
|
|
|
|
|
|
107
|
|
|
|
|
|
|
# Month-year header |
108
|
|
|
|
|
|
|
# If there is no artwork directory, use bold headings, |
109
|
|
|
|
|
|
|
# 1 size larger than digit |
110
|
|
|
|
|
|
|
|
111
|
1
|
|
|
|
|
5
|
my $month = Month_to_Text($self->{MONTH}); |
112
|
1
|
|
|
|
|
1
|
my $year = $self->{YEAR}; |
113
|
1
|
|
|
|
|
2
|
my ($r1,$r2) = ('',''); |
114
|
1
|
50
|
|
|
|
8
|
if ($self->{MONTHREF} ne '') { |
115
|
0
|
|
|
|
|
0
|
$r1 = $self->{MONTHREF}; |
116
|
0
|
|
|
|
|
0
|
$r2 = ''; |
117
|
|
|
|
|
|
|
} |
118
|
1
|
|
|
|
|
6
|
my $labels = "$r1{FONT_TABLE}{($self->{FONT}{day}+2)}>$month $year$r2"; |
119
|
|
|
|
|
|
|
|
120
|
1
|
50
|
|
|
|
3
|
if ($self->{ARTWORK} ne '') { |
121
|
1
|
|
|
|
|
3
|
my $mon = $self->{ARTWORK} . "/" . $month . ".gif"; |
122
|
1
|
|
|
|
|
1
|
my $yr = ''; |
123
|
1
|
|
|
|
|
34
|
foreach my $i (split('',$year)) { |
124
|
4
|
|
|
|
|
11
|
$yr .= ' ' . "\n"; |
125
|
|
|
|
|
|
|
} |
126
|
1
|
|
|
|
|
4
|
$labels = $r1 . ' ' . $yr . $r2; |
127
|
|
|
|
|
|
|
} |
128
|
|
|
|
|
|
|
|
129
|
1
|
|
|
|
|
3
|
$string .= " | {SIZE}{width} >"; |
130
|
1
|
|
|
|
|
2
|
$string .= "$labels\n"; |
131
|
1
|
|
|
|
|
2
|
$string .= " | \n";
132
|
|
|
|
|
|
|
|
133
|
|
|
|
|
|
|
# Weekday names |
134
|
|
|
|
|
|
|
|
135
|
1
|
|
|
|
|
1
|
$string .= " | \n";
136
|
1
|
|
|
|
|
4
|
my $frstdow = Decode_Day_of_Week($begday); |
137
|
1
|
|
|
|
|
10
|
for (my $i=0;$i<7;$i++) { |
138
|
7
|
|
|
|
|
8
|
my $dow = ($frstdow + $i)%7; |
139
|
7
|
100
|
|
|
|
9
|
$dow = $dow ? $dow : 7; # if = 0, set = to 7 |
140
|
7
|
|
|
|
|
12
|
$string .= " | {CELLWIDTH} NOSAVE NOWRAP>"; |
141
|
7
|
|
|
|
|
16
|
my $textdow = Day_of_Week_to_Text($dow); |
142
|
7
|
50
|
|
|
|
14
|
if ($self->{CELLWIDTH} < 80) { $textdow = substr($textdow,0,3);} |
|
0
|
|
|
|
|
0
|
|
143
|
7
|
50
|
|
|
|
11
|
if ($self->{CELLWIDTH} < 40) { |
144
|
0
|
|
|
|
|
0
|
$textdow = substr($textdow,0,1); |
145
|
0
|
|
|
|
|
0
|
$string .= "" . $textdow . ""; |
146
|
|
|
|
|
|
|
} |
147
|
|
|
|
|
|
|
else { |
148
|
7
|
|
|
|
|
12
|
$string .= "" . $textdow . ""; |
149
|
|
|
|
|
|
|
} |
150
|
7
|
|
|
|
|
16
|
$string .= " | \n";
151
|
|
|
|
|
|
|
} |
152
|
1
|
|
|
|
|
2
|
$string .= " | \n";
153
|
|
|
|
|
|
|
|
154
|
|
|
|
|
|
|
# If there are comments, we'll need to deal with them |
155
|
|
|
|
|
|
|
|
156
|
1
|
|
|
|
|
2
|
my $comments = 0; |
157
|
1
|
|
|
|
|
1
|
my (@prefs, @comments, @comcol, @comstyle, @comsize); |
158
|
1
|
50
|
|
|
|
4
|
if ($self->{COMMFLAG}) { |
159
|
1
|
|
|
|
|
2
|
@prefs = @{$self->{COMMENTS}[0]}; |
|
1
|
|
|
|
|
8
|
|
160
|
1
|
|
|
|
|
2
|
@comments = @{$self->{COMMENTS}[1]}; |
|
1
|
|
|
|
|
3
|
|
161
|
1
|
|
|
|
|
2
|
@comcol = @{$self->{COMMENTS}[2]}; |
|
1
|
|
|
|
|
3
|
|
162
|
1
|
|
|
|
|
1
|
@comstyle = @{$self->{COMMENTS}[3]}; |
|
1
|
|
|
|
|
3
|
|
163
|
1
|
|
|
|
|
1
|
@comsize = @{$self->{COMMENTS}[4]}; |
|
1
|
|
|
|
|
3
|
|
164
|
1
|
|
|
|
|
2
|
$comments = @prefs; |
165
|
|
|
|
|
|
|
} |
166
|
|
|
|
|
|
|
|
167
|
|
|
|
|
|
|
# add in all the days |
168
|
|
|
|
|
|
|
|
169
|
1
|
|
|
|
|
6
|
my $numdays = Days_in_Month($year, $self->{MONTH}); # num days in month |
170
|
0
|
|
|
|
|
0
|
my $dow = Day_of_Week($year, $self->{MONTH},1); # day of week of first |
171
|
0
|
|
|
|
|
0
|
my $curday = 0; # current day of month |
172
|
0
|
0
|
|
|
|
0
|
$dow = 0 if $dow == 7; |
173
|
0
|
0
|
|
|
|
0
|
$frstdow = 0 if $frstdow == 7; |
174
|
|
|
|
|
|
|
|
175
|
0
|
|
|
|
|
0
|
my $valid=0; |
176
|
|
|
|
|
|
|
|
177
|
0
|
|
|
|
|
0
|
for (my $row=0;$row<6;$row++) { |
178
|
0
|
|
|
|
|
0
|
$string .= " | \n";
179
|
0
|
0
|
0
|
|
|
0
|
last if $row >= 4 && $curday >= $numdays; # don't add an empty row |
180
|
0
|
|
|
|
|
0
|
for (my $col=0;$col<7;$col++) { |
181
|
0
|
0
|
|
|
|
0
|
if ( ($col+$frstdow)%7 == $dow){ $valid = 1 ;} # flag for starting |
|
0
|
|
|
|
|
0
|
|
182
|
0
|
0
|
|
|
|
0
|
$curday++ if $valid; |
183
|
0
|
0
|
|
|
|
0
|
if ($curday > $numdays) { $valid = 0 ;} # flag for stopping |
|
0
|
|
|
|
|
0
|
|
184
|
|
|
|
|
|
|
# Is this and empty cell? |
185
|
0
|
0
|
|
|
|
0
|
if ( $valid ) { # ---- actually build the day cell here ---- |
186
|
0
|
|
|
|
|
0
|
my $day = PlotCalendar::Day->new($curday); |
187
|
0
|
|
|
|
|
0
|
$day -> size($self->{CELLWIDTH},$self->{CELLWIDTH}); |
188
|
0
|
|
|
|
|
0
|
$day -> font($self->{FONT}{day},$self->{FONT}{main},$self->{FONT}{opt},); |
189
|
0
|
|
|
|
|
0
|
$day -> style($self->{STYLES}{day},$self->{STYLES}{main},$self->{STYLES}{opt},); |
190
|
0
|
|
|
|
|
0
|
$day -> cliptext($self->{CLIPTEXT}); |
191
|
0
|
|
|
|
|
0
|
$day -> dayname($self->{DAYNAME}[$curday]); |
192
|
0
|
|
|
|
|
0
|
$day -> nameref($self->{NAMEREF}[$curday]); |
193
|
0
|
|
|
|
|
0
|
$day -> color($self->{FGCOLOR}[$curday],$self->{BGCOLOR}[$curday],'WHITE',);; |
194
|
0
|
|
|
|
|
0
|
$day -> text(@{$self->{TEXT}[$curday]}); |
|
0
|
|
|
|
|
0
|
|
195
|
0
|
|
|
|
|
0
|
$day -> textcolor(@{$self->{TEXTCOL}[$curday]}); |
|
0
|
|
|
|
|
0
|
|
196
|
0
|
|
|
|
|
0
|
$day -> textsize(@{$self->{TEXTSIZE}[$curday]}); |
|
0
|
|
|
|
|
0
|
|
197
|
0
|
|
|
|
|
0
|
$day -> textstyle(@{$self->{TEXTSTYLE}[$curday]}); |
|
0
|
|
|
|
|
0
|
|
198
|
0
|
|
|
|
|
0
|
$day -> textref(@{$self->{TEXTREF}[$curday]}); |
|
0
|
|
|
|
|
0
|
|
199
|
0
|
0
|
|
|
|
0
|
if ($self->{HTMLREF}[$curday]) { |
200
|
0
|
|
|
|
|
0
|
$day -> htmlref($self->{HTMLREF}[$curday]); |
201
|
|
|
|
|
|
|
} |
202
|
0
|
|
|
|
|
0
|
$string .= $day -> gethtml; # ---- add in cell |
203
|
|
|
|
|
|
|
} |
204
|
|
|
|
|
|
|
else { |
205
|
0
|
0
|
0
|
|
|
0
|
if ($comments && $curday == 0 && grep(/before/,@prefs)) { |
|
|
0
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
206
|
|
|
|
|
|
|
# I am in the before zone and can use it |
207
|
0
|
|
|
|
|
0
|
my $k; |
208
|
0
|
|
|
|
|
0
|
for ($k=0;$k<@prefs;$k++) { |
209
|
0
|
0
|
|
|
|
0
|
last if $prefs[$k] eq 'before' ; |
210
|
|
|
|
|
|
|
} |
211
|
0
|
|
|
|
|
0
|
$string .= &makecomm($self,$comments[$k],$comcol[$k],$comstyle[$k],$comsize[$k]); |
212
|
0
|
|
|
|
|
0
|
splice(@prefs,$k,1); |
213
|
0
|
|
|
|
|
0
|
splice(@comments,$k,1); |
214
|
0
|
|
|
|
|
0
|
splice(@comcol,$k,1); |
215
|
0
|
|
|
|
|
0
|
splice(@comstyle,$k,1); |
216
|
0
|
|
|
|
|
0
|
splice(@comsize,$k,1); |
217
|
0
|
|
|
|
|
0
|
$comments--; |
218
|
|
|
|
|
|
|
} |
219
|
|
|
|
|
|
|
elsif ($comments && $curday > 0 ) { |
220
|
|
|
|
|
|
|
# I am in the after zone and can use it |
221
|
0
|
|
|
|
|
0
|
$string .= &makecomm($self,$comments[0],$comcol[0],$comstyle[0],$comsize[0]); |
222
|
0
|
|
|
|
|
0
|
shift @prefs; |
223
|
0
|
|
|
|
|
0
|
shift @comments; |
224
|
0
|
|
|
|
|
0
|
shift @comcol; |
225
|
0
|
|
|
|
|
0
|
shift @comstyle; |
226
|
0
|
|
|
|
|
0
|
shift @comsize; |
227
|
0
|
|
|
|
|
0
|
$comments--; |
228
|
|
|
|
|
|
|
} |
229
|
|
|
|
|
|
|
else { |
230
|
0
|
|
|
|
|
0
|
$string .= " | {CELLWIDTH} BGCOLOR=$self->{TABLEBG}> | \n";
231
|
|
|
|
|
|
|
} |
232
|
|
|
|
|
|
|
} |
233
|
|
|
|
|
|
|
} |
234
|
0
|
|
|
|
|
0
|
$string .= " | \n";
235
|
|
|
|
|
|
|
} |
236
|
|
|
|
|
|
|
# If I have leftover comments, I have to create an extra row to display them |
237
|
0
|
0
|
|
|
|
0
|
if ($comments) { |
238
|
0
|
|
|
|
|
0
|
$string .= " | \n";
239
|
0
|
|
|
|
|
0
|
for (my $col=0;$col<7;$col++) { |
240
|
0
|
0
|
|
|
|
0
|
if ($comments) { |
241
|
|
|
|
|
|
|
# I am in the after zone and can use it |
242
|
0
|
|
|
|
|
0
|
$string .= &makecomm($self,$comments[0],$comcol[0],$comstyle[0],$comsize[0]); |
243
|
0
|
|
|
|
|
0
|
shift @prefs; |
244
|
0
|
|
|
|
|
0
|
shift @comments; |
245
|
0
|
|
|
|
|
0
|
shift @comcol; |
246
|
0
|
|
|
|
|
0
|
shift @comstyle; |
247
|
0
|
|
|
|
|
0
|
shift @comsize; |
248
|
0
|
|
|
|
|
0
|
$comments--; |
249
|
|
|
|
|
|
|
} |
250
|
|
|
|
|
|
|
else { |
251
|
0
|
|
|
|
|
0
|
$string .= " | {CELLWIDTH} BGCOLOR=$self->{TABLEBG}> | \n";
252
|
|
|
|
|
|
|
} |
253
|
|
|
|
|
|
|
|
254
|
|
|
|
|
|
|
} |
255
|
0
|
|
|
|
|
0
|
$string .= " | \n";
256
|
|
|
|
|
|
|
} |
257
|
|
|
|
|
|
|
|
258
|
|
|
|
|
|
|
# finish up |
259
|
0
|
|
|
|
|
0
|
$string .= " | \n"; |
260
|
|
|
|
|
|
|
|
261
|
0
|
|
|
|
|
0
|
return $string; |
262
|
|
|
|
|
|
|
} |
263
|
|
|
|
|
|
|
|
264
|
|
|
|
|
|
|
sub makecomm { |
265
|
0
|
|
|
0
|
0
|
0
|
my $output = ''; |
266
|
0
|
|
|
|
|
0
|
my $self = shift; |
267
|
0
|
|
|
|
|
0
|
my $comm = shift; |
268
|
0
|
|
|
|
|
0
|
my $color = shift; |
269
|
0
|
|
|
|
|
0
|
my $style = shift; |
270
|
0
|
|
|
|
|
0
|
my $size = shift; |
271
|
0
|
|
|
|
|
0
|
my $day = PlotCalendar::Day->new(0); |
272
|
0
|
|
|
|
|
0
|
$day -> size($self->{CELLWIDTH},$self->{CELLWIDTH}); |
273
|
0
|
|
|
|
|
0
|
$day -> font($self->{FONT}{day},$self->{FONT}{main},$self->{FONT}{opt},); |
274
|
0
|
|
|
|
|
0
|
$day -> style($self->{STYLES}{day},$self->{STYLES}{main},$self->{STYLES}{opt},); |
275
|
0
|
|
|
|
|
0
|
$day -> color('BLACK',$self->{TABLEBG},'WHITE',);; |
276
|
|
|
|
|
|
|
|
277
|
0
|
|
|
|
|
0
|
$day -> text(@{$comm}); |
|
0
|
|
|
|
|
0
|
|
278
|
0
|
|
|
|
|
0
|
$day -> textcolor(($color)x@{$comm}); |
|
0
|
|
|
|
|
0
|
|
279
|
0
|
|
|
|
|
0
|
$day -> textsize(($size)x@{$comm}); |
|
0
|
|
|
|
|
0
|
|
280
|
0
|
|
|
|
|
0
|
$day -> textstyle(($style)x@{$comm}); |
|
0
|
|
|
|
|
0
|
|
281
|
0
|
|
|
|
|
0
|
$output = $day -> gethtml; # ---- add in cell |
282
|
|
|
|
|
|
|
|
283
|
0
|
|
|
|
|
0
|
return $output; |
284
|
|
|
|
|
|
|
} |
285
|
|
|
|
|
|
|
|
286
|
|
|
|
|
|
|
# **************************************************************** |
287
|
|
|
|
|
|
|
sub gettk { |
288
|
0
|
|
|
0
|
0
|
0
|
my $self = shift; |
289
|
|
|
|
|
|
|
|
290
|
0
|
|
|
|
|
0
|
return 0; |
291
|
|
|
|
|
|
|
} |
292
|
|
|
|
|
|
|
|
293
|
|
|
|
|
|
|
# **************************************************************** |
294
|
|
|
|
|
|
|
sub getascii { |
295
|
0
|
|
|
0
|
0
|
0
|
my $self = shift; |
296
|
|
|
|
|
|
|
|
297
|
0
|
|
|
|
|
0
|
my $string=''; |
298
|
|
|
|
|
|
|
|
299
|
0
|
|
|
|
|
0
|
my $begday = $self->{FIRST}; # What day of the week is the first day of the month? |
300
|
|
|
|
|
|
|
|
301
|
0
|
|
|
|
|
0
|
my $month = Month_to_Text($self->{MONTH}); |
302
|
0
|
|
|
|
|
0
|
my $year = $self->{YEAR}; |
303
|
0
|
|
|
|
|
0
|
my $labels = "$month $year"; |
304
|
0
|
|
|
|
|
0
|
$string .= "$labels\n"; |
305
|
|
|
|
|
|
|
|
306
|
|
|
|
|
|
|
# add in all the days |
307
|
|
|
|
|
|
|
|
308
|
0
|
|
|
|
|
0
|
my $numdays = Days_in_Month($year, $self->{MONTH}); # num days in month |
309
|
|
|
|
|
|
|
|
310
|
0
|
|
|
|
|
0
|
for (my $dom=1;$dom<=$numdays;$dom++) { |
311
|
0
|
|
|
|
|
0
|
my $dayofweek = Day_of_Week_to_Text(Day_of_Week($year,$self->{MONTH},$dom)); |
312
|
0
|
|
|
|
|
0
|
$string .= "\n--- $self->{MONTH}/$dom $dayofweek ---\n"; |
313
|
0
|
|
|
|
|
0
|
my $day = PlotCalendar::Day->new($dom); |
314
|
0
|
|
|
|
|
0
|
$day -> dayname($self->{DAYNAME}[$dom]); |
315
|
0
|
|
|
|
|
0
|
$day -> text(@{$self->{TEXT}[$dom]}); |
|
0
|
|
|
|
|
0
|
|
316
|
0
|
|
|
|
|
0
|
$string .= $day -> getascii; # ------- add a day |
317
|
|
|
|
|
|
|
} |
318
|
|
|
|
|
|
|
|
319
|
|
|
|
|
|
|
# [\@preference,\@text,\@color,\@style,\@size] |
320
|
|
|
|
|
|
|
# print out comments, if there are any |
321
|
|
|
|
|
|
|
|
322
|
0
|
0
|
|
|
|
0
|
if ($self->{COMMFLAG}) { |
323
|
0
|
|
|
|
|
0
|
my @text = @{$self->{COMMENTS}[1]}; |
|
0
|
|
|
|
|
0
|
|
324
|
0
|
|
|
|
|
0
|
$string .= join("\n",@text) . "\n"; |
325
|
|
|
|
|
|
|
} |
326
|
|
|
|
|
|
|
|
327
|
|
|
|
|
|
|
|
328
|
0
|
|
|
|
|
0
|
return $string; |
329
|
|
|
|
|
|
|
} |
330
|
|
|
|
|
|
|
|
331
|
|
|
|
|
|
|
# **************************************************************** |
332
|
|
|
|
|
|
|
sub dayname { |
333
|
1
|
|
|
1
|
0
|
5
|
my $self = shift; |
334
|
1
|
50
|
|
|
|
2
|
if (@_) { |
335
|
1
|
|
|
|
|
2
|
@{$self->{DAYNAME}} = @_; |
|
1
|
|
|
|
|
13
|
|
336
|
|
|
|
|
|
|
} |
337
|
0
|
|
|
|
|
0
|
else { return @{$self->{DAYNAME}};} |
|
0
|
|
|
|
|
0
|
|
338
|
|
|
|
|
|
|
} |
339
|
|
|
|
|
|
|
|
340
|
|
|
|
|
|
|
# **************************************************************** |
341
|
|
|
|
|
|
|
sub htmlref { |
342
|
0
|
|
|
0
|
0
|
0
|
my $self = shift; |
343
|
0
|
0
|
|
|
|
0
|
if (@_) { |
344
|
0
|
|
|
|
|
0
|
@{$self->{HTMLREF}} = @_; |
|
0
|
|
|
|
|
0
|
|
345
|
|
|
|
|
|
|
} |
346
|
0
|
|
|
|
|
0
|
else { return @{$self->{HTMLREF}};} |
|
0
|
|
|
|
|
0
|
|
347
|
|
|
|
|
|
|
} |
348
|
|
|
|
|
|
|
|
349
|
|
|
|
|
|
|
# **************************************************************** |
350
|
|
|
|
|
|
|
sub text { |
351
|
1
|
|
|
1
|
0
|
4
|
my $self = shift; |
352
|
1
|
50
|
|
|
|
3
|
if (@_) { |
353
|
1
|
|
|
|
|
2
|
@{$self->{TEXT}} = @_; |
|
1
|
|
|
|
|
4
|
|
354
|
|
|
|
|
|
|
} |
355
|
0
|
|
|
|
|
0
|
else { return @{$self->{TEXT}};} |
|
0
|
|
|
|
|
0
|
|
356
|
|
|
|
|
|
|
} |
357
|
|
|
|
|
|
|
|
358
|
|
|
|
|
|
|
# **************************************************************** |
359
|
|
|
|
|
|
|
sub textcolor { |
360
|
1
|
|
|
1
|
0
|
4
|
my $self = shift; |
361
|
1
|
50
|
|
|
|
2
|
if (@_) { |
362
|
1
|
|
|
|
|
2
|
@{$self->{TEXTCOL}} = @_; |
|
1
|
|
|
|
|
4
|
|
363
|
|
|
|
|
|
|
} |
364
|
0
|
|
|
|
|
0
|
else { return @{$self->{TEXTCOL}};} |
|
0
|
|
|
|
|
0
|
|
365
|
|
|
|
|
|
|
} |
366
|
|
|
|
|
|
|
|
367
|
|
|
|
|
|
|
# **************************************************************** |
368
|
|
|
|
|
|
|
sub textsize { |
369
|
1
|
|
|
1
|
0
|
4
|
my $self = shift; |
370
|
1
|
50
|
|
|
|
3
|
if (@_) { |
371
|
1
|
|
|
|
|
6
|
@{$self->{TEXTSIZE}} = @_; |
|
1
|
|
|
|
|
16
|
|
372
|
|
|
|
|
|
|
} |
373
|
0
|
|
|
|
|
0
|
else { return @{$self->{TEXTSIZE}};} |
|
0
|
|
|
|
|
0
|
|
374
|
|
|
|
|
|
|
} |
375
|
|
|
|
|
|
|
|
376
|
|
|
|
|
|
|
# **************************************************************** |
377
|
|
|
|
|
|
|
sub textstyle { |
378
|
1
|
|
|
1
|
0
|
4
|
my $self = shift; |
379
|
1
|
50
|
|
|
|
2
|
if (@_) { |
380
|
1
|
|
|
|
|
2
|
@{$self->{TEXTSTYLE}} = @_; |
|
1
|
|
|
|
|
4
|
|
381
|
|
|
|
|
|
|
} |
382
|
0
|
|
|
|
|
0
|
else { return @{$self->{TEXTSTYLE}};} |
|
0
|
|
|
|
|
0
|
|
383
|
|
|
|
|
|
|
} |
384
|
|
|
|
|
|
|
|
385
|
|
|
|
|
|
|
# **************************************************************** |
386
|
|
|
|
|
|
|
sub textref { |
387
|
1
|
|
|
1
|
0
|
4
|
my $self = shift; |
388
|
1
|
50
|
|
|
|
2
|
if (@_) { |
389
|
1
|
|
|
|
|
1
|
@{$self->{TEXTREF}} = @_; |
|
1
|
|
|
|
|
4
|
|
390
|
|
|
|
|
|
|
} |
391
|
0
|
|
|
|
|
0
|
else { return @{$self->{TEXTREF}};} |
|
0
|
|
|
|
|
0
|
|
392
|
|
|
|
|
|
|
} |
393
|
|
|
|
|
|
|
|
394
|
|
|
|
|
|
|
# **************************************************************** |
395
|
|
|
|
|
|
|
sub nameref { |
396
|
1
|
|
|
1
|
0
|
5
|
my $self = shift; |
397
|
1
|
50
|
|
|
|
2
|
if (@_) { |
398
|
1
|
|
|
|
|
1
|
@{$self->{NAMEREF}} = @_; |
|
1
|
|
|
|
|
6
|
|
399
|
|
|
|
|
|
|
} |
400
|
0
|
|
|
|
|
0
|
else { return @{$self->{NAMEREF}};} |
|
0
|
|
|
|
|
0
|
|
401
|
|
|
|
|
|
|
} |
402
|
|
|
|
|
|
|
|
403
|
|
|
|
|
|
|
# **************************************************************** |
404
|
|
|
|
|
|
|
sub comments { |
405
|
1
|
|
|
1
|
0
|
13
|
my $self = shift; |
406
|
1
|
50
|
|
|
|
2
|
if (@_) { |
407
|
1
|
|
|
|
|
2
|
@{$self->{COMMENTS}} = @_; |
|
1
|
|
|
|
|
2
|
|
408
|
1
|
|
|
|
|
8
|
$self->{COMMFLAG}=1; |
409
|
|
|
|
|
|
|
} |
410
|
0
|
|
|
|
|
0
|
else { return @{$self->{COMMENTS}};} |
|
0
|
|
|
|
|
0
|
|
411
|
|
|
|
|
|
|
} |
412
|
|
|
|
|
|
|
|
413
|
|
|
|
|
|
|
# **************************************************************** |
414
|
|
|
|
|
|
|
sub htmlexpand { |
415
|
0
|
|
|
0
|
0
|
0
|
my $self = shift; |
416
|
0
|
|
|
|
|
0
|
my @ans = qw( no yes ); |
417
|
0
|
0
|
|
|
|
0
|
if (@_) { |
418
|
0
|
|
|
|
|
0
|
$self->{EXPAND} = 0; |
419
|
0
|
0
|
|
|
|
0
|
if ( $_[0] eq 'yes' ) {$self->{EXPAND} = 1;} |
|
0
|
|
|
|
|
0
|
|
420
|
|
|
|
|
|
|
} |
421
|
0
|
|
|
|
|
0
|
else { return $ans[$self->{EXPAND}];} |
422
|
|
|
|
|
|
|
} |
423
|
|
|
|
|
|
|
|
424
|
|
|
|
|
|
|
# **************************************************************** |
425
|
|
|
|
|
|
|
sub bgcolor { |
426
|
1
|
|
|
1
|
0
|
4
|
my $self = shift; |
427
|
1
|
50
|
|
|
|
3
|
if (@_) { |
428
|
1
|
50
|
|
|
|
2
|
if ($#_ > 0) { # I have an array |
429
|
1
|
|
|
|
|
8
|
@{$self->{BGCOLOR}} = @_; |
|
1
|
|
|
|
|
8
|
|
430
|
|
|
|
|
|
|
} |
431
|
|
|
|
|
|
|
else { # I have a single value |
432
|
0
|
|
|
|
|
0
|
my $color = shift; |
433
|
0
|
|
|
|
|
0
|
for (my $i=1;$i<=31;$i++) { |
434
|
0
|
|
|
|
|
0
|
$self->{BGCOLOR}[$i] = $color; |
435
|
|
|
|
|
|
|
} |
436
|
|
|
|
|
|
|
} |
437
|
|
|
|
|
|
|
} |
438
|
0
|
|
|
|
|
0
|
else { return @{$self->{BGCOLOR}};} |
|
0
|
|
|
|
|
0
|
|
439
|
|
|
|
|
|
|
} |
440
|
|
|
|
|
|
|
|
441
|
|
|
|
|
|
|
# **************************************************************** |
442
|
|
|
|
|
|
|
sub fgcolor { |
443
|
1
|
|
|
1
|
0
|
852
|
my $self = shift; |
444
|
1
|
50
|
|
|
|
4
|
if (@_) { |
445
|
1
|
50
|
|
|
|
9
|
if ($#_ > 0) { # I have an array |
446
|
0
|
|
|
|
|
0
|
@{$self->{FGCOLOR}} = @_; |
|
0
|
|
|
|
|
0
|
|
447
|
|
|
|
|
|
|
} |
448
|
|
|
|
|
|
|
else { # I have a single value |
449
|
1
|
|
|
|
|
2
|
my $color = shift; |
450
|
1
|
|
|
|
|
5
|
for (my $i=1;$i<=31;$i++) { |
451
|
31
|
|
|
|
|
59
|
$self->{FGCOLOR}[$i] = $color; |
452
|
|
|
|
|
|
|
} |
453
|
|
|
|
|
|
|
} |
454
|
|
|
|
|
|
|
} |
455
|
0
|
|
|
|
|
0
|
else { return @{$self->{FGCOLOR}};} |
|
0
|
|
|
|
|
0
|
|
456
|
|
|
|
|
|
|
} |
457
|
|
|
|
|
|
|
|
458
|
|
|
|
|
|
|
# **************************************************************** |
459
|
|
|
|
|
|
|
sub artwork { |
460
|
1
|
|
|
1
|
0
|
3
|
my $self = shift; |
461
|
1
|
50
|
|
|
|
2
|
if (@_) { |
462
|
1
|
|
|
|
|
3
|
$self->{ARTWORK} = shift; |
463
|
|
|
|
|
|
|
} |
464
|
0
|
|
|
|
|
0
|
else { return $self->{ARTWORK};} |
465
|
|
|
|
|
|
|
} |
466
|
|
|
|
|
|
|
|
467
|
|
|
|
|
|
|
# **************************************************************** |
468
|
|
|
|
|
|
|
sub firstday { |
469
|
1
|
|
|
1
|
0
|
4
|
my $self = shift; |
470
|
1
|
|
|
|
|
2
|
my @tst = qw( Sun Mon Tue Wed Thu Fri Sat ); |
471
|
1
|
|
|
|
|
2
|
my %tst; |
472
|
1
|
|
|
|
|
3
|
for (@tst) { $tst{$_} = 1; } |
|
7
|
|
|
|
|
10
|
|
473
|
1
|
50
|
|
|
|
2
|
if (@_) { |
474
|
1
|
|
|
|
|
2
|
my $day = shift; |
475
|
1
|
50
|
|
|
|
4
|
if ( defined $tst{$day} ) { |
476
|
1
|
|
|
|
|
5
|
$self->{FIRST} = $day; |
477
|
|
|
|
|
|
|
} |
478
|
0
|
|
|
|
|
0
|
else { die "Bad day value in call to firstday in Month.pm - $day\n";} |
479
|
|
|
|
|
|
|
} |
480
|
0
|
|
|
|
|
0
|
else { return $self->{FIRST};} |
481
|
|
|
|
|
|
|
} |
482
|
|
|
|
|
|
|
|
483
|
|
|
|
|
|
|
# **************************************************************** |
484
|
|
|
|
|
|
|
sub monthref { |
485
|
0
|
|
|
0
|
0
|
0
|
my $self = shift; |
486
|
0
|
0
|
|
|
|
0
|
if (@_) { |
487
|
0
|
|
|
|
|
0
|
$self->{MONTHREF} = shift; |
488
|
|
|
|
|
|
|
} |
489
|
0
|
|
|
|
|
0
|
else { return $self->{MONTHREF}} |
490
|
|
|
|
|
|
|
} |
491
|
|
|
|
|
|
|
|
492
|
|
|
|
|
|
|
# **************************************************************** |
493
|
|
|
|
|
|
|
sub cliptext { |
494
|
1
|
|
|
1
|
0
|
3
|
my $self = shift; |
495
|
1
|
50
|
|
|
|
3
|
if (@_) { |
496
|
1
|
|
|
|
|
2
|
$self->{CLIPTEXT} = shift; |
497
|
|
|
|
|
|
|
} |
498
|
0
|
|
|
|
|
0
|
else { return $self->{CLIPTEXT}} |
499
|
|
|
|
|
|
|
} |
500
|
|
|
|
|
|
|
|
501
|
|
|
|
|
|
|
# **************************************************************** |
502
|
|
|
|
|
|
|
sub size { |
503
|
1
|
|
|
1
|
0
|
4
|
my $self = shift; |
504
|
1
|
50
|
|
|
|
5
|
if (@_) { |
505
|
1
|
|
|
|
|
7
|
$self->{SIZE}{height} = shift; |
506
|
1
|
|
|
|
|
2
|
$self->{SIZE}{width} = shift; |
507
|
1
|
|
|
|
|
6
|
$self->{CELLWIDTH} = int($self->{SIZE}{width}/7); |
508
|
|
|
|
|
|
|
} |
509
|
0
|
|
|
|
|
0
|
else { return ($self->{SIZE}{height},$self->{SIZE}{width});} |
510
|
|
|
|
|
|
|
} |
511
|
|
|
|
|
|
|
|
512
|
|
|
|
|
|
|
# **************************************************************** |
513
|
|
|
|
|
|
|
sub font { |
514
|
1
|
|
|
1
|
0
|
4
|
my $self = shift; |
515
|
1
|
50
|
|
|
|
2
|
if (@_) { |
516
|
1
|
|
|
|
|
2
|
$self->{FONT}{day} = shift; |
517
|
1
|
|
|
|
|
2
|
$self->{FONT}{main} = shift; |
518
|
1
|
|
|
|
|
2
|
$self->{FONT}{opt} = shift; |
519
|
|
|
|
|
|
|
} |
520
|
0
|
|
|
|
|
0
|
else { return ($self->{FONT}{day},$self->{FONT}{main},$self->{FONT}{opt},);} |
521
|
|
|
|
|
|
|
} |
522
|
|
|
|
|
|
|
|
523
|
|
|
|
|
|
|
# **************************************************************** |
524
|
|
|
|
|
|
|
sub styles { |
525
|
1
|
|
|
1
|
0
|
5
|
my $self = shift; |
526
|
1
|
50
|
|
|
|
3
|
if (@_) { |
527
|
1
|
|
|
|
|
2
|
$self->{STYLES}{day} = shift; |
528
|
1
|
|
|
|
|
1
|
$self->{STYLES}{main} = shift; |
529
|
1
|
|
|
|
|
3
|
$self->{STYLES}{opt} = shift; |
530
|
|
|
|
|
|
|
} |
531
|
0
|
|
|
|
|
0
|
else { return ($self->{STYLES}{day},$self->{STYLES}{main},$self->{STYLES}{opt},);} |
532
|
|
|
|
|
|
|
} |
533
|
|
|
|
|
|
|
|
534
|
|
|
|
|
|
|
# **************************************************************** |
535
|
|
|
|
|
|
|
sub initialize { |
536
|
1
|
|
|
1
|
0
|
2
|
my $self = shift; |
537
|
|
|
|
|
|
|
|
538
|
|
|
|
|
|
|
# default values |
539
|
|
|
|
|
|
|
|
540
|
1
|
|
|
|
|
2
|
$self->{SIZE}{height} = 700; |
541
|
1
|
|
|
|
|
2
|
$self->{SIZE}{width} = 700; |
542
|
1
|
|
|
|
|
2
|
$self->{FONT}{day} = '14'; |
543
|
1
|
|
|
|
|
2
|
$self->{FONT}{main} = '10'; |
544
|
1
|
|
|
|
|
2
|
$self->{FONT}{opt} = '8'; |
545
|
1
|
|
|
|
|
2
|
$self->{STYLES}{day} = 'b'; |
546
|
1
|
|
|
|
|
1
|
$self->{STYLES}{main} = 'bi'; |
547
|
1
|
|
|
|
|
2
|
$self->{STYLES}{opt} = 'n'; |
548
|
1
|
|
|
|
|
6
|
for (my $i=1;$i<=31;$i++) { |
549
|
31
|
|
|
|
|
37
|
$self->{FGCOLOR}[$i] = 'BLACK'; |
550
|
31
|
|
|
|
|
37
|
$self->{BGCOLOR}[$i] = '#33cc00'; # green |
551
|
31
|
|
|
|
|
67
|
$self->{DAYNAME}[$i] = ''; |
552
|
|
|
|
|
|
|
} |
553
|
|
|
|
|
|
|
|
554
|
|
|
|
|
|
|
# utility values |
555
|
1
|
|
|
|
|
2
|
%{$self->{'FONT_TABLE'}}=( |
|
1
|
|
|
|
|
10
|
|
556
|
|
|
|
|
|
|
"3" => "-2", |
557
|
|
|
|
|
|
|
"4" => "-2", |
558
|
|
|
|
|
|
|
"5" => "-1", |
559
|
|
|
|
|
|
|
"6" => "-1", |
560
|
|
|
|
|
|
|
"7" => "+0", |
561
|
|
|
|
|
|
|
"8" => "+0", |
562
|
|
|
|
|
|
|
"9" => "+1", |
563
|
|
|
|
|
|
|
"10" => "+1", |
564
|
|
|
|
|
|
|
"11" => "+2", |
565
|
|
|
|
|
|
|
"12" => "+2", |
566
|
|
|
|
|
|
|
"13" => "+3", |
567
|
|
|
|
|
|
|
"14" => "+3", |
568
|
|
|
|
|
|
|
"15" => "+4", |
569
|
|
|
|
|
|
|
"16" => "+4", |
570
|
|
|
|
|
|
|
); |
571
|
|
|
|
|
|
|
|
572
|
|
|
|
|
|
|
|
573
|
|
|
|
|
|
|
} |
574
|
|
|
|
|
|
|
|
575
|
|
|
|
|
|
|
1; |
576
|
|
|
|
|
|
|
__END__ |