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
|
|
}
|
|
}
|