mirror of
https://github.com/Stone-Red-Code/DesktopMagic.git
synced 2026-09-04 08:56:15 +02:00
Update project to .NET 8 and code improvements
This commit is contained in:
@@ -1,22 +1,26 @@
|
|||||||
using DesktopMagicPluginAPI;
|
using DesktopMagicPluginAPI;
|
||||||
|
using DesktopMagicPluginAPI.Inputs;
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Drawing.Text;
|
using System.Drawing.Text;
|
||||||
|
|
||||||
namespace DesktopMagic.BuiltInWindowElements
|
namespace DesktopMagic.BuiltInWindowElements;
|
||||||
{
|
|
||||||
internal class DatePlugin : Plugin
|
internal class DatePlugin : Plugin
|
||||||
{
|
{
|
||||||
public override int UpdateInterval => 1000;
|
[Element("Short date:")]
|
||||||
|
private readonly CheckBox shortDatecheckBox = new CheckBox(true);
|
||||||
|
|
||||||
private DateTime oldDateTime = new DateTime();
|
private DateTime oldDateTime = DateTime.MinValue;
|
||||||
private Color oldColor = Color.White;
|
private Color oldColor = Color.White;
|
||||||
private string oldFont;
|
private string oldFont;
|
||||||
|
private bool oldShortDatecheckBoxValue;
|
||||||
|
public override int UpdateInterval => 1000;
|
||||||
|
|
||||||
public override Bitmap Main()
|
public override Bitmap Main()
|
||||||
{
|
{
|
||||||
if (oldDateTime.Date == DateTime.Now.Date && oldColor == Application.Theme.PrimaryColor && oldFont == Application.Theme.Font)
|
if (oldDateTime.Date == DateTime.Now.Date && oldColor == Application.Theme.PrimaryColor && oldFont == Application.Theme.Font && oldShortDatecheckBoxValue == shortDatecheckBox.Value)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -24,8 +28,9 @@ namespace DesktopMagic.BuiltInWindowElements
|
|||||||
oldDateTime = DateTime.Now;
|
oldDateTime = DateTime.Now;
|
||||||
oldColor = Application.Theme.PrimaryColor;
|
oldColor = Application.Theme.PrimaryColor;
|
||||||
oldFont = Application.Theme.Font;
|
oldFont = Application.Theme.Font;
|
||||||
|
oldShortDatecheckBoxValue = shortDatecheckBox.Value;
|
||||||
|
|
||||||
string date = DateTime.Now.ToLongDateString();
|
string date = shortDatecheckBox.Value ? DateTime.Now.ToShortDateString() : DateTime.Now.ToLongDateString();
|
||||||
|
|
||||||
Font font = new Font(Application.Theme.Font, 200);
|
Font font = new Font(Application.Theme.Font, 200);
|
||||||
|
|
||||||
@@ -47,4 +52,3 @@ namespace DesktopMagic.BuiltInWindowElements
|
|||||||
return bmp;
|
return bmp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,4 +1,6 @@
|
|||||||
using DesktopMagicPluginAPI;
|
using DesktopMagic.Helpers;
|
||||||
|
|
||||||
|
using DesktopMagicPluginAPI;
|
||||||
|
|
||||||
using NAudio.Wave;
|
using NAudio.Wave;
|
||||||
|
|
||||||
@@ -7,16 +9,19 @@ using System.Collections.Generic;
|
|||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
namespace DesktopMagic.BuiltInWindowElements
|
namespace DesktopMagic.BuiltInWindowElements;
|
||||||
{
|
|
||||||
internal class MusicVisualizerPlugin : Plugin
|
internal class MusicVisualizerPlugin : Plugin
|
||||||
{
|
{
|
||||||
private IWaveIn waveIn;
|
private const int fftLength = 1024;
|
||||||
private const int fftLength = 1024; // NAudio fft wants powers of two!
|
|
||||||
private readonly SampleAggregator sampleAggregator = new SampleAggregator(fftLength);
|
|
||||||
private volatile bool calculate = true;
|
|
||||||
private readonly Bitmap output = new Bitmap(880, 300);
|
|
||||||
|
|
||||||
|
// NAudio fft wants powers of two!
|
||||||
|
private readonly SampleAggregator sampleAggregator = new SampleAggregator(fftLength);
|
||||||
|
|
||||||
|
private readonly Bitmap output = new Bitmap(880, 300);
|
||||||
|
private WasapiLoopbackCapture waveIn;
|
||||||
|
private volatile bool calculate = true;
|
||||||
|
private List<double> lastFft = [];
|
||||||
public override int UpdateInterval => 0;
|
public override int UpdateInterval => 0;
|
||||||
|
|
||||||
public override void Start()
|
public override void Start()
|
||||||
@@ -30,6 +35,17 @@ namespace DesktopMagic.BuiltInWindowElements
|
|||||||
waveIn.StartRecording();
|
waveIn.StartRecording();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override Bitmap Main()
|
||||||
|
{
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Stop()
|
||||||
|
{
|
||||||
|
calculate = false;
|
||||||
|
waveIn?.StopRecording();
|
||||||
|
}
|
||||||
|
|
||||||
private void OnDataAvailable(object sender, WaveInEventArgs e)
|
private void OnDataAvailable(object sender, WaveInEventArgs e)
|
||||||
{
|
{
|
||||||
if (calculate)
|
if (calculate)
|
||||||
@@ -46,8 +62,6 @@ namespace DesktopMagic.BuiltInWindowElements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<double> lastFft = new List<double>();
|
|
||||||
|
|
||||||
private void FftCalculated(object sender, FftEventArgs e)
|
private void FftCalculated(object sender, FftEventArgs e)
|
||||||
{
|
{
|
||||||
if (!calculate)
|
if (!calculate)
|
||||||
@@ -55,7 +69,7 @@ namespace DesktopMagic.BuiltInWindowElements
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<double> fft = new List<double>();
|
List<double> fft = [];
|
||||||
for (int i = 0; i < (e.Result.Length / 2) - 70; i++)
|
for (int i = 0; i < (e.Result.Length / 2) - 70; i++)
|
||||||
{
|
{
|
||||||
int v = i;
|
int v = i;
|
||||||
@@ -85,7 +99,7 @@ namespace DesktopMagic.BuiltInWindowElements
|
|||||||
}
|
}
|
||||||
|
|
||||||
int barCount = 0;
|
int barCount = 0;
|
||||||
List<double> scaledFft = new List<double>();
|
List<double> scaledFft = [];
|
||||||
|
|
||||||
if (barCount > 0)
|
if (barCount > 0)
|
||||||
{
|
{
|
||||||
@@ -270,16 +284,4 @@ namespace DesktopMagic.BuiltInWindowElements
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override Bitmap Main()
|
|
||||||
{
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Stop()
|
|
||||||
{
|
|
||||||
calculate = false;
|
|
||||||
waveIn?.StopRecording();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -1,31 +1,31 @@
|
|||||||
using DesktopMagicPluginAPI;
|
using DesktopMagicPluginAPI;
|
||||||
using DesktopMagicPluginAPI.Drawing;
|
|
||||||
using DesktopMagicPluginAPI.Inputs;
|
using DesktopMagicPluginAPI.Inputs;
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Drawing.Text;
|
using System.Drawing.Text;
|
||||||
|
|
||||||
namespace DesktopMagic.BuiltInWindowElements
|
namespace DesktopMagic.BuiltInWindowElements;
|
||||||
{
|
|
||||||
internal class TimePlugin : Plugin
|
internal class TimePlugin : Plugin
|
||||||
{
|
{
|
||||||
[Element("Display Seconds:")]
|
[Element("Display Seconds:")]
|
||||||
private readonly CheckBox checkBox = new CheckBox(true);
|
private readonly CheckBox displaySecondscheckBox = new CheckBox(true);
|
||||||
|
|
||||||
public override int UpdateInterval => 1000;
|
public override int UpdateInterval => 1000;
|
||||||
|
|
||||||
public override Bitmap Main()
|
public override Bitmap Main()
|
||||||
{
|
{
|
||||||
string time = checkBox.Value ? DateTime.Now.ToLongTimeString() : DateTime.Now.ToShortTimeString();
|
string time = displaySecondscheckBox.Value ? DateTime.Now.ToLongTimeString() : DateTime.Now.ToShortTimeString();
|
||||||
|
|
||||||
Font font = new Font(Application.Theme.Font, 200);
|
Font font = new Font(Application.Theme.Font, 200);
|
||||||
|
|
||||||
Bitmap bmp = new Bitmap(1, 1);
|
Bitmap bmp = new Bitmap(1, 1);
|
||||||
|
bmp.SetResolution(100, 100);
|
||||||
using Graphics tmpGr = Graphics.FromImage(bmp);
|
using Graphics tmpGr = Graphics.FromImage(bmp);
|
||||||
tmpGr.TextRenderingHint = TextRenderingHint.AntiAlias;
|
tmpGr.TextRenderingHint = TextRenderingHint.AntiAlias;
|
||||||
|
|
||||||
SizeF size = CalculateSize(tmpGr, font);
|
SizeF size = tmpGr.MeasureString(time, font);
|
||||||
|
|
||||||
bmp = new Bitmap((int)size.Width, (int)size.Height);
|
bmp = new Bitmap((int)size.Width, (int)size.Height);
|
||||||
bmp.SetResolution(100, 100);
|
bmp.SetResolution(100, 100);
|
||||||
@@ -33,23 +33,8 @@ namespace DesktopMagic.BuiltInWindowElements
|
|||||||
using Graphics gr = Graphics.FromImage(bmp);
|
using Graphics gr = Graphics.FromImage(bmp);
|
||||||
|
|
||||||
gr.TextRenderingHint = TextRenderingHint.AntiAlias;
|
gr.TextRenderingHint = TextRenderingHint.AntiAlias;
|
||||||
gr.DrawStringNoLeftPadding(time, font, new SolidBrush(Application.Theme.PrimaryColor), 0, 0);
|
gr.DrawString(time, font, new SolidBrush(Application.Theme.PrimaryColor), 0, 0);
|
||||||
|
|
||||||
return bmp;
|
return bmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
private SizeF CalculateSize(Graphics graphics, Font font)
|
|
||||||
{
|
|
||||||
string template = checkBox.Value ? "##:##:##" : "##:##";
|
|
||||||
SizeF size = new SizeF();
|
|
||||||
for (int i = 0; i < 9; i++)
|
|
||||||
{
|
|
||||||
SizeF newSize = graphics.MeasureStringNoLeftPadding(template.Replace("#", i.ToString()), font);
|
|
||||||
|
|
||||||
size.Width = Math.Max(size.Width, newSize.Width);
|
|
||||||
size.Height = Math.Max(size.Height, newSize.Height);
|
|
||||||
}
|
|
||||||
return size;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
<RepositoryUrl>https://github.com/Stone-Red-Code/DesktopMagic</RepositoryUrl>
|
<RepositoryUrl>https://github.com/Stone-Red-Code/DesktopMagic</RepositoryUrl>
|
||||||
<AssemblyVersion>0.0.3.2</AssemblyVersion>
|
<AssemblyVersion>0.0.3.2</AssemblyVersion>
|
||||||
<FileVersion>0.0.3.2</FileVersion>
|
<FileVersion>0.0.3.2</FileVersion>
|
||||||
<TargetFramework>net6.0-windows</TargetFramework>
|
<TargetFramework>net8.0-windows7.0</TargetFramework>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
@@ -27,12 +27,12 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="AlwaysUpToDate" Version="1.0.0.4" />
|
<PackageReference Include="AlwaysUpToDate" Version="1.0.0.4" />
|
||||||
<PackageReference Include="Extended.Wpf.Toolkit" Version="4.1.0" />
|
<PackageReference Include="Extended.Wpf.Toolkit" Version="4.5.1" />
|
||||||
<PackageReference Include="Google.Apis.Calendar.v3" Version="1.55.0.2410" />
|
<PackageReference Include="Google.Apis.Calendar.v3" Version="1.64.0.3171" />
|
||||||
<PackageReference Include="MaterialDesignThemes" Version="4.0.0" />
|
<PackageReference Include="MaterialDesignThemes" Version="4.9.0" />
|
||||||
<PackageReference Include="NAudio" Version="2.0.1" />
|
<PackageReference Include="NAudio" Version="2.2.1" />
|
||||||
<PackageReference Include="Stone_Red-C-Sharp-Utilities" Version="1.0.3.1" />
|
<PackageReference Include="Stone_Red-C-Sharp-Utilities" Version="1.0.3.1" />
|
||||||
<PackageReference Include="System.Management" Version="5.0.0" />
|
<PackageReference Include="System.Management" Version="8.0.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -6,13 +6,17 @@ using System.Windows;
|
|||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
|
|
||||||
namespace DesktopMagic.Dialogs
|
namespace DesktopMagic.Dialogs;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaction logic for ColorDialog.xaml
|
/// Interaction logic for ColorDialog.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class ColorDialog : Window
|
public partial class ColorDialog : Window
|
||||||
{
|
{
|
||||||
|
public System.Drawing.Color ResultColor { get; private set; }
|
||||||
|
|
||||||
|
public Brush ResultBrush { get; private set; }
|
||||||
|
|
||||||
public ColorDialog(string content, System.Drawing.Color defaultColor, string title = "ColorDialog")
|
public ColorDialog(string content, System.Drawing.Color defaultColor, string title = "ColorDialog")
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
@@ -26,10 +30,6 @@ namespace DesktopMagic.Dialogs
|
|||||||
blueSlider.Value = defaultColor.B;
|
blueSlider.Value = defaultColor.B;
|
||||||
}
|
}
|
||||||
|
|
||||||
public System.Drawing.Color ResultColor { get; private set; }
|
|
||||||
|
|
||||||
public Brush ResultBrush { get; private set; }
|
|
||||||
|
|
||||||
private void OkButton_Click(object sender, RoutedEventArgs e)
|
private void OkButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
DialogResult = true;
|
DialogResult = true;
|
||||||
@@ -111,7 +111,7 @@ namespace DesktopMagic.Dialogs
|
|||||||
|
|
||||||
private void SetLanguageDictionary()
|
private void SetLanguageDictionary()
|
||||||
{
|
{
|
||||||
ResourceDictionary dict = new ResourceDictionary();
|
ResourceDictionary dict = [];
|
||||||
string currentCulture = Thread.CurrentThread.CurrentCulture.ToString();
|
string currentCulture = Thread.CurrentThread.CurrentCulture.ToString();
|
||||||
|
|
||||||
if (currentCulture.Contains("de"))
|
if (currentCulture.Contains("de"))
|
||||||
@@ -125,4 +125,3 @@ namespace DesktopMagic.Dialogs
|
|||||||
Resources.MergedDictionaries.Add(dict);
|
Resources.MergedDictionaries.Add(dict);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -2,10 +2,16 @@
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
|
|
||||||
namespace DesktopMagic.Dialogs
|
namespace DesktopMagic.Dialogs;
|
||||||
{
|
|
||||||
public partial class InputDialog : Window
|
public partial class InputDialog : Window
|
||||||
{
|
{
|
||||||
|
public string ResponseText
|
||||||
|
{
|
||||||
|
get => textBox.Text;
|
||||||
|
set => textBox.Text = value;
|
||||||
|
}
|
||||||
|
|
||||||
public InputDialog(string content, string title = "InputDialog")
|
public InputDialog(string content, string title = "InputDialog")
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
@@ -14,12 +20,6 @@ namespace DesktopMagic.Dialogs
|
|||||||
SetLanguageDictionary();
|
SetLanguageDictionary();
|
||||||
}
|
}
|
||||||
|
|
||||||
public string ResponseText
|
|
||||||
{
|
|
||||||
get => textBox.Text;
|
|
||||||
set => textBox.Text = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OkButton_Click(object sender, RoutedEventArgs e)
|
private void OkButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
DialogResult = true;
|
DialogResult = true;
|
||||||
@@ -32,7 +32,7 @@ namespace DesktopMagic.Dialogs
|
|||||||
|
|
||||||
private void SetLanguageDictionary()
|
private void SetLanguageDictionary()
|
||||||
{
|
{
|
||||||
ResourceDictionary dict = new ResourceDictionary();
|
ResourceDictionary dict = [];
|
||||||
string currentCulture = Thread.CurrentThread.CurrentCulture.ToString();
|
string currentCulture = Thread.CurrentThread.CurrentCulture.ToString();
|
||||||
|
|
||||||
if (currentCulture.Contains("de"))
|
if (currentCulture.Contains("de"))
|
||||||
@@ -46,4 +46,3 @@ namespace DesktopMagic.Dialogs
|
|||||||
Resources.MergedDictionaries.Add(dict);
|
Resources.MergedDictionaries.Add(dict);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -7,3 +7,5 @@ using System.Diagnostics.CodeAnalysis;
|
|||||||
|
|
||||||
[assembly: SuppressMessage("Interoperability", "CA1416:Validate platform compatibility", Justification = "Windows only application")]
|
[assembly: SuppressMessage("Interoperability", "CA1416:Validate platform compatibility", Justification = "Windows only application")]
|
||||||
[assembly: SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "No need to")]
|
[assembly: SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "No need to")]
|
||||||
|
[assembly: SuppressMessage("Minor Code Smell", "S1075:URIs should not be hardcoded", Justification = "<Pending>")]
|
||||||
|
[assembly: SuppressMessage("Minor Code Smell", "S3604:Member initializer values should not be redundant", Justification = "False postives")]
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
using System.Globalization;
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
namespace DesktopMagic.Helpers
|
namespace DesktopMagic.Helpers;
|
||||||
{
|
|
||||||
internal static class MultiColorConverter
|
internal static partial class MultiColorConverter
|
||||||
{
|
{
|
||||||
public static string ConvertToHex(System.Drawing.Color color)
|
public static string ConvertToHex(System.Drawing.Color color)
|
||||||
{
|
{
|
||||||
@@ -19,21 +20,21 @@ namespace DesktopMagic.Helpers
|
|||||||
{
|
{
|
||||||
hex = hex.Replace("#", "");
|
hex = hex.Replace("#", "");
|
||||||
|
|
||||||
if (hex.Length == 8 && Regex.IsMatch(hex, "(?:[0-9a-fA-F]{8})"))
|
if (hex.Length == 8 && Hex8().IsMatch(hex))
|
||||||
{
|
{
|
||||||
int a = int.Parse(hex.Substring(0, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
int a = int.Parse(hex.AsSpan(0, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
||||||
int r = int.Parse(hex.Substring(2, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
int r = int.Parse(hex.AsSpan(2, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
||||||
int g = int.Parse(hex.Substring(4, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
int g = int.Parse(hex.AsSpan(4, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
||||||
int b = int.Parse(hex.Substring(6, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
int b = int.Parse(hex.AsSpan(6, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
||||||
color = System.Drawing.Color.FromArgb((byte)a, (byte)r, (byte)g, (byte)b);
|
color = System.Drawing.Color.FromArgb((byte)a, (byte)r, (byte)g, (byte)b);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (hex.Length == 6 && Regex.IsMatch(hex, "(?:[0-9a-fA-F]{6})"))
|
else if (hex.Length == 6 && Hex6().IsMatch(hex))
|
||||||
{
|
{
|
||||||
int a = 255;
|
int a = 255;
|
||||||
int r = int.Parse(hex.Substring(0, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
int r = int.Parse(hex.AsSpan(0, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
||||||
int g = int.Parse(hex.Substring(2, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
int g = int.Parse(hex.AsSpan(2, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
||||||
int b = int.Parse(hex.Substring(4, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
int b = int.Parse(hex.AsSpan(4, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
||||||
color = System.Drawing.Color.FromArgb((byte)a, (byte)r, (byte)g, (byte)b);
|
color = System.Drawing.Color.FromArgb((byte)a, (byte)r, (byte)g, (byte)b);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -48,21 +49,21 @@ namespace DesktopMagic.Helpers
|
|||||||
{
|
{
|
||||||
hex = hex.Replace("#", "");
|
hex = hex.Replace("#", "");
|
||||||
|
|
||||||
if (hex.Length == 8 && Regex.IsMatch(hex, "(?:[0-9a-fA-F]{8})"))
|
if (hex.Length == 8 && Hex8().IsMatch(hex))
|
||||||
{
|
{
|
||||||
int a = int.Parse(hex.Substring(0, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
int a = int.Parse(hex.AsSpan(0, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
||||||
int r = int.Parse(hex.Substring(2, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
int r = int.Parse(hex.AsSpan(2, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
||||||
int g = int.Parse(hex.Substring(4, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
int g = int.Parse(hex.AsSpan(4, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
||||||
int b = int.Parse(hex.Substring(6, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
int b = int.Parse(hex.AsSpan(6, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
||||||
color = System.Windows.Media.Color.FromArgb((byte)a, (byte)r, (byte)g, (byte)b);
|
color = System.Windows.Media.Color.FromArgb((byte)a, (byte)r, (byte)g, (byte)b);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (hex.Length == 6 && Regex.IsMatch(hex, "(?:[0-9a-fA-F]{6})"))
|
else if (hex.Length == 6 && Hex6().IsMatch(hex))
|
||||||
{
|
{
|
||||||
int a = 255;
|
int a = 255;
|
||||||
int r = int.Parse(hex.Substring(0, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
int r = int.Parse(hex.AsSpan(0, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
||||||
int g = int.Parse(hex.Substring(2, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
int g = int.Parse(hex.AsSpan(2, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
||||||
int b = int.Parse(hex.Substring(4, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
int b = int.Parse(hex.AsSpan(4, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
||||||
color = System.Windows.Media.Color.FromArgb((byte)a, (byte)r, (byte)g, (byte)b);
|
color = System.Windows.Media.Color.FromArgb((byte)a, (byte)r, (byte)g, (byte)b);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -72,5 +73,10 @@ namespace DesktopMagic.Helpers
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
[GeneratedRegex("(?:[0-9a-fA-F]{8})")]
|
||||||
|
private static partial Regex Hex8();
|
||||||
|
|
||||||
|
[GeneratedRegex("(?:[0-9a-fA-F]{6})")]
|
||||||
|
private static partial Regex Hex6();
|
||||||
}
|
}
|
||||||
@@ -1,15 +1,14 @@
|
|||||||
using NAudio.Dsp;
|
using NAudio.Dsp;
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace DesktopMagic
|
namespace DesktopMagic.Helpers;
|
||||||
{
|
|
||||||
internal class SampleAggregator
|
internal class SampleAggregator
|
||||||
{
|
{
|
||||||
// FFT
|
// FFT
|
||||||
public event EventHandler<FftEventArgs> FftCalculated;
|
public event EventHandler<FftEventArgs> FftCalculated;
|
||||||
|
|
||||||
public bool PerformFFT { get; set; }
|
|
||||||
|
|
||||||
// This Complex is NAudio's own!
|
// This Complex is NAudio's own!
|
||||||
private readonly Complex[] fftBuffer;
|
private readonly Complex[] fftBuffer;
|
||||||
|
|
||||||
@@ -17,6 +16,7 @@ namespace DesktopMagic
|
|||||||
private readonly int fftLength;
|
private readonly int fftLength;
|
||||||
private readonly int m;
|
private readonly int m;
|
||||||
private int fftPos;
|
private int fftPos;
|
||||||
|
public bool PerformFFT { get; set; }
|
||||||
|
|
||||||
public SampleAggregator(int fftLength)
|
public SampleAggregator(int fftLength)
|
||||||
{
|
{
|
||||||
@@ -24,15 +24,10 @@ namespace DesktopMagic
|
|||||||
{
|
{
|
||||||
throw new ArgumentException("FFT Length must be a power of two");
|
throw new ArgumentException("FFT Length must be a power of two");
|
||||||
}
|
}
|
||||||
this.m = (int)Math.Log(fftLength, 2.0);
|
m = (int)Math.Log(fftLength, 2.0);
|
||||||
this.fftLength = fftLength;
|
this.fftLength = fftLength;
|
||||||
this.fftBuffer = new Complex[fftLength];
|
fftBuffer = new Complex[fftLength];
|
||||||
this.fftArgs = new FftEventArgs(fftBuffer);
|
fftArgs = new FftEventArgs(fftBuffer);
|
||||||
}
|
|
||||||
|
|
||||||
private bool IsPowerOfTwo(int x)
|
|
||||||
{
|
|
||||||
return (x & (x - 1)) == 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Add(float value)
|
public void Add(float value)
|
||||||
@@ -51,15 +46,14 @@ namespace DesktopMagic
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool IsPowerOfTwo(int x)
|
||||||
|
{
|
||||||
|
return (x & (x - 1)) == 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class FftEventArgs : EventArgs
|
public class FftEventArgs(Complex[] result) : EventArgs
|
||||||
{
|
{
|
||||||
public FftEventArgs(Complex[] result)
|
public Complex[] Result { get; private set; } = result;
|
||||||
{
|
|
||||||
this.Result = result;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Complex[] Result { get; private set; }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -4,16 +4,11 @@ using System;
|
|||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
||||||
namespace DesktopMagic.Helpers
|
namespace DesktopMagic.Helpers;
|
||||||
{
|
|
||||||
internal class SettingElementGenerator
|
|
||||||
{
|
|
||||||
private readonly ComboBox optionsComboBox;
|
|
||||||
|
|
||||||
public SettingElementGenerator(ComboBox optionsComboBox)
|
internal class SettingElementGenerator(ComboBox optionsComboBox)
|
||||||
{
|
{
|
||||||
this.optionsComboBox = optionsComboBox;
|
private readonly ComboBox optionsComboBox = optionsComboBox;
|
||||||
}
|
|
||||||
|
|
||||||
public void Generate(SettingElement settingElement, DockPanel dockPanel, TextBlock textBlock)
|
public void Generate(SettingElement settingElement, DockPanel dockPanel, TextBlock textBlock)
|
||||||
{
|
{
|
||||||
@@ -235,4 +230,3 @@ namespace DesktopMagic.Helpers
|
|||||||
window?.Exit();
|
window?.Exit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -2,8 +2,8 @@
|
|||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace DesktopMagic
|
namespace DesktopMagic.Helpers;
|
||||||
{
|
|
||||||
internal class W32
|
internal class W32
|
||||||
{
|
{
|
||||||
public const int SM_CXSCREEN = 0;
|
public const int SM_CXSCREEN = 0;
|
||||||
@@ -17,7 +17,139 @@ namespace DesktopMagic
|
|||||||
|
|
||||||
public const int WM_GETICON = 0x7F;
|
public const int WM_GETICON = 0x7F;
|
||||||
|
|
||||||
public delegate bool EnumWindowsProc(IntPtr hwnd, IntPtr lParam);
|
public delegate bool EnumWindowsProc(nint hwnd, nint lParam);
|
||||||
|
|
||||||
|
[DllImport("gdi32.dll", EntryPoint = "BitBlt")]
|
||||||
|
public static extern bool BitBlt(nint hdcDest, int xDest, int yDest, int wDest, int hDest, nint hdcSource, int xSrc, int ySrc, int RasterOp);
|
||||||
|
|
||||||
|
[DllImport("gdi32.dll", EntryPoint = "CreateCompatibleBitmap")]
|
||||||
|
public static extern nint CreateCompatibleBitmap(nint hdc, int nWidth, int nHeight);
|
||||||
|
|
||||||
|
[DllImport("gdi32.dll", EntryPoint = "CreateCompatibleDC")]
|
||||||
|
public static extern nint CreateCompatibleDC(nint hdc);
|
||||||
|
|
||||||
|
[DllImport("gdi32.dll", EntryPoint = "DeleteDC")]
|
||||||
|
public static extern nint DeleteDC(nint hDc);
|
||||||
|
|
||||||
|
[DllImport("gdi32.dll", EntryPoint = "DeleteObject")]
|
||||||
|
public static extern nint DeleteObject(nint hDc);
|
||||||
|
|
||||||
|
[DllImport("dwmapi.dll")]
|
||||||
|
public static extern int DwmEnableBlurBehindWindow(nint hWnd, ref BbStruct blurBehind);
|
||||||
|
|
||||||
|
[DllImport("DwmApi.dll")]
|
||||||
|
public static extern int DwmExtendFrameIntoClientArea(nint hwnd, ref Margins pMarInset);
|
||||||
|
|
||||||
|
[DllImport("dwmapi.dll", EntryPoint = "#127", PreserveSig = false)]
|
||||||
|
public static extern void DwmGetColorizationParameters(out DWM_COLORIZATION_PARAMS parameters);
|
||||||
|
|
||||||
|
[DllImport("dwmapi.dll", PreserveSig = false)]
|
||||||
|
public static extern bool DwmIsCompositionEnabled();
|
||||||
|
|
||||||
|
[DllImport("dwmapi.dll")]
|
||||||
|
public static extern int DwmIsCompositionEnabled(out bool enabled);
|
||||||
|
|
||||||
|
[DllImport("dwmapi.dll", EntryPoint = "#131", PreserveSig = false)]
|
||||||
|
public static extern void DwmSetColorizationParameters(ref DWM_COLORIZATION_PARAMS parameters, long uUnknown);
|
||||||
|
|
||||||
|
[DllImport("dwmapi.dll")]
|
||||||
|
public static extern int DwmSetWindowAttribute(nint hwnd, int attr, ref int attrValue, int attrSize);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
[return: MarshalAs(UnmanagedType.Bool)]
|
||||||
|
public static extern bool EnumWindows(EnumWindowsProc lpEnumFunc, nint lParam);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
[return: MarshalAs(UnmanagedType.Bool)]
|
||||||
|
public static extern bool EnumChildWindows(nint parentHandle, EnumWindowsProc lpEnumFunc, nint lParam);
|
||||||
|
|
||||||
|
[DllImport("user32.dll", SetLastError = true)]
|
||||||
|
public static extern nint FindWindow(string lpClassName, string lpWindowName);
|
||||||
|
|
||||||
|
[DllImport("user32.dll", SetLastError = true)]
|
||||||
|
public static extern nint FindWindowEx(nint parentHandle, nint childAfter, string className, nint windowTitle);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern uint GetClassLong(nint hWnd, int nIndex);
|
||||||
|
|
||||||
|
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
|
||||||
|
public static extern int GetClassName(nint hWnd, StringBuilder lpClassName, int nMaxCount);
|
||||||
|
|
||||||
|
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
|
||||||
|
public static extern int GetWindowText(nint hWnd, StringBuilder lpWindowText, int nMaxCount);
|
||||||
|
|
||||||
|
[DllImport("user32.dll", EntryPoint = "GetDC")]
|
||||||
|
public static extern nint GetDC(nint ptr);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern nint GetDCEx(nint hWnd, nint hrgnClip, DeviceContextValues flags);
|
||||||
|
|
||||||
|
[DllImport("user32.dll", EntryPoint = "GetDesktopWindow")]
|
||||||
|
public static extern nint GetDesktopWindow();
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern nint GetForegroundWindow();
|
||||||
|
|
||||||
|
[DllImport("user32.dll", ExactSpelling = true, CharSet = CharSet.Auto)]
|
||||||
|
public static extern nint GetParent(nint hWnd);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern nint GetShellWindow();
|
||||||
|
|
||||||
|
[DllImport("user32.dll", EntryPoint = "GetSystemMetrics")]
|
||||||
|
public static extern int GetSystemMetrics(int abc);
|
||||||
|
|
||||||
|
[DllImport("user32.dll", EntryPoint = "GetWindowDC")]
|
||||||
|
public static extern nint GetWindowDC(int ptr);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern bool IsWindowVisible(nint hWnd);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern bool RedrawWindow(nint hWnd, [In] ref RECT lprcUpdate, nint hrgnUpdate, RedrawWindowFlags flags);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern bool RedrawWindow(nint hWnd, nint lprcUpdate, nint hrgnUpdate, RedrawWindowFlags flags);
|
||||||
|
|
||||||
|
[DllImport("user32.dll", EntryPoint = "ReleaseDC")]
|
||||||
|
public static extern nint ReleaseDC(nint hWnd, nint hDc);
|
||||||
|
|
||||||
|
[DllImport("gdi32.dll", EntryPoint = "SelectObject")]
|
||||||
|
public static extern nint SelectObject(nint hdc, nint bmp);
|
||||||
|
|
||||||
|
[DllImport("user32.dll", CharSet = CharSet.Auto)]
|
||||||
|
public static extern nint SendMessage(nint hWnd, uint Msg, int wParam, nint lParam);
|
||||||
|
|
||||||
|
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
|
||||||
|
public static extern nint SendMessageTimeout(nint windowHandle, uint Msg, nint wParam, nint lParam, SendMessageTimeoutFlags flags, uint timeout, out nint result);
|
||||||
|
|
||||||
|
[DllImport("user32.dll", SetLastError = true)]
|
||||||
|
public static extern nint SetParent(nint hWndChild, nint hWndNewParent);
|
||||||
|
|
||||||
|
[DllImport("kernel32.dll")]
|
||||||
|
public static extern bool SetProcessWorkingSetSize(nint handle, int minimumWorkingSetSize, int maximumWorkingSetSize);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
[return: MarshalAs(UnmanagedType.Bool)]
|
||||||
|
public static extern bool EnableWindow(nint hWnd, bool bEnable);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Changes an attribute of the specified window. The function also sets the 32-bit (long) value at the specified offset into the extra window memory.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="hWnd">A handle to the window and, indirectly, the class to which the window belongs..</param>
|
||||||
|
/// <param name="nIndex">GWL_EXSTYLE, GWL_HINSTANCE, GWL_ID, GWL_STYLE, GWL_USERDATA, GWL_WNDPROC </param>
|
||||||
|
/// <param name="dwNewLong">The replacement value.</param>
|
||||||
|
/// <returns>If the function succeeds, the return value is the previous value of the specified 32-bit integer.
|
||||||
|
/// If the function fails, the return value is zero. To get extended error information, call GetLastError. </returns>
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern int SetWindowLong(nint hWnd, WindowLongFlags nIndex, int dwNewLong);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
[return: MarshalAs(UnmanagedType.Bool)]
|
||||||
|
public static extern bool SetWindowPos(nint hWnd, nint hWndInsertAfter, int X, int Y, int cx, int cy, SetWindowPosFlags uFlags);
|
||||||
|
|
||||||
|
[DllImport("user32.dll", CharSet = CharSet.Auto)]
|
||||||
|
public static extern int SystemParametersInfo(uint action, uint uParam, string vParam, uint winIni);
|
||||||
|
|
||||||
[Flags]
|
[Flags]
|
||||||
public enum BbFlags : byte //Blur Behind Flags
|
public enum BbFlags : byte //Blur Behind Flags
|
||||||
@@ -460,144 +592,12 @@ namespace DesktopMagic
|
|||||||
|
|
||||||
#pragma warning disable CA2101
|
#pragma warning disable CA2101
|
||||||
|
|
||||||
[DllImport("gdi32.dll", EntryPoint = "BitBlt")]
|
|
||||||
public static extern bool BitBlt(IntPtr hdcDest, int xDest, int yDest, int wDest, int hDest, IntPtr hdcSource, int xSrc, int ySrc, int RasterOp);
|
|
||||||
|
|
||||||
[DllImport("gdi32.dll", EntryPoint = "CreateCompatibleBitmap")]
|
|
||||||
public static extern IntPtr CreateCompatibleBitmap(IntPtr hdc, int nWidth, int nHeight);
|
|
||||||
|
|
||||||
[DllImport("gdi32.dll", EntryPoint = "CreateCompatibleDC")]
|
|
||||||
public static extern IntPtr CreateCompatibleDC(IntPtr hdc);
|
|
||||||
|
|
||||||
[DllImport("gdi32.dll", EntryPoint = "DeleteDC")]
|
|
||||||
public static extern IntPtr DeleteDC(IntPtr hDc);
|
|
||||||
|
|
||||||
[DllImport("gdi32.dll", EntryPoint = "DeleteObject")]
|
|
||||||
public static extern IntPtr DeleteObject(IntPtr hDc);
|
|
||||||
|
|
||||||
[DllImport("dwmapi.dll")]
|
|
||||||
public static extern int DwmEnableBlurBehindWindow(IntPtr hWnd, ref BbStruct blurBehind);
|
|
||||||
|
|
||||||
[DllImport("DwmApi.dll")]
|
|
||||||
public static extern int DwmExtendFrameIntoClientArea(IntPtr hwnd, ref Margins pMarInset);
|
|
||||||
|
|
||||||
[DllImport("dwmapi.dll", EntryPoint = "#127", PreserveSig = false)]
|
|
||||||
public static extern void DwmGetColorizationParameters(out DWM_COLORIZATION_PARAMS parameters);
|
|
||||||
|
|
||||||
[DllImport("dwmapi.dll", PreserveSig = false)]
|
|
||||||
public static extern bool DwmIsCompositionEnabled();
|
|
||||||
|
|
||||||
[DllImport("dwmapi.dll")]
|
|
||||||
public static extern int DwmIsCompositionEnabled(out bool enabled);
|
|
||||||
|
|
||||||
[DllImport("dwmapi.dll", EntryPoint = "#131", PreserveSig = false)]
|
|
||||||
public static extern void DwmSetColorizationParameters(ref DWM_COLORIZATION_PARAMS parameters, long uUnknown);
|
|
||||||
|
|
||||||
[DllImport("dwmapi.dll")]
|
|
||||||
public static extern int DwmSetWindowAttribute(IntPtr hwnd, int attr, ref int attrValue, int attrSize);
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
[return: MarshalAs(UnmanagedType.Bool)]
|
|
||||||
public static extern bool EnumWindows(EnumWindowsProc lpEnumFunc, IntPtr lParam);
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
[return: MarshalAs(UnmanagedType.Bool)]
|
|
||||||
public static extern bool EnumChildWindows(IntPtr parentHandle, EnumWindowsProc lpEnumFunc, IntPtr lParam);
|
|
||||||
|
|
||||||
[DllImport("user32.dll", SetLastError = true)]
|
|
||||||
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
|
|
||||||
|
|
||||||
[DllImport("user32.dll", SetLastError = true)]
|
|
||||||
public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string className, IntPtr windowTitle);
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
public static extern uint GetClassLong(IntPtr hWnd, int nIndex);
|
|
||||||
|
|
||||||
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
|
|
||||||
public static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);
|
|
||||||
|
|
||||||
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
|
|
||||||
public static extern int GetWindowText(IntPtr hWnd, StringBuilder lpWindowText, int nMaxCount);
|
|
||||||
|
|
||||||
[DllImport("user32.dll", EntryPoint = "GetDC")]
|
|
||||||
public static extern IntPtr GetDC(IntPtr ptr);
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
public static extern IntPtr GetDCEx(IntPtr hWnd, IntPtr hrgnClip, DeviceContextValues flags);
|
|
||||||
|
|
||||||
[DllImport("user32.dll", EntryPoint = "GetDesktopWindow")]
|
|
||||||
public static extern IntPtr GetDesktopWindow();
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
public static extern IntPtr GetForegroundWindow();
|
|
||||||
|
|
||||||
[DllImport("user32.dll", ExactSpelling = true, CharSet = CharSet.Auto)]
|
|
||||||
public static extern IntPtr GetParent(IntPtr hWnd);
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
public static extern IntPtr GetShellWindow();
|
|
||||||
|
|
||||||
[DllImport("user32.dll", EntryPoint = "GetSystemMetrics")]
|
|
||||||
public static extern int GetSystemMetrics(int abc);
|
|
||||||
|
|
||||||
[DllImport("user32.dll", EntryPoint = "GetWindowDC")]
|
|
||||||
public static extern IntPtr GetWindowDC(int ptr);
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
public static extern bool IsWindowVisible(IntPtr hWnd);
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
public static extern bool RedrawWindow(IntPtr hWnd, [In] ref RECT lprcUpdate, IntPtr hrgnUpdate, RedrawWindowFlags flags);
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
public static extern bool RedrawWindow(IntPtr hWnd, IntPtr lprcUpdate, IntPtr hrgnUpdate, RedrawWindowFlags flags);
|
|
||||||
|
|
||||||
[DllImport("user32.dll", EntryPoint = "ReleaseDC")]
|
|
||||||
public static extern IntPtr ReleaseDC(IntPtr hWnd, IntPtr hDc);
|
|
||||||
|
|
||||||
[DllImport("gdi32.dll", EntryPoint = "SelectObject")]
|
|
||||||
public static extern IntPtr SelectObject(IntPtr hdc, IntPtr bmp);
|
|
||||||
|
|
||||||
[DllImport("user32.dll", CharSet = CharSet.Auto)]
|
|
||||||
public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, int wParam, IntPtr lParam);
|
|
||||||
|
|
||||||
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
|
|
||||||
public static extern IntPtr SendMessageTimeout(IntPtr windowHandle, uint Msg, IntPtr wParam, IntPtr lParam, SendMessageTimeoutFlags flags, uint timeout, out IntPtr result);
|
|
||||||
|
|
||||||
[DllImport("user32.dll", SetLastError = true)]
|
|
||||||
public static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
|
|
||||||
|
|
||||||
[DllImport("kernel32.dll")]
|
|
||||||
public static extern bool SetProcessWorkingSetSize(IntPtr handle, int minimumWorkingSetSize, int maximumWorkingSetSize);
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
[return: MarshalAs(UnmanagedType.Bool)]
|
|
||||||
public static extern bool EnableWindow(IntPtr hWnd, bool bEnable);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Changes an attribute of the specified window. The function also sets the 32-bit (long) value at the specified offset into the extra window memory.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="hWnd">A handle to the window and, indirectly, the class to which the window belongs..</param>
|
|
||||||
/// <param name="nIndex">GWL_EXSTYLE, GWL_HINSTANCE, GWL_ID, GWL_STYLE, GWL_USERDATA, GWL_WNDPROC </param>
|
|
||||||
/// <param name="dwNewLong">The replacement value.</param>
|
|
||||||
/// <returns>If the function succeeds, the return value is the previous value of the specified 32-bit integer.
|
|
||||||
/// If the function fails, the return value is zero. To get extended error information, call GetLastError. </returns>
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
public static extern int SetWindowLong(IntPtr hWnd, WindowLongFlags nIndex, int dwNewLong);
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
[return: MarshalAs(UnmanagedType.Bool)]
|
|
||||||
public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, SetWindowPosFlags uFlags);
|
|
||||||
|
|
||||||
[DllImport("user32.dll", CharSet = CharSet.Auto)]
|
|
||||||
public static extern int SystemParametersInfo(uint action, uint uParam, string vParam, uint winIni);
|
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
public struct BbStruct //Blur Behind Structure
|
public struct BbStruct //Blur Behind Structure
|
||||||
{
|
{
|
||||||
public BbFlags Flags;
|
public BbFlags Flags;
|
||||||
public bool Enable;
|
public bool Enable;
|
||||||
public IntPtr Region;
|
public nint Region;
|
||||||
public bool TransitionOnMaximized;
|
public bool TransitionOnMaximized;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -643,13 +643,13 @@ namespace DesktopMagic
|
|||||||
public int X
|
public int X
|
||||||
{
|
{
|
||||||
get => Left;
|
get => Left;
|
||||||
set { Right -= (Left - value); Left = value; }
|
set { Right -= Left - value; Left = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public int Y
|
public int Y
|
||||||
{
|
{
|
||||||
get => Top;
|
get => Top;
|
||||||
set { Bottom -= (Top - value); Top = value; }
|
set { Bottom -= Top - value; Top = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public int Height
|
public int Height
|
||||||
@@ -726,4 +726,3 @@ namespace DesktopMagic
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -25,8 +25,8 @@ namespace DesktopMagic
|
|||||||
{
|
{
|
||||||
#region Global settings
|
#region Global settings
|
||||||
|
|
||||||
internal static Theme Theme { get; } = new Theme();
|
|
||||||
public static bool EditMode { get; private set; } = false;
|
public static bool EditMode { get; private set; } = false;
|
||||||
|
internal static Theme Theme { get; } = new Theme();
|
||||||
|
|
||||||
#endregion Global settings
|
#endregion Global settings
|
||||||
|
|
||||||
@@ -42,18 +42,16 @@ namespace DesktopMagic
|
|||||||
|
|
||||||
#region Plugins settings
|
#region Plugins settings
|
||||||
|
|
||||||
internal static Dictionary<string, List<SettingElement>> PluginsSettings { get; } = new Dictionary<string, List<SettingElement>>();
|
internal static Dictionary<string, List<SettingElement>> PluginsSettings { get; } = [];
|
||||||
|
|
||||||
#endregion Plugins settings
|
#endregion Plugins settings
|
||||||
|
|
||||||
public static List<PluginWindow> Windows { get; } = new List<PluginWindow>();
|
|
||||||
public static List<string> WindowNames { get; } = new List<string>();
|
|
||||||
private readonly RegistryKey key;
|
private readonly RegistryKey key;
|
||||||
private readonly System.Windows.Forms.NotifyIcon notifyIcon = new();
|
private readonly System.Windows.Forms.NotifyIcon notifyIcon = new();
|
||||||
|
|
||||||
private bool loaded = false;
|
private bool loaded = false;
|
||||||
|
|
||||||
private bool blockWindowsClosing = true;
|
private bool blockWindowsClosing = true;
|
||||||
|
public static List<PluginWindow> Windows { get; } = [];
|
||||||
|
public static List<string> WindowNames { get; } = [];
|
||||||
|
|
||||||
public MainWindow()
|
public MainWindow()
|
||||||
{
|
{
|
||||||
@@ -126,7 +124,7 @@ namespace DesktopMagic
|
|||||||
|
|
||||||
foreach (string fileName in Directory.GetFiles(PluginsPath, "*.dll"))
|
foreach (string fileName in Directory.GetFiles(PluginsPath, "*.dll"))
|
||||||
{
|
{
|
||||||
string PluginName = fileName[(fileName.LastIndexOf("\\", StringComparison.InvariantCulture) + 1)..].Replace(fileName[fileName.LastIndexOf(".", StringComparison.InvariantCulture)..], "");
|
string PluginName = fileName[(fileName.LastIndexOf('\\') + 1)..].Replace(fileName[fileName.LastIndexOf('.')..], "");
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
_ = Directory.CreateDirectory(Path.Combine(PluginsPath, PluginName));
|
_ = Directory.CreateDirectory(Path.Combine(PluginsPath, PluginName));
|
||||||
@@ -143,10 +141,10 @@ namespace DesktopMagic
|
|||||||
foreach (string fileName in Directory.GetFiles(directory).Where(s => s.EndsWith(".dll", StringComparison.InvariantCulture) || s.EndsWith(".cs", StringComparison.InvariantCulture)))
|
foreach (string fileName in Directory.GetFiles(directory).Where(s => s.EndsWith(".dll", StringComparison.InvariantCulture) || s.EndsWith(".cs", StringComparison.InvariantCulture)))
|
||||||
{
|
{
|
||||||
string badChars = ",#-<>?!=()*,. ";
|
string badChars = ",#-<>?!=()*,. ";
|
||||||
string PluginName = fileName[(fileName.LastIndexOf("\\", StringComparison.InvariantCulture) + 1)..].Replace(fileName[fileName.LastIndexOf(".", StringComparison.InvariantCulture)..], "");
|
string PluginName = fileName[(fileName.LastIndexOf('\\') + 1)..].Replace(fileName[fileName.LastIndexOf('.')..], "");
|
||||||
string clearPluginName = PluginName;
|
string clearPluginName = PluginName;
|
||||||
|
|
||||||
if (PluginName == directory[(directory.LastIndexOf("\\", StringComparison.InvariantCulture) + 1)..])
|
if (PluginName == directory[(directory.LastIndexOf('\\') + 1)..])
|
||||||
{
|
{
|
||||||
foreach (char c in badChars)
|
foreach (char c in badChars)
|
||||||
{
|
{
|
||||||
@@ -156,9 +154,9 @@ namespace DesktopMagic
|
|||||||
CheckBox checkBox = new()
|
CheckBox checkBox = new()
|
||||||
{
|
{
|
||||||
Name = "_PluginCb_" + clearPluginName,
|
Name = "_PluginCb_" + clearPluginName,
|
||||||
Content = PluginName
|
Content = PluginName,
|
||||||
|
Style = (Style)FindResource("MaterialDesignDarkCheckBox")
|
||||||
};
|
};
|
||||||
checkBox.Style = (Style)FindResource("MaterialDesignDarkCheckBox");
|
|
||||||
checkBox.Click += CheckBox_Click;
|
checkBox.Click += CheckBox_Click;
|
||||||
|
|
||||||
bool exists = false;
|
bool exists = false;
|
||||||
@@ -446,7 +444,7 @@ namespace DesktopMagic
|
|||||||
optionsPanel.UpdateLayout();
|
optionsPanel.UpdateLayout();
|
||||||
|
|
||||||
bool success = PluginsSettings.TryGetValue(optionsComboBox.SelectedItem.ToString(), out List<SettingElement> settingElements);
|
bool success = PluginsSettings.TryGetValue(optionsComboBox.SelectedItem.ToString(), out List<SettingElement> settingElements);
|
||||||
if (!success || settingElements?.Count == 0)
|
if (!success || settingElements is null || settingElements.Count == 0)
|
||||||
{
|
{
|
||||||
_ = optionsPanel.Children.Add(new TextBlock() { Text = (string)FindResource("noOptions") });
|
_ = optionsPanel.Children.Add(new TextBlock() { Text = (string)FindResource("noOptions") });
|
||||||
return;
|
return;
|
||||||
@@ -593,7 +591,7 @@ namespace DesktopMagic
|
|||||||
string[] data = lines[layoutsComboBox.SelectedIndex].Split(';');
|
string[] data = lines[layoutsComboBox.SelectedIndex].Split(';');
|
||||||
foreach (string dat in data.Where(dat => dat.Contains(':')))
|
foreach (string dat in data.Where(dat => dat.Contains(':')))
|
||||||
{
|
{
|
||||||
string value = dat[(dat.LastIndexOf(":", StringComparison.InvariantCulture) + 1)..];
|
string value = dat[(dat.LastIndexOf(':') + 1)..];
|
||||||
string name = dat.Replace(":" + value, "");
|
string name = dat.Replace(":" + value, "");
|
||||||
key.SetValue(name, value);
|
key.SetValue(name, value);
|
||||||
}
|
}
|
||||||
@@ -638,7 +636,7 @@ namespace DesktopMagic
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<string> lines = File.ReadAllLines(App.ApplicationDataPath + "\\layouts.save").ToList();
|
List<string> lines = [.. File.ReadAllLines(App.ApplicationDataPath + "\\layouts.save")];
|
||||||
lines.RemoveAt(layoutsComboBox.SelectedIndex);
|
lines.RemoveAt(layoutsComboBox.SelectedIndex);
|
||||||
File.WriteAllLines(App.ApplicationDataPath + "\\layouts.save", lines);
|
File.WriteAllLines(App.ApplicationDataPath + "\\layouts.save", lines);
|
||||||
LoadLayoutNames();
|
LoadLayoutNames();
|
||||||
@@ -656,7 +654,7 @@ namespace DesktopMagic
|
|||||||
{
|
{
|
||||||
lock (App.ApplicationDataPath)
|
lock (App.ApplicationDataPath)
|
||||||
{
|
{
|
||||||
List<string> lines = File.ReadAllLines(App.ApplicationDataPath + "\\layouts.save").ToList();
|
List<string> lines = [.. File.ReadAllLines(App.ApplicationDataPath + "\\layouts.save")];
|
||||||
StringBuilder content = new StringBuilder();
|
StringBuilder content = new StringBuilder();
|
||||||
foreach (string valueName in key.GetValueNames())
|
foreach (string valueName in key.GetValueNames())
|
||||||
{
|
{
|
||||||
@@ -682,7 +680,7 @@ namespace DesktopMagic
|
|||||||
|
|
||||||
foreach (string line in lines)
|
foreach (string line in lines)
|
||||||
{
|
{
|
||||||
string name = line[(line.LastIndexOf(";", StringComparison.InvariantCulture) + 1)..];
|
string name = line[(line.LastIndexOf(';') + 1)..];
|
||||||
_ = layoutsComboBox.Items.Add(name);
|
_ = layoutsComboBox.Items.Add(name);
|
||||||
}
|
}
|
||||||
layoutsComboBox.SelectedIndex = int.Parse(key.GetValue("SelectedLayout", "0").ToString(), CultureInfo.InvariantCulture);
|
layoutsComboBox.SelectedIndex = int.Parse(key.GetValue("SelectedLayout", "0").ToString(), CultureInfo.InvariantCulture);
|
||||||
@@ -857,7 +855,7 @@ namespace DesktopMagic
|
|||||||
|
|
||||||
private void SetLanguageDictionary()
|
private void SetLanguageDictionary()
|
||||||
{
|
{
|
||||||
ResourceDictionary dict = new ResourceDictionary();
|
ResourceDictionary dict = [];
|
||||||
string currentCulture = Thread.CurrentThread.CurrentUICulture.ToString();
|
string currentCulture = Thread.CurrentThread.CurrentUICulture.ToString();
|
||||||
|
|
||||||
if (currentCulture.Contains("de"))
|
if (currentCulture.Contains("de"))
|
||||||
|
|||||||
@@ -4,14 +4,9 @@ using System.Drawing;
|
|||||||
|
|
||||||
namespace DesktopMagic.Plugins;
|
namespace DesktopMagic.Plugins;
|
||||||
|
|
||||||
internal class PluginData : IPluginData
|
internal class PluginData(PluginWindow window) : IPluginData
|
||||||
{
|
{
|
||||||
private readonly PluginWindow window;
|
private readonly PluginWindow window = window;
|
||||||
|
|
||||||
public PluginData(PluginWindow window)
|
|
||||||
{
|
|
||||||
this.window = window;
|
|
||||||
}
|
|
||||||
|
|
||||||
public string Font => Theme.Font;
|
public string Font => Theme.Font;
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,10 @@ namespace DesktopMagic;
|
|||||||
|
|
||||||
public partial class PluginWindow : Window
|
public partial class PluginWindow : Window
|
||||||
{
|
{
|
||||||
|
public event Action PluginLoaded;
|
||||||
|
|
||||||
|
public event Action OnExit;
|
||||||
|
|
||||||
private readonly RegistryKey key;
|
private readonly RegistryKey key;
|
||||||
private Thread pluginThread;
|
private Thread pluginThread;
|
||||||
private System.Timers.Timer valueTimer;
|
private System.Timers.Timer valueTimer;
|
||||||
@@ -34,10 +38,6 @@ public partial class PluginWindow : Window
|
|||||||
public string PluginName { get; private set; }
|
public string PluginName { get; private set; }
|
||||||
public string PluginFolderPath { get; private set; }
|
public string PluginFolderPath { get; private set; }
|
||||||
|
|
||||||
public event Action PluginLoaded;
|
|
||||||
|
|
||||||
public event Action OnExit;
|
|
||||||
|
|
||||||
public PluginWindow(string pluginName)
|
public PluginWindow(string pluginName)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
@@ -77,6 +77,21 @@ public partial class PluginWindow : Window
|
|||||||
this.pluginClassInstance = pluginClassInstance;
|
this.pluginClassInstance = pluginClassInstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void UpdatePluginWindow()
|
||||||
|
{
|
||||||
|
ValueTimer_Elapsed(valueTimer, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Exit()
|
||||||
|
{
|
||||||
|
IsRunning = false;
|
||||||
|
|
||||||
|
Dispatcher.Invoke(() =>
|
||||||
|
{
|
||||||
|
OnExit?.Invoke();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
protected override void OnSourceInitialized(EventArgs e)
|
protected override void OnSourceInitialized(EventArgs e)
|
||||||
{
|
{
|
||||||
base.OnSourceInitialized(e);
|
base.OnSourceInitialized(e);
|
||||||
@@ -87,18 +102,26 @@ public partial class PluginWindow : Window
|
|||||||
WindowPos.GetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE) | WindowPos.WS_EX_NOACTIVATE);
|
WindowPos.GetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE) | WindowPos.WS_EX_NOACTIVATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Window_ContentRendered(object sender, EventArgs e)
|
private static BitmapSource BitmapToImageSource(Bitmap bitmap)
|
||||||
{
|
{
|
||||||
pluginThread = new Thread(() =>
|
BitmapData bitmapData = bitmap.LockBits(
|
||||||
{
|
new Rectangle(0, 0, bitmap.Width, bitmap.Height),
|
||||||
LoadPlugin();
|
ImageLockMode.ReadOnly, bitmap.PixelFormat);
|
||||||
});
|
|
||||||
pluginThread.Start();
|
BitmapSource bitmapSource = BitmapSource.Create(
|
||||||
|
bitmapData.Width, bitmapData.Height,
|
||||||
|
bitmap.HorizontalResolution, bitmap.VerticalResolution,
|
||||||
|
PixelFormats.Bgra32, null,
|
||||||
|
bitmapData.Scan0, bitmapData.Stride * bitmapData.Height, bitmapData.Stride);
|
||||||
|
|
||||||
|
bitmap.UnlockBits(bitmapData);
|
||||||
|
return bitmapSource;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdatePluginWindow()
|
private void Window_ContentRendered(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
ValueTimer_Elapsed(valueTimer, null);
|
pluginThread = new Thread(LoadPlugin);
|
||||||
|
pluginThread.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateTimer_Elapsed(object sender, ElapsedEventArgs e)
|
private void UpdateTimer_Elapsed(object sender, ElapsedEventArgs e)
|
||||||
@@ -171,7 +194,7 @@ public partial class PluginWindow : Window
|
|||||||
{
|
{
|
||||||
byte[] assemblyBytes = File.ReadAllBytes($"{PluginFolderPath}\\{PluginName}.dll");
|
byte[] assemblyBytes = File.ReadAllBytes($"{PluginFolderPath}\\{PluginName}.dll");
|
||||||
Assembly dll = Assembly.Load(assemblyBytes);
|
Assembly dll = Assembly.Load(assemblyBytes);
|
||||||
Type instanceType = dll.GetTypes().FirstOrDefault(type => type.GetTypeInfo().BaseType == typeof(Plugin));
|
Type instanceType = Array.Find(dll.GetTypes(), type => type.GetTypeInfo().BaseType == typeof(Plugin));
|
||||||
|
|
||||||
if (instanceType is null)
|
if (instanceType is null)
|
||||||
{
|
{
|
||||||
@@ -220,7 +243,7 @@ public partial class PluginWindow : Window
|
|||||||
FieldInfo[] props = instance.GetType().GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.GetField);
|
FieldInfo[] props = instance.GetType().GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.GetField);
|
||||||
#pragma warning restore S3011 // Reflection should not be used to increase accessibility of classes, methods, or fields
|
#pragma warning restore S3011 // Reflection should not be used to increase accessibility of classes, methods, or fields
|
||||||
|
|
||||||
List<SettingElement> settingElements = new List<SettingElement>();
|
List<SettingElement> settingElements = [];
|
||||||
foreach (FieldInfo prop in props)
|
foreach (FieldInfo prop in props)
|
||||||
{
|
{
|
||||||
if (prop.GetValue(instance) is Element element)
|
if (prop.GetValue(instance) is Element element)
|
||||||
@@ -237,15 +260,11 @@ public partial class PluginWindow : Window
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
settingElements = settingElements.OrderBy(x => x.OrderIndex).ToList();
|
settingElements = [.. settingElements.OrderBy(x => x.OrderIndex)];
|
||||||
if (MainWindow.PluginsSettings.ContainsKey(PluginName))
|
if (!MainWindow.PluginsSettings.TryAdd(PluginName, settingElements))
|
||||||
{
|
{
|
||||||
MainWindow.PluginsSettings[PluginName] = settingElements;
|
MainWindow.PluginsSettings[PluginName] = settingElements;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
MainWindow.PluginsSettings.Add(PluginName, settingElements);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -307,32 +326,6 @@ public partial class PluginWindow : Window
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static BitmapSource BitmapToImageSource(Bitmap bitmap)
|
|
||||||
{
|
|
||||||
BitmapData bitmapData = bitmap.LockBits(
|
|
||||||
new Rectangle(0, 0, bitmap.Width, bitmap.Height),
|
|
||||||
ImageLockMode.ReadOnly, bitmap.PixelFormat);
|
|
||||||
|
|
||||||
BitmapSource bitmapSource = BitmapSource.Create(
|
|
||||||
bitmapData.Width, bitmapData.Height,
|
|
||||||
bitmap.HorizontalResolution, bitmap.VerticalResolution,
|
|
||||||
PixelFormats.Bgra32, null,
|
|
||||||
bitmapData.Scan0, bitmapData.Stride * bitmapData.Height, bitmapData.Stride);
|
|
||||||
|
|
||||||
bitmap.UnlockBits(bitmapData);
|
|
||||||
return bitmapSource;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Exit()
|
|
||||||
{
|
|
||||||
IsRunning = false;
|
|
||||||
|
|
||||||
Dispatcher.Invoke(() =>
|
|
||||||
{
|
|
||||||
OnExit?.Invoke();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
|
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
|
||||||
{
|
{
|
||||||
pluginClassInstance?.Stop();
|
pluginClassInstance?.Stop();
|
||||||
|
|||||||
@@ -2,16 +2,9 @@
|
|||||||
|
|
||||||
namespace DesktopMagic.Plugins;
|
namespace DesktopMagic.Plugins;
|
||||||
|
|
||||||
internal class SettingElement
|
internal class SettingElement(Element element, string name, int orderIndex)
|
||||||
{
|
{
|
||||||
public Element Element { get; }
|
public Element Element { get; } = element;
|
||||||
public string Name { get; }
|
public string Name { get; } = name;
|
||||||
public int OrderIndex { get; }
|
public int OrderIndex { get; } = orderIndex;
|
||||||
|
|
||||||
public SettingElement(Element element, string name, int orderIndex)
|
|
||||||
{
|
|
||||||
Element = element;
|
|
||||||
Name = name;
|
|
||||||
OrderIndex = orderIndex;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,12 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net6.0</TargetFramework>
|
<TargetFramework>net8.0-windows</TargetFramework>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="System.Drawing.Common" Version="5.0.2" />
|
<PackageReference Include="System.Drawing.Common" Version="8.0.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -8,22 +8,22 @@ using System.Drawing.Imaging;
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace DesktopMagicPlugin.Test
|
namespace DesktopMagicPlugin.Test;
|
||||||
{
|
|
||||||
public class GifPlugin : Plugin
|
public class GifPlugin : Plugin
|
||||||
{
|
{
|
||||||
|
private const string SaveFilePath = "gifPath.txt";
|
||||||
|
|
||||||
[Element("Gif path:")]
|
[Element("Gif path:")]
|
||||||
private readonly TextBox input = new TextBox("");
|
private readonly TextBox input = new TextBox("");
|
||||||
|
|
||||||
[Element]
|
[Element]
|
||||||
private readonly Label info = new Label("");
|
private readonly Label info = new Label("");
|
||||||
|
|
||||||
private readonly List<Bitmap> bitmaps = new List<Bitmap>();
|
private readonly List<Bitmap> bitmaps = [];
|
||||||
|
|
||||||
private int frameCount = -1;
|
private int frameCount = -1;
|
||||||
|
|
||||||
private const string SaveFilePath = "gifPath.txt";
|
|
||||||
|
|
||||||
public override void Start()
|
public override void Start()
|
||||||
{
|
{
|
||||||
input.OnValueChanged += Input_OnValueChanged;
|
input.OnValueChanged += Input_OnValueChanged;
|
||||||
@@ -33,42 +33,6 @@ namespace DesktopMagicPlugin.Test
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Input_OnValueChanged()
|
|
||||||
{
|
|
||||||
_ = Task.Run(() =>
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (File.Exists(input.Value))
|
|
||||||
{
|
|
||||||
info.Value = "Loading...";
|
|
||||||
Image gif = Image.FromFile(input.Value);
|
|
||||||
|
|
||||||
PropertyItem item = gif.GetPropertyItem(0x5100); // FrameDelay in libgdiplus
|
|
||||||
|
|
||||||
UpdateInterval = (item.Value[0] + item.Value[1] * 256) * 10; //FrameDelay in ms
|
|
||||||
bitmaps.Clear();
|
|
||||||
for (int i = 0; i < gif.GetFrameCount(FrameDimension.Time); i++)
|
|
||||||
{
|
|
||||||
gif.SelectActiveFrame(FrameDimension.Time, i);
|
|
||||||
|
|
||||||
bitmaps.Add(new Bitmap(gif));
|
|
||||||
}
|
|
||||||
File.WriteAllText(SaveFilePath, input.Value);
|
|
||||||
info.Value = string.Empty;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
info.Value = "File not found!";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
info.Value = $"Error: {ex.Message}";
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public override Bitmap Main()
|
public override Bitmap Main()
|
||||||
{
|
{
|
||||||
if (bitmaps.Count == 0)
|
if (bitmaps.Count == 0)
|
||||||
@@ -85,5 +49,40 @@ namespace DesktopMagicPlugin.Test
|
|||||||
|
|
||||||
return bitmaps[frameCount];
|
return bitmaps[frameCount];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Input_OnValueChanged()
|
||||||
|
{
|
||||||
|
_ = Task.Run(() =>
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (File.Exists(input.Value))
|
||||||
|
{
|
||||||
|
info.Value = "Loading...";
|
||||||
|
Image gif = Image.FromFile(input.Value);
|
||||||
|
|
||||||
|
PropertyItem item = gif.GetPropertyItem(0x5100); // FrameDelay in libgdiplus
|
||||||
|
|
||||||
|
UpdateInterval = (item.Value[0] + (item.Value[1] * 256)) * 10; //FrameDelay in ms
|
||||||
|
bitmaps.Clear();
|
||||||
|
for (int i = 0; i < gif.GetFrameCount(FrameDimension.Time); i++)
|
||||||
|
{
|
||||||
|
_ = gif.SelectActiveFrame(FrameDimension.Time, i);
|
||||||
|
|
||||||
|
bitmaps.Add(new Bitmap(gif));
|
||||||
|
}
|
||||||
|
File.WriteAllText(SaveFilePath, input.Value);
|
||||||
|
info.Value = string.Empty;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
info.Value = "File not found!";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
info.Value = $"Error: {ex.Message}";
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
###############
|
|
||||||
# folder #
|
|
||||||
###############
|
|
||||||
/**/DROP/
|
|
||||||
/**/TEMP/
|
|
||||||
/**/packages/
|
|
||||||
/**/bin/
|
|
||||||
/**/obj/
|
|
||||||
_site
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net6.0</TargetFramework>
|
<TargetFramework>net8.0-windows</TargetFramework>
|
||||||
<Company>Stone_Red</Company>
|
<Company>Stone_Red</Company>
|
||||||
<Product>Stone_Red</Product>
|
<Product>Stone_Red</Product>
|
||||||
<Version>0.0.0.5</Version>
|
<Version>0.0.0.5</Version>
|
||||||
@@ -22,11 +22,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="docfx.console" Version="2.58.9">
|
<PackageReference Include="System.Drawing.Common" Version="8.0.0" />
|
||||||
<PrivateAssets>all</PrivateAssets>
|
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
||||||
</PackageReference>
|
|
||||||
<PackageReference Include="System.Drawing.Common" Version="5.0.2" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -1,468 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<doc>
|
|
||||||
<assembly>
|
|
||||||
<name>DesktopMagicPluginAPI</name>
|
|
||||||
</assembly>
|
|
||||||
<members>
|
|
||||||
<member name="T:DesktopMagicPluginAPI.Drawing.GraphicsExtentions">
|
|
||||||
<summary>
|
|
||||||
Extensions for the <see cref="T:System.Drawing.Graphics"/> class.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Drawing.GraphicsExtentions.DrawStringMonospace(System.Drawing.Graphics,System.String,System.Drawing.Font,System.Drawing.Brush,System.Single,System.Single)">
|
|
||||||
<summary>
|
|
||||||
<inheritdoc cref="M:System.Drawing.Graphics.DrawString(System.String,System.Drawing.Font,System.Drawing.Brush,System.Single,System.Single)"/>
|
|
||||||
</summary>
|
|
||||||
<param name="graphics">Graphics object.</param>
|
|
||||||
<param name="s">String to draw.</param>
|
|
||||||
<param name="font"><see cref="T:System.Drawing.Font"/> that defines the text format of the string.</param>
|
|
||||||
<param name="brush"><see cref="T:System.Drawing.Brush"/> that determines the color and texture of the drawn text.</param>
|
|
||||||
<param name="x">The x-coordinate of the upper-left corner of the drawn text.</param>
|
|
||||||
<param name="y">The y-coordinate of the upper-left corner of the drawn text.</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Drawing.GraphicsExtentions.DrawStringMonospace(System.Drawing.Graphics,System.String,System.Drawing.Font,System.Drawing.Brush,System.Drawing.PointF)">
|
|
||||||
<summary>
|
|
||||||
<inheritdoc cref="M:System.Drawing.Graphics.DrawString(System.String,System.Drawing.Font,System.Drawing.Brush,System.Drawing.PointF)"/>
|
|
||||||
</summary>
|
|
||||||
<param name="graphics">Graphics object.</param>
|
|
||||||
<param name="s">String to draw.</param>
|
|
||||||
<param name="font"><see cref="T:System.Drawing.Font"/> that defines the text format of the string.</param>
|
|
||||||
<param name="brush"><see cref="T:System.Drawing.Brush"/> that determines the color and texture of the drawn text.</param>
|
|
||||||
<param name="point"><see cref="T:System.Drawing.PointF"/> structure that specifies the upper-left corner of the drawn text.</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Drawing.GraphicsExtentions.DrawStringFixedWidth(System.Drawing.Graphics,System.String,System.Drawing.Font,System.Drawing.Brush,System.Single,System.Single,System.Single)">
|
|
||||||
<summary>
|
|
||||||
<inheritdoc cref="M:System.Drawing.Graphics.DrawString(System.String,System.Drawing.Font,System.Drawing.Brush,System.Single,System.Single)"/>
|
|
||||||
</summary>
|
|
||||||
<param name="graphics">Graphics object.</param>
|
|
||||||
<param name="s">String to draw.</param>
|
|
||||||
<param name="font"><see cref="T:System.Drawing.Font"/> that defines the text format of the string.</param>
|
|
||||||
<param name="brush"><see cref="T:System.Drawing.Brush"/> that determines the color and texture of the drawn text.</param>
|
|
||||||
<param name="x">The x-coordinate of the upper-left corner of the drawn text.</param>
|
|
||||||
<param name="y">The y-coordinate of the upper-left corner of the drawn text.</param>
|
|
||||||
/// <param name="width">The specified width.</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Drawing.GraphicsExtentions.DrawStringFixedWidth(System.Drawing.Graphics,System.String,System.Drawing.Font,System.Drawing.Brush,System.Drawing.PointF,System.Single)">
|
|
||||||
<summary>
|
|
||||||
<inheritdoc cref="M:System.Drawing.Graphics.DrawString(System.String,System.Drawing.Font,System.Drawing.Brush,System.Drawing.PointF)"/>
|
|
||||||
</summary>
|
|
||||||
<param name="graphics">Graphics object.</param>
|
|
||||||
<param name="s">String to draw.</param>
|
|
||||||
<param name="font"><see cref="T:System.Drawing.Font"/> that defines the text format of the string.</param>
|
|
||||||
<param name="brush"><see cref="T:System.Drawing.Brush"/> that determines the color and texture of the drawn text.</param>
|
|
||||||
<param name="point"><see cref="T:System.Drawing.PointF"/> structure that specifies the upper-left corner of the drawn text.</param>
|
|
||||||
<param name="width">The specified width.</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Drawing.GraphicsExtentions.DrawStringNoLeftPadding(System.Drawing.Graphics,System.String,System.Drawing.Font,System.Drawing.Brush,System.Single,System.Single)">
|
|
||||||
<summary>
|
|
||||||
<inheritdoc cref="M:System.Drawing.Graphics.DrawString(System.String,System.Drawing.Font,System.Drawing.Brush,System.Single,System.Single)"/>
|
|
||||||
</summary>
|
|
||||||
<param name="graphics">Graphics object.</param>
|
|
||||||
<param name="s">String to draw.</param>
|
|
||||||
<param name="font"><see cref="T:System.Drawing.Font"/> that defines the text format of the string.</param>
|
|
||||||
<param name="brush"><see cref="T:System.Drawing.Brush"/> that determines the color and texture of the drawn text.</param>
|
|
||||||
<param name="x">The x-coordinate of the upper-left corner of the drawn text.</param>
|
|
||||||
<param name="y">The y-coordinate of the upper-left corner of the drawn text.</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Drawing.GraphicsExtentions.DrawStringNoLeftPadding(System.Drawing.Graphics,System.String,System.Drawing.Font,System.Drawing.Brush,System.Drawing.PointF)">
|
|
||||||
<summary>
|
|
||||||
<inheritdoc cref="M:System.Drawing.Graphics.DrawString(System.String,System.Drawing.Font,System.Drawing.Brush,System.Drawing.PointF)"/>
|
|
||||||
</summary>
|
|
||||||
<param name="graphics">Graphics object.</param>
|
|
||||||
<param name="s">String to draw.</param>
|
|
||||||
<param name="font"><see cref="T:System.Drawing.Font"/> that defines the text format of the string.</param>
|
|
||||||
<param name="brush"><see cref="T:System.Drawing.Brush"/> that determines the color and texture of the drawn text.</param>
|
|
||||||
<param name="point"><see cref="T:System.Drawing.PointF"/> structure that specifies the upper-left corner of the drawn text.</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Drawing.GraphicsExtentions.MeasureStringNoLeftPadding(System.Drawing.Graphics,System.String,System.Drawing.Font)">
|
|
||||||
<summary>
|
|
||||||
<inheritdoc cref="M:System.Drawing.Graphics.MeasureString(System.String,System.Drawing.Font)"/>
|
|
||||||
</summary>
|
|
||||||
<param name="graphics">Graphics object.</param>
|
|
||||||
<param name="text">String to measure.</param>
|
|
||||||
<param name="font"><see cref="T:System.Drawing.Font"/> that defines the text format of the string.</param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="T:DesktopMagicPluginAPI.Drawing.RenderQuality">
|
|
||||||
<summary>
|
|
||||||
Specifies which render quality is used to display the bitmap images.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:DesktopMagicPluginAPI.Drawing.RenderQuality.High">
|
|
||||||
<summary>
|
|
||||||
Slower then <see cref="F:DesktopMagicPluginAPI.Drawing.RenderQuality.Low"/> but produces higher quality output.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:DesktopMagicPluginAPI.Drawing.RenderQuality.Low">
|
|
||||||
<summary>
|
|
||||||
Faster then <see cref="F:DesktopMagicPluginAPI.Drawing.RenderQuality.High"/> but produces lower quality output.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:DesktopMagicPluginAPI.Drawing.RenderQuality.Performance">
|
|
||||||
<summary>
|
|
||||||
Provides performance benefits over <see cref="F:DesktopMagicPluginAPI.Drawing.RenderQuality.Low"/>
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="T:DesktopMagicPluginAPI.Inputs.Button">
|
|
||||||
<summary>
|
|
||||||
Represents a button control.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="E:DesktopMagicPluginAPI.Inputs.Button.OnClick">
|
|
||||||
<summary>
|
|
||||||
Occurs when the button gets clicked.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.Inputs.Button.Value">
|
|
||||||
<summary>
|
|
||||||
Gets or sets the text caption displayed in the <see cref="T:DesktopMagicPluginAPI.Inputs.Button"/> element.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Inputs.Button.#ctor(System.String)">
|
|
||||||
<summary>
|
|
||||||
Initializes a new instance of the <see cref="T:DesktopMagicPluginAPI.Inputs.Button"/> class with the provided <paramref name="value"/>.
|
|
||||||
</summary>
|
|
||||||
<param name="value">The text caption displayed in the <see cref="T:DesktopMagicPluginAPI.Inputs.Button"/> control.</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Inputs.Button.Click">
|
|
||||||
<summary>
|
|
||||||
Triggers the <see cref="E:DesktopMagicPluginAPI.Inputs.Button.OnClick"/> event.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="T:DesktopMagicPluginAPI.Inputs.CheckBox">
|
|
||||||
<summary>
|
|
||||||
Represents a check box control.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.Inputs.CheckBox.Value">
|
|
||||||
<summary>
|
|
||||||
Gets or set a value indicating whether the <see cref="T:DesktopMagicPluginAPI.Inputs.CheckBox"/> is in the checked state.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Inputs.CheckBox.#ctor(System.Boolean)">
|
|
||||||
<summary>
|
|
||||||
Initializes a new instance of the <see cref="T:DesktopMagicPluginAPI.Inputs.CheckBox"/> class with the provided <paramref name="value"/>.
|
|
||||||
</summary>
|
|
||||||
<param name="value">A value indicating whether the <see cref="T:DesktopMagicPluginAPI.Inputs.CheckBox"/> is in the checked state.</param>
|
|
||||||
</member>
|
|
||||||
<member name="T:DesktopMagicPluginAPI.Inputs.ComboBox">
|
|
||||||
<summary>
|
|
||||||
Represents a selection control with a drop-down list.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.Inputs.ComboBox.Items">
|
|
||||||
<summary>
|
|
||||||
Gets the collection used to generate the content of the <see cref="T:DesktopMagicPluginAPI.Inputs.ComboBox"/>.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.Inputs.ComboBox.Value">
|
|
||||||
<summary>
|
|
||||||
Gets the currently selected item associated with this <see cref="T:DesktopMagicPluginAPI.Inputs.ComboBox"/>.
|
|
||||||
</summary>
|
|
||||||
<remarks>If you assign a value to this property, the displayed text in the user interface will not be changed.</remarks>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Inputs.ComboBox.#ctor(System.String[])">
|
|
||||||
<summary>
|
|
||||||
Initializes a new instance of the <see cref="T:DesktopMagicPluginAPI.Inputs.Label"/> class with the provided <paramref name="items"/>.
|
|
||||||
</summary>
|
|
||||||
<param name="items"></param>
|
|
||||||
</member>
|
|
||||||
<member name="T:DesktopMagicPluginAPI.Inputs.Element">
|
|
||||||
<summary>
|
|
||||||
The element base class.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="E:DesktopMagicPluginAPI.Inputs.Element.OnValueChanged">
|
|
||||||
<summary>
|
|
||||||
Occurs when the value has been changed.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Inputs.Element.ValueChanged">
|
|
||||||
<summary>
|
|
||||||
Triggers the <see cref="E:DesktopMagicPluginAPI.Inputs.Element.OnValueChanged"/> event.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="T:DesktopMagicPluginAPI.Inputs.ElementAttribute">
|
|
||||||
<summary>
|
|
||||||
Marks a Property as element.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.Inputs.ElementAttribute.Name">
|
|
||||||
<summary>
|
|
||||||
The name of the element.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.Inputs.ElementAttribute.OrderIndex">
|
|
||||||
<summary>
|
|
||||||
The order index of the element.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Inputs.ElementAttribute.#ctor(System.String,System.Int32)">
|
|
||||||
<summary>
|
|
||||||
Marks a Property as element with the provided <paramref name="name"/> and <paramref name="orderIndex"/>.
|
|
||||||
</summary>
|
|
||||||
<param name="name">The name of the element.</param>
|
|
||||||
<param name="orderIndex">The order index of the element.</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Inputs.ElementAttribute.#ctor(System.Int32)">
|
|
||||||
<summary>
|
|
||||||
Marks a Property as element with the provided <paramref name="orderIndex"/>.
|
|
||||||
</summary>
|
|
||||||
<param name="orderIndex">The order index of the element.</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Inputs.ElementAttribute.#ctor">
|
|
||||||
<inheritdoc cref="T:DesktopMagicPluginAPI.Inputs.ElementAttribute"/>
|
|
||||||
</member>
|
|
||||||
<member name="T:DesktopMagicPluginAPI.Inputs.IntegerUpDown">
|
|
||||||
<summary>
|
|
||||||
Represents a up-down control.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.Inputs.IntegerUpDown.Maximum">
|
|
||||||
<summary>
|
|
||||||
Gets or sets the maximum value for the <see cref="T:DesktopMagicPluginAPI.Inputs.IntegerUpDown"/> element.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.Inputs.IntegerUpDown.Minimum">
|
|
||||||
<summary>
|
|
||||||
Gets or sets the minimum value for the <see cref="T:DesktopMagicPluginAPI.Inputs.IntegerUpDown"/> element.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.Inputs.IntegerUpDown.Value">
|
|
||||||
<summary>
|
|
||||||
Gets or sets the value assigned to the <see cref="T:DesktopMagicPluginAPI.Inputs.IntegerUpDown"/> element.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Inputs.IntegerUpDown.#ctor(System.Int32,System.Int32,System.Int32)">
|
|
||||||
<summary>
|
|
||||||
Initializes a new instance of the <see cref="T:DesktopMagicPluginAPI.Inputs.IntegerUpDown"/> class with the provided <paramref name="min"/> value, <paramref name="max"/> value and <paramref name="value"/>.
|
|
||||||
</summary>
|
|
||||||
<param name="min">The maximum value for the <see cref="T:DesktopMagicPluginAPI.Inputs.IntegerUpDown"/> element.</param>
|
|
||||||
<param name="max">The minimum value for the <see cref="T:DesktopMagicPluginAPI.Inputs.IntegerUpDown"/> element.</param>
|
|
||||||
<param name="value">The value assigned to the <see cref="T:DesktopMagicPluginAPI.Inputs.IntegerUpDown"/> element.</param>
|
|
||||||
<exception cref="T:System.ArgumentException"></exception>
|
|
||||||
</member>
|
|
||||||
<member name="T:DesktopMagicPluginAPI.Inputs.Label">
|
|
||||||
<summary>
|
|
||||||
Represents a label control.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.Inputs.Label.Value">
|
|
||||||
<summary>
|
|
||||||
Gets or sets the text associated with this <see cref="T:DesktopMagicPluginAPI.Inputs.Label"/>.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.Inputs.Label.Bold">
|
|
||||||
<summary>
|
|
||||||
Gets or set a value indicating whether the content of the <see cref="T:DesktopMagicPluginAPI.Inputs.Label"/> is bold or not.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Inputs.Label.#ctor(System.String,System.Boolean)">
|
|
||||||
<summary>
|
|
||||||
Initializes a new instance of the <see cref="T:DesktopMagicPluginAPI.Inputs.Label"/> class with the provided <paramref name="value"/>.
|
|
||||||
</summary>
|
|
||||||
<param name="value">The text associated with this <see cref="T:DesktopMagicPluginAPI.Inputs.Label"/></param>
|
|
||||||
<param name="bold">A value indicating whether the content of the <see cref="T:DesktopMagicPluginAPI.Inputs.Label"/> is bold or not.</param>
|
|
||||||
</member>
|
|
||||||
<member name="T:DesktopMagicPluginAPI.Inputs.MouseButton">
|
|
||||||
<summary>
|
|
||||||
Mouse Buttons
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:DesktopMagicPluginAPI.Inputs.MouseButton.Left">
|
|
||||||
<summary>
|
|
||||||
The left mouse button.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:DesktopMagicPluginAPI.Inputs.MouseButton.Middle">
|
|
||||||
<summary>
|
|
||||||
The middle mouse button.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:DesktopMagicPluginAPI.Inputs.MouseButton.Right">
|
|
||||||
<summary>
|
|
||||||
The right mouse button.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="T:DesktopMagicPluginAPI.Inputs.Slider">
|
|
||||||
<summary>
|
|
||||||
Represents a slider control.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.Inputs.Slider.Maximum">
|
|
||||||
<summary>
|
|
||||||
Gets or sets the maximum value for the <see cref="T:DesktopMagicPluginAPI.Inputs.Slider"/> element.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.Inputs.Slider.Minimum">
|
|
||||||
<summary>
|
|
||||||
Gets or sets the minimum value for the <see cref="T:DesktopMagicPluginAPI.Inputs.Slider"/> element.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.Inputs.Slider.Value">
|
|
||||||
<summary>
|
|
||||||
Gets or sets the value assigned to the <see cref="T:DesktopMagicPluginAPI.Inputs.Slider"/> element.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Inputs.Slider.#ctor(System.Double,System.Double,System.Double)">
|
|
||||||
<summary>
|
|
||||||
Initializes a new instance of the <see cref="T:DesktopMagicPluginAPI.Inputs.Slider"/> class with the provided <paramref name="min"/> value, <paramref name="max"/> value and <paramref name="value"/>.
|
|
||||||
</summary>
|
|
||||||
<param name="min">The maximum value for the <see cref="T:DesktopMagicPluginAPI.Inputs.Slider"/> element.</param>
|
|
||||||
<param name="max">The minimum value for the <see cref="T:DesktopMagicPluginAPI.Inputs.Slider"/> element.</param>
|
|
||||||
<param name="value">The value assigned to the <see cref="T:DesktopMagicPluginAPI.Inputs.Slider"/> element.</param>
|
|
||||||
</member>
|
|
||||||
<member name="T:DesktopMagicPluginAPI.Inputs.TextBox">
|
|
||||||
<summary>
|
|
||||||
Represents a text box control.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.Inputs.TextBox.Value">
|
|
||||||
<summary>
|
|
||||||
Gets or sets the text associated with this <see cref="T:DesktopMagicPluginAPI.Inputs.TextBox"/>.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Inputs.TextBox.#ctor(System.String)">
|
|
||||||
<summary>
|
|
||||||
Initializes a new instance of the <see cref="T:DesktopMagicPluginAPI.Inputs.TextBox"/> class with the provided <paramref name="value"/>.
|
|
||||||
</summary>
|
|
||||||
<param name="value">The text associated with this control.</param>
|
|
||||||
</member>
|
|
||||||
<member name="T:DesktopMagicPluginAPI.IPluginData">
|
|
||||||
<summary>
|
|
||||||
Defines properties and methods that provide information about the main application.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.IPluginData.Font">
|
|
||||||
<summary>
|
|
||||||
Gets the current font of the current theme.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.IPluginData.Color">
|
|
||||||
<summary>
|
|
||||||
Gets the current color of the current theme.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.IPluginData.Theme">
|
|
||||||
<summary>
|
|
||||||
Gets the current theme setting of the main application.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.IPluginData.WindowSize">
|
|
||||||
<summary>
|
|
||||||
Gets the window size of the plugin window.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.IPluginData.WindowPosition">
|
|
||||||
<summary>
|
|
||||||
Gets the window position of the plugin window.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.IPluginData.PluginName">
|
|
||||||
<summary>
|
|
||||||
Gets the name of the plugin.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.IPluginData.PluginPath">
|
|
||||||
<summary>
|
|
||||||
Gets the path of the parent directory of the plugin.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.IPluginData.UpdateWindow">
|
|
||||||
<summary>
|
|
||||||
Updates the plugin window.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="T:DesktopMagicPluginAPI.ITheme">
|
|
||||||
<summary>
|
|
||||||
The theme settings of the main application.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.ITheme.PrimaryColor">
|
|
||||||
<summary>
|
|
||||||
Gets the primary color of the current theme.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.ITheme.SecondaryColor">
|
|
||||||
<summary>
|
|
||||||
Gets the secondary color of the current theme.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.ITheme.BackgroundColor">
|
|
||||||
<summary>
|
|
||||||
Gets the background color of the current theme.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.ITheme.Font">
|
|
||||||
<summary>
|
|
||||||
Gets the font of the current theme.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.ITheme.CornerRadius">
|
|
||||||
<summary>
|
|
||||||
Gets the corner radius of the current theme.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.ITheme.Margin">
|
|
||||||
<summary>
|
|
||||||
Gets the corner radius of the current theme.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="T:DesktopMagicPluginAPI.Plugin">
|
|
||||||
<summary>
|
|
||||||
The plugin class.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.Plugin.Application">
|
|
||||||
<summary>
|
|
||||||
Informations about the main application.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.Plugin.UpdateInterval">
|
|
||||||
<summary>
|
|
||||||
Gets or sets the interval, expressed in milliseconds, at which to call the <see cref="M:DesktopMagicPluginAPI.Plugin.Main"/> method.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:DesktopMagicPluginAPI.Plugin.RenderQuality">
|
|
||||||
<summary>
|
|
||||||
Gets or sets the render quality of the bitmap image.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Plugin.Start">
|
|
||||||
<summary>
|
|
||||||
Occurs once when the plugin gets activated.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Plugin.Stop">
|
|
||||||
<summary>
|
|
||||||
Occurs once when the plugin gets deactivated.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Plugin.Main">
|
|
||||||
<summary>
|
|
||||||
Occurs when the <see cref="P:DesktopMagicPluginAPI.Plugin.UpdateInterval"/> elapses.
|
|
||||||
</summary>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Plugin.OnMouseClick(System.Drawing.Point,DesktopMagicPluginAPI.Inputs.MouseButton)">
|
|
||||||
<summary>
|
|
||||||
Occurs when the window is clicked by the mouse.
|
|
||||||
</summary>
|
|
||||||
<param name="position">The x- and y-coordinates of the mouse pointer position relative to the plugin window.</param>
|
|
||||||
<param name="mouseButton">The button associated with the event.</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Plugin.OnMouseMove(System.Drawing.Point)">
|
|
||||||
<summary>
|
|
||||||
Occurs when the mouse pointer is moved over the control.
|
|
||||||
</summary>
|
|
||||||
<param name="position">The x- and y-coordinates of the mouse pointer position relative to the plugin window.</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:DesktopMagicPluginAPI.Plugin.OnMouseWheel(System.Drawing.Point,System.Int32)">
|
|
||||||
<summary>
|
|
||||||
Occurs when the user rotates the mouse wheel while the mouse pointer is over this element.
|
|
||||||
</summary>
|
|
||||||
<param name="position">The x- and y-coordinates of the mouse pointer position relative to the plugin window.</param>
|
|
||||||
<param name="delta">A value that indicates the amount that the mouse wheel has changed.</param>
|
|
||||||
</member>
|
|
||||||
</members>
|
|
||||||
</doc>
|
|
||||||
@@ -1,20 +1,28 @@
|
|||||||
using System;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace DesktopMagicPluginAPI.Drawing
|
namespace DesktopMagicPluginAPI.Drawing;
|
||||||
{
|
|
||||||
internal class FontComparer : IEqualityComparer<Font>
|
internal class FontComparer : IEqualityComparer<Font>
|
||||||
{
|
{
|
||||||
public bool Equals(Font font1, Font font2)
|
public bool Equals(Font font1, Font font2)
|
||||||
{
|
{
|
||||||
if (font1.Name != font2.Name) return false;
|
if (font1.Name != font2.Name)
|
||||||
if (font1.SizeInPoints != font2.SizeInPoints) return false;
|
{
|
||||||
if (font1.Style != font2.Style) return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (font1.SizeInPoints != font2.SizeInPoints)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (font1.Style != font2.Style)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -23,4 +31,3 @@ namespace DesktopMagicPluginAPI.Drawing
|
|||||||
return obj.GetHashCode();
|
return obj.GetHashCode();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -2,8 +2,8 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
|
||||||
namespace DesktopMagicPluginAPI.Drawing
|
namespace DesktopMagicPluginAPI.Drawing;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Extensions for the <see cref="Graphics"/> class.
|
/// Extensions for the <see cref="Graphics"/> class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -104,7 +104,7 @@ namespace DesktopMagicPluginAPI.Drawing
|
|||||||
{
|
{
|
||||||
// measure left padding
|
// measure left padding
|
||||||
StringFormat sf = new StringFormat(StringFormatFlags.NoClip);
|
StringFormat sf = new StringFormat(StringFormatFlags.NoClip);
|
||||||
sf.SetMeasurableCharacterRanges(new CharacterRange[] { new CharacterRange(0, 1) });
|
sf.SetMeasurableCharacterRanges([new CharacterRange(0, 1)]);
|
||||||
Region[] r = graphics.MeasureCharacterRanges(s, font, new RectangleF(0, 0, 1000, 100), sf);
|
Region[] r = graphics.MeasureCharacterRanges(s, font, new RectangleF(0, 0, 1000, 100), sf);
|
||||||
float leftPadding = r[0].GetBounds(graphics).Left;
|
float leftPadding = r[0].GetBounds(graphics).Left;
|
||||||
|
|
||||||
@@ -125,7 +125,7 @@ namespace DesktopMagicPluginAPI.Drawing
|
|||||||
{
|
{
|
||||||
// measure left padding
|
// measure left padding
|
||||||
StringFormat sf = new StringFormat(StringFormatFlags.NoClip);
|
StringFormat sf = new StringFormat(StringFormatFlags.NoClip);
|
||||||
sf.SetMeasurableCharacterRanges(new CharacterRange[] { new CharacterRange(0, 1) });
|
sf.SetMeasurableCharacterRanges([new CharacterRange(0, 1)]);
|
||||||
Region[] r = graphics.MeasureCharacterRanges(s, font, new RectangleF(0, 0, 1000, 100), sf);
|
Region[] r = graphics.MeasureCharacterRanges(s, font, new RectangleF(0, 0, 1000, 100), sf);
|
||||||
float leftPadding = r[0].GetBounds(graphics).Left;
|
float leftPadding = r[0].GetBounds(graphics).Left;
|
||||||
|
|
||||||
@@ -146,7 +146,7 @@ namespace DesktopMagicPluginAPI.Drawing
|
|||||||
SizeF size = graphics.MeasureString(text, font, int.MaxValue);
|
SizeF size = graphics.MeasureString(text, font, int.MaxValue);
|
||||||
|
|
||||||
StringFormat sf = new StringFormat(StringFormatFlags.NoClip);
|
StringFormat sf = new StringFormat(StringFormatFlags.NoClip);
|
||||||
sf.SetMeasurableCharacterRanges(new CharacterRange[] { new CharacterRange(0, 1) });
|
sf.SetMeasurableCharacterRanges([new CharacterRange(0, 1)]);
|
||||||
Region[] r = graphics.MeasureCharacterRanges(text, font, new RectangleF(0, 0, 1000, 100), sf);
|
Region[] r = graphics.MeasureCharacterRanges(text, font, new RectangleF(0, 0, 1000, 100), sf);
|
||||||
float leftPadding = r[0].GetBounds(graphics).Left;
|
float leftPadding = r[0].GetBounds(graphics).Left;
|
||||||
|
|
||||||
@@ -156,9 +156,9 @@ namespace DesktopMagicPluginAPI.Drawing
|
|||||||
|
|
||||||
private static int GetWidestChar(this Graphics graphics, Font font)
|
private static int GetWidestChar(this Graphics graphics, Font font)
|
||||||
{
|
{
|
||||||
if (fonts.ContainsKey(font))
|
if (fonts.TryGetValue(font, out int value))
|
||||||
{
|
{
|
||||||
return fonts[font];
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
float max = 0;
|
float max = 0;
|
||||||
@@ -182,4 +182,3 @@ namespace DesktopMagicPluginAPI.Drawing
|
|||||||
return (int)Math.Round(max, 0);
|
return (int)Math.Round(max, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,11 +1,5 @@
|
|||||||
using System;
|
namespace DesktopMagicPluginAPI.Drawing;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace DesktopMagicPluginAPI.Drawing
|
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Specifies which render quality is used to display the bitmap images.
|
/// Specifies which render quality is used to display the bitmap images.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -26,4 +20,3 @@ namespace DesktopMagicPluginAPI.Drawing
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
Performance
|
Performance
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
|
||||||
namespace DesktopMagicPluginAPI
|
namespace DesktopMagicPluginAPI;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Defines properties and methods that provide information about the main application.
|
/// Defines properties and methods that provide information about the main application.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -50,4 +50,3 @@ namespace DesktopMagicPluginAPI
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
void UpdateWindow();
|
void UpdateWindow();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
|
||||||
namespace DesktopMagicPluginAPI
|
namespace DesktopMagicPluginAPI;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The theme settings of the main application.
|
/// The theme settings of the main application.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -37,4 +37,3 @@ namespace DesktopMagicPluginAPI
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
int Margin { get; }
|
int Margin { get; }
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace DesktopMagicPluginAPI.Inputs
|
namespace DesktopMagicPluginAPI.Inputs;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents a button control.
|
/// Represents a button control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -47,4 +47,3 @@ namespace DesktopMagicPluginAPI.Inputs
|
|||||||
OnClick?.Invoke();
|
OnClick?.Invoke();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
namespace DesktopMagicPluginAPI.Inputs
|
namespace DesktopMagicPluginAPI.Inputs;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents a check box control.
|
/// Represents a check box control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -32,4 +32,3 @@
|
|||||||
Value = value;
|
Value = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
|
|
||||||
namespace DesktopMagicPluginAPI.Inputs
|
namespace DesktopMagicPluginAPI.Inputs;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents a selection control with a drop-down list.
|
/// Represents a selection control with a drop-down list.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -12,7 +12,7 @@ namespace DesktopMagicPluginAPI.Inputs
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the collection used to generate the content of the <see cref="ComboBox"/>.
|
/// Gets the collection used to generate the content of the <see cref="ComboBox"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ObservableCollection<string> Items { get; } = new ObservableCollection<string>();
|
public ObservableCollection<string> Items { get; } = [];
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the currently selected item associated with this <see cref="ComboBox"/>.
|
/// Gets the currently selected item associated with this <see cref="ComboBox"/>.
|
||||||
@@ -43,4 +43,3 @@ namespace DesktopMagicPluginAPI.Inputs
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace DesktopMagicPluginAPI.Inputs
|
namespace DesktopMagicPluginAPI.Inputs;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The element base class.
|
/// The element base class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -20,4 +20,3 @@ namespace DesktopMagicPluginAPI.Inputs
|
|||||||
OnValueChanged?.Invoke();
|
OnValueChanged?.Invoke();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace DesktopMagicPluginAPI.Inputs
|
namespace DesktopMagicPluginAPI.Inputs;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Marks a Property as element.
|
/// Marks a Property as element.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -43,4 +43,3 @@ namespace DesktopMagicPluginAPI.Inputs
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace DesktopMagicPluginAPI.Inputs
|
namespace DesktopMagicPluginAPI.Inputs;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents a up-down control.
|
/// Represents a up-down control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -70,4 +70,3 @@ namespace DesktopMagicPluginAPI.Inputs
|
|||||||
Value = value;
|
Value = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
namespace DesktopMagicPluginAPI.Inputs
|
namespace DesktopMagicPluginAPI.Inputs;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents a label control.
|
/// Represents a label control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -39,4 +39,3 @@
|
|||||||
Bold = bold;
|
Bold = bold;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,11 +1,5 @@
|
|||||||
using System;
|
namespace DesktopMagicPluginAPI.Inputs;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace DesktopMagicPluginAPI.Inputs
|
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Mouse Buttons
|
/// Mouse Buttons
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -26,4 +20,3 @@ namespace DesktopMagicPluginAPI.Inputs
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
Right,
|
Right,
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace DesktopMagicPluginAPI.Inputs
|
namespace DesktopMagicPluginAPI.Inputs;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents a slider control.
|
/// Represents a slider control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -69,4 +69,3 @@ namespace DesktopMagicPluginAPI.Inputs
|
|||||||
Value = value;
|
Value = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
namespace DesktopMagicPluginAPI.Inputs
|
namespace DesktopMagicPluginAPI.Inputs;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents a text box control.
|
/// Represents a text box control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -32,4 +32,3 @@
|
|||||||
Value = value;
|
Value = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -4,8 +4,8 @@ using DesktopMagicPluginAPI.Inputs;
|
|||||||
using System;
|
using System;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
|
||||||
namespace DesktopMagicPluginAPI
|
namespace DesktopMagicPluginAPI;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The plugin class.
|
/// The plugin class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -78,4 +78,3 @@ namespace DesktopMagicPluginAPI
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
###############
|
|
||||||
# temp file #
|
|
||||||
###############
|
|
||||||
*.yml
|
|
||||||
.manifest
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
# PLACEHOLDER
|
|
||||||
TODO: Add .NET projects to the *src* folder and run `docfx` to generate **REAL** *API Documentation*!
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Add your introductions here!
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
- name: Introduction
|
|
||||||
href: intro.md
|
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
{
|
|
||||||
"metadata": [
|
|
||||||
{
|
|
||||||
"src": [
|
|
||||||
{
|
|
||||||
"files": [
|
|
||||||
"**.csproj"
|
|
||||||
],
|
|
||||||
"src": "C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dest": "api",
|
|
||||||
"disableGitFeatures": false,
|
|
||||||
"disableDefaultFilter": false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"build": {
|
|
||||||
"content": [
|
|
||||||
{
|
|
||||||
"files": [
|
|
||||||
"api/**.yml",
|
|
||||||
"api/index.md"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"files": [
|
|
||||||
"articles/**.md",
|
|
||||||
"articles/**/toc.yml",
|
|
||||||
"toc.yml",
|
|
||||||
"*.md"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"resource": [
|
|
||||||
{
|
|
||||||
"files": [
|
|
||||||
"images/**"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"overwrite": [
|
|
||||||
{
|
|
||||||
"files": [
|
|
||||||
"apidoc/**.md"
|
|
||||||
],
|
|
||||||
"exclude": [
|
|
||||||
"obj/**",
|
|
||||||
"_site/**"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dest": "_site",
|
|
||||||
"globalMetadataFiles": [],
|
|
||||||
"fileMetadataFiles": [],
|
|
||||||
"template": [
|
|
||||||
"default"
|
|
||||||
],
|
|
||||||
"postProcessors": [],
|
|
||||||
"markdownEngineName": "markdig",
|
|
||||||
"noLangKeyword": false,
|
|
||||||
"keepFileLink": false,
|
|
||||||
"cleanupCacheHistory": false,
|
|
||||||
"disableGitFeatures": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
# This is the **HOMEPAGE**.
|
|
||||||
Refer to [Markdown](http://daringfireball.net/projects/markdown/) for how to write markdown files.
|
|
||||||
## Quick Start Notes:
|
|
||||||
1. Add images to the *images* folder if the file is referencing an image.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
- name: Articles
|
|
||||||
href: articles/
|
|
||||||
- name: Api Documentation
|
|
||||||
href: api/
|
|
||||||
homepage: api/index.md
|
|
||||||
Reference in New Issue
Block a user