#if FRAMEWORK20 using System; using System.Collections.Generic; using System.Text; using System.ComponentModel; using System.Globalization; namespace DevComponents.Editors.DateTimeAdv { /// /// Represents a label for the NumericHourInput control that shows whether time is AM or PM. /// public class HourPeriodLabel : VisualLabel { #region Private Variables #endregion #region Events #endregion #region Constructor #endregion #region Internal Implementation private NumericHourInput _HourInput; public NumericHourInput HourInput { get { return _HourInput; } set { if (_HourInput != null) _HourInput.ValueChanged -= new EventHandler(HourChanged); _HourInput = value; if (_HourInput != null) _HourInput.ValueChanged += new EventHandler(HourChanged); } } private void HourChanged(object sender, EventArgs e) { if (_HourInput == null) return; string s = ""; if (!_HourInput.IsEmpty) { if (_HourInput.Period == eHourPeriod.AM) { if (_AMText != null && _AMText.Length > 0) s = _AMText; else s = DateTimeInput.GetActiveCulture().DateTimeFormat.AMDesignator; } else { if (_PMText != null && _PMText.Length > 0) s = _PMText; else s = DateTimeInput.GetActiveCulture().DateTimeFormat.PMDesignator; } if (_UseSingleLetterLabel && s.Length > 0) s = s[0].ToString(); } this.Text = s; } private string _AMText = ""; /// /// Gets or sets custom AM text used. /// [DefaultValue("")] public string AMText { get { return _AMText; } set { _AMText = value; InvalidateArrange(); } } private string _PMText = ""; /// /// Gets or sets custom PM text used. /// [DefaultValue("")] public string PMText { get { return _PMText; } set { _PMText = value; InvalidateArrange(); } } private bool _UseSingleLetterLabel = false; public bool UseSingleLetterLabel { get { return _UseSingleLetterLabel; } set { if (_UseSingleLetterLabel != value) { _UseSingleLetterLabel = value; this.InvalidateArrange(); } } } #endregion } } #endif