void WriteDayHeader (HtmlTextWriter writer, bool enabled)
{
int i, first;
string dayName;
i = first = (int) (DisplayFirstDayOfWeek);
TableCell cell;
writer.RenderBeginTag (HtmlTextWriterTag.Tr);
if (SelectionMode == CalendarSelectionMode.DayWeek) {
cell = new TableCell();
cell.HorizontalAlign = HorizontalAlign.Center;
cell.ApplyStyle (DayHeaderStyle);
// Empty Cell
cell.RenderBeginTag (writer);
cell.RenderEndTag (writer);
} else {
if (SelectionMode == CalendarSelectionMode.DayWeekMonth) {
TableCell selector = new TableCell ();
selector.ApplyStyle (SelectorStyle);
selector.HorizontalAlign = HorizontalAlign.Center;
DateTime date = new DateTime (DisplayDate.Year, DisplayDate.Month, 1); // first date
int days = DateTime.DaysInMonth (DisplayDate.Year, DisplayDate.Month);
selector.RenderBeginTag (writer);
writer.Write (BuildLink ("R" + GetDaysFromZenith (date) + days, SelectMonthText, DayHeaderStyle.ForeColor, enabled));
selector.RenderEndTag (writer);
}
}
DateTimeFormatInfo dti = DateInfo;
while (true) {
DayOfWeek dayOfWeek = (DayOfWeek) i;
dayName = dti.GetDayName (dayOfWeek);
#if NET_2_0
if (UseAccessibleHeader) {
writer.AddAttribute (HtmlTextWriterAttribute.Abbr, dayName);
writer.AddAttribute (HtmlTextWriterAttribute.Scope, "col", false);
cell = new TableHeaderCell();
}
else
#endif
cell = new TableCell();
cell.HorizontalAlign = HorizontalAlign.Center;
cell.ApplyStyle (DayHeaderStyle);
cell.RenderBeginTag (writer);
switch (DayNameFormat) {
case DayNameFormat.FirstLetter:
dayName = dayName.Substring (0, 1);
break;
case DayNameFormat.FirstTwoLetters:
dayName = dayName.Substring (0, 2);
break;
#if NET_2_0
case DayNameFormat.Shortest:
dayName = dti.GetShortestDayName (dayOfWeek);
break;
#endif
case DayNameFormat.Full:
break;
case DayNameFormat.Short:
default:
dayName = dti.GetAbbreviatedDayName (dayOfWeek);
break;
}
writer.Write (dayName);
cell.RenderEndTag (writer);
if (i >= daysInAWeek - 1) {
i = 0;
}
else {
i++;
}
if (i == first)
break;
}
writer.RenderEndTag ();
}