diff --git a/I18N Commander/UI WinForms/Components/LoaderStart.Designer.cs b/I18N Commander/UI WinForms/Components/LoaderStart.Designer.cs
new file mode 100644
index 0000000..2adebcb
--- /dev/null
+++ b/I18N Commander/UI WinForms/Components/LoaderStart.Designer.cs
@@ -0,0 +1,169 @@
+namespace UI_WinForms.Components
+{
+ partial class LoaderStart
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.tableLayout = new System.Windows.Forms.TableLayoutPanel();
+ this.pictureBox = new System.Windows.Forms.PictureBox();
+ this.labelTitle = new System.Windows.Forms.Label();
+ this.flowLayoutButtons = new System.Windows.Forms.FlowLayoutPanel();
+ this.buttonNew = new System.Windows.Forms.Button();
+ this.buttonOpen = new System.Windows.Forms.Button();
+ this.contextMenuRecentProjects = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
+ this.tableLayout.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit();
+ this.flowLayoutButtons.SuspendLayout();
+ this.contextMenuRecentProjects.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // tableLayout
+ //
+ this.tableLayout.ColumnCount = 4;
+ this.tableLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
+ this.tableLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 128F));
+ this.tableLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 360F));
+ this.tableLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
+ this.tableLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+ this.tableLayout.Controls.Add(this.pictureBox, 1, 1);
+ this.tableLayout.Controls.Add(this.labelTitle, 2, 1);
+ this.tableLayout.Controls.Add(this.flowLayoutButtons, 1, 2);
+ this.tableLayout.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tableLayout.Location = new System.Drawing.Point(0, 0);
+ this.tableLayout.Name = "tableLayout";
+ this.tableLayout.RowCount = 4;
+ this.tableLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
+ this.tableLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 128F));
+ this.tableLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 66F));
+ this.tableLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
+ this.tableLayout.Size = new System.Drawing.Size(937, 465);
+ this.tableLayout.TabIndex = 0;
+ //
+ // pictureBox
+ //
+ this.pictureBox.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.pictureBox.Image = global::UI_WinForms.Resources.Icons.icons8_language_512;
+ this.pictureBox.Location = new System.Drawing.Point(227, 138);
+ this.pictureBox.Name = "pictureBox";
+ this.pictureBox.Size = new System.Drawing.Size(122, 122);
+ this.pictureBox.TabIndex = 0;
+ this.pictureBox.TabStop = false;
+ //
+ // labelTitle
+ //
+ this.labelTitle.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.labelTitle.Font = new System.Drawing.Font("Segoe UI", 28F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
+ this.labelTitle.Location = new System.Drawing.Point(355, 135);
+ this.labelTitle.Name = "labelTitle";
+ this.labelTitle.Size = new System.Drawing.Size(354, 128);
+ this.labelTitle.TabIndex = 1;
+ this.labelTitle.Text = "I18N Commander";
+ this.labelTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // flowLayoutButtons
+ //
+ this.tableLayout.SetColumnSpan(this.flowLayoutButtons, 2);
+ this.flowLayoutButtons.Controls.Add(this.buttonNew);
+ this.flowLayoutButtons.Controls.Add(this.buttonOpen);
+ this.flowLayoutButtons.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.flowLayoutButtons.Location = new System.Drawing.Point(224, 263);
+ this.flowLayoutButtons.Margin = new System.Windows.Forms.Padding(0);
+ this.flowLayoutButtons.Name = "flowLayoutButtons";
+ this.flowLayoutButtons.Size = new System.Drawing.Size(488, 66);
+ this.flowLayoutButtons.TabIndex = 2;
+ //
+ // buttonNew
+ //
+ this.buttonNew.Image = global::UI_WinForms.Resources.Icons.icons8_new_window_512;
+ this.buttonNew.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ this.buttonNew.Location = new System.Drawing.Point(3, 3);
+ this.buttonNew.Name = "buttonNew";
+ this.buttonNew.Size = new System.Drawing.Size(200, 60);
+ this.buttonNew.TabIndex = 0;
+ this.buttonNew.Text = "New Project";
+ this.buttonNew.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
+ this.buttonNew.UseVisualStyleBackColor = true;
+ this.buttonNew.Click += new System.EventHandler(this.buttonNew_Click);
+ //
+ // buttonOpen
+ //
+ this.buttonOpen.Image = global::UI_WinForms.Resources.Icons.icons8_open_file_under_cursor_512;
+ this.buttonOpen.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ this.buttonOpen.Location = new System.Drawing.Point(209, 3);
+ this.buttonOpen.Name = "buttonOpen";
+ this.buttonOpen.Size = new System.Drawing.Size(259, 60);
+ this.buttonOpen.TabIndex = 1;
+ this.buttonOpen.Text = "Open Recent Project";
+ this.buttonOpen.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
+ this.buttonOpen.UseVisualStyleBackColor = true;
+ this.buttonOpen.Click += new System.EventHandler(this.buttonOpen_Click);
+ //
+ // contextMenuRecentProjects
+ //
+ this.contextMenuRecentProjects.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
+ this.contextMenuRecentProjects.ImageScalingSize = new System.Drawing.Size(20, 20);
+ this.contextMenuRecentProjects.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.toolStripMenuItem1});
+ this.contextMenuRecentProjects.Name = "contextMenuRecentProjects";
+ this.contextMenuRecentProjects.Size = new System.Drawing.Size(73, 26);
+ this.contextMenuRecentProjects.Closing += new System.Windows.Forms.ToolStripDropDownClosingEventHandler(this.contextMenuRecentProjects_Closing);
+ //
+ // toolStripMenuItem1
+ //
+ this.toolStripMenuItem1.Name = "toolStripMenuItem1";
+ this.toolStripMenuItem1.Size = new System.Drawing.Size(72, 22);
+ //
+ // LoaderStart
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(120F, 120F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
+ this.Controls.Add(this.tableLayout);
+ this.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
+ this.Name = "LoaderStart";
+ this.Size = new System.Drawing.Size(937, 465);
+ this.tableLayout.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit();
+ this.flowLayoutButtons.ResumeLayout(false);
+ this.contextMenuRecentProjects.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private TableLayoutPanel tableLayout;
+ private PictureBox pictureBox;
+ private Label labelTitle;
+ private FlowLayoutPanel flowLayoutButtons;
+ private Button buttonNew;
+ private Button buttonOpen;
+ private ContextMenuStrip contextMenuRecentProjects;
+ private ToolStripMenuItem toolStripMenuItem1;
+ }
+}
diff --git a/I18N Commander/UI WinForms/Components/LoaderStart.cs b/I18N Commander/UI WinForms/Components/LoaderStart.cs
new file mode 100644
index 0000000..ad55a5f
--- /dev/null
+++ b/I18N Commander/UI WinForms/Components/LoaderStart.cs
@@ -0,0 +1,150 @@
+using System.ComponentModel;
+using Microsoft.Win32;
+
+namespace UI_WinForms.Components;
+
+[DefaultEvent(nameof(LoadProject))]
+public partial class LoaderStart : UserControl
+{
+ private bool areRecentProjectsVisible = false;
+
+ public LoaderStart()
+ {
+ this.InitializeComponent();
+ }
+
+ private static RegistryKey I18NCommanderKey => Registry.CurrentUser.OpenSubKey("Software", RegistryKeyPermissionCheck.ReadWriteSubTree)!.CreateSubKey("I18N Commander", RegistryKeyPermissionCheck.ReadWriteSubTree);
+
+ #region Recent Projects
+
+ ///
+ /// Gets or sets the list of recent projects without any extras e.g. it does not prune the list of projects.
+ ///
+ private static List RecentProjects
+ {
+ get
+ {
+ using var regKey = LoaderStart.I18NCommanderKey;
+ var recentProjectsValue = regKey.GetValue("recentProjects");
+ return recentProjectsValue switch
+ {
+ string[] list => new List(list),
+ _ => new List(),
+ };
+ }
+
+ set
+ {
+ using var regKey = LoaderStart.I18NCommanderKey;
+ regKey.SetValue("recentProjects", value.ToArray(), RegistryValueKind.MultiString);
+ }
+ }
+
+ private static void UpdateRecentProjectsWithPruning(string latestUsedProjectPath)
+ {
+ var previousRecentList = LoaderStart.RecentProjects;
+ previousRecentList.Insert(0, latestUsedProjectPath);
+ if (previousRecentList.Count > 6)
+ previousRecentList = previousRecentList.Take(6).ToList();
+
+ LoaderStart.RecentProjects = previousRecentList;
+ }
+
+ #endregion
+
+ private void buttonOpen_Click(object sender, EventArgs e)
+ {
+ if(this.areRecentProjectsVisible)
+ {
+ this.areRecentProjectsVisible = false;
+ this.contextMenuRecentProjects.Close();
+ return;
+ }
+
+ var recentProjects = LoaderStart.RecentProjects;
+ this.contextMenuRecentProjects.Items.Clear();
+ this.contextMenuRecentProjects.Items.Add("Browse for project...", Resources.Icons.icons8_browse_folder_512, (innerSender, args) => this.BrowseForProject());
+ foreach (var recentProject in recentProjects)
+ {
+ var fileInfo = new FileInfo(recentProject);
+ var item = this.contextMenuRecentProjects.Items.Add($"{fileInfo.Directory.GetDirectories().Last()}/{fileInfo.Name}", Resources.Icons.icons8_document_512, (innerSender, args) => this.OpenRecentProject(innerSender));
+ item.Tag = recentProject;
+ }
+
+ var button = (sender as Button)!;
+ this.contextMenuRecentProjects.Show(button, 0, button.Height);
+ this.areRecentProjectsVisible = true;
+ }
+
+ private void buttonNew_Click(object sender, EventArgs e)
+ {
+ var saveDialog = new SaveFileDialog
+ {
+ AddExtension = true,
+ CheckPathExists = true,
+ CheckFileExists = false,
+ CreatePrompt = false,
+ OverwritePrompt = true,
+ DereferenceLinks = true,
+ DefaultExt = ".i18nc",
+ Filter = "I18N Commander Files (*.i18nc)|*.i18nc",
+ RestoreDirectory = true,
+ Title = "Create a new I18N Commander file",
+ };
+
+ var dialogResult = saveDialog.ShowDialog(this);
+ if (dialogResult != DialogResult.OK)
+ return;
+
+ var destinationFilePath = saveDialog.FileName;
+ LoaderStart.UpdateRecentProjectsWithPruning(destinationFilePath);
+ this.OpenProject(destinationFilePath);
+ }
+
+ private void BrowseForProject()
+ {
+ var openDialog = new OpenFileDialog
+ {
+ AddExtension = true,
+ CheckPathExists = true,
+ CheckFileExists = true,
+ DereferenceLinks = true,
+ DefaultExt = ".i18nc",
+ Filter = "I18N Commander Files (*.i18nc)|*.i18nc",
+ Multiselect = false,
+ RestoreDirectory = true,
+ Title = "Open an I18N Commander file",
+ };
+ var dialogResult = openDialog.ShowDialog(this);
+ if (dialogResult != DialogResult.OK)
+ return;
+
+ var projectFilePath = openDialog.FileName;
+ LoaderStart.UpdateRecentProjectsWithPruning(projectFilePath);
+ this.OpenProject(projectFilePath);
+ }
+
+ private void OpenRecentProject(object? sender)
+ {
+ if (sender is not ToolStripItem item)
+ return;
+
+ var path = (item.Tag as string)!;
+ LoaderStart.UpdateRecentProjectsWithPruning(path);
+ this.OpenProject(path);
+ }
+
+ private void OpenProject(string path)
+ {
+ // Hint: the project file might or might not exist (new project vs. recent project)
+ this.LoadProject?.Invoke(this, path);
+ }
+
+ private void contextMenuRecentProjects_Closing(object sender, ToolStripDropDownClosingEventArgs e)
+ {
+ this.areRecentProjectsVisible = false;
+ }
+
+ [Category("Settings"), Description("When the user chooses a project to load.")]
+ public event EventHandler? LoadProject;
+}
\ No newline at end of file
diff --git a/I18N Commander/UI WinForms/Components/LoaderStart.resx b/I18N Commander/UI WinForms/Components/LoaderStart.resx
new file mode 100644
index 0000000..41dc900
--- /dev/null
+++ b/I18N Commander/UI WinForms/Components/LoaderStart.resx
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/I18N Commander/UI WinForms/Loader.Designer.cs b/I18N Commander/UI WinForms/Loader.Designer.cs
new file mode 100644
index 0000000..377596e
--- /dev/null
+++ b/I18N Commander/UI WinForms/Loader.Designer.cs
@@ -0,0 +1,82 @@
+namespace UI_WinForms
+{
+ partial class Loader
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.tableLayout = new System.Windows.Forms.TableLayoutPanel();
+ this.loaderStart = new UI_WinForms.Components.LoaderStart();
+ this.tableLayout.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // tableLayout
+ //
+ this.tableLayout.ColumnCount = 1;
+ this.tableLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+ this.tableLayout.Controls.Add(this.loaderStart, 0, 0);
+ this.tableLayout.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tableLayout.Location = new System.Drawing.Point(0, 0);
+ this.tableLayout.Name = "tableLayout";
+ this.tableLayout.RowCount = 1;
+ this.tableLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+ this.tableLayout.Size = new System.Drawing.Size(800, 450);
+ this.tableLayout.TabIndex = 0;
+ //
+ // loaderStart
+ //
+ this.loaderStart.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.loaderStart.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
+ this.loaderStart.Location = new System.Drawing.Point(3, 3);
+ this.loaderStart.Name = "loaderStart";
+ this.loaderStart.Size = new System.Drawing.Size(794, 444);
+ this.loaderStart.TabIndex = 0;
+ this.loaderStart.LoadProject += new System.EventHandler(this.loaderStart_LoadProject);
+ //
+ // Loader
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(120F, 120F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
+ this.ClientSize = new System.Drawing.Size(800, 450);
+ this.Controls.Add(this.tableLayout);
+ this.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ this.Name = "Loader";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Loader";
+ this.tableLayout.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private TableLayoutPanel tableLayout;
+ private Components.LoaderStart loaderStart;
+ }
+}
\ No newline at end of file
diff --git a/I18N Commander/UI WinForms/Loader.cs b/I18N Commander/UI WinForms/Loader.cs
new file mode 100644
index 0000000..b18c284
--- /dev/null
+++ b/I18N Commander/UI WinForms/Loader.cs
@@ -0,0 +1,15 @@
+namespace UI_WinForms;
+
+public partial class Loader : Form
+{
+ public Loader()
+ {
+ this.InitializeComponent();
+ }
+
+ private void loaderStart_LoadProject(object sender, string projectFilePath)
+ {
+ // TODO: Call the data model
+ this.Close();
+ }
+}
\ No newline at end of file
diff --git a/I18N Commander/UI WinForms/Loader.resx b/I18N Commander/UI WinForms/Loader.resx
new file mode 100644
index 0000000..b5ae26c
--- /dev/null
+++ b/I18N Commander/UI WinForms/Loader.resx
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/I18N Commander/UI WinForms/Program.cs b/I18N Commander/UI WinForms/Program.cs
index 8a629c4..50c87bb 100644
--- a/I18N Commander/UI WinForms/Program.cs
+++ b/I18N Commander/UI WinForms/Program.cs
@@ -6,6 +6,12 @@ internal static class Program
private static void Main()
{
ApplicationConfiguration.Initialize();
+
+ // Start the loader screen:
+ var loader = new Loader();
+ Application.Run(loader);
+
+ // Start the main app:
Application.Run(new Main());
}
}
\ No newline at end of file
diff --git a/I18N Commander/UI WinForms/Resources/Icons.Designer.cs b/I18N Commander/UI WinForms/Resources/Icons.Designer.cs
index 7086b75..32a2e64 100644
--- a/I18N Commander/UI WinForms/Resources/Icons.Designer.cs
+++ b/I18N Commander/UI WinForms/Resources/Icons.Designer.cs
@@ -59,5 +59,55 @@ namespace UI_WinForms.Resources {
resourceCulture = value;
}
}
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap icons8_browse_folder_512 {
+ get {
+ object obj = ResourceManager.GetObject("icons8_browse_folder_512", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap icons8_document_512 {
+ get {
+ object obj = ResourceManager.GetObject("icons8_document_512", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap icons8_language_512 {
+ get {
+ object obj = ResourceManager.GetObject("icons8_language_512", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap icons8_new_window_512 {
+ get {
+ object obj = ResourceManager.GetObject("icons8_new_window_512", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap icons8_open_file_under_cursor_512 {
+ get {
+ object obj = ResourceManager.GetObject("icons8_open_file_under_cursor_512", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
}
}
diff --git a/I18N Commander/UI WinForms/Resources/Icons.resx b/I18N Commander/UI WinForms/Resources/Icons.resx
index 85c9090..17944cf 100644
--- a/I18N Commander/UI WinForms/Resources/Icons.resx
+++ b/I18N Commander/UI WinForms/Resources/Icons.resx
@@ -1,101 +1,136 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 1.3
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ icons8-browse-folder-512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ icons8-document-512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ icons8-language-512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ icons8-new-window-512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ icons8-open-file-under-cursor-512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
\ No newline at end of file
diff --git a/I18N Commander/UI WinForms/Resources/icons8-browse-folder-512.png b/I18N Commander/UI WinForms/Resources/icons8-browse-folder-512.png
new file mode 100644
index 0000000..e8e3513
Binary files /dev/null and b/I18N Commander/UI WinForms/Resources/icons8-browse-folder-512.png differ
diff --git a/I18N Commander/UI WinForms/Resources/icons8-document-512.png b/I18N Commander/UI WinForms/Resources/icons8-document-512.png
new file mode 100644
index 0000000..f4c082e
Binary files /dev/null and b/I18N Commander/UI WinForms/Resources/icons8-document-512.png differ
diff --git a/I18N Commander/UI WinForms/Resources/icons8-language-512.png b/I18N Commander/UI WinForms/Resources/icons8-language-512.png
new file mode 100644
index 0000000..b67b5e2
Binary files /dev/null and b/I18N Commander/UI WinForms/Resources/icons8-language-512.png differ
diff --git a/I18N Commander/UI WinForms/Resources/icons8-new-window-512.png b/I18N Commander/UI WinForms/Resources/icons8-new-window-512.png
new file mode 100644
index 0000000..4f5c493
Binary files /dev/null and b/I18N Commander/UI WinForms/Resources/icons8-new-window-512.png differ
diff --git a/I18N Commander/UI WinForms/Resources/icons8-open-file-under-cursor-512.png b/I18N Commander/UI WinForms/Resources/icons8-open-file-under-cursor-512.png
new file mode 100644
index 0000000..c908d3d
Binary files /dev/null and b/I18N Commander/UI WinForms/Resources/icons8-open-file-under-cursor-512.png differ
diff --git a/I18N Commander/UI WinForms/UI WinForms.csproj b/I18N Commander/UI WinForms/UI WinForms.csproj
index 38f8d5b..9b0d15f 100644
--- a/I18N Commander/UI WinForms/UI WinForms.csproj
+++ b/I18N Commander/UI WinForms/UI WinForms.csproj
@@ -2,21 +2,18 @@
WinExe
- net6.0-windows
+ net6.0-windows10.0.22000.0
UI_WinForms
enable
true
enable
+ default
-
-
-
-
True