GARbro-mirror/ArcFormats/ResourceSettings.cs

59 lines
1.6 KiB
C#
Raw Normal View History

//! \file ResourceSettings.cs
//! \date 2018 Jan 08
//! \brief Persistent resource settings implementation.
//
2018-01-11 18:39:43 +04:00
using System.ComponentModel.Composition;
using System.Text;
using GameRes.Formats.Strings;
2018-01-11 18:39:43 +04:00
namespace GameRes.Formats
{
internal class LocalResourceSetting : ResourceSettingBase
{
public override object Value {
get { return Properties.Settings.Default[Name]; }
set { Properties.Settings.Default[Name] = value; }
}
public LocalResourceSetting () { }
public LocalResourceSetting (string name)
{
Name = name;
Text = arcStrings.ResourceManager.GetString (name, arcStrings.Culture) ?? name;
}
}
2018-01-11 18:39:43 +04:00
internal class EncodingSetting : LocalResourceSetting
{
public override object Value {
get { return Encoding.GetEncoding ((int)base.Value); }
set { base.Value = ((Encoding)value).CodePage; }
}
public EncodingSetting () { }
public EncodingSetting (string name) : base (name) { }
}
2018-01-11 18:39:43 +04:00
[Export(typeof(ISettingsManager))]
internal class SettingsManager : ISettingsManager
{
public void UpgradeSettings ()
{
if (Properties.Settings.Default.UpgradeRequired)
{
Properties.Settings.Default.Upgrade();
Properties.Settings.Default.UpgradeRequired = false;
Properties.Settings.Default.Save();
}
}
public void SaveSettings ()
{
Properties.Settings.Default.Save();
}
}
}