1568 lines
		
	
	
		
			66 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			1568 lines
		
	
	
		
			66 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Text;
 | 
						|
using System.Drawing;
 | 
						|
using System.ComponentModel;
 | 
						|
using DevComponents.DotNetBar;
 | 
						|
 | 
						|
namespace DevComponents.Editors.DateTimeAdv
 | 
						|
{
 | 
						|
    /// <summary>
 | 
						|
    /// Represents the Time selector item.
 | 
						|
    /// </summary>
 | 
						|
    public class TimeSelectorItem : BaseItem
 | 
						|
    {
 | 
						|
        #region Constructor
 | 
						|
        private Command _HourCommand = null;
 | 
						|
        private Command _MinuteCommand = null;
 | 
						|
        private Command _MinuteChangeCommand = null;
 | 
						|
        private Command _ClearCommand = null;
 | 
						|
        private Command _AmPmCommand = null;
 | 
						|
        private Command _OkCommand = null;
 | 
						|
        private Font _DualButtonFont = null;
 | 
						|
        private ItemContainer _InnerContainer = null;
 | 
						|
        private LabelItem _AmPmLabel = null;
 | 
						|
        private LabelItem _HourLabel = null, _MinuteLabel = null;
 | 
						|
        /// <summary>
 | 
						|
        /// Initializes a new instance of the TimeSelectionItem class.
 | 
						|
        /// </summary>
 | 
						|
        public TimeSelectorItem()
 | 
						|
        {
 | 
						|
            m_IsContainer = true;
 | 
						|
            this.AutoCollapseOnClick = false;
 | 
						|
 | 
						|
            _InnerContainer = new ItemContainer();
 | 
						|
            _InnerContainer.ItemSpacing = 3;
 | 
						|
            _InnerContainer.LayoutOrientation = eOrientation.Vertical;
 | 
						|
            _InnerContainer.AutoCollapseOnClick = false;
 | 
						|
            this.SubItems.Add(_InnerContainer);
 | 
						|
 | 
						|
            _HourCommand = new Command();
 | 
						|
            _HourCommand.Executed += new EventHandler(HourCommandExecuted);
 | 
						|
            _MinuteCommand = new Command();
 | 
						|
            _MinuteCommand.Executed += new EventHandler(MinuteCommandExecuted);
 | 
						|
            _MinuteChangeCommand = new Command();
 | 
						|
            _MinuteChangeCommand.Executed += new EventHandler(MinuteChangeCommandExecuted);
 | 
						|
            _ClearCommand = new Command();
 | 
						|
            _ClearCommand.Executed += new EventHandler(ClearCommandExecuted);
 | 
						|
            _AmPmCommand = new Command();
 | 
						|
            _AmPmCommand.Executed += new EventHandler(AmPmCommandExecuted);
 | 
						|
            _OkCommand = new Command();
 | 
						|
            _OkCommand.Executed += new EventHandler(OkCommandExecuted);
 | 
						|
 | 
						|
            RecreateItems();
 | 
						|
        }
 | 
						|
 | 
						|
        protected override void Dispose(bool disposing)
 | 
						|
        {
 | 
						|
            if (_HourCommand != null)
 | 
						|
            {
 | 
						|
                _HourCommand.Dispose();
 | 
						|
                _HourCommand = null;
 | 
						|
            }
 | 
						|
            if (_MinuteCommand != null)
 | 
						|
            {
 | 
						|
                _MinuteCommand.Dispose();
 | 
						|
                _MinuteCommand = null;
 | 
						|
            }
 | 
						|
            if (_MinuteChangeCommand != null)
 | 
						|
            {
 | 
						|
                _MinuteChangeCommand.Dispose();
 | 
						|
                _MinuteChangeCommand = null;
 | 
						|
            }
 | 
						|
            if (_ClearCommand != null)
 | 
						|
            {
 | 
						|
                _ClearCommand.Dispose();
 | 
						|
                _ClearCommand = null;
 | 
						|
            }
 | 
						|
            if (_AmPmCommand != null)
 | 
						|
            {
 | 
						|
                _AmPmCommand.Dispose();
 | 
						|
                _AmPmCommand = null;
 | 
						|
            }
 | 
						|
            if (_OkCommand != null)
 | 
						|
            {
 | 
						|
                _OkCommand.Dispose();
 | 
						|
                _OkCommand = null;
 | 
						|
            }
 | 
						|
            if (_DualButtonFont != null)
 | 
						|
            {
 | 
						|
                _DualButtonFont.Dispose();
 | 
						|
                _DualButtonFont = null;
 | 
						|
            }
 | 
						|
            base.Dispose(disposing);
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Events
 | 
						|
        /// <summary>
 | 
						|
        /// Occurs after SelectedTime changes.
 | 
						|
        /// </summary>
 | 
						|
        [Description("Occurs after SelectedTime changes.")]
 | 
						|
        public event EventHandler SelectedTimeChanged;
 | 
						|
        /// <summary>
 | 
						|
        /// Raises SelectedTimeChanged event.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="e">Provides event arguments.</param>
 | 
						|
        protected virtual void OnSelectedTimeChanged(EventArgs e)
 | 
						|
        {
 | 
						|
            EventHandler handler = SelectedTimeChanged;
 | 
						|
            if (handler != null)
 | 
						|
                handler(this, e);
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Occurs when OK button is clicked.
 | 
						|
        /// </summary>
 | 
						|
        [Description("Occurs when OK button is clicked.")]
 | 
						|
        public event EventHandler OkClick;
 | 
						|
        /// <summary>
 | 
						|
        /// Raises OkClick event.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="e">Provides event arguments.</param>
 | 
						|
        protected virtual void OnOkClick(EventArgs e)
 | 
						|
        {
 | 
						|
            EventHandler handler = OkClick;
 | 
						|
            if (handler != null)
 | 
						|
                handler(this, e);
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Implementation
 | 
						|
        internal void DropDownClosed()
 | 
						|
        {
 | 
						|
        }
 | 
						|
 | 
						|
        public override void RecalcSize()
 | 
						|
        {
 | 
						|
            _InnerContainer.SetDisplayRectangle(new Rectangle(m_Rect.X, m_Rect.Y, 300, 300));
 | 
						|
 | 
						|
            if (_SelectorType == eTimeSelectorType.MonthCalendarStyle) // Adjust button size based on selected font
 | 
						|
            {
 | 
						|
            }
 | 
						|
 | 
						|
            _InnerContainer.Displayed = true;
 | 
						|
            _InnerContainer.RecalcSize();
 | 
						|
            m_Rect.Width = _InnerContainer.WidthInternal;
 | 
						|
            m_Rect.Height = _InnerContainer.HeightInternal;
 | 
						|
 | 
						|
            base.RecalcSize();
 | 
						|
        }
 | 
						|
 | 
						|
        public override void Paint(ItemPaintArgs p)
 | 
						|
        {
 | 
						|
            _InnerContainer.Paint(p);
 | 
						|
        }
 | 
						|
 | 
						|
        public override BaseItem Copy()
 | 
						|
        {
 | 
						|
            throw new Exception("The method or operation is not implemented.");
 | 
						|
        }
 | 
						|
 | 
						|
        private void OkCommandExecuted(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            OnOkClick(EventArgs.Empty);
 | 
						|
        }
 | 
						|
        private void AmPmCommandExecuted(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            bool isAm = false;
 | 
						|
 | 
						|
            if (_SelectorType == eTimeSelectorType.TouchStyle)
 | 
						|
            {
 | 
						|
                if (sender == _ButtonAm)
 | 
						|
                {
 | 
						|
                    if (_ButtonPm != null)
 | 
						|
                        _ButtonPm.Checked = false;
 | 
						|
                    _ButtonAm.Checked = true;
 | 
						|
                    isAm = true;
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    if (_ButtonAm != null)
 | 
						|
                        _ButtonAm.Checked = false;
 | 
						|
                    _ButtonPm.Checked = true;
 | 
						|
                }
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                if (_SelectedTime != TimeSpan.Zero && _SelectedTime.Hours >= 12)
 | 
						|
                    isAm = true;
 | 
						|
            }
 | 
						|
 | 
						|
            if (isAm)
 | 
						|
            {
 | 
						|
                if (_SelectedTime != TimeSpan.Zero && _SelectedTime.Hours >= 12)
 | 
						|
                {
 | 
						|
                    int hour = _SelectedTime.Hours - 12;
 | 
						|
                    int min = _SelectedTime.Minutes;
 | 
						|
                    int sec = _SelectedTime.Seconds;
 | 
						|
                    if (hour == 0 && min == 0 && sec == 0) sec = 1;
 | 
						|
                    SelectedTime = new TimeSpan(hour, min, sec);
 | 
						|
                }
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                if (_SelectedTime != TimeSpan.Zero && _SelectedTime.Hours < 12)
 | 
						|
                    SelectedTime = new TimeSpan(_SelectedTime.Hours + 12, _SelectedTime.Minutes, _SelectedTime.Seconds);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        private void ClearCommandExecuted(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            SelectedTime = TimeSpan.Zero;
 | 
						|
        }
 | 
						|
        private void MinuteChangeCommandExecuted(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            if (_SelectedTime == TimeSpan.Zero) return;
 | 
						|
            int offset = (int)((ICommandSource)sender).CommandParameter;
 | 
						|
            if (offset<0 && (_SelectedTime.Hours > 0 || _SelectedTime.Minutes > 0) || offset>0)
 | 
						|
                SelectedTime = new TimeSpan(_SelectedTime.Hours, _SelectedTime.Minutes + offset, _SelectedTime.Seconds);
 | 
						|
        }
 | 
						|
        private void HourCommandExecuted(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            int hour = (int)((ICommandSource)sender).CommandParameter;
 | 
						|
            if (!IsZuluTime)
 | 
						|
            {
 | 
						|
                bool isAm = false;
 | 
						|
                if (_SelectorType == eTimeSelectorType.TouchStyle)
 | 
						|
                    isAm = _ButtonAm.Checked;
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    if (_SelectedTime != TimeSpan.Zero && _SelectedTime.Hours < 12)
 | 
						|
                        isAm = true;
 | 
						|
                }
 | 
						|
 | 
						|
                if (!isAm && hour < 12)
 | 
						|
                    hour += 12;
 | 
						|
                else if (isAm && hour == 12)
 | 
						|
                    hour = 0;
 | 
						|
            }
 | 
						|
            int minute = _SelectedTime == TimeSpan.Zero ? DateTimeInput.DateTimeDefaults.Minute : _SelectedTime.Minutes;
 | 
						|
            int second = _SelectedTime == TimeSpan.Zero ? DateTimeInput.DateTimeDefaults.Second : _SelectedTime.Seconds;
 | 
						|
            if (hour == 0 && minute == 0 && second == 0) second = 1;
 | 
						|
            SelectedTime = new TimeSpan(hour, minute, second);
 | 
						|
        }
 | 
						|
        void MinuteCommandExecuted(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            int minute = (int)((ICommandSource)sender).CommandParameter;
 | 
						|
            int hour = _SelectedTime == TimeSpan.Zero ? DateTimeInput.DateTimeDefaults.Hour : _SelectedTime.Hours;
 | 
						|
            int second = _SelectedTime == TimeSpan.Zero ? DateTimeInput.DateTimeDefaults.Second : _SelectedTime.Seconds;
 | 
						|
            if (hour == 0 && minute == 0 && second == 0) second = 1;
 | 
						|
            SelectedTime = new TimeSpan(hour, minute, second);
 | 
						|
        }
 | 
						|
 | 
						|
        private LabelItem _CurrentTimeLabel = null;
 | 
						|
        private ButtonItem _ButtonAm = null;
 | 
						|
        private ButtonItem _ButtonPm = null;
 | 
						|
        private void RecreateItems()
 | 
						|
        {
 | 
						|
            _AmPmLabel = null;
 | 
						|
            _HourLabel = null;
 | 
						|
            _MinuteLabel = null;
 | 
						|
            if (_InnerContainer.SubItems.Count > 0)
 | 
						|
            {
 | 
						|
                BaseItem[] list = new BaseItem[_InnerContainer.SubItems.Count];
 | 
						|
                _InnerContainer.SubItems.CopyTo(list, 0);
 | 
						|
                _InnerContainer.SubItems.Clear();
 | 
						|
                foreach (BaseItem item in list)
 | 
						|
                {
 | 
						|
                    item.Dispose();
 | 
						|
                }
 | 
						|
            }
 | 
						|
            if (_SelectorType == eTimeSelectorType.MonthCalendarStyle)
 | 
						|
                RecreateItemsMonthCalendarStyle();
 | 
						|
            else if (_SelectorType == eTimeSelectorType.TouchStyle)
 | 
						|
                RecreateItemsTouchStyle();
 | 
						|
            else
 | 
						|
                throw new NotImplementedException("Selector type '" + _SelectorType.ToString() + "' not implemented");
 | 
						|
 | 
						|
            UpdateSelectedTimeText();
 | 
						|
        }
 | 
						|
        private void RecreateItemsTouchStyle()
 | 
						|
        {
 | 
						|
            if (_InnerContainer.SubItems.Count > 0)
 | 
						|
            {
 | 
						|
                BaseItem[] list = new BaseItem[_InnerContainer.SubItems.Count];
 | 
						|
                _InnerContainer.SubItems.CopyTo(list, 0);
 | 
						|
                _InnerContainer.SubItems.Clear();
 | 
						|
                foreach (BaseItem item in list)
 | 
						|
                {
 | 
						|
                    item.Dispose();
 | 
						|
                }
 | 
						|
            }
 | 
						|
            _InnerContainer.ResizeItemsToFit = false;
 | 
						|
            _CurrentTimeLabel = new DevComponents.DotNetBar.LabelItem();
 | 
						|
            ItemContainer itemContainer1 = new DevComponents.DotNetBar.ItemContainer();
 | 
						|
            ItemContainer itemContainer2 = new DevComponents.DotNetBar.ItemContainer();
 | 
						|
            ItemContainer itemContainer6 = new DevComponents.DotNetBar.ItemContainer();
 | 
						|
            ButtonItem buttonMinuteUp = new DevComponents.DotNetBar.ButtonItem();
 | 
						|
            ButtonItem buttonMinuteDown = new DevComponents.DotNetBar.ButtonItem();
 | 
						|
            LabelItem labelSpacerTop = new DevComponents.DotNetBar.LabelItem();
 | 
						|
            ButtonItem buttonClearTime = new DevComponents.DotNetBar.ButtonItem();
 | 
						|
            ItemContainer itemContainer3 = new DevComponents.DotNetBar.ItemContainer();
 | 
						|
            ItemContainer itemContainer4 = new DevComponents.DotNetBar.ItemContainer();
 | 
						|
            LabelItem labelHour = new DevComponents.DotNetBar.LabelItem();
 | 
						|
            ItemContainer hourRow1 = new DevComponents.DotNetBar.ItemContainer();
 | 
						|
            ItemContainer hourRow2 = new DevComponents.DotNetBar.ItemContainer();
 | 
						|
            ItemContainer hourRow3 = new DevComponents.DotNetBar.ItemContainer();
 | 
						|
            ItemContainer hourRow4 = new DevComponents.DotNetBar.ItemContainer();
 | 
						|
            ItemContainer itemContainer5 = new DevComponents.DotNetBar.ItemContainer();
 | 
						|
            ItemContainer itemContainer10 = new DevComponents.DotNetBar.ItemContainer();
 | 
						|
            LabelItem labelMinute = new DevComponents.DotNetBar.LabelItem();
 | 
						|
            ItemContainer minuteRow1 = new DevComponents.DotNetBar.ItemContainer();
 | 
						|
            ItemContainer minuteRow2 = new DevComponents.DotNetBar.ItemContainer();
 | 
						|
            ItemContainer minuteRow3 = new DevComponents.DotNetBar.ItemContainer();
 | 
						|
            ItemContainer minuteRow4 = new DevComponents.DotNetBar.ItemContainer();
 | 
						|
            ItemContainer itemContainer15 = new DevComponents.DotNetBar.ItemContainer();
 | 
						|
            LabelItem labelSpacerAm = new DevComponents.DotNetBar.LabelItem();
 | 
						|
            _ButtonAm = new DevComponents.DotNetBar.ButtonItem();
 | 
						|
            _ButtonPm = new DevComponents.DotNetBar.ButtonItem();
 | 
						|
            LabelItem labelSpacerBottom = new DevComponents.DotNetBar.LabelItem();
 | 
						|
            ButtonItem buttonOk = new DevComponents.DotNetBar.ButtonItem();
 | 
						|
 | 
						|
            _InnerContainer.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
            itemContainer1,
 | 
						|
            itemContainer3,
 | 
						|
            itemContainer15});
 | 
						|
            _InnerContainer.ItemSpacing = 3;
 | 
						|
            _InnerContainer.LayoutOrientation = DevComponents.DotNetBar.eOrientation.Vertical;
 | 
						|
 | 
						|
            itemContainer1.ItemSpacing = 3;
 | 
						|
            itemContainer1.Name = "itemContainer1";
 | 
						|
            itemContainer1.AutoCollapseOnClick = false;
 | 
						|
            itemContainer1.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
            itemContainer2});
 | 
						|
 | 
						|
            itemContainer2.HorizontalItemAlignment = DevComponents.DotNetBar.eHorizontalItemsAlignment.Center;
 | 
						|
            itemContainer2.ItemSpacing = 4;
 | 
						|
            itemContainer2.Name = "itemContainer2";
 | 
						|
            itemContainer2.AutoCollapseOnClick = false;
 | 
						|
            itemContainer2.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
            _CurrentTimeLabel,
 | 
						|
            itemContainer6,
 | 
						|
            labelSpacerTop,
 | 
						|
            buttonClearTime});
 | 
						|
 | 
						|
            _CurrentTimeLabel.Font = new System.Drawing.Font("Segoe UI", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 | 
						|
            _CurrentTimeLabel.Name = "labelCurrentTime";
 | 
						|
            //_CurrentTimeLabel.Text = "1:00 AM";
 | 
						|
            _CurrentTimeLabel.TextAlignment = System.Drawing.StringAlignment.Far;
 | 
						|
            _CurrentTimeLabel.Width = 150;
 | 
						|
            _CurrentTimeLabel.AutoCollapseOnClick = false;
 | 
						|
 | 
						|
            itemContainer6.LayoutOrientation = DevComponents.DotNetBar.eOrientation.Vertical;
 | 
						|
            itemContainer6.Name = "itemContainer6";
 | 
						|
            itemContainer6.AutoCollapseOnClick = false;
 | 
						|
            itemContainer6.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
            buttonMinuteUp,
 | 
						|
            buttonMinuteDown});
 | 
						|
 | 
						|
            buttonMinuteUp.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.TextOnlyAlways;
 | 
						|
            buttonMinuteUp.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
 | 
						|
            buttonMinuteUp.FixedSize = new System.Drawing.Size(24, 14);
 | 
						|
            buttonMinuteUp.Name = "buttonMinuteUp";
 | 
						|
            buttonMinuteUp.Text = "<div width=\"20\" align=\"center\"><expand direction=\"top\"/></div>";
 | 
						|
            buttonMinuteUp.Command = _MinuteChangeCommand;
 | 
						|
            buttonMinuteUp.CommandParameter = 1;
 | 
						|
            buttonMinuteUp.ClickAutoRepeat = true;
 | 
						|
            buttonMinuteUp.AutoCollapseOnClick = false;
 | 
						|
 | 
						|
            buttonMinuteDown.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.TextOnlyAlways;
 | 
						|
            buttonMinuteDown.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
 | 
						|
            buttonMinuteDown.FixedSize = new System.Drawing.Size(24, 14);
 | 
						|
            buttonMinuteDown.Name = "buttonMinuteDown";
 | 
						|
            buttonMinuteDown.Text = "<div width=\"20\" align=\"center\"><expand direction=\"bottom\"/></div>";
 | 
						|
            buttonMinuteDown.Command = _MinuteChangeCommand;
 | 
						|
            buttonMinuteDown.CommandParameter = -1;
 | 
						|
            buttonMinuteDown.ClickAutoRepeat = true;
 | 
						|
            buttonMinuteDown.AutoCollapseOnClick = false;
 | 
						|
 | 
						|
            labelSpacerTop.Name = "labelSpacerTop";
 | 
						|
            labelSpacerTop.Width = 4;
 | 
						|
            labelSpacerTop.AutoCollapseOnClick = false;
 | 
						|
 | 
						|
            buttonClearTime.Name = "buttonClearTime";
 | 
						|
            //buttonClearTime.Text = "<symbol/>";
 | 
						|
            buttonClearTime.Symbol = "\ue5c9";
 | 
						|
            buttonClearTime.SymbolSet = eSymbolSet.Material;
 | 
						|
            buttonClearTime.Command = _ClearCommand;
 | 
						|
            buttonClearTime.Visible = _ClearButtonVisible;
 | 
						|
            buttonClearTime.AutoCollapseOnClick = false;
 | 
						|
 | 
						|
            itemContainer3.ItemSpacing = 8;
 | 
						|
            itemContainer3.Name = "itemContainer3";
 | 
						|
            itemContainer3.AutoCollapseOnClick = false;
 | 
						|
            itemContainer3.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
            itemContainer4,
 | 
						|
            itemContainer5});
 | 
						|
 | 
						|
            itemContainer4.ItemSpacing = 3;
 | 
						|
            itemContainer4.LayoutOrientation = DevComponents.DotNetBar.eOrientation.Vertical;
 | 
						|
            itemContainer4.MultiLine = false;
 | 
						|
            itemContainer4.Name = "itemContainer4";
 | 
						|
            itemContainer4.AutoCollapseOnClick = false;
 | 
						|
            itemContainer4.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
            labelHour,
 | 
						|
            hourRow1,
 | 
						|
            hourRow2,
 | 
						|
            hourRow3,
 | 
						|
            hourRow4});
 | 
						|
 | 
						|
            labelHour.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 | 
						|
            labelHour.Name = "labelHour";
 | 
						|
            labelHour.Text = GetHourText();
 | 
						|
            labelHour.TextAlignment = System.Drawing.StringAlignment.Center;
 | 
						|
            labelHour.AutoCollapseOnClick = false;
 | 
						|
            _HourLabel = labelHour;
 | 
						|
 | 
						|
            hourRow1.ItemSpacing = 3;
 | 
						|
            hourRow1.Name = "hourRow1";
 | 
						|
            hourRow1.AutoCollapseOnClick = false;
 | 
						|
            hourRow1.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
                CreateHourItem(1, eTimeSelectorType.TouchStyle),
 | 
						|
                CreateHourItem(2, eTimeSelectorType.TouchStyle),
 | 
						|
                CreateHourItem(3, eTimeSelectorType.TouchStyle)});
 | 
						|
 | 
						|
            hourRow2.ItemSpacing = 3;
 | 
						|
            hourRow2.Name = "hourRow2";
 | 
						|
            hourRow2.AutoCollapseOnClick = false;
 | 
						|
            hourRow2.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
            CreateHourItem(4, eTimeSelectorType.TouchStyle),
 | 
						|
            CreateHourItem(5, eTimeSelectorType.TouchStyle),
 | 
						|
            CreateHourItem(6, eTimeSelectorType.TouchStyle)});
 | 
						|
 | 
						|
            hourRow3.ItemSpacing = 3;
 | 
						|
            hourRow3.Name = "hourRow3";
 | 
						|
            hourRow3.AutoCollapseOnClick = false;
 | 
						|
            hourRow3.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
            CreateHourItem(7, eTimeSelectorType.TouchStyle),
 | 
						|
            CreateHourItem(8, eTimeSelectorType.TouchStyle),
 | 
						|
            CreateHourItem(9, eTimeSelectorType.TouchStyle)});
 | 
						|
 | 
						|
            hourRow4.ItemSpacing = 3;
 | 
						|
            hourRow4.Name = "hourRow4";
 | 
						|
            hourRow4.AutoCollapseOnClick = false;
 | 
						|
            hourRow4.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
            CreateHourItem(10, eTimeSelectorType.TouchStyle),
 | 
						|
            CreateHourItem(11, eTimeSelectorType.TouchStyle),
 | 
						|
            CreateHourItem(12, eTimeSelectorType.TouchStyle)});
 | 
						|
 | 
						|
            itemContainer5.LayoutOrientation = DevComponents.DotNetBar.eOrientation.Vertical;
 | 
						|
            itemContainer5.Name = "itemContainer5";
 | 
						|
            itemContainer5.AutoCollapseOnClick = false;
 | 
						|
            itemContainer5.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
            itemContainer10});
 | 
						|
 | 
						|
            itemContainer10.ItemSpacing = 3;
 | 
						|
            itemContainer10.LayoutOrientation = DevComponents.DotNetBar.eOrientation.Vertical;
 | 
						|
            itemContainer10.MultiLine = false;
 | 
						|
            itemContainer10.Name = "itemContainer10";
 | 
						|
            itemContainer10.AutoCollapseOnClick = false;
 | 
						|
            itemContainer10.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
            labelMinute,
 | 
						|
            minuteRow1,
 | 
						|
            minuteRow2,
 | 
						|
            minuteRow3,
 | 
						|
            minuteRow4});
 | 
						|
 | 
						|
            labelMinute.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 | 
						|
            labelMinute.Name = "labelMinute";
 | 
						|
            labelMinute.Text = GetMinuteText();
 | 
						|
            labelMinute.TextAlignment = System.Drawing.StringAlignment.Center;
 | 
						|
            labelMinute.AutoCollapseOnClick = false;
 | 
						|
            _MinuteLabel = labelMinute;
 | 
						|
 | 
						|
            minuteRow1.ItemSpacing = 3;
 | 
						|
            minuteRow1.Name = "minuteRow1";
 | 
						|
            minuteRow1.AutoCollapseOnClick = false;
 | 
						|
            minuteRow1.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
            CreateMinuteItem(0, eTimeSelectorType.TouchStyle),
 | 
						|
            CreateMinuteItem(5, eTimeSelectorType.TouchStyle),
 | 
						|
            CreateMinuteItem(10, eTimeSelectorType.TouchStyle)});
 | 
						|
 | 
						|
            minuteRow2.ItemSpacing = 3;
 | 
						|
            minuteRow2.Name = "minuteRow2";
 | 
						|
            minuteRow2.AutoCollapseOnClick = false;
 | 
						|
            minuteRow2.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
            CreateMinuteItem(15, eTimeSelectorType.TouchStyle),
 | 
						|
            CreateMinuteItem(20, eTimeSelectorType.TouchStyle),
 | 
						|
            CreateMinuteItem(25, eTimeSelectorType.TouchStyle)});
 | 
						|
 | 
						|
            minuteRow3.ItemSpacing = 3;
 | 
						|
            minuteRow3.Name = "minuteRow3";
 | 
						|
            minuteRow3.AutoCollapseOnClick = false;
 | 
						|
            minuteRow3.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
            CreateMinuteItem(30, eTimeSelectorType.TouchStyle),
 | 
						|
            CreateMinuteItem(35, eTimeSelectorType.TouchStyle),
 | 
						|
            CreateMinuteItem(40, eTimeSelectorType.TouchStyle)});
 | 
						|
 | 
						|
            minuteRow4.ItemSpacing = 3;
 | 
						|
            minuteRow4.Name = "minuteRow4";
 | 
						|
            minuteRow4.AutoCollapseOnClick = false;
 | 
						|
            minuteRow4.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
            CreateMinuteItem(45, eTimeSelectorType.TouchStyle),
 | 
						|
            CreateMinuteItem(50, eTimeSelectorType.TouchStyle),
 | 
						|
            CreateMinuteItem(55, eTimeSelectorType.TouchStyle)});
 | 
						|
 | 
						|
            itemContainer15.Name = "itemContainer15";
 | 
						|
            itemContainer15.AutoCollapseOnClick = false;
 | 
						|
            itemContainer15.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
            labelSpacerAm,
 | 
						|
            _ButtonAm,
 | 
						|
            _ButtonPm,
 | 
						|
            labelSpacerBottom,
 | 
						|
            buttonOk});
 | 
						|
 | 
						|
            labelSpacerAm.Name = "labelSpacerAm";
 | 
						|
            labelSpacerAm.Width = IsZuluTime ? 84 : 36;
 | 
						|
            labelSpacerAm.AutoCollapseOnClick = false;
 | 
						|
 | 
						|
            _ButtonAm.Checked = true;
 | 
						|
            _ButtonAm.Name = "buttonAm";
 | 
						|
            _ButtonAm.Text = "AM";
 | 
						|
            _ButtonAm.Visible = !IsZuluTime;
 | 
						|
            _ButtonAm.Command = _AmPmCommand;
 | 
						|
            _ButtonAm.CommandParameter = "AM";
 | 
						|
            _ButtonAm.AutoCollapseOnClick = false;
 | 
						|
            _ButtonPm.Name = "buttonPm";
 | 
						|
            _ButtonPm.Text = "PM";
 | 
						|
            _ButtonPm.Visible = !IsZuluTime;
 | 
						|
            _ButtonPm.Command = _AmPmCommand;
 | 
						|
            _ButtonPm.CommandParameter = "PM";
 | 
						|
            _ButtonPm.AutoCollapseOnClick = false;
 | 
						|
 | 
						|
            if (_SelectedTime != TimeSpan.Zero)
 | 
						|
            {
 | 
						|
                _ButtonAm.Checked = _SelectedTime.Hours <= 12;
 | 
						|
                _ButtonPm.Checked = _SelectedTime.Hours > 12;
 | 
						|
            }
 | 
						|
 | 
						|
            labelSpacerBottom.Name = "labelSpacerBottom";
 | 
						|
            labelSpacerBottom.Width = 124;
 | 
						|
            labelSpacerBottom.AutoCollapseOnClick = false;
 | 
						|
 | 
						|
            buttonOk.ColorTable = DevComponents.DotNetBar.eButtonColor.BlueWithBackground;
 | 
						|
            buttonOk.Name = "buttonOk";
 | 
						|
            buttonOk.Text = "<div align=\"center\" width=\"32\"><b>" + GetOkText() + "</b></div>";
 | 
						|
            buttonOk.Visible = _OkButtonVisible;
 | 
						|
            buttonOk.Command = _OkCommand;
 | 
						|
 | 
						|
        }
 | 
						|
 | 
						|
        private void RecreateItemsMonthCalendarStyle()
 | 
						|
        {
 | 
						|
            Size fixedButtonSize = new Size(13, 18);
 | 
						|
            bool isZuluTime = IsZuluTime;
 | 
						|
 | 
						|
            ItemContainer itemContainer2 = new ItemContainer();
 | 
						|
            ItemContainer itemContainer3 = new ItemContainer();
 | 
						|
 | 
						|
            // 
 | 
						|
            // buttonMinuteDown
 | 
						|
            // 
 | 
						|
            ButtonItem buttonMinuteDown = new ButtonItem();
 | 
						|
            buttonMinuteDown.FixedSize = fixedButtonSize;
 | 
						|
            buttonMinuteDown.Name = "buttonMinuteDown";
 | 
						|
            buttonMinuteDown.Text = "<expand direction=\"left\"/>";
 | 
						|
            buttonMinuteDown.AutoCollapseOnClick = false;
 | 
						|
            buttonMinuteDown._FixedSizeCenterText = true;
 | 
						|
            buttonMinuteDown.ClickAutoRepeat = true;
 | 
						|
            buttonMinuteDown.Command = _MinuteChangeCommand;
 | 
						|
            buttonMinuteDown.CommandParameter = -1;
 | 
						|
            // 
 | 
						|
            // _CurrentTimeLabel
 | 
						|
            // 
 | 
						|
            _CurrentTimeLabel = new LabelItem();
 | 
						|
            _CurrentTimeLabel.Name = "_CurrentTimeLabel";
 | 
						|
            _CurrentTimeLabel.Text = "03:45";
 | 
						|
            _CurrentTimeLabel.TextAlignment = System.Drawing.StringAlignment.Center;
 | 
						|
            _CurrentTimeLabel.Width = 64;
 | 
						|
            _CurrentTimeLabel.AutoCollapseOnClick = false;
 | 
						|
            // 
 | 
						|
            // buttonMinuteUp
 | 
						|
            // 
 | 
						|
            ButtonItem buttonMinuteUp = new ButtonItem();
 | 
						|
            buttonMinuteUp.FixedSize = fixedButtonSize;
 | 
						|
            buttonMinuteUp.Name = "buttonMinuteUp";
 | 
						|
            buttonMinuteUp.Text = "<expand direction=\"right\"/>";
 | 
						|
            buttonMinuteUp.AutoCollapseOnClick = false;
 | 
						|
            buttonMinuteUp._FixedSizeCenterText = true;
 | 
						|
            buttonMinuteUp.ClickAutoRepeat = true;
 | 
						|
            buttonMinuteUp.Command = _MinuteChangeCommand;
 | 
						|
            buttonMinuteUp.CommandParameter = 1;
 | 
						|
            // 
 | 
						|
            // labelSpacerLine1
 | 
						|
            // 
 | 
						|
            LabelItem labelSpacerLine1 = new LabelItem();
 | 
						|
            labelSpacerLine1.Name = "labelSpacerLine1";
 | 
						|
            labelSpacerLine1.Width = 10;
 | 
						|
            labelSpacerLine1.AutoCollapseOnClick = false;
 | 
						|
            // 
 | 
						|
            // _ButtonAm
 | 
						|
            // 
 | 
						|
            ButtonItem _ButtonAm = new ButtonItem();
 | 
						|
            _ButtonAm.FixedSize = fixedButtonSize;
 | 
						|
            _ButtonAm.Name = "_ButtonAm";
 | 
						|
            _ButtonAm.Text = "<expand direction=\"left\"/>";
 | 
						|
            _ButtonAm.AutoCollapseOnClick = false;
 | 
						|
            _ButtonAm._FixedSizeCenterText = true;
 | 
						|
            _ButtonAm.Visible = !isZuluTime;
 | 
						|
            _ButtonAm.Command = _AmPmCommand;
 | 
						|
            _ButtonAm.CommandParameter = "AM";
 | 
						|
            // 
 | 
						|
            // labelItem2
 | 
						|
            // 
 | 
						|
            _AmPmLabel = new LabelItem();
 | 
						|
            _AmPmLabel.Name = "labelItem2";
 | 
						|
            _AmPmLabel.Text = "PM";
 | 
						|
            _AmPmLabel.TextAlignment = System.Drawing.StringAlignment.Center;
 | 
						|
            _AmPmLabel.Width = 28;
 | 
						|
            _AmPmLabel.AutoCollapseOnClick = false;
 | 
						|
            _AmPmLabel.Visible = !isZuluTime;
 | 
						|
            // 
 | 
						|
            // _ButtonPm
 | 
						|
            // 
 | 
						|
            _ButtonPm = new ButtonItem();
 | 
						|
            _ButtonPm.FixedSize = fixedButtonSize;
 | 
						|
            _ButtonPm.Name = "_ButtonPm";
 | 
						|
            _ButtonPm.Text = "<expand direction=\"right\"/>";
 | 
						|
            _ButtonPm.AutoCollapseOnClick = false;
 | 
						|
            _ButtonPm._FixedSizeCenterText = true;
 | 
						|
            _ButtonPm.Command = _AmPmCommand;
 | 
						|
            _ButtonPm.CommandParameter = "PM";
 | 
						|
            _ButtonPm.Visible = !isZuluTime;
 | 
						|
 | 
						|
            itemContainer2.AutoCollapseOnClick = false;
 | 
						|
            //itemContainer2.BackgroundStyle.PaddingTop = 2;
 | 
						|
            //itemContainer2.BackgroundStyle.PaddingBottom = 1;
 | 
						|
            itemContainer2.BackgroundStyle.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground2;
 | 
						|
            itemContainer2.BackgroundStyle.BackColorGradientAngle = 90;
 | 
						|
            itemContainer2.BackgroundStyle.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
 | 
						|
            itemContainer2.BackgroundStyle.Class = "";
 | 
						|
            itemContainer2.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
						|
            itemContainer2.Name = "itemContainer2";
 | 
						|
            itemContainer2.MinimumSize = new Size(0, fixedButtonSize.Height + 3);
 | 
						|
            itemContainer2.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
            buttonMinuteDown,
 | 
						|
            _CurrentTimeLabel,
 | 
						|
            buttonMinuteUp,
 | 
						|
            labelSpacerLine1,
 | 
						|
            _ButtonAm,
 | 
						|
            _AmPmLabel,
 | 
						|
            _ButtonPm});
 | 
						|
 | 
						|
            // 
 | 
						|
            // labelHour
 | 
						|
            // 
 | 
						|
            LabelItem labelHour = new LabelItem();
 | 
						|
            labelHour.Name = "labelHour";
 | 
						|
            labelHour.Text = GetHourText();
 | 
						|
            labelHour.ForeColorColorSchemePart = eColorSchemePart.ItemText;
 | 
						|
            labelHour.TextAlignment = System.Drawing.StringAlignment.Center;
 | 
						|
            labelHour.Width = isZuluTime ? (_HourMinuteButtonSize.Width * 4 + 3) : (_HourMinuteButtonSize.Width * 3 + 2);
 | 
						|
            labelHour.Height = _HourMinuteButtonSize.Height - 3;
 | 
						|
            labelHour.AutoCollapseOnClick = false;
 | 
						|
            labelHour.PaddingBottom = 1;
 | 
						|
            _HourLabel = labelHour;
 | 
						|
            // 
 | 
						|
            // labelMinute
 | 
						|
            // 
 | 
						|
            LabelItem labelMinute = new LabelItem();
 | 
						|
            labelMinute.Name = "labelMinute";
 | 
						|
            labelMinute.Text = GetMinuteText();
 | 
						|
            labelMinute.ForeColorColorSchemePart = eColorSchemePart.ItemText;
 | 
						|
            labelMinute.TextAlignment = System.Drawing.StringAlignment.Center;
 | 
						|
            labelMinute.Width = (_HourMinuteButtonSize.Width * 3 + 2);
 | 
						|
            labelMinute.Height = _HourMinuteButtonSize.Height - 3;
 | 
						|
            labelMinute.AutoCollapseOnClick = false;
 | 
						|
            labelMinute.PaddingBottom = 1;
 | 
						|
            _MinuteLabel = labelMinute;
 | 
						|
            LabelItem labelHMSpacer = new LabelItem();
 | 
						|
            labelHMSpacer.Height = _HourMinuteButtonSize.Height - 3;
 | 
						|
            labelHMSpacer.Width = isZuluTime ? 2 : 18;
 | 
						|
            // 
 | 
						|
            // hourMinLabelRow
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            ItemContainer hourMinLabelRow = new ItemContainer();
 | 
						|
            hourMinLabelRow.AutoCollapseOnClick = false;
 | 
						|
            hourMinLabelRow.BackgroundStyle.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid;
 | 
						|
            hourMinLabelRow.BackgroundStyle.BorderBottomColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
 | 
						|
            hourMinLabelRow.BackgroundStyle.BorderBottomWidth = 1;
 | 
						|
            hourMinLabelRow.BackgroundStyle.Class = "";
 | 
						|
            hourMinLabelRow.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
						|
            hourMinLabelRow.Name = "hourMinLabelRow";
 | 
						|
            hourMinLabelRow.BackgroundStyle.MarginBottom = 2;
 | 
						|
            hourMinLabelRow.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
            labelHour,
 | 
						|
            labelHMSpacer,
 | 
						|
            labelMinute});
 | 
						|
 | 
						|
            LabelItem labelSpacerLine3 = new LabelItem();
 | 
						|
            labelSpacerLine3.Name = "labelSpacerLine3";
 | 
						|
            labelSpacerLine3.Width = 18;
 | 
						|
            labelSpacerLine3.AutoCollapseOnClick = false;
 | 
						|
            // 
 | 
						|
            // hourMinRow1
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            ItemContainer hourMinRow1 = new ItemContainer();
 | 
						|
            hourMinRow1.AutoCollapseOnClick = false;
 | 
						|
            hourMinRow1.BackgroundStyle.Class = "";
 | 
						|
            hourMinRow1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
						|
            hourMinRow1.Name = "hourMinRow1";
 | 
						|
            if (isZuluTime)
 | 
						|
            {
 | 
						|
                labelSpacerLine3.Width -= 12;
 | 
						|
                hourMinRow1.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
                    CreateHourItem(0, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateHourItem(1, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateHourItem(2, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateHourItem(3, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    labelSpacerLine3,
 | 
						|
                    CreateMinuteItem(0, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateMinuteItem(5, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateMinuteItem(10, eTimeSelectorType.MonthCalendarStyle)});
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                hourMinRow1.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
                    CreateHourItem(1, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateHourItem(2, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateHourItem(3, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    labelSpacerLine3,
 | 
						|
                    CreateMinuteItem(0, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateMinuteItem(5, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateMinuteItem(10, eTimeSelectorType.MonthCalendarStyle)});
 | 
						|
            }
 | 
						|
 | 
						|
            // 
 | 
						|
            // labelItem5
 | 
						|
            // 
 | 
						|
            LabelItem labelItem5 = new LabelItem();
 | 
						|
            labelItem5.Name = "labelItem5";
 | 
						|
            labelItem5.Width = 18;
 | 
						|
            labelItem5.AutoCollapseOnClick = false;
 | 
						|
            // 
 | 
						|
            // hourMinRow2
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            ItemContainer hourMinRow2 = new ItemContainer();
 | 
						|
            hourMinRow2.AutoCollapseOnClick = false;
 | 
						|
            hourMinRow2.BackgroundStyle.Class = "";
 | 
						|
            hourMinRow2.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
						|
            hourMinRow2.Name = "hourMinRow2";
 | 
						|
            if (isZuluTime)
 | 
						|
            {
 | 
						|
                labelItem5.Width -= 12;
 | 
						|
                hourMinRow2.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
                    CreateHourItem(4, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateHourItem(5, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateHourItem(6, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateHourItem(7, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    labelItem5,
 | 
						|
                    CreateMinuteItem(15, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateMinuteItem(20, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateMinuteItem(25, eTimeSelectorType.MonthCalendarStyle)});
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                hourMinRow2.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
                    CreateHourItem(4, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateHourItem(5, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateHourItem(6, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    labelItem5,
 | 
						|
                    CreateMinuteItem(15, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateMinuteItem(20, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateMinuteItem(25, eTimeSelectorType.MonthCalendarStyle)});
 | 
						|
            }
 | 
						|
            // 
 | 
						|
            // labelItem6
 | 
						|
            // 
 | 
						|
            LabelItem labelItem6 = new LabelItem();
 | 
						|
            labelItem6.Name = "labelItem6";
 | 
						|
            labelItem6.Width = 18;
 | 
						|
            labelItem6.AutoCollapseOnClick = false;
 | 
						|
            // 
 | 
						|
            // hourMinRow3
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            ItemContainer hourMinRow3 = new ItemContainer();
 | 
						|
            hourMinRow3.AutoCollapseOnClick = false;
 | 
						|
            hourMinRow3.BackgroundStyle.Class = "";
 | 
						|
            hourMinRow3.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
						|
            hourMinRow3.Name = "hourMinRow3";
 | 
						|
            if (isZuluTime)
 | 
						|
            {
 | 
						|
                labelItem6.Width -= 12;
 | 
						|
                hourMinRow3.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
                    CreateHourItem(8, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateHourItem(9, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateHourItem(10, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateHourItem(11, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    labelItem6,
 | 
						|
                    CreateMinuteItem(30, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateMinuteItem(35, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateMinuteItem(40, eTimeSelectorType.MonthCalendarStyle)});
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                hourMinRow3.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
                    CreateHourItem(7, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateHourItem(8, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateHourItem(9, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    labelItem6,
 | 
						|
                    CreateMinuteItem(30, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateMinuteItem(35, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateMinuteItem(40, eTimeSelectorType.MonthCalendarStyle)});
 | 
						|
            }
 | 
						|
            // 
 | 
						|
            // labelItem7
 | 
						|
            // 
 | 
						|
            LabelItem labelItem7 = new LabelItem();
 | 
						|
            labelItem7.Name = "labelItem7";
 | 
						|
            labelItem7.Width = 18;
 | 
						|
            labelItem7.AutoCollapseOnClick = false;
 | 
						|
            // 
 | 
						|
            // hourMinRow4
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            ItemContainer hourMinRow4 = new ItemContainer();
 | 
						|
            hourMinRow4.AutoCollapseOnClick = false;
 | 
						|
            hourMinRow4.BackgroundStyle.Class = "";
 | 
						|
            hourMinRow4.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
						|
            hourMinRow4.Name = "hourMinRow4";
 | 
						|
            if (isZuluTime)
 | 
						|
            {
 | 
						|
                labelItem7.Width -= 12;
 | 
						|
                hourMinRow4.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
                    CreateHourItem(12, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateHourItem(13, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateHourItem(14, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateHourItem(15, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    labelItem7,
 | 
						|
                    CreateMinuteItem(45, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateMinuteItem(50, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateMinuteItem(55, eTimeSelectorType.MonthCalendarStyle)});
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                hourMinRow4.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
                    CreateHourItem(10, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateHourItem(11, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateHourItem(12, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    labelItem7,
 | 
						|
                    CreateMinuteItem(45, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateMinuteItem(50, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                    CreateMinuteItem(55, eTimeSelectorType.MonthCalendarStyle)});
 | 
						|
            }
 | 
						|
            // 
 | 
						|
            // hourMinRow4
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            ItemContainer hourMinRow5 = null, hourMinRow6 = null; ;
 | 
						|
            if (isZuluTime)
 | 
						|
            {
 | 
						|
                hourMinRow5 = new ItemContainer();
 | 
						|
                hourMinRow5.AutoCollapseOnClick = false;
 | 
						|
                hourMinRow5.BackgroundStyle.Class = "";
 | 
						|
                hourMinRow5.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
						|
                hourMinRow5.Name = "hourMinRow5";
 | 
						|
                hourMinRow5.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
                CreateHourItem(16, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                CreateHourItem(17, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                CreateHourItem(18, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                CreateHourItem(19, eTimeSelectorType.MonthCalendarStyle)});
 | 
						|
 | 
						|
                hourMinRow6 = new ItemContainer();
 | 
						|
                hourMinRow6.AutoCollapseOnClick = false;
 | 
						|
                hourMinRow6.BackgroundStyle.Class = "";
 | 
						|
                hourMinRow6.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
						|
                hourMinRow6.Name = "hourMinRow6";
 | 
						|
                hourMinRow6.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
                CreateHourItem(20, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                CreateHourItem(21, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                CreateHourItem(22, eTimeSelectorType.MonthCalendarStyle),
 | 
						|
                CreateHourItem(23, eTimeSelectorType.MonthCalendarStyle)});
 | 
						|
 | 
						|
            }
 | 
						|
            //
 | 
						|
            // itemContainer3
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            itemContainer3.AutoCollapseOnClick = false;
 | 
						|
            itemContainer3.BackgroundStyle.Class = "";
 | 
						|
            itemContainer3.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
						|
            itemContainer3.LayoutOrientation = DevComponents.DotNetBar.eOrientation.Vertical;
 | 
						|
            itemContainer3.Name = "itemContainer3";
 | 
						|
            itemContainer3.ItemSpacing = 0;
 | 
						|
            itemContainer3.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
            hourMinLabelRow,
 | 
						|
            hourMinRow1,
 | 
						|
            hourMinRow2,
 | 
						|
            hourMinRow3,
 | 
						|
            hourMinRow4});
 | 
						|
            if (hourMinRow5 != null)
 | 
						|
                itemContainer3.SubItems.Add(hourMinRow5);
 | 
						|
            if (hourMinRow6 != null)
 | 
						|
                itemContainer3.SubItems.Add(hourMinRow6);
 | 
						|
 | 
						|
            // 
 | 
						|
            // buttonItem29
 | 
						|
            // 
 | 
						|
            ButtonItem buttonClearTime = new ButtonItem("buttonClearTime");
 | 
						|
            buttonClearTime.Text = "<div align=\"center\" width=\"32\">" + GetClearText() + "</div>";
 | 
						|
            buttonClearTime.Command = _ClearCommand;
 | 
						|
            buttonClearTime.Visible = _ClearButtonVisible;
 | 
						|
            buttonClearTime.AutoCollapseOnClick = false;
 | 
						|
            // 
 | 
						|
            // buttonItem30
 | 
						|
            // 
 | 
						|
            ButtonItem buttonOk = new ButtonItem("buttonOk");
 | 
						|
            buttonOk.Text = "<div align=\"center\" width=\"32\">" + GetOkText() + "</div>";
 | 
						|
            buttonOk.Visible = _OkButtonVisible;
 | 
						|
            buttonOk.Command = _OkCommand;
 | 
						|
            // 
 | 
						|
            // commandRow
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            // 
 | 
						|
            ItemContainer commandRow = new ItemContainer();
 | 
						|
            commandRow.AutoCollapseOnClick = false;
 | 
						|
            commandRow.BackgroundStyle.MarginTop = isZuluTime ? 2 : 35 + 2 * (_HourMinuteButtonSize.Height - DefaultHourMinuteButtonSize.Height);
 | 
						|
            commandRow.BackgroundStyle.Border = DevComponents.DotNetBar.eStyleBorderType.Solid;
 | 
						|
            commandRow.BackgroundStyle.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
 | 
						|
            commandRow.BackgroundStyle.BorderTopWidth = 1;
 | 
						|
            commandRow.BackgroundStyle.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
 | 
						|
            commandRow.BackgroundStyle.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground2;
 | 
						|
            commandRow.BackgroundStyle.BackColorGradientAngle = 90;
 | 
						|
            commandRow.HorizontalItemAlignment = DevComponents.DotNetBar.eHorizontalItemsAlignment.Center;
 | 
						|
            commandRow.ItemAlignment = DevComponents.DotNetBar.eItemAlignment.Center;
 | 
						|
            commandRow.Name = "commandRow";
 | 
						|
            commandRow.ItemSpacing = 5;
 | 
						|
            commandRow.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
            buttonClearTime,
 | 
						|
            buttonOk});
 | 
						|
 | 
						|
            _InnerContainer.ResizeItemsToFit = true;
 | 
						|
            _InnerContainer.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
						|
            itemContainer2,
 | 
						|
            itemContainer3,
 | 
						|
            commandRow});
 | 
						|
        }
 | 
						|
 | 
						|
        private BaseItem CreateMinuteItem(int minute, eTimeSelectorType style)
 | 
						|
        {
 | 
						|
            BaseItem item = null;
 | 
						|
            if (style == eTimeSelectorType.TouchStyle)
 | 
						|
            {
 | 
						|
                ButtonItem button = new ButtonItem();
 | 
						|
                button.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
 | 
						|
                button.Text = "<div align=\"center\" width=\"32\"><font face=\"Segoe UI\" size=\"10\"><b>" + minute.ToString("##00") + "</b></font></div>";
 | 
						|
                button.Command = _MinuteCommand;
 | 
						|
                button.CommandParameter = minute;
 | 
						|
                item = button;
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                ButtonItem button = new ButtonItem();
 | 
						|
                button.Shape = new DevComponents.DotNetBar.RoundRectangleShapeDescriptor();
 | 
						|
                button.Text = minute.ToString("##00");
 | 
						|
                button.Command = _MinuteCommand;
 | 
						|
                button.CommandParameter = minute;
 | 
						|
                button.FixedSize = HourMinuteButtonSize;
 | 
						|
                button._FixedSizeCenterText = true;
 | 
						|
                button.ForeColorColorSchemePart = eColorSchemePart.ItemText;
 | 
						|
                item = button;
 | 
						|
            }
 | 
						|
 | 
						|
            item.AutoCollapseOnClick = false;
 | 
						|
            return item;
 | 
						|
        }
 | 
						|
        private static readonly Size DefaultHourMinuteButtonSize = new Size(24, 15);
 | 
						|
        private BaseItem CreateHourItem(int hour, eTimeSelectorType style)
 | 
						|
        {
 | 
						|
            BaseItem item = null;
 | 
						|
            if (style == eTimeSelectorType.TouchStyle)
 | 
						|
            {
 | 
						|
                if (IsZuluTime)
 | 
						|
                {
 | 
						|
                    DualButton button = new DualButton();
 | 
						|
                    button.Text = hour.ToString();
 | 
						|
                    if (hour + 12 == 24)
 | 
						|
                        button.Text2 = "0";
 | 
						|
                    else
 | 
						|
                        button.Text2 = (hour + 12).ToString();
 | 
						|
                    button.Command = _HourCommand;
 | 
						|
                    button.CommandParameter = hour;
 | 
						|
                    button.Command2 = _HourCommand;
 | 
						|
                    button.Command2Parameter = hour + 12;
 | 
						|
                    item = button;
 | 
						|
                    if (_DualButtonFont == null) CreateDualButtonFont();
 | 
						|
                    button.Font = _DualButtonFont;
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    ButtonItem button = new ButtonItem();
 | 
						|
                    button.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
 | 
						|
                    button.Text = "<div align=\"center\" width=\"32\"><font face=\"Segoe UI\" size=\"10\"><b>" + hour.ToString() + "</b></font></div>";
 | 
						|
                    button.Command = _HourCommand;
 | 
						|
                    button.CommandParameter = hour;
 | 
						|
                    item = button;
 | 
						|
                }
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                ButtonItem button = new ButtonItem();
 | 
						|
                button.Shape = new DevComponents.DotNetBar.RoundRectangleShapeDescriptor();
 | 
						|
                button.Text = hour.ToString("##00");
 | 
						|
                button.Command = _HourCommand;
 | 
						|
                button.CommandParameter = hour;
 | 
						|
                button.FixedSize = HourMinuteButtonSize;
 | 
						|
                button._FixedSizeCenterText = true;
 | 
						|
                button.ForeColorColorSchemePart = eColorSchemePart.ItemText;
 | 
						|
                item = button;
 | 
						|
            }
 | 
						|
 | 
						|
            item.AutoCollapseOnClick = false;
 | 
						|
            return item;
 | 
						|
        }
 | 
						|
        private void CreateDualButtonFont()
 | 
						|
        {
 | 
						|
            if (_DualButtonFont != null) _DualButtonFont.Dispose();
 | 
						|
            _DualButtonFont = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 | 
						|
        }
 | 
						|
        private bool IsZuluTime
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                if (GetEffectiveTimeFormat() == eTimeSelectorFormat.Time24H)
 | 
						|
                    return true;
 | 
						|
                return false;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private eTimeSelectorFormat GetEffectiveTimeFormat()
 | 
						|
        {
 | 
						|
            eTimeSelectorFormat timeFormat = _TimeFormat;
 | 
						|
            if (timeFormat == eTimeSelectorFormat.System)
 | 
						|
            {
 | 
						|
                if (System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern.Contains("H"))
 | 
						|
                    return eTimeSelectorFormat.Time24H;
 | 
						|
                return eTimeSelectorFormat.Time12H;
 | 
						|
            }
 | 
						|
            return timeFormat;
 | 
						|
        }
 | 
						|
 | 
						|
        private TimeSpan _SelectedTime = TimeSpan.Zero;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets selected time. Returns TimeSpan.Zero if there is no time selected.
 | 
						|
        /// </summary>
 | 
						|
        [Category("Data"), Description("Indicates selected time.")]
 | 
						|
        public TimeSpan SelectedTime
 | 
						|
        {
 | 
						|
            get { return _SelectedTime; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _SelectedTime)
 | 
						|
                {
 | 
						|
                    TimeSpan oldValue = _SelectedTime;
 | 
						|
                    _SelectedTime = value;
 | 
						|
                    OnSelectedTimeChanged(oldValue, value);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Returns whether property should be serialized.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        public bool ShouldSerializeSelectedTime()
 | 
						|
        {
 | 
						|
            return !_SelectedTime.Equals(TimeSpan.Zero);
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Resets property to default value.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        public void ResetSelectedTime()
 | 
						|
        {
 | 
						|
            SelectedTime = TimeSpan.Zero;
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Called when SelectedTime property has changed.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="oldValue">Old property value</param>
 | 
						|
        /// <param name="newValue">New property value</param>
 | 
						|
        protected virtual void OnSelectedTimeChanged(TimeSpan oldValue, TimeSpan newValue)
 | 
						|
        {
 | 
						|
            //OnPropertyChanged(new PropertyChangedEventArgs("SelectedTime"));
 | 
						|
            UpdateSelectedTimeText();
 | 
						|
            OnSelectedTimeChanged(EventArgs.Empty);
 | 
						|
        }
 | 
						|
 | 
						|
        internal const string DefaultTimeFormat24H = "HH:mm";
 | 
						|
        private string _TimeFormat24H = DefaultTimeFormat24H;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the format for the 24 Hour Time Display.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(DefaultTimeFormat24H), Category("Data"), Description("Indicates format for the 24 Hour Time Display."), Localizable(true)]
 | 
						|
        public string TimeFormat24H
 | 
						|
        {
 | 
						|
            get { return _TimeFormat24H; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _TimeFormat24H)
 | 
						|
                {
 | 
						|
                    string oldValue = _TimeFormat24H;
 | 
						|
                    _TimeFormat24H = value;
 | 
						|
                    OnTimeFormat24HChanged(oldValue, value);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Called when TimeFormat24H property has changed.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="oldValue">Old property value</param>
 | 
						|
        /// <param name="newValue">New property value</param>
 | 
						|
        protected virtual void OnTimeFormat24HChanged(string oldValue, string newValue)
 | 
						|
        {
 | 
						|
            //OnPropertyChanged(new PropertyChangedEventArgs("TimeFormat24H"));
 | 
						|
            UpdateSelectedTimeText();
 | 
						|
        }
 | 
						|
 | 
						|
        internal const string DefaultTimeFormat12H = "hh:mm tt";
 | 
						|
        private string _TimeFormat12H = DefaultTimeFormat12H;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the format for the 12 Hour Time Display.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(DefaultTimeFormat12H), Category("Data"), Description("Indicates format for the 12 Hour Time Display."), Localizable(true)]
 | 
						|
        public string TimeFormat12H
 | 
						|
        {
 | 
						|
            get { return _TimeFormat12H; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _TimeFormat12H)
 | 
						|
                {
 | 
						|
                    string oldValue = _TimeFormat12H;
 | 
						|
                    _TimeFormat12H = value;
 | 
						|
                    OnTimeFormat12HChanged(oldValue, value);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Called when TimeFormat12H property has changed.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="oldValue">Old property value</param>
 | 
						|
        /// <param name="newValue">New property value</param>
 | 
						|
        protected virtual void OnTimeFormat12HChanged(string oldValue, string newValue)
 | 
						|
        {
 | 
						|
            //OnPropertyChanged(new PropertyChangedEventArgs("TimeFormat12H"));
 | 
						|
            UpdateSelectedTimeText();
 | 
						|
        }
 | 
						|
        private void UpdateSelectedTimeText()
 | 
						|
        {
 | 
						|
            if (_SelectedTime == TimeSpan.Zero)
 | 
						|
            {
 | 
						|
                _CurrentTimeLabel.Text = "--:--";
 | 
						|
                if (_AmPmLabel != null)
 | 
						|
                    _AmPmLabel.Text = "--";
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                if (IsZuluTime)
 | 
						|
                {
 | 
						|
                    _CurrentTimeLabel.Text = SelectedDateTime.ToString(_TimeFormat24H);
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    _CurrentTimeLabel.Text = SelectedDateTime.ToString(_TimeFormat12H);
 | 
						|
                }
 | 
						|
                if (_SelectorType == eTimeSelectorType.TouchStyle)
 | 
						|
                {
 | 
						|
                    _ButtonAm.Checked = _SelectedTime.Hours < 12;
 | 
						|
                    _ButtonPm.Checked = _SelectedTime.Hours >= 12;
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    _ButtonAm.Checked = false;
 | 
						|
                    _ButtonPm.Checked = false;
 | 
						|
                }
 | 
						|
                if (_AmPmLabel != null)
 | 
						|
                    _AmPmLabel.Text = (_SelectedTime.Hours < 12) ? "AM" : "PM";
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private DateTime _SelectedDateTime = DateTime.MinValue;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the selected date time.
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
 | 
						|
        public DateTime SelectedDateTime
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                if (_SelectedTime == TimeSpan.Zero)
 | 
						|
                    return DateTime.MinValue;
 | 
						|
 | 
						|
                return new DateTime(_SelectedDateTime.Year, _SelectedDateTime.Month, _SelectedDateTime.Day,
 | 
						|
                    _SelectedTime.Hours, _SelectedTime.Minutes, _SelectedTime.Seconds);
 | 
						|
            }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _SelectedDateTime)
 | 
						|
                {
 | 
						|
                    DateTime oldValue = _SelectedDateTime;
 | 
						|
                    _SelectedDateTime = value;
 | 
						|
                    OnSelectedDateTimeChanged(oldValue, value);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Called when SelectedDateTime property has changed.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="oldValue">Old property value</param>
 | 
						|
        /// <param name="newValue">New property value</param>
 | 
						|
        protected virtual void OnSelectedDateTimeChanged(DateTime oldValue, DateTime newValue)
 | 
						|
        {
 | 
						|
            //OnPropertyChanged(new PropertyChangedEventArgs("SelectedDateTime"));
 | 
						|
            if (newValue == DateTime.MinValue)
 | 
						|
                SelectedTime = TimeSpan.Zero;
 | 
						|
            else
 | 
						|
                SelectedTime = newValue.TimeOfDay;
 | 
						|
        }
 | 
						|
 | 
						|
        private string _OkText = "OK";
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the text displayed on OK button.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue("OK"), Category("Appearance"), Description("Indicates text displayed on OK button."), Localizable(true)]
 | 
						|
        public string OkText
 | 
						|
        {
 | 
						|
            get { return _OkText; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _OkText)
 | 
						|
                {
 | 
						|
                    string oldValue = _OkText;
 | 
						|
                    _OkText = value;
 | 
						|
                    OnOkTextChanged(oldValue, value);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Called when OkText property has changed.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="oldValue">Old property value</param>
 | 
						|
        /// <param name="newValue">New property value</param>
 | 
						|
        protected virtual void OnOkTextChanged(string oldValue, string newValue)
 | 
						|
        {
 | 
						|
            //OnPropertyChanged(new PropertyChangedEventArgs("OkText"));
 | 
						|
            if (_OkCommand != null) _OkCommand.Text = GetOkText();
 | 
						|
        }
 | 
						|
        private string GetOkText()
 | 
						|
        {
 | 
						|
            using (LocalizationManager lm = new LocalizationManager(this.GetOwner() as IOwnerLocalize))
 | 
						|
            {
 | 
						|
                string s = lm.GetLocalizedString(LocalizationKeys.TimeSelectorOkButton);
 | 
						|
                if (s != "") return s;
 | 
						|
            }
 | 
						|
            return _OkText;
 | 
						|
        }
 | 
						|
 | 
						|
        private string _ClearText = "Clear";
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the text displayed on Clear button only when MonthCalendarStyle is used.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue("Clear"), Category("Appearance"), Description("Indicates text displayed on Clear button only when MonthCalendarStyle is used."), Localizable(true)]
 | 
						|
        public string ClearText
 | 
						|
        {
 | 
						|
            get { return _ClearText; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _ClearText)
 | 
						|
                {
 | 
						|
                    string oldValue = _ClearText;
 | 
						|
                    _ClearText = value;
 | 
						|
                    OnClearTextChanged(oldValue, value);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Called when ClearText property has changed.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="oldValue">Old property value</param>
 | 
						|
        /// <param name="newValue">New property value</param>
 | 
						|
        protected virtual void OnClearTextChanged(string oldValue, string newValue)
 | 
						|
        {
 | 
						|
            //OnPropertyChanged(new PropertyChangedEventArgs("ClearText"));
 | 
						|
            if (_ClearCommand != null) _ClearCommand.Text = GetClearText();
 | 
						|
        }
 | 
						|
        private string GetClearText()
 | 
						|
        {
 | 
						|
            using (LocalizationManager lm = new LocalizationManager(this.GetOwner() as IOwnerLocalize))
 | 
						|
            {
 | 
						|
                string s = lm.GetLocalizedString(LocalizationKeys.TimeSelectorClearButton);
 | 
						|
                if (s != "") return s;
 | 
						|
            }
 | 
						|
            return _ClearText;
 | 
						|
        }
 | 
						|
 | 
						|
        private eTimeSelectorFormat _TimeFormat = eTimeSelectorFormat.System;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the time format used to present time by the selector.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(eTimeSelectorFormat.System), Category("Appearance"), Description("Indicates time format used to present time by the selector."), Localizable(true)]
 | 
						|
        public eTimeSelectorFormat TimeFormat
 | 
						|
        {
 | 
						|
            get { return _TimeFormat; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _TimeFormat)
 | 
						|
                {
 | 
						|
                    eTimeSelectorFormat oldValue = _TimeFormat;
 | 
						|
                    _TimeFormat = value;
 | 
						|
                    OnTimeFormatChanged(oldValue, value);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Called when TimeFormat property has changed.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="oldValue">Old property value</param>
 | 
						|
        /// <param name="newValue">New property value</param>
 | 
						|
        protected virtual void OnTimeFormatChanged(eTimeSelectorFormat oldValue, eTimeSelectorFormat newValue)
 | 
						|
        {
 | 
						|
            //OnPropertyChanged(new PropertyChangedEventArgs("TimeFormat"));
 | 
						|
            RecreateItems();
 | 
						|
        }
 | 
						|
 | 
						|
        private bool _OkButtonVisible = true;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets whether Ok button is visible.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(true), Category("Appearance"), Description("Indicates whether Ok button is visible.")]
 | 
						|
        public bool OkButtonVisible
 | 
						|
        {
 | 
						|
            get { return _OkButtonVisible; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _OkButtonVisible)
 | 
						|
                {
 | 
						|
                    bool oldValue = _OkButtonVisible;
 | 
						|
                    _OkButtonVisible = value;
 | 
						|
                    OnOkButtonVisibleChanged(oldValue, value);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Called when OkButtonVisible property has changed.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="oldValue">Old property value</param>
 | 
						|
        /// <param name="newValue">New property value</param>
 | 
						|
        protected virtual void OnOkButtonVisibleChanged(bool oldValue, bool newValue)
 | 
						|
        {
 | 
						|
            //OnPropertyChanged(new PropertyChangedEventArgs("OkButtonVisible"));
 | 
						|
            if (_OkCommand != null) _OkCommand.Visible = newValue;
 | 
						|
        }
 | 
						|
 | 
						|
        private bool _ClearButtonVisible = true;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets whether Ok button is visible.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(true), Category("Appearance"), Description("Indicates whether Ok button is visible.")]
 | 
						|
        public bool ClearButtonVisible
 | 
						|
        {
 | 
						|
            get { return _ClearButtonVisible; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _ClearButtonVisible)
 | 
						|
                {
 | 
						|
                    bool oldValue = _ClearButtonVisible;
 | 
						|
                    _ClearButtonVisible = value;
 | 
						|
                    OnClearButtonVisibleChanged(oldValue, value);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Called when ClearButtonVisible property has changed.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="oldValue">Old property value</param>
 | 
						|
        /// <param name="newValue">New property value</param>
 | 
						|
        protected virtual void OnClearButtonVisibleChanged(bool oldValue, bool newValue)
 | 
						|
        {
 | 
						|
            //OnPropertyChanged(new PropertyChangedEventArgs("ClearButtonVisible"));
 | 
						|
            if (_ClearCommand != null) _ClearCommand.Visible = newValue;
 | 
						|
        }
 | 
						|
 | 
						|
        private eTimeSelectorType _SelectorType = eTimeSelectorType.TouchStyle;
 | 
						|
        /// <summary>
 | 
						|
        /// Indicates the type of the selector used to select time.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(eTimeSelectorType.TouchStyle), Category("Appearance"), Description("Indicates the type of the selector used to select time.")]
 | 
						|
        public eTimeSelectorType SelectorType
 | 
						|
        {
 | 
						|
            get { return _SelectorType; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _SelectorType)
 | 
						|
                {
 | 
						|
                    eTimeSelectorType oldValue = _SelectorType;
 | 
						|
                    _SelectorType = value;
 | 
						|
                    OnSelectorTypeChanged(oldValue, value);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Called when SelectorType property has changed.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="oldValue">Old property value</param>
 | 
						|
        /// <param name="newValue">New property value</param>
 | 
						|
        protected virtual void OnSelectorTypeChanged(eTimeSelectorType oldValue, eTimeSelectorType newValue)
 | 
						|
        {
 | 
						|
            RecreateItems();
 | 
						|
        }
 | 
						|
 | 
						|
        private string _HourText = "Hour";
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the text displayed on Hour label.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue("Hour"), Category("Appearance"), Description("Indicates text displayed on Hour label."), Localizable(true)]
 | 
						|
        public string HourText
 | 
						|
        {
 | 
						|
            get { return _HourText; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _HourText)
 | 
						|
                {
 | 
						|
                    string oldValue = _HourText;
 | 
						|
                    _HourText = value;
 | 
						|
                    OnHourTextChanged(oldValue, value);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Called when HourText property has changed.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="oldValue">Old property value</param>
 | 
						|
        /// <param name="newValue">New property value</param>
 | 
						|
        protected virtual void OnHourTextChanged(string oldValue, string newValue)
 | 
						|
        {
 | 
						|
            //OnPropertyChanged(new PropertyChangedEventArgs("HourText"));
 | 
						|
            if (_HourLabel != null) _HourLabel.Text = GetHourText();
 | 
						|
        }
 | 
						|
        private string GetHourText()
 | 
						|
        {
 | 
						|
            using (LocalizationManager lm = new LocalizationManager(this.GetOwner() as IOwnerLocalize))
 | 
						|
            {
 | 
						|
                string s = lm.GetLocalizedString(LocalizationKeys.TimeSelectorHourLabel);
 | 
						|
                if (s != "") return s;
 | 
						|
            }
 | 
						|
            return _HourText;
 | 
						|
        }
 | 
						|
 | 
						|
        private string _MinuteText = "Minute";
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the text displayed on Minute label.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue("Minute"), Category("Appearance"), Description("Indicates text displayed on Minute label."), Localizable(true)]
 | 
						|
        public string MinuteText
 | 
						|
        {
 | 
						|
            get { return _MinuteText; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _MinuteText)
 | 
						|
                {
 | 
						|
                    string oldValue = _MinuteText;
 | 
						|
                    _MinuteText = value;
 | 
						|
                    OnMinuteTextChanged(oldValue, value);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Called when MinuteText property has changed.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="oldValue">Old property value</param>
 | 
						|
        /// <param name="newValue">New property value</param>
 | 
						|
        protected virtual void OnMinuteTextChanged(string oldValue, string newValue)
 | 
						|
        {
 | 
						|
            //OnPropertyChanged(new PropertyChangedEventArgs("MinuteText"));
 | 
						|
            if (_MinuteLabel != null) _MinuteLabel.Text = GetMinuteText();
 | 
						|
        }
 | 
						|
        private string GetMinuteText()
 | 
						|
        {
 | 
						|
            using (LocalizationManager lm = new LocalizationManager(this.GetOwner() as IOwnerLocalize))
 | 
						|
            {
 | 
						|
                string s = lm.GetLocalizedString(LocalizationKeys.TimeSelectorMinuteLabel);
 | 
						|
                if (s != "") return s;
 | 
						|
            }
 | 
						|
            return _MinuteText;
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
        private Size _HourMinuteButtonSize = DefaultHourMinuteButtonSize;
 | 
						|
        internal Size HourMinuteButtonSize
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                return _HourMinuteButtonSize;
 | 
						|
            }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (_HourMinuteButtonSize != value)
 | 
						|
                {
 | 
						|
                    _HourMinuteButtonSize = value;
 | 
						|
                    RecreateItems();
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
    }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// Defines time selector format.
 | 
						|
    /// </summary>
 | 
						|
    public enum eTimeSelectorFormat
 | 
						|
    {
 | 
						|
        /// <summary>
 | 
						|
        /// Selector uses system format.
 | 
						|
        /// </summary>
 | 
						|
        System,
 | 
						|
        /// <summary>
 | 
						|
        /// Selector uses 24-hour time format.
 | 
						|
        /// </summary>
 | 
						|
        Time24H,
 | 
						|
        /// <summary>
 | 
						|
        /// Selector uses 12-hour time format.
 | 
						|
        /// </summary>
 | 
						|
        Time12H
 | 
						|
    }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// Defines the TimeSelector styles.
 | 
						|
    /// </summary>
 | 
						|
    public enum eTimeSelectorType
 | 
						|
    {
 | 
						|
        /// <summary>
 | 
						|
        /// Time selector uses style similar to MonthCalendarStyle.
 | 
						|
        /// </summary>
 | 
						|
        MonthCalendarStyle,
 | 
						|
        /// <summary>
 | 
						|
        /// Time selector uses the touch style.
 | 
						|
        /// </summary>
 | 
						|
        TouchStyle
 | 
						|
    }
 | 
						|
}
 |