using TimelapseApi; using Eto.Forms; using System; using SixLabors.ImageSharp; using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.Processing; using SixLabors.Fonts; using SixLabors.ImageSharp.Drawing.Processing; namespace ClockExtension { public class ClockExtension : TimelapseExtension { FontCollection collection = new FontCollection(); public ClockExtension() { collection.AddSystemFonts(); Data=new ClockData(); } public ClockData Data {get;set;} public override string Name => "Clock Extension"; public override Guid Id => Guid.Parse("{1cb8b576-e2e8-44d5-a8e1-e25a47eb0564}"); //https://duckduckgo.com/?q=guid&t=ffab&ia=answer protected override void OnCreate(ExtensionFeatures features) { Data=ClockData.Load(GetExtensionFolder(),collection); features.RegisterFrameHandler(ImageHandler,"Draw Clock").RegisterSettingsDialog(()=>{ return new ClockDialog(Data,collection,GetExtensionFolder()); },"Clock Settings"); } private bool ImageHandler(Image arg) { if(Data.EnableClock) { string nowTime=DateTime.Now.ToString(Data.DateFormat.Replace("\\n","\n")); arg.Mutate((e)=>{ var font=collection.Families.Skip(Data.FontIndex).FirstOrDefault(); var f=font.CreateFont(Data.FontSize); e.DrawText(nowTime,f,Data.ForeColor,new PointF(Data.X,Data.Y)); }); } return true; } } }