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