Improved plugin settings support

This commit is contained in:
Stone-Red-Code
2021-07-14 22:43:01 +02:00
parent aaced7a569
commit 23a31ae5d0
133 changed files with 856 additions and 379 deletions
@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DesktopMagicPluginAPI.Inputs
{
public class CheckBox : Element
{
private bool _value;
public bool Value
{
get => _value;
set
{
if (_value != value)
{
_value = value;
ValueChanged();
}
}
}
public CheckBox(bool value)
{
Value = value;
}
}
}
@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DesktopMagicPluginAPI.Inputs
{
public abstract class Element
{
public event Action OnValueChanged;
protected void ValueChanged()
{
OnValueChanged?.Invoke();
}
}
}
@@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DesktopMagicPluginAPI.Inputs
{
[AttributeUsage(AttributeTargets.Field)
]
public class ElementAttribute : Attribute
{
public string Name { get; }
public int OrderIndex { get; }
public ElementAttribute(string name, int orderIndex = 0)
{
Name = name;
OrderIndex = orderIndex;
}
}
}
@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DesktopMagicPluginAPI.Inputs
{
public class Heading : Element
{
public string Value { get; }
public Heading(string value)
{
Value = value;
}
}
}
@@ -0,0 +1,56 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DesktopMagicPluginAPI.Inputs
{
public class IntegerUpDown : Element
{
private int _value;
public int Maximum { get; }
public int Minimum { get; }
public int Value
{
get => _value;
set
{
if (_value != value)
{
_value = value;
ValueChanged();
}
}
}
public IntegerUpDown(int min, int max, int value = 0)
{
if (min < 0)
{
throw new ArgumentException("Value can not be negative!", nameof(min));
}
if (max < 0)
{
throw new ArgumentException("Value can not be negative!", nameof(max));
}
if (min > max)
{
throw new ArgumentException($"{nameof(min)} is greater than or equal to {nameof(max)}!");
}
if (value > max)
{
throw new ArgumentException($"{nameof(value)} is greater than {nameof(max)}!");
}
if (value < min)
{
throw new ArgumentException($"{nameof(value)} is less than {nameof(min)}!");
}
Minimum = min;
Maximum = max;
Value = value;
}
}
}
@@ -0,0 +1,56 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DesktopMagicPluginAPI.Inputs
{
public sealed class Slider : Element
{
private double _value;
public double Maximum { get; }
public double Minimum { get; }
public double Value
{
get => _value;
set
{
if (_value != value)
{
_value = value;
ValueChanged();
}
}
}
public Slider(double min, double max, double value = 0)
{
if (min < 0)
{
throw new ArgumentException("Value can not be negative!", nameof(min));
}
if (max < 0)
{
throw new ArgumentException("Value can not be negative!", nameof(max));
}
if (min > max)
{
throw new ArgumentException($"{nameof(min)} is greater than or equal to {nameof(max)}!");
}
if (value > max)
{
throw new ArgumentException($"{nameof(value)} is greater than {nameof(max)}!");
}
if (value < min)
{
throw new ArgumentException($"{nameof(value)} is less than {nameof(min)}!");
}
Minimum = min;
Maximum = max;
Value = value;
}
}
}
@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DesktopMagicPluginAPI.Inputs
{
public class TextBox : Element
{
private string _value;
public string Value
{
get => _value;
set
{
if (_value != value)
{
_value = value;
ValueChanged();
}
}
}
public TextBox(string value)
{
Value = value;
}
}
}
-6
View File
@@ -25,14 +25,8 @@ namespace DesktopMagicPluginAPI
public virtual int UpdateInterval { get; set; } = 1000;
public virtual string[,] Inputs { get; set; } = new string[0, 0];
public abstract Bitmap Main();
public virtual void OnOptionChanged(int optionIndex)
{
}
public virtual void OnMouseClick(Point position)
{
}
@@ -6,7 +6,7 @@
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v5.0": {
"DesktopMagicPluginAPI/1.0.0": {
"DesktopMagicPluginAPI/0.0.0.1": {
"dependencies": {
"System.Drawing.Common": "5.0.2"
},
@@ -62,7 +62,7 @@
}
},
"libraries": {
"DesktopMagicPluginAPI/1.0.0": {
"DesktopMagicPluginAPI/0.0.0.1": {
"type": "project",
"serviceable": false,
"sha512": ""
@@ -11,13 +11,14 @@
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("DesktopMagicPluginAPI")]
[assembly: System.Reflection.AssemblyCompanyAttribute("Stone_Red")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("DesktopMagicPluginAPI")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("0.0.0.1")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("0.0.0.1")]
[assembly: System.Reflection.AssemblyProductAttribute("Stone_Red")]
[assembly: System.Reflection.AssemblyTitleAttribute("DesktopMagicPluginAPI")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyVersionAttribute("0.0.0.1")]
[assembly: System.Reflection.AssemblyMetadataAttribute("RepositoryUrl", "https://github.com/Stone-Red-Code/DesktopMagic")]
// Von der MSBuild WriteCodeFragment-Klasse generiert.
@@ -1 +1 @@
ec3127a539283f133e4725b081b99947b1a90358
047460573638f7775be64f97de00b14c8c2bbda6
@@ -1 +1 @@
8df801694bea836d41acd56826af208602a65493
3d351e819578d1d8c8cf3fc4ddef05ac96911424
@@ -10,3 +10,15 @@ C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagicPluginAPI\obj
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagicPluginAPI\obj\Debug\net5.0\DesktopMagicPluginAPI.dll
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagicPluginAPI\obj\Debug\net5.0\ref\DesktopMagicPluginAPI.dll
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagicPluginAPI\obj\Debug\net5.0\DesktopMagicPluginAPI.pdb
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\bin\Debug\net5.0\DesktopMagicPluginAPI.deps.json
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\bin\Debug\net5.0\DesktopMagicPluginAPI.dll
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\bin\Debug\net5.0\ref\DesktopMagicPluginAPI.dll
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\bin\Debug\net5.0\DesktopMagicPluginAPI.pdb
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\obj\Debug\net5.0\DesktopMagicPluginAPI.csproj.AssemblyReference.cache
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\obj\Debug\net5.0\DesktopMagicPluginAPI.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\obj\Debug\net5.0\DesktopMagicPluginAPI.AssemblyInfoInputs.cache
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\obj\Debug\net5.0\DesktopMagicPluginAPI.AssemblyInfo.cs
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\obj\Debug\net5.0\DesktopMagicPluginAPI.csproj.CoreCompileInputs.cache
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\obj\Debug\net5.0\DesktopMagicPluginAPI.dll
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\obj\Debug\net5.0\ref\DesktopMagicPluginAPI.dll
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\obj\Debug\net5.0\DesktopMagicPluginAPI.pdb
@@ -1,33 +1,32 @@
{
"format": 1,
"restore": {
"C:\\Users\\David\\Google Drive\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\DesktopMagicPluginAPI.csproj": {}
"C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\DesktopMagicPluginAPI.csproj": {}
},
"projects": {
"C:\\Users\\David\\Google Drive\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\DesktopMagicPluginAPI.csproj": {
"C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\DesktopMagicPluginAPI.csproj": {
"version": "0.0.0.1",
"restore": {
"projectUniqueName": "C:\\Users\\David\\Google Drive\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\DesktopMagicPluginAPI.csproj",
"projectUniqueName": "C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\DesktopMagicPluginAPI.csproj",
"projectName": "DesktopMagicPluginAPI",
"projectPath": "C:\\Users\\David\\Google Drive\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\DesktopMagicPluginAPI.csproj",
"projectPath": "C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\DesktopMagicPluginAPI.csproj",
"packagesPath": "C:\\Users\\David\\.nuget\\packages\\",
"outputPath": "C:\\Users\\David\\Google Drive\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\",
"outputPath": "C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages",
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\"
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\David\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config"
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net5.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"C:\\Users\\David\\AppData\\Roaming\\Cosmos User Kit\\packages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
@@ -5,14 +5,13 @@
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\David\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages;C:\Program Files (x86)\Microsoft\Xamarin\NuGet\</NuGetPackageFolders>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\David\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.10.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\David\.nuget\packages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft\Xamarin\NuGet\" />
</ItemGroup>
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
@@ -1 +1 @@
033f37169beeb202feda91d08f981cb680cc4b22
78b084028688b20b372609aac30267390d5f6d25
@@ -22,3 +22,15 @@ C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\obj\Release\net5.0\DesktopMagicPluginAPI.dll
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\obj\Release\net5.0\ref\DesktopMagicPluginAPI.dll
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\obj\Release\net5.0\DesktopMagicPluginAPI.pdb
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\bin\Release\net5.0\DesktopMagicPluginAPI.deps.json
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\bin\Release\net5.0\DesktopMagicPluginAPI.dll
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\bin\Release\net5.0\ref\DesktopMagicPluginAPI.dll
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\bin\Release\net5.0\DesktopMagicPluginAPI.pdb
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\obj\Release\net5.0\DesktopMagicPluginAPI.csproj.AssemblyReference.cache
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\obj\Release\net5.0\DesktopMagicPluginAPI.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\obj\Release\net5.0\DesktopMagicPluginAPI.AssemblyInfoInputs.cache
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\obj\Release\net5.0\DesktopMagicPluginAPI.AssemblyInfo.cs
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\obj\Release\net5.0\DesktopMagicPluginAPI.csproj.CoreCompileInputs.cache
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\obj\Release\net5.0\DesktopMagicPluginAPI.dll
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\obj\Release\net5.0\ref\DesktopMagicPluginAPI.dll
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagicPluginAPI\obj\Release\net5.0\DesktopMagicPluginAPI.pdb
@@ -150,33 +150,31 @@
},
"packageFolders": {
"C:\\Users\\David\\.nuget\\packages\\": {},
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {},
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\": {}
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {}
},
"project": {
"version": "0.0.0.1",
"restore": {
"projectUniqueName": "C:\\Users\\David\\Google Drive\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\DesktopMagicPluginAPI.csproj",
"projectUniqueName": "C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\DesktopMagicPluginAPI.csproj",
"projectName": "DesktopMagicPluginAPI",
"projectPath": "C:\\Users\\David\\Google Drive\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\DesktopMagicPluginAPI.csproj",
"projectPath": "C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\DesktopMagicPluginAPI.csproj",
"packagesPath": "C:\\Users\\David\\.nuget\\packages\\",
"outputPath": "C:\\Users\\David\\Google Drive\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\",
"outputPath": "C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages",
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\"
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\David\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config"
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net5.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"C:\\Users\\David\\AppData\\Roaming\\Cosmos User Kit\\packages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
@@ -1,8 +1,8 @@
{
"version": 2,
"dgSpecHash": "08N26zii9pk9wdNK/Re+ETaT0gBBQc7cOeR/kknBOmCIlaORYvra6ROXT75LPs73/8KHFjccVwCrZ3IluDzQ/g==",
"dgSpecHash": "+b7ffutxpVrmCwRmkCKJuA+T1JzbuNT4idwJ6fOh9Wv5DD7Tt6uplsP6zk0Qo5C6IDEHWyhaEa0PPr34upBxbQ==",
"success": true,
"projectFilePath": "C:\\Users\\David\\Google Drive\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\DesktopMagicPluginAPI.csproj",
"projectFilePath": "C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\DesktopMagicPluginAPI.csproj",
"expectedPackageFiles": [
"C:\\Users\\David\\.nuget\\packages\\microsoft.netcore.platforms\\5.0.0\\microsoft.netcore.platforms.5.0.0.nupkg.sha512",
"C:\\Users\\David\\.nuget\\packages\\microsoft.win32.systemevents\\5.0.0\\microsoft.win32.systemevents.5.0.0.nupkg.sha512",