Example #1
0
        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);
            }
        }
Example #2
0
        public bool Contains(DateItem dateItem)
        {
            if (dateItem == null)
            {
                throw new ArgumentNullException("dateItem");
            }

            return(this.IndexOf(dateItem) != -1);
        }
Example #3
0
        public void Remove(DateItem value)
        {
            if (value == null)
            {
                throw new ArgumentNullException("value");
            }

            this.List.Remove(value);
        }
Example #4
0
        protected virtual ImageList GetImageList(object component)
        {
            DateItem item = component as DateItem;

            if (item != null)
            {
                return(item.GetImageList());
            }

            return(null);
        }
Example #5
0
        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);
        }
Example #6
0
        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);
        }
Example #7
0
        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;
            }
        }
Example #8
0
 public void MoveToBottom(DateItem value)
 {
     this.Move(value, this.Count);
 }
Example #9
0
 public void MoveToTop(DateItem value)
 {
     this.Move(value, 0);
 }
Example #10
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);
        }
Example #11
0
		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();
			
		}