Don't unnecessarily redraw time plugin bitmap every second

This commit is contained in:
Stone_Red
2024-11-29 17:55:33 +01:00
parent 3b9d49e8da
commit 35d64ef2c3
+16 -2
View File
@@ -9,15 +9,29 @@ namespace DesktopMagic.BuiltInPlugins;
internal class TimePlugin : Plugin
{
[Setting("display-seconds", "Display Seconds")]
[Setting("display-seconds", "Show Seconds")]
private readonly CheckBox displaySecondsCheckBox = new CheckBox(true);
private string oldTime = string.Empty;
private Color oldColor = Color.White;
private string oldFont = string.Empty;
private bool oldDisplaySecondsCheckBoxValue;
public override int UpdateInterval => 1000;
public override Bitmap Main()
public override Bitmap? Main()
{
string time = displaySecondsCheckBox.Value ? DateTime.Now.ToLongTimeString() : DateTime.Now.ToShortTimeString();
if (oldTime == time && oldColor == Application.Theme.PrimaryColor && oldFont == Application.Theme.Font && oldDisplaySecondsCheckBoxValue == displaySecondsCheckBox.Value)
{
return null;
}
oldTime = time;
oldColor = Application.Theme.PrimaryColor;
oldFont = Application.Theme.Font;
oldDisplaySecondsCheckBoxValue = displaySecondsCheckBox.Value;
Font font = new Font(Application.Theme.Font, 200);
Bitmap bmp = new Bitmap(1, 1);