#if FRAMEWORK20 using System; using System.Text; using System.Data; using System.Drawing; using System.ComponentModel; using System.Drawing.Drawing2D; using DevComponents.DotNetBar; using DevComponents.DotNetBar.Rendering; namespace DevComponents.Editors.DateTimeAdv { public class DayLabel : PopupItem { #region Private Variables private ElementStyle _BackgroundStyle = new ElementStyle(); private Rectangle _ImageRenderBounds = Rectangle.Empty; #endregion #region Events /// /// Occurs when label is rendered and it allows you to override default rendering. /// public event DayPaintEventHandler PaintLabel; #endregion #region Constructor /// /// Initializes a new instance of the DayLabel class. /// public DayLabel() { _BackgroundStyle.StyleChanged += new EventHandler(BackgroundStyleChanged); MouseUpNotification = true; } protected override void Dispose(bool disposing) { if (BarUtilities.DisposeItemImages && !this.DesignMode) { BarUtilities.DisposeImage(ref _Image); } _BackgroundStyle.StyleChanged -= BackgroundStyleChanged; _BackgroundStyle.Dispose(); base.Dispose(disposing); } #endregion #region Internal Implementation public override void Paint(ItemPaintArgs p) { DayPaintEventArgs e = new DayPaintEventArgs(p, this); OnPaintLabel(e); if (e.RenderParts == eDayPaintParts.None) return; SingleMonthCalendar month = this.Parent as SingleMonthCalendar; if (month != null) { month.OnPaintLabel(this, e); } if (e.RenderParts == eDayPaintParts.None) return; if (this.Enabled && (e.RenderParts & eDayPaintParts.Background) == eDayPaintParts.Background) PaintBackground(p); if ((e.RenderParts & eDayPaintParts.Text) == eDayPaintParts.Text) PaintText(p, null, Color.Empty, _TextAlign); if ((e.RenderParts & eDayPaintParts.Image) == eDayPaintParts.Image) PaintImage(p, _Image, _ImageAlign); } internal void PaintImage(ItemPaintArgs p, Image image, eLabelPartAlignment imageAlign) { if (image == null) return; Graphics g = p.Graphics; Rectangle imageRect = GetAlignedRect(this.DisplayRectangle, image.Size, imageAlign); CompositeImage ci = new CompositeImage(image, false); ci.DrawImage(g, imageRect); ci.Dispose(); _ImageRenderBounds = imageRect; } private Rectangle GetAlignedRect(Rectangle bounds, Size innerSize, eLabelPartAlignment partAlign) { Rectangle innerRect = new Rectangle(bounds.Right - innerSize.Width, bounds.Y, innerSize.Width, innerSize.Height); if (partAlign == eLabelPartAlignment.BottomCenter) innerRect.Location = new Point(bounds.X + (bounds.Width - innerSize.Width) / 2, bounds.Bottom - innerSize.Height); else if (partAlign == eLabelPartAlignment.BottomLeft) innerRect.Location = new Point(bounds.X, bounds.Bottom - innerSize.Height); else if (partAlign == eLabelPartAlignment.BottomRight) innerRect.Location = new Point(bounds.Right - innerSize.Width, bounds.Bottom - innerSize.Height); else if (partAlign == eLabelPartAlignment.MiddleCenter) innerRect.Location = new Point(bounds.X + (bounds.Width - innerSize.Width) / 2, bounds.Y + (bounds.Height - innerSize.Height) / 2); else if (partAlign == eLabelPartAlignment.MiddleLeft) innerRect.Location = new Point(bounds.X, bounds.Y + (bounds.Height - innerSize.Height) / 2); else if (partAlign == eLabelPartAlignment.MiddleRight) innerRect.Location = new Point(bounds.Right - innerSize.Width, bounds.Y + (bounds.Height - innerSize.Height) / 2); else if (partAlign == eLabelPartAlignment.TopCenter) innerRect.Location = new Point(bounds.X + (bounds.Width - innerSize.Width) / 2, bounds.Y); else if (partAlign == eLabelPartAlignment.TopLeft) innerRect.Location = new Point(bounds.X, bounds.Y); return innerRect; } /// /// Raises the PaintLabel event. /// /// Provides event data. protected virtual void OnPaintLabel(DayPaintEventArgs e) { if (PaintLabel != null) PaintLabel(this, e); } internal void PaintBackground(ItemPaintArgs p) { Graphics g = p.Graphics; Rectangle r = this.DisplayRectangle; Color backColor = Color.Empty, backColor2 = Color.Empty, borderColor = Color.Empty; if (_BackgroundStyle.Custom && (!this.IsMouseOver && !this.IsMouseDown || !_TrackMouse)) { _BackgroundStyle.SetColorScheme(p.Colors); bool disposeStyle = false; ElementStyle style = ElementStyleDisplay.GetElementStyle(_BackgroundStyle, out disposeStyle); ElementStyleDisplay.Paint(new ElementStyleDisplayInfo(style, g, r)); if(disposeStyle) style.Dispose(); } bool customColors = false; SingleMonthCalendar month = this.Parent as SingleMonthCalendar; MonthCalendarColors colors = null; if (month != null) colors = month.GetColors(); if (this.IsMouseDown && _TrackMouse) { backColor = p.Colors.ItemPressedBackground; backColor2 = p.Colors.ItemPressedBackground2; borderColor = p.Colors.ItemPressedBorder; } else if (this.IsMouseOver && _TrackMouse) { backColor = p.Colors.ItemHotBackground; backColor2 = p.Colors.ItemHotBackground2; borderColor = p.Colors.ItemHotBorder; } else if (this.IsSelected) { backColor = p.Colors.ItemCheckedBackground; if (colors != null && colors.Selection.IsCustomized) { if (!colors.Selection.BackColor.IsEmpty) { backColor = colors.Selection.BackColor; if (!colors.Selection.BackColor2.IsEmpty) backColor2 = colors.Selection.BackColor2; } if (!colors.Selection.BorderColor.IsEmpty) borderColor = colors.Selection.BorderColor; customColors = true; } } else if (_IsToday) { borderColor = p.Colors.ItemCheckedBorder; if (colors != null && colors.Today.IsCustomized) { if (!colors.Today.BorderColor.IsEmpty) borderColor = colors.Today.BorderColor; if (!colors.Today.BackColor.IsEmpty) { backColor = colors.Today.BackColor; if (!colors.Today.BackColor2.IsEmpty) backColor2 = colors.Today.BackColor2; } customColors = true; } } else if (this.IsWeekOfYear) { backColor = Color.LightGray; if (colors != null && colors.WeekOfYear.IsCustomized) { if (!colors.WeekOfYear.BorderColor.IsEmpty) borderColor = colors.WeekOfYear.BorderColor; if (!colors.WeekOfYear.BackColor.IsEmpty) { backColor = colors.WeekOfYear.BackColor; if (!colors.WeekOfYear.BackColor2.IsEmpty) backColor2 = colors.WeekOfYear.BackColor2; } customColors = true; } } else if (this.IsTrailing) { if (colors != null && colors.TrailingDay.IsCustomized) { if (!colors.TrailingDay.BackColor.IsEmpty) { backColor = colors.TrailingDay.BackColor; if (!colors.TrailingDay.BackColor2.IsEmpty) backColor2 = colors.TrailingDay.BackColor2; } if (!colors.TrailingDay.BorderColor.IsEmpty) borderColor = colors.TrailingDay.BorderColor; customColors = true; } if (IsWeekend(Date) && colors != null && colors.TrailingWeekend.IsCustomized) { if (!colors.TrailingWeekend.BackColor.IsEmpty) { backColor = colors.TrailingWeekend.BackColor; if (!colors.TrailingWeekend.BackColor2.IsEmpty) backColor2 = colors.TrailingWeekend.BackColor2; } if (!colors.TrailingWeekend.BorderColor.IsEmpty) borderColor = colors.TrailingWeekend.BorderColor; customColors = true; } } else if (this.IsDayLabel) { if (colors != null && colors.DayLabel.IsCustomized) { if (!colors.DayLabel.BackColor.IsEmpty) { backColor = colors.DayLabel.BackColor; if (!colors.DayLabel.BackColor2.IsEmpty) backColor2 = colors.DayLabel.BackColor2; } if (!colors.DayLabel.BorderColor.IsEmpty) borderColor = colors.DayLabel.BorderColor; customColors = true; } } else if (this.Date != DateTime.MinValue) { if (colors != null && colors.Day.IsCustomized) { if (!colors.Day.BackColor.IsEmpty) { backColor = colors.Day.BackColor; if (!colors.Day.BackColor2.IsEmpty) backColor2 = colors.Day.BackColor2; } if (!colors.Day.BorderColor.IsEmpty) borderColor = colors.Day.BorderColor; customColors = true; } if (IsWeekend(Date) && colors != null && colors.Weekend.IsCustomized) { if (!colors.Weekend.BackColor.IsEmpty) { backColor = colors.Weekend.BackColor; if (!colors.Weekend.BackColor2.IsEmpty) backColor2 = colors.Weekend.BackColor2; } if (!colors.Weekend.BorderColor.IsEmpty) borderColor = colors.Weekend.BorderColor; customColors = true; } } if (BarFunctions.IsOffice2007Style(EffectiveStyle) && !this.FlatOffice2007Style && !customColors) { Office2007ButtonItemStateColorTable ct = GetOffice2007StateColorTable(p); if (ct != null) { Office2007ButtonItemPainter.PaintBackground(g, ct, r, RoundRectangleShapeDescriptor.RectangleShape); backColor = Color.Empty; backColor2 = Color.Empty; borderColor = Color.Empty; } } SmoothingMode sm = g.SmoothingMode; g.SmoothingMode = SmoothingMode.None; if (!backColor.IsEmpty) DisplayHelp.FillRectangle(g, r, backColor, backColor2); if (!borderColor.IsEmpty) DisplayHelp.DrawRectangle(g, borderColor, r); if (this.IsDayLabel) { borderColor = p.Colors.BarDockedBorder; if (colors != null && !colors.DaysDividerBorderColors.IsEmpty) borderColor = colors.DaysDividerBorderColors; if (!borderColor.IsEmpty) DisplayHelp.DrawLine(g, r.X, r.Bottom - 1, r.Right, r.Bottom - 1, borderColor, 1); } g.SmoothingMode = sm; } protected Office2007ButtonItemStateColorTable GetOffice2007StateColorTable(ItemPaintArgs p) { if (BarFunctions.IsOffice2007Style(EffectiveStyle) && !this.FlatOffice2007Style) { if (p.Renderer is Office2007Renderer) { Office2007ColorTable ct = ((Office2007Renderer)p.Renderer).ColorTable; Office2007ButtonItemColorTable buttonColorTable = ct.ButtonItemColors[Enum.GetName(typeof(eButtonColor), eButtonColor.Orange)]; if (!this.Enabled) return buttonColorTable.Disabled; else if (this.IsMouseDown && _TrackMouse) return buttonColorTable.Pressed; else if (this.IsMouseOver && _TrackMouse) return buttonColorTable.MouseOver; else if (this.IsSelected) return buttonColorTable.Checked; } } return null; } internal static bool IsWeekend(DateTime d) { return d.DayOfWeek == DayOfWeek.Saturday || d.DayOfWeek == DayOfWeek.Sunday; } internal void PaintText(ItemPaintArgs p, Font textFont, Color textColor, eLabelPartAlignment textAlign) { Graphics g = p.Graphics; string text = this.Text; if (_Date != DateTime.MinValue) text = _Date.Day.ToString(); bool isBold = _IsBold; if (textColor.IsEmpty) { if (!_TextColor.IsEmpty) textColor = _TextColor; else if (!this.Enabled) { textColor = p.Colors.ItemDisabledText; } else { textColor = _IsTrailing ? p.Colors.ItemDisabledText : p.Colors.ItemText; SingleMonthCalendar month = this.Parent as SingleMonthCalendar; MonthCalendarColors colors = null; if (month != null) colors = month.GetColors(); if (colors != null) { if (_Date != DateTime.MinValue) { if (_IsSelected && colors.Selection.IsCustomized) { if (!colors.Selection.TextColor.IsEmpty) textColor = colors.Selection.TextColor; if (colors.Selection.IsBold) isBold = colors.Selection.IsBold; } else { if (_IsTrailing) { if (!colors.TrailingDay.TextColor.IsEmpty) textColor = colors.TrailingDay.TextColor; if (colors.TrailingDay.IsBold) isBold = colors.TrailingDay.IsBold; } else if (colors.Day.IsCustomized) { if (!colors.Day.TextColor.IsEmpty) textColor = colors.Day.TextColor; if (colors.Day.IsBold) isBold = colors.Day.IsBold; } if (IsWeekend(_Date)) { if (_IsTrailing) { if (!colors.TrailingWeekend.TextColor.IsEmpty) textColor = colors.TrailingWeekend.TextColor; if (colors.TrailingWeekend.IsBold) isBold = colors.TrailingWeekend.IsBold; } else { if (!colors.Weekend.TextColor.IsEmpty) textColor = colors.Weekend.TextColor; if (colors.Weekend.IsBold) isBold = colors.Weekend.IsBold; } } } } else if (IsWeekOfYear) { if (colors.WeekOfYear.IsCustomized) { if (!colors.WeekOfYear.TextColor.IsEmpty) textColor = colors.WeekOfYear.TextColor; if (colors.WeekOfYear.IsBold) isBold = colors.WeekOfYear.IsBold; } } else if (IsDayLabel) { if (!colors.DayLabel.TextColor.IsEmpty) textColor = colors.DayLabel.TextColor; if (colors.DayLabel.IsBold) isBold = colors.DayLabel.IsBold; } } } } if (_IsMouseOver && TrackMouse && StyleManager.IsMetro(EffectiveStyle)) { textColor = p.Colors.ItemHotText; } bool disposeFont = false; if (textFont == null) { if (isBold) { textFont = new Font(p.Font, FontStyle.Bold); disposeFont = true; } else textFont = p.Font; } if (_Date != DateTime.MinValue) { Size size = TextDrawing.MeasureString(g, "32", textFont); Rectangle r = GetAlignedRect(this.DisplayRectangle, size, textAlign); eTextFormat format = eTextFormat.Right | eTextFormat.VerticalCenter; TextDrawing.DrawString(g, text, textFont, textColor, r, format); } else { eTextFormat format = eTextFormat.HorizontalCenter | eTextFormat.VerticalCenter; if (textAlign == eLabelPartAlignment.BottomCenter) format = eTextFormat.Bottom | eTextFormat.HorizontalCenter; else if (textAlign == eLabelPartAlignment.BottomLeft) format = eTextFormat.Left | eTextFormat.Bottom; else if (textAlign == eLabelPartAlignment.BottomRight) format = eTextFormat.Bottom | eTextFormat.Right; else if (textAlign == eLabelPartAlignment.MiddleLeft) format = eTextFormat.Left | eTextFormat.VerticalCenter; else if (textAlign == eLabelPartAlignment.MiddleRight) format = eTextFormat.Right | eTextFormat.VerticalCenter; else if (textAlign == eLabelPartAlignment.TopCenter) format = eTextFormat.Top | eTextFormat.VerticalCenter; else if (textAlign == eLabelPartAlignment.TopLeft) format = eTextFormat.Top | eTextFormat.Left; else if (textAlign == eLabelPartAlignment.TopRight) format = eTextFormat.Top | eTextFormat.Right; TextDrawing.DrawString(g, text, textFont, textColor, this.Bounds, format); } if (disposeFont) textFont.Dispose(); } public override void RecalcSize() { this.Bounds = new Rectangle(this.Bounds.Location, SingleMonthCalendar._DefaultDaySize); base.RecalcSize(); } /// /// Returns copy of the item. /// public override BaseItem Copy() { DayLabel objCopy = new DayLabel(); this.CopyToItem(objCopy); return objCopy; } /// /// Copies the DayLabel specific properties to new instance of the item. /// /// New ButtonItem instance. protected override void CopyToItem(BaseItem c) { DayLabel copy = c as DayLabel; base.CopyToItem(copy); } private DateTime _Date = DateTime.MinValue; /// /// Gets or sets the date represented by this label. DateTime.MinValue indicates that label is either used as textual day representation /// or the week number as specified by the IsWeekOfYear property. /// [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public DateTime Date { get { return _Date; } set { if (_Date != value) { _Date = value; } } } private bool _IsDayLabel = false; /// /// Gets or sets whether this label is used as the label that displays the day name. /// [Browsable(false), DefaultValue(false)] public bool IsDayLabel { get { return _IsDayLabel; } set { if (_IsDayLabel != value) { _IsDayLabel = value; this.Refresh(); } } } private bool _IsWeekOfYear = false; /// /// Gets or sets whether this label is used as the week of year label. /// [Browsable(false), DefaultValue(false)] public bool IsWeekOfYear { get { return _IsWeekOfYear; } set { if (_IsWeekOfYear != value) { _IsWeekOfYear = value; this.Refresh(); } } } private bool _IsTrailing = false; /// /// Gets whether the label for date represents the trailing date, i.e. date that is from next or previous month for the month displayed. /// [Browsable(false), DefaultValue(false)] public bool IsTrailing { get { return _IsTrailing; } set { if (_IsTrailing != value) { _IsTrailing = value; this.Refresh(); } } } private bool _IsMouseOver = false; /// /// Gets or sets whether mouse is over the item. /// [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public bool IsMouseOver { get { return _IsMouseOver; } set { _IsMouseOver = value; this.Refresh(); } } private bool _IsMouseDown = false; /// /// Gets or sets whether left-mouse button is pressed over the item. /// [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public bool IsMouseDown { get { return _IsMouseDown; } set { _IsMouseDown = value; this.Refresh(); } } /// /// Occurs when the mouse pointer enters the item. This is used by internal implementation only. /// public override void InternalMouseEnter() { this.IsMouseOver = true; base.InternalMouseEnter(); SingleMonthCalendar month = this.Parent as SingleMonthCalendar; if (month != null) month.OnLabelMouseEnter(this, new EventArgs()); } /// /// Occurs when the mouse pointer leaves the item. This is used by internal implementation only. /// public override void InternalMouseLeave() { this.IsMouseOver = false; base.InternalMouseLeave(); SingleMonthCalendar month = this.Parent as SingleMonthCalendar; if (month != null) month.OnLabelMouseLeave(this, new EventArgs()); } /// /// Occurs when the mouse pointer is over the item and a mouse button is pressed. This is used by internal implementation only. /// public override void InternalMouseDown(System.Windows.Forms.MouseEventArgs objArg) { if (objArg.Button == System.Windows.Forms.MouseButtons.Left) this.IsMouseDown = true; if (this.IsMouseDown && this.SubItems.Count > 0 && this.ShowSubItems && (_ImageRenderBounds.Contains(objArg.X, objArg.Y) || _ExpandOnMouseDown)) { this.Expanded = !this.Expanded; } base.InternalMouseDown(objArg); SingleMonthCalendar month = this.Parent as SingleMonthCalendar; if (month != null) month.OnLabelMouseDown(this, objArg); } /// /// Occurs when the mouse pointer is over the item and a mouse button is released. This is used by internal implementation only. /// public override void InternalMouseUp(System.Windows.Forms.MouseEventArgs objArg) { if (objArg.Button == System.Windows.Forms.MouseButtons.Left) this.IsMouseDown = false; base.InternalMouseUp(objArg); SingleMonthCalendar month = this.Parent as SingleMonthCalendar; if (month != null) month.OnLabelMouseUp(this, objArg); } protected override void OnClick() { SingleMonthCalendar month = this.Parent as SingleMonthCalendar; if (month != null) month.DayLabelClick(this); base.OnClick(); } public override void InternalMouseMove(System.Windows.Forms.MouseEventArgs objArg) { base.InternalMouseMove(objArg); SingleMonthCalendar month = this.Parent as SingleMonthCalendar; if (month != null) month.OnLabelMouseMove(this, objArg); } public override void InternalMouseHover() { base.InternalMouseHover(); SingleMonthCalendar month = this.Parent as SingleMonthCalendar; if (month != null) month.OnLabelMouseHover(this, new EventArgs()); } private void BackgroundStyleChanged(object sender, EventArgs e) { this.OnAppearanceChanged(); } /// /// Specifies the item background style. Default value is an empty style which means that container does not display any background. /// BeginGroup property set to true will override this style on some styles. /// [Browsable(true), DevCoBrowsable(true), Category("Style"), Description("Gets or sets container background style."), DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] public ElementStyle BackgroundStyle { get { return _BackgroundStyle; } } private bool _IsSelected = false; /// /// Gets or sets whether label appears as selected. /// [DefaultValue(false), Browsable(false)] public bool IsSelected { get { return _IsSelected; } set { if (_IsSelected != value) { _IsSelected = value; this.Refresh(); } } } private bool _TrackMouse = true; /// /// Gets or sets whether label provides visual indicator when mouse is over the label or pressed while over the label. Default value is true. /// [DefaultValue(true), Description("Indicates whether label provides visual indicator when mouse is over the label or pressed while over the label.")] public bool TrackMouse { get { return _TrackMouse; } set { if (_TrackMouse != value) { _TrackMouse = value; this.Refresh(); } } } private bool _Selectable = true; /// /// Gets or sets whether label is selectable. IsSelected property returns whether label is selected. Default value is true. /// [DefaultValue(true), Description("Indicates whether label is selectable.")] public bool Selectable { get { return _Selectable; } set { if (_Selectable != value) { _Selectable = value; this.Refresh(); } } } private Color _TextColor = Color.Empty; /// /// Gets or sets the label text color. Default value is an empty color. /// [Category("Colors"), Description("Indicates label text color.")] public Color TextColor { get { return _TextColor; } set { _TextColor = value; this.Refresh(); } } /// Gets whether property should be serialized. Provided for WinForms designer support. [EditorBrowsable(EditorBrowsableState.Never)] public bool ShouldSerializeTextColor() { return !TextColor.IsEmpty; } /// Resets property to its default value. Provided for WinForms designer support. [EditorBrowsable(EditorBrowsableState.Never)] public void ResetTextColor() { TextColor = Color.Empty; } private bool _IsBold = false; /// /// Gets or sets whether text is drawn using Bold font. Default value is false. /// [DefaultValue(false), Description("Indicates whether text is drawn using Bold font.")] public bool IsBold { get { return _IsBold; } set { if (_IsBold != value) { _IsBold = value; this.Refresh(); } } } //private Color _BorderColor = Color.Empty; ///// ///// Gets or sets the label border color. Default value is an empty color. ///// //[Category("Colors"), Description("Indicates label border color.")] //public Color BorderColor //{ // get { return _BorderColor; } // set // { // _BorderColor = value; // this.Refresh(); // } //} ///// Gets whether property should be serialized. Provided for WinForms designer support. //[EditorBrowsable(EditorBrowsableState.Never)] //public bool ShouldSerializeBorderColor() //{ // return !BorderColor.IsEmpty; //} ///// Resets property to its default value. Provided for WinForms designer support. //[EditorBrowsable(EditorBrowsableState.Never)] //public void ResetBorderColor() //{ // BorderColor = Color.Empty; //} //private Color _BackColor = Color.Empty; ///// ///// Gets or sets the label back color. ///// //[Category("Colors"), Description("Indicates label back color.")] //public Color BackColor //{ // get { return _BackColor; } // set // { // _BackColor = value; // this.Refresh(); // } //} ///// Gets whether property should be serialized. Provided for WinForms designer support. //[EditorBrowsable(EditorBrowsableState.Never)] //public bool ShouldSerializeBackColor() //{ // return !BackColor.IsEmpty; //} ///// Resets property to its default value. Provided for WinForms designer support. //[EditorBrowsable(EditorBrowsableState.Never)] //public void ResetBackColor() //{ // BackColor = Color.Empty; //} private eLabelPartAlignment _TextAlign = eLabelPartAlignment.MiddleCenter; /// /// Gets or sets the text alignment. /// [DefaultValue(eLabelPartAlignment.MiddleCenter), Description("Indicates text alignment.")] public eLabelPartAlignment TextAlign { get { return _TextAlign; } set { if (_TextAlign != value) { _TextAlign = value; this.Refresh(); } } } private eLabelPartAlignment _ImageAlign = eLabelPartAlignment.MiddleRight; /// /// Gets or sets the image alignment. /// [DefaultValue(eLabelPartAlignment.MiddleRight), Description("Indicates image alignment.")] public eLabelPartAlignment ImageAlign { get { return _ImageAlign; } set { if (_ImageAlign != value) { _ImageAlign = value; this.Refresh(); } } } private Image _Image = null; /// /// Gets or sets the image displayed on the label. /// [DefaultValue(null), Description("Indicates image displayed on the label.")] public Image Image { get { return _Image; } set { if (_Image != value) { _Image = value; _ImageRenderBounds = Rectangle.Empty; this.Refresh(); } } } private bool _FlatOffice2007Style = false; /// /// Gets or sets whether flat Office 2007 style is used to render the item. Default value is false. /// [DefaultValue(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), Browsable(false)] public bool FlatOffice2007Style { get { return _FlatOffice2007Style; } set { _FlatOffice2007Style = value; this.Refresh(); } } private bool _IsToday = false; /// /// Gets or sets whether date represented by label is marked as todays date. /// [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public bool IsToday { get { return _IsToday; } set { if (_IsToday != value) { _IsToday = value; this.Refresh(); } } } private bool _ExpandOnMouseDown = false; /// /// Gets or sets whether popup is displayed when mouse is pressed anywhere over the item. Default value is false which indicates /// that popup is displayed only if image assigned to the item and mouse is pressed over image. /// [DefaultValue(false), Description("Indicates whether popup is displayed when mouse is pressed anywhere over the item.")] public bool ExpandOnMouseDown { get { return _ExpandOnMouseDown; } set { if (_ExpandOnMouseDown != value) { _ExpandOnMouseDown = value; } } } #endregion } /// /// Indicates the alignment of the DayLabel part like text or image. /// public enum eLabelPartAlignment { TopLeft, TopCenter, TopRight, MiddleLeft, MiddleCenter, MiddleRight, BottomLeft, BottomCenter, BottomRight } } #endif