You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
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";
|
|
|
|
|
}
|
|
|
|
|
}
|