From be653aae76a909ee71cca452fff38531dbac8c0c Mon Sep 17 00:00:00 2001 From: Miepee Date: Mon, 27 Feb 2023 20:11:13 +0100 Subject: [PATCH] Add initial settings form + menu items --- Atomic/Language/Text.Designer.cs | 42 ++++++++++++++++++++++++++ Atomic/Language/Text.resx | 21 +++++++++++++ Atomic/ModPacker.Designer.cs | 13 ++++++++ Atomic/SettingsForm.cs | 51 ++++++++++++++++++++++++++++++++ 4 files changed, 127 insertions(+) create mode 100644 Atomic/SettingsForm.cs diff --git a/Atomic/Language/Text.Designer.cs b/Atomic/Language/Text.Designer.cs index 2c054b0..5aeb736 100644 --- a/Atomic/Language/Text.Designer.cs +++ b/Atomic/Language/Text.Designer.cs @@ -284,5 +284,47 @@ namespace Atomic.Language { return ResourceManager.GetString("LoadOSZip", resourceCulture); } } + + public static string SystemLanguage { + get { + return ResourceManager.GetString("SystemLanguage", resourceCulture); + } + } + + public static string LanguageNotice { + get { + return ResourceManager.GetString("LanguageNotice", resourceCulture); + } + } + + public static string SettingsTitle { + get { + return ResourceManager.GetString("SettingsTitle", resourceCulture); + } + } + + public static string SettingsMenu { + get { + return ResourceManager.GetString("SettingsMenu", resourceCulture); + } + } + + public static string RememberFields { + get { + return ResourceManager.GetString("RememberFields", resourceCulture); + } + } + + public static string QuitMenu { + get { + return ResourceManager.GetString("QuitMenu", resourceCulture); + } + } + + public static string FileMenu { + get { + return ResourceManager.GetString("FileMenu", resourceCulture); + } + } } } diff --git a/Atomic/Language/Text.resx b/Atomic/Language/Text.resx index 3e6ef7a..031e4fb 100644 --- a/Atomic/Language/Text.resx +++ b/Atomic/Language/Text.resx @@ -138,4 +138,25 @@ Load modded $1 .zip + + System Language + + + Language (change requires a retart) + + + Settings + + + &Settings + + + Automatically fill in fields from last usage + + + &Quit + + + &File + \ No newline at end of file diff --git a/Atomic/ModPacker.Designer.cs b/Atomic/ModPacker.Designer.cs index f06c5ea..039a5a4 100644 --- a/Atomic/ModPacker.Designer.cs +++ b/Atomic/ModPacker.Designer.cs @@ -144,6 +144,19 @@ public partial class ModPacker : Form customSaveCheckBox.CheckedChanged += CustomSaveCheckBoxChecked_Changed; customSaveButton.Click += CustomSaveDataButton_Click; yycCheckBox.CheckedChanged += YYCCheckBox_CheckedChanged; + + // Menu items + var settings = new Command() { MenuText = Text.SettingsMenu, Shortcut = Application.Instance.CommonModifier | Application.Instance.AlternateModifier | Keys.P}; + settings.Executed += (sender, args) => + { + var settings = new SettingsForm(); + settings.ShowModal(); + }; + var quit = new Command() { MenuText = Text.QuitMenu, Shortcut = Application.Instance.CommonModifier | Keys.Q}; + quit.Executed += (sender, args) => Application.Instance.Quit(); + + var file = new SubMenuItem() { Text = Text.FileMenu, Items = { settings, quit } }; + Menu = new MenuBar() {Items = { file }}; } #region Design Elements diff --git a/Atomic/SettingsForm.cs b/Atomic/SettingsForm.cs new file mode 100644 index 0000000..efa8dc1 --- /dev/null +++ b/Atomic/SettingsForm.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using Atomic.Language; +using AtomicLib; +using Eto.Drawing; +using Eto.Forms; + +namespace Atomic; + +public class SettingsForm : Dialog +{ + public SettingsForm() + { + Title = Text.SettingsTitle; + Icon = new Icon(1f, new Bitmap(Resources.icon64)); + Resizable = true; + + var layout = new DynamicLayout() { Padding = 10, Spacing = new Size(20, 20) }; + + List languageList = new List + { + Text.SystemLanguage, + "Deutsch", + "English", + "Español", + "Français", + "Italiano", + "Português", + "Русский", + "日本語", + "中文(简体)" + }; + + var langdropDown = new DropDown() { DataStore = languageList }; + langdropDown.SelectedIndexChanged += (sender, args) => + { + // TODO: save new setting + }; + + var fillInContents = new CheckBox() { Text = Text.RememberFields }; + fillInContents.CheckedChanged += (sender, args) => + { + // TODO: save new setting + }; + + layout.AddRange(Text.LanguageNotice, langdropDown, fillInContents); + //layout.AddSpace(); + + Content = layout; + } +} \ No newline at end of file