123456789101112131415161718192021222324252627282930313233343536373839404142 |
- using Avalonia.Controls;
- using Avalonia.Media;
- using InABox.Avalonia.Components;
- using InABox.Core;
- using System;
- using System.Collections.Generic;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace PRS.Avalonia.DigitalForms;
- class DFTimeFieldControl : DigitalFormFieldControl<DFLayoutTimeField, DFLayoutTimeFieldProperties, TimeSpan, TimeSpan?>
- {
- private TimeSelectorButton Time = null!; // late-initialising
- protected override Control Create()
- {
- Time = new TimeSelectorButton();
- var def = Field.Properties.Default;
- Time.Time = def == default ? DateTime.Now.TimeOfDay : def;
- Time.TimeChanged += (sender, e) => ChangeField();
-
- return Time;
- }
- public override TimeSpan? GetSerializedValue() => Time.Time;
- public override void SetSerializedValue(TimeSpan? value) => Time.Time = value;
- public override TimeSpan GetValue() => Time.Time ?? TimeSpan.MinValue;
- public override void SetValue(TimeSpan value) => Time.Time = value;
- protected override bool IsEmpty() => Time.Time == null || Time.Time == TimeSpan.MinValue;
- public override void SetBackground(IBrush brush, bool defaultColour)
- {
- Time.Background = brush;
- }
- }
|