mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-20 23:54:26 +08:00
47 lines
1.1 KiB
C#
47 lines
1.1 KiB
C#
using System;
|
|
|
|
namespace LanMountainDesktop.PluginSdk;
|
|
|
|
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
|
|
public sealed class SettingsPageInfoAttribute : Attribute
|
|
{
|
|
public SettingsPageInfoAttribute(
|
|
string id,
|
|
string name,
|
|
SettingsPageCategory category)
|
|
{
|
|
ArgumentException.ThrowIfNullOrWhiteSpace(id);
|
|
ArgumentException.ThrowIfNullOrWhiteSpace(name);
|
|
|
|
Id = id.Trim();
|
|
Name = name.Trim();
|
|
Category = category;
|
|
}
|
|
|
|
public string Id { get; }
|
|
|
|
public string Name { get; }
|
|
|
|
public SettingsPageCategory Category { get; }
|
|
|
|
public string? TitleLocalizationKey { get; init; }
|
|
|
|
public string? DescriptionLocalizationKey { get; init; }
|
|
|
|
public string IconKey { get; init; } = "Settings";
|
|
|
|
public string? SelectedIconKey { get; init; }
|
|
|
|
public int SortOrder { get; init; }
|
|
|
|
public bool HideDefault { get; init; }
|
|
|
|
public bool HidePageTitle { get; init; }
|
|
|
|
public bool UseFullWidth { get; init; }
|
|
|
|
public string? GroupId { get; init; }
|
|
|
|
public SettingsScope Scope { get; init; } = SettingsScope.App;
|
|
}
|