48 lines
1.2 KiB
C#
48 lines
1.2 KiB
C#
using System;
|
|
|
|
using UnityEditor;
|
|
|
|
namespace Unity.PlasticSCM.Editor.UI
|
|
{
|
|
internal static class EnumPopupSetting<E>
|
|
{
|
|
internal static E Load(
|
|
string popupSettingName,
|
|
E defaultValue)
|
|
{
|
|
string enumValue = EditorPrefs.GetString(
|
|
GetSettingKey(popupSettingName));
|
|
|
|
if (string.IsNullOrEmpty(enumValue))
|
|
return defaultValue;
|
|
|
|
return (E)Enum.Parse(typeof(E), enumValue);
|
|
}
|
|
|
|
internal static void Save(
|
|
E selected,
|
|
string popupSettingName)
|
|
{
|
|
EditorPrefs.SetString(
|
|
GetSettingKey(popupSettingName),
|
|
selected.ToString());
|
|
}
|
|
|
|
internal static void Clear(
|
|
string popupSettingName)
|
|
{
|
|
EditorPrefs.DeleteKey(
|
|
GetSettingKey(popupSettingName));
|
|
}
|
|
|
|
static string GetSettingKey(string popupSettingName)
|
|
{
|
|
return string.Format(
|
|
popupSettingName, PlayerSettings.productGUID,
|
|
SELECTED_ENUM_VALUE_KEY);
|
|
}
|
|
|
|
static string SELECTED_ENUM_VALUE_KEY = "SelectedEnumValue";
|
|
}
|
|
}
|