mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-20 23:54:26 +08:00
setting_re2
设置架构革新中
This commit is contained in:
53
LanMountainDesktop.PluginSdk/SettingsOptionDefinition.cs
Normal file
53
LanMountainDesktop.PluginSdk/SettingsOptionDefinition.cs
Normal file
@@ -0,0 +1,53 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace LanMountainDesktop.PluginSdk;
|
||||
|
||||
public sealed class SettingsOptionDefinition
|
||||
{
|
||||
public SettingsOptionDefinition(
|
||||
string key,
|
||||
SettingsOptionType optionType,
|
||||
string titleLocalizationKey,
|
||||
string? descriptionLocalizationKey = null,
|
||||
object? defaultValue = null,
|
||||
IReadOnlyList<SettingsOptionChoice>? choices = null,
|
||||
double? minimum = null,
|
||||
double? maximum = null,
|
||||
string? validationPattern = null)
|
||||
{
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(key);
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(titleLocalizationKey);
|
||||
|
||||
Key = key.Trim();
|
||||
OptionType = optionType;
|
||||
TitleLocalizationKey = titleLocalizationKey.Trim();
|
||||
DescriptionLocalizationKey = string.IsNullOrWhiteSpace(descriptionLocalizationKey)
|
||||
? null
|
||||
: descriptionLocalizationKey.Trim();
|
||||
DefaultValue = defaultValue;
|
||||
Choices = choices ?? [];
|
||||
Minimum = minimum;
|
||||
Maximum = maximum;
|
||||
ValidationPattern = string.IsNullOrWhiteSpace(validationPattern)
|
||||
? null
|
||||
: validationPattern.Trim();
|
||||
}
|
||||
|
||||
public string Key { get; }
|
||||
|
||||
public SettingsOptionType OptionType { get; }
|
||||
|
||||
public string TitleLocalizationKey { get; }
|
||||
|
||||
public string? DescriptionLocalizationKey { get; }
|
||||
|
||||
public object? DefaultValue { get; }
|
||||
|
||||
public IReadOnlyList<SettingsOptionChoice> Choices { get; }
|
||||
|
||||
public double? Minimum { get; }
|
||||
|
||||
public double? Maximum { get; }
|
||||
|
||||
public string? ValidationPattern { get; }
|
||||
}
|
||||
Reference in New Issue
Block a user