public void Move(DateItem value, int index) { if (value == null) { throw new ArgumentNullException("value"); } if (index < 0) { index = 0; } else if (index > this.Count) { index = this.Count; } if (!this.Contains(value) || this.IndexOf(value) == index) { return; } this.List.Remove(value); if (index > this.Count) { this.List.Add(value); } else { this.List.Insert(index, value); } }
public bool Contains(DateItem dateItem) { if (dateItem == null) { throw new ArgumentNullException("dateItem"); } return(this.IndexOf(dateItem) != -1); }
public void Remove(DateItem value) { if (value == null) { throw new ArgumentNullException("value"); } this.List.Remove(value); }
protected virtual ImageList GetImageList(object component) { DateItem item = component as DateItem; if (item != null) { return(item.GetImageList()); } return(null); }
public DateItem[] AddInfo(DateItem dt, DateItem[] old) { int l = old.Length; int i; DateItem[] n = new DateItem[l + 1]; n.Initialize(); for (i = 0; i < l; i++) { n[i] = old[i]; } n[i] = dt; return(n); }
public int IndexOf(DateItem dateItem) { if (dateItem == null) { throw new ArgumentNullException("dateItem"); } for (int i = 0; i < this.Count; i++) { if (this[i] == dateItem) { return(i); } } return(-1); }
public void Add(DateItem value) { int index; if (value == null) { throw new ArgumentNullException("value"); } if ((KellCalendar)value.Calendar == null) { value.Calendar = this.owner; } index = this.IndexOf(value); if (index == -1) { this.List.Add(value); } else { this.List[index] = value; } }
public void MoveToBottom(DateItem value) { this.Move(value, this.Count); }
public void MoveToTop(DateItem value) { this.Move(value, 0); }
public DateItem[] DateInfo(DateTime dt) { DateItem[] ret = new DateItem[0]; ret.Initialize(); for (int i = 0; i < this.Count; i++) { if (((this[i].Date <= dt) && (this[i].Range >= dt))) { switch (this[i].Pattern) { case mcDayInfoRecurrence.None: { if (this[i].Date.ToShortDateString() == dt.ToShortDateString()) { this[i].Index = i; ret = AddInfo(this[i], ret); } break; } case mcDayInfoRecurrence.Daily: { this[i].Index = i; ret = AddInfo(this[i], ret); break; } case mcDayInfoRecurrence.Weekly: { if ((this[i].Date.DayOfWeek == dt.DayOfWeek)) { this[i].Index = i; ret = AddInfo(this[i], ret); } break; } case mcDayInfoRecurrence.Monthly: { if ((this[i].Date.Day == dt.Day)) { this[i].Index = i; ret = AddInfo(this[i], ret); } break; } case mcDayInfoRecurrence.Yearly: { if (this[i].Date.ToShortDateString().Substring(5) == dt.ToShortDateString().Substring(5)) { this[i].Index = i; ret = AddInfo(this[i], ret); } break; } } } } return(ret); }
internal void Draw(Graphics e, DateItem queryInfo) { StringFormat dateAlign = new StringFormat(); StringFormat textAlign = new StringFormat(); Font boldFont = new Font(m_month.DateFont.Name,m_month.DateFont.Size,m_month.DateFont.Style | FontStyle.Bold); Color bgColor1 = m_month.Colors.Days.BackColor1; Color bgColor2 = m_month.Colors.Days.BackColor2; mcGradientMode gradientMode = m_month.Colors.Days.GradientMode; Color textColor = m_month.Colors.Days.Text; Color dateColor = m_month.Colors.Days.Date; Brush dateBrush = new SolidBrush(dateColor); Brush textBrush = new SolidBrush(textColor); Brush bgBrush = new SolidBrush(bgColor1); string dateString; m_imageRect = new Rectangle(); string text = ""; bool drawDay = false; bool enabled = true; Image bgImage = null; int i = -1; bool boldedDate = false; DateItem[] info; m_dayImage = null; dateAlign = GetStringAlignment(m_month.DateAlign); textAlign = GetStringAlignment(m_month.TextAlign); if ((m_month.SelectedMonth.Month == m_date.Month) || (m_month.Calendar.ShowTrailingDates)) drawDay = true; if ( ((m_date.DayOfWeek == DayOfWeek.Saturday) && (m_month.Colors.Weekend.Saturday)) || ((m_date.DayOfWeek == DayOfWeek.Sunday) && (m_month.Colors.Weekend.Sunday)) ) { bgColor1 = m_month.Colors.Weekend.BackColor1; bgColor2 = m_month.Colors.Weekend.BackColor2; dateColor= m_month.Colors.Weekend.Date; textColor= m_month.Colors.Weekend.Text; gradientMode = m_month.Colors.Weekend.GradientMode; } if (m_month.SelectedMonth.Month != m_date.Month) { bgColor1 = m_month.Colors.Trailing.BackColor1; bgColor2 = m_month.Colors.Trailing.BackColor2; gradientMode = m_month.Colors.Trailing.GradientMode; dateColor = m_month.Colors.Trailing.Date; textColor = m_month.Colors.Trailing.Text; } // Check if formatting should be applied if ((m_month.FormatTrailing) || (m_month.SelectedMonth.Month == m_date.Month)) { // check of there is formatting for this day if (queryInfo != null) { info = new DateItem[1]; info[0] = queryInfo; } else info = m_calendar.GetDateInfo(this.Date); if (info.Length > 0) i = 0; // go through the available dateitems while ((i<info.Length) && (drawDay)) { if (info.Length>0) { DateItem dateInfo = info[i]; if (dateInfo.BackColor1!=Color.Empty) bgColor1 = dateInfo.BackColor1; if (dateInfo.BackColor2 != Color.Empty) bgColor2 = dateInfo.BackColor2; gradientMode = dateInfo.GradientMode; if (dateInfo.DateColor!=Color.Empty) dateColor = dateInfo.DateColor; if (dateInfo.TextColor!=Color.Empty) textColor = dateInfo.TextColor; text = dateInfo.Text; if (dateInfo.Weekend) { bgColor1 = m_month.Colors.Weekend.BackColor1; bgColor2 = m_month.Colors.Weekend.BackColor2; gradientMode = m_month.Colors.Weekend.GradientMode; dateColor = m_month.Colors.Weekend.Date; textColor = m_month.Colors.Weekend.Text; } boldedDate = dateInfo.BoldedDate; enabled = dateInfo.Enabled; if (!dateInfo.Enabled) { bgColor1 = m_month.Colors.Disabled.BackColor1; bgColor2 = m_month.Colors.Disabled.BackColor2; gradientMode = m_month.Colors.Disabled.GradientMode; dateColor = m_month.Colors.Disabled.Date; textColor = m_month.Colors.Disabled.Text; } m_dayImage = dateInfo.Image; if (m_dayImage!=null) m_imageRect = ImageRect(m_month.ImageAlign); bgImage = dateInfo.BackgroundImage; } if (m_state == mcDayState.Selected) { dateColor = m_month.Colors.Selected.Date; textColor = m_month.Colors.Selected.Text; } if ((m_state == mcDayState.Focus) && (m_month.Calendar.ShowFocus)) { dateColor = m_month.Colors.Focus.Date; textColor = m_month.Colors.Focus.Text; } if (bgImage != null) e.DrawImage(bgImage, m_rect); else { if (gradientMode == mcGradientMode.None) { if (bgColor1 != Color.Transparent) { bgBrush = new SolidBrush(Color.FromArgb(m_month.Transparency.Background, bgColor1)); e.FillRectangle(bgBrush, m_rect); } } else m_calendar.DrawGradient(e, Rectangle, bgColor1, bgColor2, gradientMode); } ControlPaint.DrawBorder(e,m_rect, m_month.Colors.Days.Border,m_month.BorderStyles.Normal); if (m_dayImage!=null) { if (enabled) e.DrawImageUnscaled(m_dayImage,m_imageRect); else ControlPaint.DrawImageDisabled(e,m_dayImage,m_imageRect.X,m_imageRect.Y,m_month.Colors.Disabled.BackColor1); } // Check if we should append month name to date if ((m_month.ShowMonthInDay) && ((m_date.AddDays(-1).Month != m_date.Month) || (m_date.AddDays(1).Month != m_date.Month))) dateString = m_date.Day.ToString()+" "+m_calendar.m_dateTimeFormat.GetMonthName(m_date.Month); else dateString = m_date.Day.ToString(); if (dateColor != Color.Transparent) { dateBrush = new SolidBrush(Color.FromArgb(m_month.Transparency.Text, dateColor)); CharacterRange[] characterRanges = { new CharacterRange(0, dateString.Length) }; dateAlign.SetMeasurableCharacterRanges(characterRanges); m_dateRgn = new Region[1]; // Should date be bolded ? if (!boldedDate) { e.DrawString(dateString, m_month.DateFont, dateBrush, m_rect, dateAlign); m_dateRgn = e.MeasureCharacterRanges(dateString, m_month.DateFont, m_rect, dateAlign); } else { e.DrawString(dateString, boldFont, dateBrush, m_rect, dateAlign); m_dateRgn = e.MeasureCharacterRanges(dateString, boldFont, m_rect, dateAlign); } } if ((text.Length > 0) && (textColor != Color.Transparent)) { textBrush = new SolidBrush(Color.FromArgb(m_month.Transparency.Text, textColor)); CharacterRange[] characterRanges = { new CharacterRange(0, text.Length) }; textAlign.SetMeasurableCharacterRanges(characterRanges); m_textRgn = new Region[1]; e.DrawString(text, m_month.TextFont, textBrush, m_rect, textAlign); m_textRgn = e.MeasureCharacterRanges(text, m_month.TextFont, m_rect, textAlign); } i++; } } dateBrush.Dispose(); bgBrush.Dispose(); textBrush.Dispose(); boldFont.Dispose(); dateAlign.Dispose(); textAlign.Dispose(); }