From 8c14f320758933a11bbb81f1fe93e27d9ddb4a41 Mon Sep 17 00:00:00 2001 From: IIIaKa Date: Wed, 20 Nov 2024 22:10:17 +0500 Subject: [PATCH] Minor changes for improved usability --- src/PatcherForm.Designer.cs | 372 +++++++++++--------------- src/PatcherForm.cs | 149 ++++++++++- src/PatcherForm.resx | 4 +- src/Program.cs | 4 +- src/Views/HookViewControl.Designer.cs | 166 ++++++------ src/Views/HookViewControl.cs | 138 +++------- src/Views/ProjectSettingsControl.cs | 3 + 7 files changed, 430 insertions(+), 406 deletions(-) diff --git a/src/PatcherForm.Designer.cs b/src/PatcherForm.Designer.cs index 44c9cdb..eee9857 100644 --- a/src/PatcherForm.Designer.cs +++ b/src/PatcherForm.Designer.cs @@ -96,96 +96,89 @@ private void InitializeComponent() this.hookmenu.SuspendLayout(); this.modifiersMenu.SuspendLayout(); this.SuspendLayout(); - - // + // // mainmenu - // - this.mainmenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] - { - this.filemenu - }); + // + this.mainmenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.filemenu}); this.mainmenu.Location = new System.Drawing.Point(0, 0); this.mainmenu.Name = "mainmenu"; this.mainmenu.Size = new System.Drawing.Size(1264, 24); this.mainmenu.TabIndex = 0; this.mainmenu.Text = "menuStrip1"; - - // + // // filemenu - // - this.filemenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] - { - this.newproject, this.openproject, this.toolStripSeparator1, this.recentprojects, this.toolStripSeparator2, this.exit - }); + // + this.filemenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.newproject, + this.openproject, + this.toolStripSeparator1, + this.recentprojects, + this.toolStripSeparator2, + this.exit}); this.filemenu.Name = "filemenu"; this.filemenu.Size = new System.Drawing.Size(37, 20); this.filemenu.Text = "File"; - - // + // // newproject - // + // this.newproject.Image = global::Oxide.Patcher.Properties.Resources.book_add; this.newproject.Name = "newproject"; this.newproject.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N))); - this.newproject.Size = new System.Drawing.Size(186, 22); + this.newproject.Size = new System.Drawing.Size(194, 22); this.newproject.Text = "New Project"; this.newproject.Click += new System.EventHandler(this.newproject_Click); - - // + // // openproject - // + // this.openproject.Image = global::Oxide.Patcher.Properties.Resources.book_go; this.openproject.Name = "openproject"; this.openproject.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); - this.openproject.Size = new System.Drawing.Size(186, 22); + this.openproject.Size = new System.Drawing.Size(194, 22); this.openproject.Text = "Open Project"; this.openproject.Click += new System.EventHandler(this.openproject_Click); - - // + // // toolStripSeparator1 - // + // this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(183, 6); - - // + this.toolStripSeparator1.Size = new System.Drawing.Size(191, 6); + // // recentprojects - // + // this.recentprojects.Name = "recentprojects"; - this.recentprojects.Size = new System.Drawing.Size(186, 22); + this.recentprojects.Size = new System.Drawing.Size(194, 22); this.recentprojects.Text = "Recent Projects"; - - // + // // toolStripSeparator2 - // + // this.toolStripSeparator2.Name = "toolStripSeparator2"; - this.toolStripSeparator2.Size = new System.Drawing.Size(183, 6); - - // + this.toolStripSeparator2.Size = new System.Drawing.Size(191, 6); + // // exit - // + // this.exit.Image = global::Oxide.Patcher.Properties.Resources.door_in; this.exit.Name = "exit"; this.exit.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F4))); - this.exit.Size = new System.Drawing.Size(186, 22); + this.exit.Size = new System.Drawing.Size(194, 22); this.exit.Text = "Exit"; this.exit.Click += new System.EventHandler(this.exit_Click); - - // + // // maintoolbar - // - this.maintoolbar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] - { - this.newprojecttool, this.openprojecttool, this.generateDocsButton, this.toolStripSeparator3, this.patchtool - }); + // + this.maintoolbar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.newprojecttool, + this.openprojecttool, + this.generateDocsButton, + this.toolStripSeparator3, + this.patchtool}); this.maintoolbar.Location = new System.Drawing.Point(0, 24); this.maintoolbar.Name = "maintoolbar"; this.maintoolbar.Size = new System.Drawing.Size(1264, 25); this.maintoolbar.TabIndex = 1; this.maintoolbar.Text = "toolStrip1"; - - // + // // newprojecttool - // + // this.newprojecttool.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.newprojecttool.Image = global::Oxide.Patcher.Properties.Resources.book_add; this.newprojecttool.ImageTransparentColor = System.Drawing.Color.Magenta; @@ -193,10 +186,9 @@ private void InitializeComponent() this.newprojecttool.Size = new System.Drawing.Size(23, 22); this.newprojecttool.Text = "New Project"; this.newprojecttool.Click += new System.EventHandler(this.newprojecttool_Click); - - // + // // openprojecttool - // + // this.openprojecttool.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.openprojecttool.Image = global::Oxide.Patcher.Properties.Resources.book_go; this.openprojecttool.ImageTransparentColor = System.Drawing.Color.Magenta; @@ -204,10 +196,9 @@ private void InitializeComponent() this.openprojecttool.Size = new System.Drawing.Size(23, 22); this.openprojecttool.Text = "Open Project"; this.openprojecttool.Click += new System.EventHandler(this.openprojecttool_Click); - - // + // // generateDocsButton - // + // this.generateDocsButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.generateDocsButton.Image = global::Oxide.Patcher.Resources.Icons.lightning; this.generateDocsButton.ImageTransparentColor = System.Drawing.Color.Magenta; @@ -215,16 +206,14 @@ private void InitializeComponent() this.generateDocsButton.Size = new System.Drawing.Size(23, 22); this.generateDocsButton.Text = "Generate Docs"; this.generateDocsButton.Click += new System.EventHandler(this.generateDocsButton_Click); - - // + // // toolStripSeparator3 - // + // this.toolStripSeparator3.Name = "toolStripSeparator3"; this.toolStripSeparator3.Size = new System.Drawing.Size(6, 25); - - // + // // patchtool - // + // this.patchtool.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.patchtool.Enabled = false; this.patchtool.Image = global::Oxide.Patcher.Properties.Resources.wand; @@ -233,49 +222,41 @@ private void InitializeComponent() this.patchtool.Size = new System.Drawing.Size(23, 22); this.patchtool.Text = "Patch"; this.patchtool.Click += new System.EventHandler(this.patchtool_Click); - - // + // // mainstatusbar - // - this.mainstatusbar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] - { - this.statuslabel - }); + // + this.mainstatusbar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.statuslabel}); this.mainstatusbar.Location = new System.Drawing.Point(0, 659); this.mainstatusbar.Name = "mainstatusbar"; this.mainstatusbar.Size = new System.Drawing.Size(1264, 22); this.mainstatusbar.TabIndex = 3; this.mainstatusbar.Text = "statusStrip1"; - - // + // // statuslabel - // + // this.statuslabel.Name = "statuslabel"; this.statuslabel.Size = new System.Drawing.Size(0, 17); - - // + // // splitter - // + // this.splitter.Dock = System.Windows.Forms.DockStyle.Fill; this.splitter.Location = new System.Drawing.Point(0, 49); this.splitter.Name = "splitter"; - - // + // // splitter.Panel1 - // + // this.splitter.Panel1.Controls.Add(this.objectview); - - // + // // splitter.Panel2 - // + // this.splitter.Panel2.Controls.Add(this.tabview); this.splitter.Size = new System.Drawing.Size(1264, 610); this.splitter.SplitterDistance = 268; this.splitter.TabIndex = 4; - - // + // // objectview - // + // this.objectview.AllowDrop = true; this.objectview.Dock = System.Windows.Forms.DockStyle.Fill; this.objectview.ImageIndex = 0; @@ -294,10 +275,9 @@ private void InitializeComponent() this.objectview.DragOver += new System.Windows.Forms.DragEventHandler(this.objectview_DragOver); this.objectview.DragLeave += new System.EventHandler(this.objectview_DragLeave); this.objectview.MouseDown += new System.Windows.Forms.MouseEventHandler(this.objectview_MouseDown); - - // + // // imagelist - // + // this.imagelist.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imagelist.ImageStream"))); this.imagelist.TransparentColor = System.Drawing.Color.Transparent; this.imagelist.Images.SetKeyName(0, "book_add.png"); @@ -325,10 +305,10 @@ private void InitializeComponent() this.imagelist.Images.SetKeyName(22, "error.png"); this.imagelist.Images.SetKeyName(23, "script_lightning.png"); this.imagelist.Images.SetKeyName(24, "folder_flagged.png"); - - // + // // tabview - // + // + this.tabview.AllowDrop = true; this.tabview.Dock = System.Windows.Forms.DockStyle.Fill; this.tabview.ItemSize = new System.Drawing.Size(110, 18); this.tabview.Location = new System.Drawing.Point(0, 0); @@ -336,250 +316,223 @@ private void InitializeComponent() this.tabview.SelectedIndex = 0; this.tabview.Size = new System.Drawing.Size(992, 610); this.tabview.TabIndex = 0; + this.tabview.DragOver += new System.Windows.Forms.DragEventHandler(this.tabview_DragOver); this.tabview.MouseClick += new System.Windows.Forms.MouseEventHandler(this.tabview_MouseClick); - - // + this.tabview.MouseDown += new System.Windows.Forms.MouseEventHandler(this.tabview_MouseDown); + this.tabview.MouseMove += new System.Windows.Forms.MouseEventHandler(this.tabview_MouseMove); + this.tabview.MouseUp += new System.Windows.Forms.MouseEventHandler(this.tabview_MouseUp); + // // tabviewcontextmenu - // - this.tabviewcontextmenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] - { - this.closeTabToolStripMenuItem, this.closeOtherTabsMenuItem - }); + // + this.tabviewcontextmenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.closeTabToolStripMenuItem, + this.closeOtherTabsMenuItem}); this.tabviewcontextmenu.Name = "tabviewcontextmenu"; this.tabviewcontextmenu.Size = new System.Drawing.Size(163, 48); - - // + // // closeTabToolStripMenuItem - // + // this.closeTabToolStripMenuItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; this.closeTabToolStripMenuItem.Name = "closeTabToolStripMenuItem"; this.closeTabToolStripMenuItem.Size = new System.Drawing.Size(162, 22); this.closeTabToolStripMenuItem.Text = "Close Tab"; this.closeTabToolStripMenuItem.Click += new System.EventHandler(this.closetab_Click); - - // + // // closeOtherTabsMenuItem - // + // this.closeOtherTabsMenuItem.Name = "closeOtherTabsMenuItem"; this.closeOtherTabsMenuItem.Size = new System.Drawing.Size(162, 22); this.closeOtherTabsMenuItem.Text = "Close Other Tabs"; this.closeOtherTabsMenuItem.Click += new System.EventHandler(this.closeothertabs_Click); - - // + // // openprojectdialog - // + // this.openprojectdialog.DefaultExt = "opj"; this.openprojectdialog.Filter = "Oxide project|*.opj"; this.openprojectdialog.Title = "Open Project"; - - // + // // unloadedassemblymenu - // - this.unloadedassemblymenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] - { - this.addtoproject - }); + // + this.unloadedassemblymenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.addtoproject}); this.unloadedassemblymenu.Name = "unloadedassemblymenu"; this.unloadedassemblymenu.Size = new System.Drawing.Size(151, 26); this.unloadedassemblymenu.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.unloadedassemblymenu_ItemClicked); - - // + // // addtoproject - // + // this.addtoproject.Name = "addtoproject"; this.addtoproject.Size = new System.Drawing.Size(150, 22); this.addtoproject.Text = "Add to Project"; - - // + // // loadedassemblymenu - // - this.loadedassemblymenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] - { - this.removefromproject - }); + // + this.loadedassemblymenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.removefromproject}); this.loadedassemblymenu.Name = "unloadedassemblymenu"; this.loadedassemblymenu.Size = new System.Drawing.Size(187, 26); this.loadedassemblymenu.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.loadedassemblymenu_ItemClicked); - - // + // // removefromproject - // + // this.removefromproject.Name = "removefromproject"; this.removefromproject.Size = new System.Drawing.Size(186, 22); this.removefromproject.Text = "Remove from Project"; - - // + // // hooksmenu - // - this.hooksmenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] - { - this.FlagMenuItem, this.UnflagMenuItem, this.toolStripSeparator4, this.FlagAllItem, this.UnflagAllItem - }); + // + this.hooksmenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.FlagMenuItem, + this.UnflagMenuItem, + this.toolStripSeparator4, + this.FlagAllItem, + this.UnflagAllItem}); this.hooksmenu.Name = "hooksmenu"; this.hooksmenu.Size = new System.Drawing.Size(127, 98); - - // + // // FlagMenuItem - // + // this.FlagMenuItem.Name = "FlagMenuItem"; this.FlagMenuItem.Size = new System.Drawing.Size(126, 22); this.FlagMenuItem.Text = "Flag"; this.FlagMenuItem.Click += new System.EventHandler(this.flag_Click); - - // + // // UnflagMenuItem - // + // this.UnflagMenuItem.Name = "UnflagMenuItem"; this.UnflagMenuItem.Size = new System.Drawing.Size(126, 22); this.UnflagMenuItem.Text = "Unflag"; this.UnflagMenuItem.Click += new System.EventHandler(this.unflag_Click); - - // + // // toolStripSeparator4 - // + // this.toolStripSeparator4.Name = "toolStripSeparator4"; this.toolStripSeparator4.Size = new System.Drawing.Size(123, 6); - - // + // // FlagAllItem - // + // this.FlagAllItem.Name = "FlagAllItem"; this.FlagAllItem.Size = new System.Drawing.Size(126, 22); this.FlagAllItem.Text = "Flag All"; this.FlagAllItem.Click += new System.EventHandler(this.flagall_Click); - - // + // // UnflagAllItem - // + // this.UnflagAllItem.Name = "UnflagAllItem"; this.UnflagAllItem.Size = new System.Drawing.Size(126, 22); this.UnflagAllItem.Text = "Unflag All"; this.UnflagAllItem.Click += new System.EventHandler(this.unflagall_Click); - - // + // // categorymenu - // - this.categorymenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] - { - this.toolStripMenuItem1, this.toolStripMenuItem3, this.toolStripSeparator5, this.FlagCategory, this.UnflagCategory - }); + // + this.categorymenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripMenuItem1, + this.toolStripMenuItem3, + this.toolStripSeparator5, + this.FlagCategory, + this.UnflagCategory}); this.categorymenu.Name = "hooksmenu"; this.categorymenu.Size = new System.Drawing.Size(127, 98); - - // + // // toolStripMenuItem1 - // + // this.toolStripMenuItem1.Name = "toolStripMenuItem1"; this.toolStripMenuItem1.Size = new System.Drawing.Size(126, 22); this.toolStripMenuItem1.Text = "Rename"; this.toolStripMenuItem1.Click += new System.EventHandler(this.renamecategory_Click); - - // + // // toolStripMenuItem3 - // + // this.toolStripMenuItem3.Name = "toolStripMenuItem3"; this.toolStripMenuItem3.Size = new System.Drawing.Size(126, 22); this.toolStripMenuItem3.Text = "Remove"; this.toolStripMenuItem3.Click += new System.EventHandler(this.removecategory_Click); - - // + // // toolStripSeparator5 - // + // this.toolStripSeparator5.Name = "toolStripSeparator5"; this.toolStripSeparator5.Size = new System.Drawing.Size(123, 6); - - // + // // FlagCategory - // + // this.FlagCategory.Name = "FlagCategory"; this.FlagCategory.Size = new System.Drawing.Size(126, 22); this.FlagCategory.Text = "Flag All"; this.FlagCategory.Click += new System.EventHandler(this.FlagCategory_Click); - - // + // // UnflagCategory - // + // this.UnflagCategory.Name = "UnflagCategory"; this.UnflagCategory.Size = new System.Drawing.Size(126, 22); this.UnflagCategory.Text = "Unflag All"; this.UnflagCategory.Click += new System.EventHandler(this.UnflagCategory_Click); - - // + // // hookmenu - // - this.hookmenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] - { - this.toolStripMenuItem4, this.toolStripSeparator6, this.toolStripMenuItem5, this.toolStripMenuItem6 - }); + // + this.hookmenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripMenuItem4, + this.toolStripSeparator6, + this.toolStripMenuItem5, + this.toolStripMenuItem6}); this.hookmenu.Name = "hooksmenu"; this.hookmenu.Size = new System.Drawing.Size(148, 76); - - // + // // toolStripMenuItem4 - // + // this.toolStripMenuItem4.Name = "toolStripMenuItem4"; this.toolStripMenuItem4.Size = new System.Drawing.Size(147, 22); this.toolStripMenuItem4.Text = "Add Category"; this.toolStripMenuItem4.Click += new System.EventHandler(this.addcategory_Click); - - // + // // toolStripSeparator6 - // + // this.toolStripSeparator6.Name = "toolStripSeparator6"; this.toolStripSeparator6.Size = new System.Drawing.Size(144, 6); - - // + // // toolStripMenuItem5 - // + // this.toolStripMenuItem5.Name = "toolStripMenuItem5"; this.toolStripMenuItem5.Size = new System.Drawing.Size(147, 22); this.toolStripMenuItem5.Text = "Flag All"; this.toolStripMenuItem5.Click += new System.EventHandler(this.flagall_Click); - - // + // // toolStripMenuItem6 - // + // this.toolStripMenuItem6.Name = "toolStripMenuItem6"; this.toolStripMenuItem6.Size = new System.Drawing.Size(147, 22); this.toolStripMenuItem6.Text = "Unflag All"; this.toolStripMenuItem6.Click += new System.EventHandler(this.unflagall_Click); - - // + // // imagelistDragDrop - // + // this.imagelistDragDrop.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit; this.imagelistDragDrop.ImageSize = new System.Drawing.Size(16, 16); this.imagelistDragDrop.TransparentColor = System.Drawing.Color.Transparent; - - // + // // modifiersMenu - // - this.modifiersMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] - { - this.flagAllToolStripMenuItem, this.unflagAllToolStripMenuItem - }); + // + this.modifiersMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.flagAllToolStripMenuItem, + this.unflagAllToolStripMenuItem}); this.modifiersMenu.Name = "modifiersMenu"; - this.modifiersMenu.Size = new System.Drawing.Size(153, 114); - - // + this.modifiersMenu.Size = new System.Drawing.Size(127, 48); + // // flagAllToolStripMenuItem - // + // this.flagAllToolStripMenuItem.Name = "flagAllToolStripMenuItem"; - this.flagAllToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.flagAllToolStripMenuItem.Size = new System.Drawing.Size(126, 22); this.flagAllToolStripMenuItem.Text = "Flag All"; this.flagAllToolStripMenuItem.Click += new System.EventHandler(this.ModifiersFlagAll); - - // + // // unflagAllToolStripMenuItem - // + // this.unflagAllToolStripMenuItem.Name = "unflagAllToolStripMenuItem"; - this.unflagAllToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.unflagAllToolStripMenuItem.Size = new System.Drawing.Size(126, 22); this.unflagAllToolStripMenuItem.Text = "Unflag All"; this.unflagAllToolStripMenuItem.Click += new System.EventHandler(this.ModifiersUnflagAll); - - // + // // PatcherForm - // + // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(1264, 681); @@ -610,6 +563,7 @@ private void InitializeComponent() this.modifiersMenu.ResumeLayout(false); this.ResumeLayout(false); this.PerformLayout(); + } private System.Windows.Forms.ContextMenuStrip modifiersMenu; diff --git a/src/PatcherForm.cs b/src/PatcherForm.cs index c743b5d..25e0d15 100644 --- a/src/PatcherForm.cs +++ b/src/PatcherForm.cs @@ -75,16 +75,14 @@ private class NodeAssemblyData public PatcherForm() { InitializeComponent(); - string title = string.Format(Text, version); - Text = title.Slice(0, title.LastIndexOf(".")); + UpdateWindowTitle(); MainForm = this; } public PatcherForm(string filename) { InitializeComponent(); - string title = string.Format(Text, version); - Text = title.Slice(0, title.LastIndexOf(".")); + UpdateWindowTitle(); if (File.Exists(filename)) { CurrentProjectFilename = filename; @@ -841,8 +839,131 @@ private void tabview_MouseClick(object sender, MouseEventArgs e) } } + private void tabview_MouseDown(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + // Store clicked tab + TabControl tabControl = (TabControl)sender; + int hoverIndex = getHoverTabIndex(tabControl); + if (hoverIndex >= 0) + { + tabControl.Tag = tabControl.TabPages[hoverIndex]; + } + } + } + + private void tabview_MouseUp(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + // Clear stored tab + TabControl tabControl = (TabControl)sender; + tabControl.Tag = null; + } + } + + private void tabview_MouseMove(object sender, MouseEventArgs e) + { + TabControl tabControl = (TabControl)sender; + if (e.Button == MouseButtons.Left && tabControl.Tag != null) + { + // Start drag and drop + TabPage clickedTab = (TabPage)tabControl.Tag; + tabControl.DoDragDrop(clickedTab, DragDropEffects.All); + } + } + + private void tabview_DragOver(object sender, DragEventArgs e) + { + TabControl tabControl = (TabControl)sender; + + // A tab is draged? + if (e.Data.GetData(typeof(TabPage)) == null) + { + return; + } + TabPage dragTab = (TabPage)e.Data.GetData(typeof(TabPage)); + int dragIndex = tabControl.TabPages.IndexOf(dragTab); + + // Hover over a tab? + int hoverIndex = getHoverTabIndex(tabControl); + if (hoverIndex < 0) + { + e.Effect = DragDropEffects.None; + return; + } + TabPage hoverTab = tabControl.TabPages[hoverIndex]; + e.Effect = DragDropEffects.Move; + + // Start of drag? + if (dragTab == hoverTab) + { + return; + } + + // Swap dragTab & hoverTab - avoids toggeling + Rectangle dragTabRect = tabControl.GetTabRect(dragIndex); + Rectangle hoverTabRect = tabControl.GetTabRect(hoverIndex); + + if (dragTabRect.Width < hoverTabRect.Width) + { + Point tcLocation = tabControl.PointToScreen(tabControl.Location); + + if (dragIndex < hoverIndex) + { + if ((e.X - tcLocation.X) > (hoverTabRect.X + hoverTabRect.Width - dragTabRect.Width)) + { + swapTabPages(tabControl, dragTab, hoverTab); + } + } + else if (dragIndex > hoverIndex) + { + if ((e.X - tcLocation.X) < (hoverTabRect.X + dragTabRect.Width)) + { + swapTabPages(tabControl, dragTab, hoverTab); + } + } + } + else + { + swapTabPages(tabControl, dragTab, hoverTab); + } + + // Select new pos of dragTab + tabControl.SelectedIndex = tabControl.TabPages.IndexOf(dragTab); + } + + private int getHoverTabIndex(TabControl tabControl) + { + for (int i = 0; i < tabControl.TabPages.Count; i++) + { + if (tabControl.GetTabRect(i).Contains(tabControl.PointToClient(Cursor.Position))) + { + return i; + } + } + return -1; + } + + private void swapTabPages(TabControl tabControl, TabPage src, TabPage dst) + { + int srcIndex = tabControl.TabPages.IndexOf(src); + int dstIndex = tabControl.TabPages.IndexOf(dst); + tabControl.TabPages[dstIndex] = src; + tabControl.TabPages[srcIndex] = dst; + tabControl.Refresh(); + } + #endregion Tab View Handlers + public void UpdateWindowTitle() + { + string versionStr = version.ToString(); + versionStr = versionStr.Slice(0, versionStr.LastIndexOf(".")); + Text = CurrentProject == null ? $"Oxide Patcher - Version {versionStr}" : $"{CurrentProject.Name} - Oxide Patcher({versionStr})"; + } + public void SetDocsButtonEnabled(bool enabled) { generateDocsButton.Enabled = enabled; @@ -1510,6 +1631,9 @@ public void OpenProject(string fileName) mruManager.AddOrUpdate(fileName); Settings.LastProjectDirectory = fileName; + + // Updating the window title + UpdateWindowTitle(); } /// @@ -1886,16 +2010,21 @@ public bool UpdateHook(Hook hook, bool batchUpdate = false, string oldName = nul //Update open hook tab foreach (TabPage tabPage in tabview.TabPages) { - if (!(tabPage.Tag is HookViewControl control) || control.Hook != hook) + if (!(tabPage.Tag is HookViewControl control)) { continue; } - tabPage.Text = hook.Name; - - control.UnflagButton.Enabled = hook.Flagged; - control.FlagButton.Enabled = !hook.Flagged; - break; + if (control.Hook == hook) + { + tabPage.Text = hook.Name; + control.FlagCheck.Checked = hook.Flagged; + } + else if (hook == control.Hook.BaseHook) + { + //Updating the parent hook button text for a child hook + control.SetBaseHookButtonText(hook.Name); + } } TreeNode hooks = objectview.Nodes["Hooks"]; diff --git a/src/PatcherForm.resx b/src/PatcherForm.resx index 57c753c..d91902a 100644 --- a/src/PatcherForm.resx +++ b/src/PatcherForm.resx @@ -134,7 +134,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAK - UQAAAk1TRnQBSQFMAgEBGQEAAVABAQFQAQEBEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA + UQAAAk1TRnQBSQFMAgEBGQEAAWABAQFgAQEBEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA AwABcAMAAQEBAAEYBgABVP8AlgABxwHQAfEBkgGmAe0BNwFdAewBIwFPAe0BIwFPAe0BIwFPAe0BIwFP Ae0BIwFPAe0BIwFPAe0BIwFPAe0BIwFPAe0BIwFOAe0BLQFWAewBpwG2Ae6WAAFBAWYB7AF8AYUB+gFV AXAB+gFPAW0B+gFLAW0B+QFHAWwB+QFDAWsB+QE/AWoB+QE8AWkB+QE5AWkB+AE2AWgB+AE0AWcB+AFj @@ -510,7 +510,7 @@ 716, 54 - 78 + 83 diff --git a/src/Program.cs b/src/Program.cs index a654e02..e3b4c7c 100644 --- a/src/Program.cs +++ b/src/Program.cs @@ -61,9 +61,9 @@ private static void Main(string[] args) { Console.WriteLine("Failed to locate Oxide.Core.dll!"); } - else + else if (MessageBox.Show("Failed to locate Oxide.Core.dll!\nOpen the instruction page?", "Oxide Patcher", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.Yes) { - MessageBox.Show("Failed to locate Oxide.Core.dll!", "Oxide Patcher", MessageBoxButtons.OK, MessageBoxIcon.Error); + System.Diagnostics.Process.Start("https://github.com/OxideMod/Oxide.Patcher?tab=readme-ov-file#patching-games"); } Environment.Exit(0); diff --git a/src/Views/HookViewControl.Designer.cs b/src/Views/HookViewControl.Designer.cs index 9172e36..e3f6e88 100644 --- a/src/Views/HookViewControl.Designer.cs +++ b/src/Views/HookViewControl.Designer.cs @@ -38,12 +38,6 @@ private void InitializeComponent() this.assemblylabel = new System.Windows.Forms.Label(); this.methodnamelabel = new System.Windows.Forms.Label(); this.methodnametextbox = new System.Windows.Forms.TextBox(); - this.buttonholder = new System.Windows.Forms.FlowLayoutPanel(); - this.flagbutton = new System.Windows.Forms.Button(); - this.unflagbutton = new System.Windows.Forms.Button(); - this.applybutton = new System.Windows.Forms.Button(); - this.deletebutton = new System.Windows.Forms.Button(); - this.clonebutton = new System.Windows.Forms.Button(); this.namelabel = new System.Windows.Forms.Label(); this.nametextbox = new System.Windows.Forms.TextBox(); this.hooknamelabel = new System.Windows.Forms.Label(); @@ -51,7 +45,12 @@ private void InitializeComponent() this.basehooklabel = new System.Windows.Forms.Label(); this.hooknametextbox = new System.Windows.Forms.TextBox(); this.hooktypedropdown = new System.Windows.Forms.ComboBox(); - this.basehookdropdown = new System.Windows.Forms.ComboBox(); + this.buttonholder = new System.Windows.Forms.FlowLayoutPanel(); + this.applybutton = new System.Windows.Forms.Button(); + this.deletebutton = new System.Windows.Forms.Button(); + this.clonebutton = new System.Windows.Forms.Button(); + this.flagCheckBox = new System.Windows.Forms.CheckBox(); + this.baseHookBtn = new System.Windows.Forms.Button(); this.tabview = new System.Windows.Forms.TabControl(); this.hooksettingstab = new System.Windows.Forms.TabPage(); this.beforetab = new System.Windows.Forms.TabPage(); @@ -88,7 +87,6 @@ private void InitializeComponent() this.detailstable.Controls.Add(this.assemblylabel, 0, 0); this.detailstable.Controls.Add(this.methodnamelabel, 0, 2); this.detailstable.Controls.Add(this.methodnametextbox, 1, 2); - this.detailstable.Controls.Add(this.buttonholder, 0, 8); this.detailstable.Controls.Add(this.namelabel, 0, 3); this.detailstable.Controls.Add(this.nametextbox, 1, 3); this.detailstable.Controls.Add(this.hooknamelabel, 0, 4); @@ -96,7 +94,8 @@ private void InitializeComponent() this.detailstable.Controls.Add(this.basehooklabel, 0, 7); this.detailstable.Controls.Add(this.hooknametextbox, 1, 4); this.detailstable.Controls.Add(this.hooktypedropdown, 1, 6); - this.detailstable.Controls.Add(this.basehookdropdown, 1, 7); + this.detailstable.Controls.Add(this.buttonholder, 0, 8); + this.detailstable.Controls.Add(this.baseHookBtn, 1, 7); this.detailstable.Dock = System.Windows.Forms.DockStyle.Fill; this.detailstable.Location = new System.Drawing.Point(3, 16); this.detailstable.Name = "detailstable"; @@ -197,69 +196,6 @@ private void InitializeComponent() this.methodnametextbox.TabIndex = 0; this.methodnametextbox.TabStop = false; // - // buttonholder - // - this.detailstable.SetColumnSpan(this.buttonholder, 2); - this.buttonholder.Controls.Add(this.flagbutton); - this.buttonholder.Controls.Add(this.unflagbutton); - this.buttonholder.Controls.Add(this.applybutton); - this.buttonholder.Controls.Add(this.deletebutton); - this.buttonholder.Controls.Add(this.clonebutton); - this.buttonholder.Location = new System.Drawing.Point(3, 246); - this.buttonholder.Name = "buttonholder"; - this.buttonholder.Size = new System.Drawing.Size(611, 30); - this.buttonholder.TabIndex = 5; - // - // flagbutton - // - this.flagbutton.Location = new System.Drawing.Point(3, 3); - this.flagbutton.Name = "flagbutton"; - this.flagbutton.Size = new System.Drawing.Size(55, 23); - this.flagbutton.TabIndex = 6; - this.flagbutton.Text = "Flag"; - this.flagbutton.UseVisualStyleBackColor = true; - this.flagbutton.Click += new System.EventHandler(this.flagbutton_Click); - // - // unflagbutton - // - this.unflagbutton.Location = new System.Drawing.Point(64, 3); - this.unflagbutton.Name = "unflagbutton"; - this.unflagbutton.Size = new System.Drawing.Size(62, 23); - this.unflagbutton.TabIndex = 7; - this.unflagbutton.Text = "Unflag"; - this.unflagbutton.UseVisualStyleBackColor = true; - this.unflagbutton.Click += new System.EventHandler(this.unflagbutton_Click); - // - // applybutton - // - this.applybutton.Location = new System.Drawing.Point(132, 3); - this.applybutton.Name = "applybutton"; - this.applybutton.Size = new System.Drawing.Size(96, 23); - this.applybutton.TabIndex = 8; - this.applybutton.Text = "Apply Changes"; - this.applybutton.UseVisualStyleBackColor = true; - this.applybutton.Click += new System.EventHandler(this.applybutton_Click); - // - // deletebutton - // - this.deletebutton.Location = new System.Drawing.Point(234, 3); - this.deletebutton.Name = "deletebutton"; - this.deletebutton.Size = new System.Drawing.Size(87, 23); - this.deletebutton.TabIndex = 9; - this.deletebutton.Text = "Remove"; - this.deletebutton.UseVisualStyleBackColor = true; - this.deletebutton.Click += new System.EventHandler(this.deletebutton_Click); - // - // clonebutton - // - this.clonebutton.Location = new System.Drawing.Point(327, 3); - this.clonebutton.Name = "clonebutton"; - this.clonebutton.Size = new System.Drawing.Size(75, 23); - this.clonebutton.TabIndex = 10; - this.clonebutton.Text = "Clone"; - this.clonebutton.UseVisualStyleBackColor = true; - this.clonebutton.Click += new System.EventHandler(this.clonebutton_Click); - // // namelabel // this.namelabel.Dock = System.Windows.Forms.DockStyle.Fill; @@ -305,7 +241,7 @@ private void InitializeComponent() this.basehooklabel.Dock = System.Windows.Forms.DockStyle.Fill; this.basehooklabel.Location = new System.Drawing.Point(3, 216); this.basehooklabel.Name = "basehooklabel"; - this.basehooklabel.Size = new System.Drawing.Size(126, 27); + this.basehooklabel.Size = new System.Drawing.Size(126, 29); this.basehooklabel.TabIndex = 9; this.basehooklabel.Text = "Base Hook:"; this.basehooklabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; @@ -330,16 +266,75 @@ private void InitializeComponent() this.hooktypedropdown.TabIndex = 4; this.hooktypedropdown.SelectedIndexChanged += new System.EventHandler(this.hooktypedropdown_SelectedIndexChanged); // - // basehookdropdown + // buttonholder + // + this.detailstable.SetColumnSpan(this.buttonholder, 2); + this.buttonholder.Controls.Add(this.applybutton); + this.buttonholder.Controls.Add(this.deletebutton); + this.buttonholder.Controls.Add(this.clonebutton); + this.buttonholder.Controls.Add(this.flagCheckBox); + this.buttonholder.Location = new System.Drawing.Point(3, 248); + this.buttonholder.Name = "buttonholder"; + this.buttonholder.Size = new System.Drawing.Size(611, 30); + this.buttonholder.TabIndex = 5; + // + // applybutton + // + this.applybutton.Location = new System.Drawing.Point(3, 3); + this.applybutton.Name = "applybutton"; + this.applybutton.Size = new System.Drawing.Size(96, 23); + this.applybutton.TabIndex = 8; + this.applybutton.Text = "Apply Changes"; + this.applybutton.UseVisualStyleBackColor = true; + this.applybutton.Click += new System.EventHandler(this.applybutton_Click); + // + // deletebutton + // + this.deletebutton.Location = new System.Drawing.Point(105, 3); + this.deletebutton.Name = "deletebutton"; + this.deletebutton.Size = new System.Drawing.Size(87, 23); + this.deletebutton.TabIndex = 9; + this.deletebutton.Text = "Remove"; + this.deletebutton.UseVisualStyleBackColor = true; + this.deletebutton.Click += new System.EventHandler(this.deletebutton_Click); + // + // clonebutton // - this.basehookdropdown.Dock = System.Windows.Forms.DockStyle.Fill; - this.basehookdropdown.Enabled = false; - this.basehookdropdown.FormattingEnabled = true; - this.basehookdropdown.Location = new System.Drawing.Point(135, 219); - this.basehookdropdown.Name = "basehookdropdown"; - this.basehookdropdown.Size = new System.Drawing.Size(479, 21); - this.basehookdropdown.TabIndex = 5; - this.basehookdropdown.SelectedIndexChanged += new System.EventHandler(this.basehookdropdown_SelectedIndexChanged); + this.clonebutton.Location = new System.Drawing.Point(198, 3); + this.clonebutton.Name = "clonebutton"; + this.clonebutton.Size = new System.Drawing.Size(75, 23); + this.clonebutton.TabIndex = 10; + this.clonebutton.Text = "Clone"; + this.clonebutton.UseVisualStyleBackColor = true; + this.clonebutton.Click += new System.EventHandler(this.clonebutton_Click); + // + // checkBoxFlag + // + this.flagCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.flagCheckBox.AutoSize = true; + this.flagCheckBox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; + this.flagCheckBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.flagCheckBox.Location = new System.Drawing.Point(279, 3); + this.flagCheckBox.Name = "checkBoxFlag"; + this.flagCheckBox.Size = new System.Drawing.Size(100, 23); + this.flagCheckBox.TabIndex = 11; + this.flagCheckBox.Text = "Ignore in patch:"; + this.flagCheckBox.UseVisualStyleBackColor = true; + this.flagCheckBox.CheckedChanged += new System.EventHandler(this.checkBoxFlag_CheckedChanged); + // + // baseHookBtn + // + this.baseHookBtn.Dock = System.Windows.Forms.DockStyle.Fill; + this.baseHookBtn.Enabled = false; + this.baseHookBtn.Location = new System.Drawing.Point(135, 219); + this.baseHookBtn.Name = "baseHookBtn"; + this.baseHookBtn.Size = new System.Drawing.Size(479, 23); + this.baseHookBtn.TabIndex = 12; + this.baseHookBtn.Text = "This hook does not have a parent hook."; + this.baseHookBtn.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.baseHookBtn.UseVisualStyleBackColor = true; + this.baseHookBtn.Click += new System.EventHandler(this.baseHookBtn_Click); // // tabview // @@ -418,8 +413,10 @@ private void InitializeComponent() this.detailstable.ResumeLayout(false); this.detailstable.PerformLayout(); this.buttonholder.ResumeLayout(false); + this.buttonholder.PerformLayout(); this.tabview.ResumeLayout(false); this.ResumeLayout(false); + } #endregion @@ -439,9 +436,6 @@ private void InitializeComponent() private System.Windows.Forms.Label basehooklabel; private System.Windows.Forms.TextBox hooknametextbox; private System.Windows.Forms.ComboBox hooktypedropdown; - private System.Windows.Forms.ComboBox basehookdropdown; - private System.Windows.Forms.Button flagbutton; - private System.Windows.Forms.Button unflagbutton; private System.Windows.Forms.Button applybutton; private System.Windows.Forms.TabControl tabview; private System.Windows.Forms.TabPage hooksettingstab; @@ -454,5 +448,7 @@ private void InitializeComponent() private System.Windows.Forms.TabPage codeaftertab; private System.Windows.Forms.TabPage codebeforetab; private System.Windows.Forms.Button clonebutton; + private System.Windows.Forms.CheckBox flagCheckBox; + private System.Windows.Forms.Button baseHookBtn; } } diff --git a/src/Views/HookViewControl.cs b/src/Views/HookViewControl.cs index 6012e31..5093b41 100644 --- a/src/Views/HookViewControl.cs +++ b/src/Views/HookViewControl.cs @@ -27,9 +27,7 @@ public partial class HookViewControl : UserControl /// public PatcherForm MainForm { get; set; } - public Button FlagButton { get; set; } - - public Button UnflagButton { get; set; } + public CheckBox FlagCheck { get; set; } private TextEditorControl _msilBefore, _msilAfter, _codeBefore, _codeAfter; @@ -42,8 +40,7 @@ public partial class HookViewControl : UserControl public HookViewControl() { InitializeComponent(); - FlagButton = flagbutton; - UnflagButton = unflagbutton; + FlagCheck = flagCheckBox; } protected override async void OnLoad(EventArgs e) @@ -52,7 +49,25 @@ protected override async void OnLoad(EventArgs e) _methodDef = MainForm.AssemblyLoader.GetMethod(Hook.AssemblyName, Hook.TypeName, Hook.Signature); - InitialiseDropdowns(); + //Hook Types + for (int i = 0; i < Hook.HookTypes.Length; i++) + { + string typeName = Hook.HookTypes[i].GetCustomAttribute().Name; + + hooktypedropdown.Items.Add(typeName); + + if (typeName == Hook.HookTypeName) + { + hooktypedropdown.SelectedIndex = i; + } + } + + //Base Hook + if (Hook.BaseHook != null) + { + SetBaseHookButtonText(Hook.BaseHookName); + baseHookBtn.Enabled = true; + } assemblytextbox.Text = Hook.AssemblyName; typenametextbox.Text = Hook.TypeName; @@ -65,8 +80,7 @@ protected override async void OnLoad(EventArgs e) applybutton.Enabled = false; - flagbutton.Enabled = !Hook.Flagged; - unflagbutton.Enabled = Hook.Flagged; + flagCheckBox.Checked = Hook.Flagged; clonebutton.Enabled = Hook.ChildHook == null; @@ -79,43 +93,6 @@ protected override async void OnLoad(EventArgs e) #region -Loading- - private void InitialiseDropdowns() - { - for (int i = 0; i < Hook.HookTypes.Length; i++) - { - string typeName = Hook.HookTypes[i].GetCustomAttribute().Name; - - hooktypedropdown.Items.Add(typeName); - - if (typeName == Hook.HookTypeName) - { - hooktypedropdown.SelectedIndex = i; - } - } - - List hooks = MainForm.CurrentProject.GetManifest(Hook.AssemblyName).Hooks; - - List baseHooks = (from hook in hooks where hook.BaseHook != null select hook.BaseHook).ToList(); - - //Add 'None' option - basehookdropdown.Items.Add(string.Empty); - - foreach (Hook hook in hooks) - { - if (hook != Hook.BaseHook && baseHooks.Contains(hook)) - { - continue; - } - - basehookdropdown.Items.Add(hook.Name); - - if (hook == Hook.BaseHook) - { - basehookdropdown.SelectedIndex = basehookdropdown.Items.Count - 1; - } - } - } - private void LoadSettings() { IHookSettingsControl settingsView = Hook.CreateSettingsView(); @@ -243,27 +220,6 @@ private void deletebutton_Click(object sender, EventArgs e) } } - private void flagbutton_Click(object sender, EventArgs e) - { - Hook.Flagged = true; - MainForm.UpdateHook(Hook); - flagbutton.Enabled = false; - unflagbutton.Enabled = true; - } - - private void unflagbutton_Click(object sender, EventArgs e) - { - Hook.Flagged = false; - MainForm.UpdateHook(Hook); - if (Hook.Flagged) - { - return; - } - - flagbutton.Enabled = true; - unflagbutton.Enabled = false; - } - private void hooktypedropdown_SelectedIndexChanged(object sender, EventArgs e) { if (!_loaded || hooktypedropdown.SelectedIndex < 0) @@ -302,6 +258,12 @@ private void hooktypedropdown_SelectedIndexChanged(object sender, EventArgs e) } } + private void baseHookBtn_Click(object sender, EventArgs e) + { + if (Hook.BaseHook != null) + MainForm.GotoHook(Hook.BaseHook); + } + private void nametextbox_TextChanged(object sender, EventArgs e) { applybutton.Enabled = true; @@ -351,38 +313,6 @@ private async void applybutton_Click(object sender, EventArgs e) applybutton.Enabled = false; } - private void basehookdropdown_SelectedIndexChanged(object sender, EventArgs e) - { - if (basehookdropdown.SelectedIndex < 0) - { - return; - } - - string hookName = (string)basehookdropdown.SelectedItem; - if (string.IsNullOrWhiteSpace(hookName)) - { - Hook.BaseHook = null; - return; - } - - List hooks = MainForm.CurrentProject.GetManifest(Hook.AssemblyName).Hooks; - foreach (Hook hook in hooks) - { - if (!hook.Name.Equals(hookName)) - { - continue; - } - - Hook.BaseHook = hook; - break; - } - - if (!Hook.BaseHook.Name.Equals(hookName)) - { - MessageBox.Show(MainForm, "Base Hook not found!", "Oxide Patcher", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - private void clonebutton_Click(object sender, EventArgs e) { if (Hook.ChildHook != null) @@ -411,6 +341,16 @@ private void clonebutton_Click(object sender, EventArgs e) clonebutton.Enabled = false; } + private void checkBoxFlag_CheckedChanged(object sender, EventArgs e) + { + Hook.Flagged = flagCheckBox.Checked; + MainForm.UpdateHook(Hook); + if (Hook.Flagged != flagCheckBox.Checked) + { + flagCheckBox.Checked = Hook.Flagged; + } + } + private string GetLastCloneName(Hook hook) { Hook currentHook = hook; @@ -423,6 +363,8 @@ private string GetLastCloneName(Hook hook) return currentHook.Name; } + public void SetBaseHookButtonText(string text = "") => baseHookBtn.Text = text; + #endregion } } diff --git a/src/Views/ProjectSettingsControl.cs b/src/Views/ProjectSettingsControl.cs index 54a2aa0..9c27360 100644 --- a/src/Views/ProjectSettingsControl.cs +++ b/src/Views/ProjectSettingsControl.cs @@ -47,6 +47,9 @@ private void savebutton_Click(object sender, EventArgs e) ProjectObject.Name = nametextbox.Text; ProjectObject.TargetDirectory = directorytextbox.Text; ProjectObject.Save(ProjectFilename); + + // Updating the window title + PatcherForm.MainForm.UpdateWindowTitle(); } } }