diff options
Diffstat (limited to 'ShiftOS.WinForms/Applications/NameChanger.cs')
| -rw-r--r-- | ShiftOS.WinForms/Applications/NameChanger.cs | 86 |
1 files changed, 85 insertions, 1 deletions
diff --git a/ShiftOS.WinForms/Applications/NameChanger.cs b/ShiftOS.WinForms/Applications/NameChanger.cs index 605ba3b..c983841 100644 --- a/ShiftOS.WinForms/Applications/NameChanger.cs +++ b/ShiftOS.WinForms/Applications/NameChanger.cs @@ -31,7 +31,10 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; +using Newtonsoft.Json; using ShiftOS.Engine; +using ShiftOS.Objects.ShiftFS; +using ShiftOS.WinForms.Tools; namespace ShiftOS.WinForms.Applications { @@ -46,8 +49,49 @@ namespace ShiftOS.WinForms.Applications { InitializeComponent(); } + private Dictionary<string, string> names = new Dictionary<string, string>(); + public void OnLoad() { + names = JsonConvert.DeserializeObject<Dictionary<string, string>>(JsonConvert.SerializeObject(NameChangerBackend.GetCurrent())); + SetupUI(); + } + + public void SetupUI() + { + flnames.Controls.Clear(); + foreach(var name in names) + { + var pnl = new Panel(); + var lbl = new Label(); + var txt = new TextBox(); + pnl.Controls.Add(lbl); + lbl.Show(); + pnl.Controls.Add(txt); + txt.Show(); + + ControlManager.SetupControls(pnl); + + pnl.Width = flnames.Width - 10; + pnl.Height = 50; + lbl.Left = 10; + lbl.Width = (pnl.Width / 4) - 10; + lbl.Text = name.Key; + lbl.Top = (pnl.Height - lbl.Height) / 2; + lbl.TextAlign = ContentAlignment.MiddleLeft; + + txt.Text = name.Value; + + txt.TextChanged += (o, a) => + { + names[name.Key] = txt.Text; + }; + txt.Width = pnl.Width - (pnl.Width / 4) - 20; + txt.Left = lbl.Width + 20; + txt.Top = (pnl.Height - txt.Height) / 2; + flnames.Controls.Add(pnl); + pnl.Show(); + } } public void OnSkinLoad() @@ -67,7 +111,40 @@ namespace ShiftOS.WinForms.Applications { { } - + + private void btnclose_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void btnloaddefault_Click(object sender, EventArgs e) + { + names = NameChangerBackend.GetDefault(); + SetupUI(); + } + + private void btnimport_Click(object sender, EventArgs e) + { + FileSkimmerBackend.GetFile(new[] { ".nme" }, FileOpenerStyle.Open, new Action<string>((path) => + { + names = JsonConvert.DeserializeObject<Dictionary<string, string>>(Utils.ReadAllText(path)); + })); + } + + private void btnexport_Click(object sender, EventArgs e) + { + FileSkimmerBackend.GetFile(new[] { ".nme" }, FileOpenerStyle.Save, new Action<string>((path) => + { + Utils.WriteAllText(path, JsonConvert.SerializeObject(names)); + })); + } + + private void btnapply_Click(object sender, EventArgs e) + { + SkinEngine.LoadedSkin.AppNames = names; + Utils.WriteAllText(Paths.GetPath("skin.json"), SkinEngine.LoadedSkin.ToString()); + SkinEngine.LoadSkin(); + } } public static class NameChangerBackend @@ -92,6 +169,13 @@ namespace ShiftOS.WinForms.Applications { if (SkinEngine.LoadedSkin.AppNames == null) SkinEngine.LoadedSkin.AppNames = GetDefault(); + + foreach(var def in GetDefault()) + { + if (!SkinEngine.LoadedSkin.AppNames.ContainsKey(def.Key)) + SkinEngine.LoadedSkin.AppNames.Add(def.Key, def.Value); + } + return SkinEngine.LoadedSkin.AppNames; } |
