From b2f672c94f74aec95b7636daf35ab4f209e04b4f Mon Sep 17 00:00:00 2001 From: codeimp Date: Sun, 22 Aug 2010 20:56:52 +0000 Subject: [PATCH] Added 'conversation' UDMF field to Things in ZDoom configurations Added the ability for plugins to choose the toolbar section in which to add a button Added beginning of ZDoom USDF conversation editor plugin --- Build/Configurations/Includes/ZDoom_misc.cfg | 6 + Builder.sln | 12 ++ Resources/Icons/Dialog.png | Bin 0 -> 592 bytes Source/Core/Builder.csproj | 2 + Source/Core/Windows/IMainForm.cs | 7 +- Source/Core/Windows/MainForm.Designer.cs | 128 +++++++------- Source/Core/Windows/MainForm.cs | 92 ++++++++-- Source/Core/Windows/MainForm.resx | 15 -- Source/Core/Windows/PluginToolbarButton.cs | 46 +++++ Source/Core/Windows/ToolbarSection.cs | 54 ++++++ Source/Plugins/ZDoomUSDF/BuilderPlug.cs | 160 ++++++++++++++++++ .../ZDoomUSDF/Properties/AssemblyInfo.cs | 36 ++++ .../Properties/Resources.Designer.cs | 70 ++++++++ .../ZDoomUSDF/Properties/Resources.resx | 124 ++++++++++++++ .../Plugins/ZDoomUSDF/Resources/Actions.cfg | 15 ++ Source/Plugins/ZDoomUSDF/Resources/Dialog.png | Bin 0 -> 592 bytes .../Plugins/ZDoomUSDF/ToolsForm.Designer.cs | 69 ++++++++ Source/Plugins/ZDoomUSDF/ToolsForm.cs | 69 ++++++++ Source/Plugins/ZDoomUSDF/ToolsForm.resx | 126 ++++++++++++++ Source/Plugins/ZDoomUSDF/ZDoomUSDF.csproj | 83 +++++++++ 20 files changed, 1018 insertions(+), 96 deletions(-) create mode 100644 Resources/Icons/Dialog.png create mode 100644 Source/Core/Windows/PluginToolbarButton.cs create mode 100644 Source/Core/Windows/ToolbarSection.cs create mode 100644 Source/Plugins/ZDoomUSDF/BuilderPlug.cs create mode 100644 Source/Plugins/ZDoomUSDF/Properties/AssemblyInfo.cs create mode 100644 Source/Plugins/ZDoomUSDF/Properties/Resources.Designer.cs create mode 100644 Source/Plugins/ZDoomUSDF/Properties/Resources.resx create mode 100644 Source/Plugins/ZDoomUSDF/Resources/Actions.cfg create mode 100644 Source/Plugins/ZDoomUSDF/Resources/Dialog.png create mode 100644 Source/Plugins/ZDoomUSDF/ToolsForm.Designer.cs create mode 100644 Source/Plugins/ZDoomUSDF/ToolsForm.cs create mode 100644 Source/Plugins/ZDoomUSDF/ToolsForm.resx create mode 100644 Source/Plugins/ZDoomUSDF/ZDoomUSDF.csproj diff --git a/Build/Configurations/Includes/ZDoom_misc.cfg b/Build/Configurations/Includes/ZDoom_misc.cfg index 80f48fb0..ecd5f654 100644 --- a/Build/Configurations/Includes/ZDoom_misc.cfg +++ b/Build/Configurations/Includes/ZDoom_misc.cfg @@ -259,6 +259,12 @@ universalfields type = 2; default = ""; } + + conversation + { + type = 0; + default = 0; + } } sector diff --git a/Builder.sln b/Builder.sln index c01998dc..67ac83d0 100644 --- a/Builder.sln +++ b/Builder.sln @@ -15,6 +15,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommentsPanel", "Source\Plu EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WadAuthorMode", "Source\Plugins\WadAuthorMode\WadAuthorMode.csproj", "{B675B60F-FFB4-4170-BEA8-A8849E197B93}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZDoomUSDF", "Source\Plugins\ZDoomUSDF\ZDoomUSDF.csproj", "{CC9BAD62-C57B-45A0-BC5D-172A2957ADC7}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -89,6 +91,16 @@ Global {B675B60F-FFB4-4170-BEA8-A8849E197B93}.Release|Mixed Platforms.Build.0 = Release|x86 {B675B60F-FFB4-4170-BEA8-A8849E197B93}.Release|x86.ActiveCfg = Release|x86 {B675B60F-FFB4-4170-BEA8-A8849E197B93}.Release|x86.Build.0 = Release|x86 + {CC9BAD62-C57B-45A0-BC5D-172A2957ADC7}.Debug|Any CPU.ActiveCfg = Debug|x86 + {CC9BAD62-C57B-45A0-BC5D-172A2957ADC7}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {CC9BAD62-C57B-45A0-BC5D-172A2957ADC7}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {CC9BAD62-C57B-45A0-BC5D-172A2957ADC7}.Debug|x86.ActiveCfg = Debug|x86 + {CC9BAD62-C57B-45A0-BC5D-172A2957ADC7}.Debug|x86.Build.0 = Debug|x86 + {CC9BAD62-C57B-45A0-BC5D-172A2957ADC7}.Release|Any CPU.ActiveCfg = Release|x86 + {CC9BAD62-C57B-45A0-BC5D-172A2957ADC7}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {CC9BAD62-C57B-45A0-BC5D-172A2957ADC7}.Release|Mixed Platforms.Build.0 = Release|x86 + {CC9BAD62-C57B-45A0-BC5D-172A2957ADC7}.Release|x86.ActiveCfg = Release|x86 + {CC9BAD62-C57B-45A0-BC5D-172A2957ADC7}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Resources/Icons/Dialog.png b/Resources/Icons/Dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..1bbc62c7bf1aeda020cb0e81ad220276f72dd47c GIT binary patch literal 592 zcmV-W010UR<@0@$T?>mYj@v!4QvVXHM4wR#K7=+S2)CIfUE+Uai zm{Km#{8%kL5OD1*8x)Zdj0BKMr=aUPN+`W!FA5vm%jeo@_7tJm0XBBmFuyg6&r6^1 z?#n3ZTW)GfXa7_D4!R9p#&PBt`Fy@0d84vICckKb0OG3j)Ok<-Z%yd#;8D>nv9xiDL_YWra e3H&!oUOxvoeBprp+PReg0000 PasteOptionsForm.cs + Form @@ -733,6 +734,7 @@ ThingBrowserForm.cs + Form diff --git a/Source/Core/Windows/IMainForm.cs b/Source/Core/Windows/IMainForm.cs index cabc6bab..3e5a0109 100644 --- a/Source/Core/Windows/IMainForm.cs +++ b/Source/Core/Windows/IMainForm.cs @@ -143,7 +143,12 @@ namespace CodeImp.DoomBuilder.Windows /// This adds a custom button to the toolbar. /// void AddButton(ToolStripItem button); - + + /// + /// This adds a custom button to a specific section in the toolbar. Note that the visibility of the button will be controlled by the user's preferences of that section! + /// + void AddButton(ToolStripItem button, ToolbarSection section); + /// /// This removes a custom button from the toolbar. /// diff --git a/Source/Core/Windows/MainForm.Designer.cs b/Source/Core/Windows/MainForm.Designer.cs index dfc5982d..3c9090ef 100644 --- a/Source/Core/Windows/MainForm.Designer.cs +++ b/Source/Core/Windows/MainForm.Designer.cs @@ -33,18 +33,18 @@ namespace CodeImp.DoomBuilder.Windows System.Windows.Forms.ToolStripSeparator toolStripMenuItem3; System.Windows.Forms.ToolStripSeparator toolStripSeparator1; System.Windows.Forms.ToolStripSeparator toolStripSeparator9; - System.Windows.Forms.ToolStripSeparator toolStripSeparator3; - System.Windows.Forms.ToolStripSeparator toolStripSeparator10; System.Windows.Forms.ToolStripSeparator toolStripSeparator11; - System.Windows.Forms.ToolStripSeparator toolstripSeperator1; System.Windows.Forms.ToolStripSeparator toolstripSeperator6; - System.Windows.Forms.ToolStripSeparator toolStripSeparator7; System.Windows.Forms.ToolStripSeparator toolStripSeparator12; - System.Windows.Forms.ToolStripSeparator toolStripSeparator4; System.Windows.Forms.ToolStripSeparator toolStripMenuItem4; System.Windows.Forms.ToolStripSeparator toolStripSeparator2; System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); - this.buttoneditmodesseperator = new System.Windows.Forms.ToolStripSeparator(); + this.seperatorfile = new System.Windows.Forms.ToolStripSeparator(); + this.seperatorscript = new System.Windows.Forms.ToolStripSeparator(); + this.seperatorprefabs = new System.Windows.Forms.ToolStripSeparator(); + this.seperatorundo = new System.Windows.Forms.ToolStripSeparator(); + this.seperatorcopypaste = new System.Windows.Forms.ToolStripSeparator(); + this.seperatormodes = new System.Windows.Forms.ToolStripSeparator(); this.poscommalabel = new System.Windows.Forms.ToolStripStatusLabel(); this.menumain = new System.Windows.Forms.MenuStrip(); this.menufile = new System.Windows.Forms.ToolStripMenuItem(); @@ -128,12 +128,12 @@ namespace CodeImp.DoomBuilder.Windows this.buttonviewbrightness = new System.Windows.Forms.ToolStripButton(); this.buttonviewfloors = new System.Windows.Forms.ToolStripButton(); this.buttonviewceilings = new System.Windows.Forms.ToolStripButton(); - this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator(); + this.seperatorviews = new System.Windows.Forms.ToolStripSeparator(); this.buttonsnaptogrid = new System.Windows.Forms.ToolStripButton(); this.buttonautomerge = new System.Windows.Forms.ToolStripButton(); - this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); + this.seperatorgeometry = new System.Windows.Forms.ToolStripSeparator(); this.buttontest = new System.Windows.Forms.ToolStripSplitButton(); - this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator(); + this.seperatortesting = new System.Windows.Forms.ToolStripSeparator(); this.statusbar = new System.Windows.Forms.StatusStrip(); this.statuslabel = new System.Windows.Forms.ToolStripStatusLabel(); this.configlabel = new System.Windows.Forms.ToolStripStatusLabel(); @@ -181,14 +181,9 @@ namespace CodeImp.DoomBuilder.Windows toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator(); toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator(); - toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); - toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator(); toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator(); - toolstripSeperator1 = new System.Windows.Forms.ToolStripSeparator(); toolstripSeperator6 = new System.Windows.Forms.ToolStripSeparator(); - toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator(); toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator(); - toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator(); toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); this.menumain.SuspendLayout(); @@ -221,17 +216,17 @@ namespace CodeImp.DoomBuilder.Windows toolStripSeparator9.Name = "toolStripSeparator9"; toolStripSeparator9.Size = new System.Drawing.Size(6, 23); // - // toolStripSeparator3 + // seperatorfile // - toolStripSeparator3.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); - toolStripSeparator3.Name = "toolStripSeparator3"; - toolStripSeparator3.Size = new System.Drawing.Size(6, 25); + this.seperatorfile.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.seperatorfile.Name = "seperatorfile"; + this.seperatorfile.Size = new System.Drawing.Size(6, 25); // - // toolStripSeparator10 + // seperatorscript // - toolStripSeparator10.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); - toolStripSeparator10.Name = "toolStripSeparator10"; - toolStripSeparator10.Size = new System.Drawing.Size(6, 25); + this.seperatorscript.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.seperatorscript.Name = "seperatorscript"; + this.seperatorscript.Size = new System.Drawing.Size(6, 25); // // toolStripSeparator11 // @@ -239,11 +234,11 @@ namespace CodeImp.DoomBuilder.Windows toolStripSeparator11.Name = "toolStripSeparator11"; toolStripSeparator11.Size = new System.Drawing.Size(162, 6); // - // toolstripSeperator1 + // seperatorprefabs // - toolstripSeperator1.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); - toolstripSeperator1.Name = "toolstripSeperator1"; - toolstripSeperator1.Size = new System.Drawing.Size(6, 25); + this.seperatorprefabs.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.seperatorprefabs.Name = "seperatorprefabs"; + this.seperatorprefabs.Size = new System.Drawing.Size(6, 25); // // toolstripSeperator6 // @@ -251,11 +246,11 @@ namespace CodeImp.DoomBuilder.Windows toolstripSeperator6.Name = "toolstripSeperator6"; toolstripSeperator6.Size = new System.Drawing.Size(162, 6); // - // toolStripSeparator7 + // seperatorundo // - toolStripSeparator7.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); - toolStripSeparator7.Name = "toolStripSeparator7"; - toolStripSeparator7.Size = new System.Drawing.Size(6, 25); + this.seperatorundo.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.seperatorundo.Name = "seperatorundo"; + this.seperatorundo.Size = new System.Drawing.Size(6, 25); // // toolStripSeparator12 // @@ -263,11 +258,11 @@ namespace CodeImp.DoomBuilder.Windows toolStripSeparator12.Name = "toolStripSeparator12"; toolStripSeparator12.Size = new System.Drawing.Size(6, 23); // - // toolStripSeparator4 + // seperatorcopypaste // - toolStripSeparator4.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); - toolStripSeparator4.Name = "toolStripSeparator4"; - toolStripSeparator4.Size = new System.Drawing.Size(6, 25); + this.seperatorcopypaste.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.seperatorcopypaste.Name = "seperatorcopypaste"; + this.seperatorcopypaste.Size = new System.Drawing.Size(6, 25); // // toolStripMenuItem4 // @@ -279,12 +274,12 @@ namespace CodeImp.DoomBuilder.Windows toolStripSeparator2.Name = "toolStripSeparator2"; toolStripSeparator2.Size = new System.Drawing.Size(164, 6); // - // buttoneditmodesseperator + // seperatormodes // - this.buttoneditmodesseperator.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); - this.buttoneditmodesseperator.Name = "buttoneditmodesseperator"; - this.buttoneditmodesseperator.Size = new System.Drawing.Size(6, 25); - this.buttoneditmodesseperator.Visible = false; + this.seperatormodes.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.seperatormodes.Name = "seperatormodes"; + this.seperatormodes.Size = new System.Drawing.Size(6, 25); + this.seperatormodes.Visible = false; // // poscommalabel // @@ -874,32 +869,32 @@ namespace CodeImp.DoomBuilder.Windows this.buttonnewmap, this.buttonopenmap, this.buttonsavemap, - toolStripSeparator3, + this.seperatorfile, this.buttonscripteditor, - toolStripSeparator10, + this.seperatorscript, this.buttonundo, this.buttonredo, - toolStripSeparator7, + this.seperatorundo, this.buttoncut, this.buttoncopy, this.buttonpaste, - toolStripSeparator4, + this.seperatorcopypaste, this.buttoninsertprefabfile, this.buttoninsertpreviousprefab, - toolstripSeperator1, - this.buttoneditmodesseperator, + this.seperatorprefabs, + this.seperatormodes, this.buttonthingsfilter, this.thingfilters, this.buttonviewnormal, this.buttonviewbrightness, this.buttonviewfloors, this.buttonviewceilings, - this.toolStripSeparator8, + this.seperatorviews, this.buttonsnaptogrid, this.buttonautomerge, - this.toolStripSeparator5, + this.seperatorgeometry, this.buttontest, - this.toolStripSeparator6}); + this.seperatortesting}); this.toolbar.Location = new System.Drawing.Point(0, 24); this.toolbar.Name = "toolbar"; this.toolbar.Size = new System.Drawing.Size(1012, 25); @@ -1104,11 +1099,11 @@ namespace CodeImp.DoomBuilder.Windows this.buttonviewceilings.Text = "View Ceiling Textures"; this.buttonviewceilings.Click += new System.EventHandler(this.InvokeTaggedAction); // - // toolStripSeparator8 + // seperatorviews // - this.toolStripSeparator8.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); - this.toolStripSeparator8.Name = "toolStripSeparator8"; - this.toolStripSeparator8.Size = new System.Drawing.Size(6, 25); + this.seperatorviews.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.seperatorviews.Name = "seperatorviews"; + this.seperatorviews.Size = new System.Drawing.Size(6, 25); // // buttonsnaptogrid // @@ -1136,11 +1131,11 @@ namespace CodeImp.DoomBuilder.Windows this.buttonautomerge.Text = "Merge Geometry"; this.buttonautomerge.Click += new System.EventHandler(this.InvokeTaggedAction); // - // toolStripSeparator5 + // seperatorgeometry // - this.toolStripSeparator5.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); - this.toolStripSeparator5.Name = "toolStripSeparator5"; - this.toolStripSeparator5.Size = new System.Drawing.Size(6, 25); + this.seperatorgeometry.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.seperatorgeometry.Name = "seperatorgeometry"; + this.seperatorgeometry.Size = new System.Drawing.Size(6, 25); // // buttontest // @@ -1154,11 +1149,11 @@ namespace CodeImp.DoomBuilder.Windows this.buttontest.Text = "Test Map"; this.buttontest.ButtonClick += new System.EventHandler(this.InvokeTaggedAction); // - // toolStripSeparator6 + // seperatortesting // - this.toolStripSeparator6.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); - this.toolStripSeparator6.Name = "toolStripSeparator6"; - this.toolStripSeparator6.Size = new System.Drawing.Size(6, 25); + this.seperatortesting.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.seperatortesting.Name = "seperatortesting"; + this.seperatortesting.Size = new System.Drawing.Size(6, 25); // // statusbar // @@ -1683,7 +1678,7 @@ namespace CodeImp.DoomBuilder.Windows private CodeImp.DoomBuilder.Controls.ThingInfoPanel thinginfo; private System.Windows.Forms.ToolStripButton buttonthingsfilter; private System.Windows.Forms.ToolStripComboBox thingfilters; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator8; + private System.Windows.Forms.ToolStripSeparator seperatorviews; private System.Windows.Forms.ToolStripStatusLabel gridlabel; private System.Windows.Forms.ToolStripDropDownButton buttongrid; private System.Windows.Forms.ToolStripMenuItem itemgrid1024; @@ -1705,11 +1700,11 @@ namespace CodeImp.DoomBuilder.Windows private System.Windows.Forms.ToolStripMenuItem itemsnaptogrid; private System.Windows.Forms.ToolStripButton buttonautomerge; private System.Windows.Forms.ToolStripMenuItem itemautomerge; - private System.Windows.Forms.ToolStripSeparator buttoneditmodesseperator; + private System.Windows.Forms.ToolStripSeparator seperatormodes; private System.Windows.Forms.Timer processor; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator5; + private System.Windows.Forms.ToolStripSeparator seperatorgeometry; private System.Windows.Forms.ToolStripSeparator toolStripMenuItem5; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator6; + private System.Windows.Forms.ToolStripSeparator seperatortesting; private System.Windows.Forms.ToolStripSeparator toolStripMenuItem6; private System.Windows.Forms.ToolStripMenuItem itemgridinc; private System.Windows.Forms.ToolStripMenuItem itemgriddec; @@ -1772,5 +1767,10 @@ namespace CodeImp.DoomBuilder.Windows private System.Windows.Forms.Panel dockersspace; private CodeImp.DoomBuilder.Controls.DockersControl dockerspanel; private System.Windows.Forms.Timer dockerscollapser; + private System.Windows.Forms.ToolStripSeparator seperatorfile; + private System.Windows.Forms.ToolStripSeparator seperatorscript; + private System.Windows.Forms.ToolStripSeparator seperatorprefabs; + private System.Windows.Forms.ToolStripSeparator seperatorundo; + private System.Windows.Forms.ToolStripSeparator seperatorcopypaste; } } \ No newline at end of file diff --git a/Source/Core/Windows/MainForm.cs b/Source/Core/Windows/MainForm.cs index 545f285e..9537c8c5 100644 --- a/Source/Core/Windows/MainForm.cs +++ b/Source/Core/Windows/MainForm.cs @@ -137,7 +137,9 @@ namespace CodeImp.DoomBuilder.Windows private List editmodeitems; // Toolbar + private List pluginbuttons; private EventHandler buttonvisiblechangedhandler; + private bool preventupdateseperators; private bool updatingfilters; // Statusbar @@ -182,6 +184,7 @@ namespace CodeImp.DoomBuilder.Windows { // Setup controls InitializeComponent(); + pluginbuttons = new List(); editmodeitems = new List(); labelcollapsedinfo.Text = ""; display.Dock = DockStyle.Fill; @@ -1501,40 +1504,76 @@ namespace CodeImp.DoomBuilder.Windows } // This adds a button to the toolbar - public void AddButton(ToolStripItem button) + public void AddButton(ToolStripItem button) { AddButton(button, ToolbarSection.Custom, General.Plugins.FindPluginByAssembly(Assembly.GetCallingAssembly())); } + public void AddButton(ToolStripItem button, ToolbarSection section) { AddButton(button, section, General.Plugins.FindPluginByAssembly(Assembly.GetCallingAssembly())); } + private void AddButton(ToolStripItem button, ToolbarSection section, Plugin plugin) { - // Find the plugin that called this method - Plugin plugin = General.Plugins.FindPluginByAssembly(Assembly.GetCallingAssembly()); - // Fix tags to full action names ToolStripItemCollection items = new ToolStripItemCollection(toolbar, new ToolStripItem[0]); items.Add(button); RenameTagsToFullActions(items, plugin); + + // Add to the list so we can update it as needed + PluginToolbarButton buttoninfo = new PluginToolbarButton(); + buttoninfo.button = button; + buttoninfo.section = section; + pluginbuttons.Add(buttoninfo); // Bind visible changed event if(!(button is ToolStripSeparator)) button.VisibleChanged += buttonvisiblechangedhandler; - // Insert the button at the end of the toolbar - toolbar.Items.Add(button); - UpdateSeparators(); + // Insert the button in the right section + switch(section) + { + case ToolbarSection.File: toolbar.Items.Insert(toolbar.Items.IndexOf(seperatorfile), button); break; + case ToolbarSection.Script: toolbar.Items.Insert(toolbar.Items.IndexOf(seperatorscript), button); break; + case ToolbarSection.UndoRedo: toolbar.Items.Insert(toolbar.Items.IndexOf(seperatorundo), button); break; + case ToolbarSection.CopyPaste: toolbar.Items.Insert(toolbar.Items.IndexOf(seperatorcopypaste), button); break; + case ToolbarSection.Prefabs: toolbar.Items.Insert(toolbar.Items.IndexOf(seperatorprefabs), button); break; + case ToolbarSection.Things: toolbar.Items.Insert(toolbar.Items.IndexOf(buttonviewnormal), button); break; + case ToolbarSection.Views: toolbar.Items.Insert(toolbar.Items.IndexOf(seperatorviews), button); break; + case ToolbarSection.Geometry: toolbar.Items.Insert(toolbar.Items.IndexOf(seperatorgeometry), button); break; + case ToolbarSection.Testing: toolbar.Items.Insert(toolbar.Items.IndexOf(seperatortesting), button); break; + case ToolbarSection.Custom: toolbar.Items.Add(button); break; + } + + UpdateToolbar(); } // Removes a button public void RemoveButton(ToolStripItem button) { - // Unbind visible changed event - if(!(button is ToolStripSeparator)) button.VisibleChanged -= buttonvisiblechangedhandler; + // Find in the list and remove it + PluginToolbarButton buttoninfo = new PluginToolbarButton(); + for(int i = 0; i < pluginbuttons.Count; i++) + { + if(pluginbuttons[i].button == button) + { + buttoninfo = pluginbuttons[i]; + pluginbuttons.RemoveAt(i); + break; + } + } - // Remove button - toolbar.Items.Remove(button); - UpdateSeparators(); + if(buttoninfo.button != null) + { + // Unbind visible changed event + if(!(button is ToolStripSeparator)) button.VisibleChanged -= buttonvisiblechangedhandler; + + // Remove button from toolbar + toolbar.Items.Remove(button); + UpdateSeparators(); + } } // This handle visibility changes in the toolbar buttons private void ToolbarButtonVisibleChanged(object sender, EventArgs e) { - // Update the seeprators - UpdateSeparators(); + if(!preventupdateseperators) + { + // Update the seeprators + UpdateSeparators(); + } } // This hides redundant seperators and shows single seperators @@ -1572,6 +1611,8 @@ namespace CodeImp.DoomBuilder.Windows // This enables or disables all editing mode items and toolbar buttons private void UpdateToolbar() { + preventupdateseperators = true; + // Show/hide items based on preferences buttonnewmap.Visible = General.Settings.ToolbarFile; buttonopenmap.Visible = General.Settings.ToolbarFile; @@ -1597,6 +1638,25 @@ namespace CodeImp.DoomBuilder.Windows // Enable/disable all edit mode items foreach(ToolStripItem i in editmodeitems) i.Enabled = (General.Map != null); + // Update plugin buttons + foreach(PluginToolbarButton p in pluginbuttons) + { + switch(p.section) + { + case ToolbarSection.File: p.button.Visible = General.Settings.ToolbarFile; break; + case ToolbarSection.Script: p.button.Visible = General.Settings.ToolbarScript; break; + case ToolbarSection.UndoRedo: p.button.Visible = General.Settings.ToolbarUndo; break; + case ToolbarSection.CopyPaste: p.button.Visible = General.Settings.ToolbarCopy; break; + case ToolbarSection.Prefabs: p.button.Visible = General.Settings.ToolbarPrefabs; break; + case ToolbarSection.Things: p.button.Visible = General.Settings.ToolbarFilter; break; + case ToolbarSection.Views: p.button.Visible = General.Settings.ToolbarViewModes; break; + case ToolbarSection.Geometry: p.button.Visible = General.Settings.ToolbarGeometry; break; + case ToolbarSection.Testing: p.button.Visible = General.Settings.ToolbarTesting; break; + } + } + + preventupdateseperators = false; + UpdateSeparators(); } @@ -1644,7 +1704,7 @@ namespace CodeImp.DoomBuilder.Windows int index; // Create a button - index = toolbar.Items.IndexOf(buttoneditmodesseperator); + index = toolbar.Items.IndexOf(seperatormodes); item = new ToolStripSeparator(); item.Margin = new Padding(6, 0, 6, 0); toolbar.Items.Insert(index, item); @@ -1669,7 +1729,7 @@ namespace CodeImp.DoomBuilder.Windows string controlname = modeinfo.ButtonDesc.Replace("&", "&&"); // Create a button - index = toolbar.Items.IndexOf(buttoneditmodesseperator); + index = toolbar.Items.IndexOf(seperatormodes); item = new ToolStripButton(modeinfo.ButtonDesc, modeinfo.ButtonImage, new EventHandler(EditModeButtonHandler)); item.DisplayStyle = ToolStripItemDisplayStyle.Image; item.Tag = modeinfo; diff --git a/Source/Core/Windows/MainForm.resx b/Source/Core/Windows/MainForm.resx index 5dd5ae97..28df310e 100644 --- a/Source/Core/Windows/MainForm.resx +++ b/Source/Core/Windows/MainForm.resx @@ -129,30 +129,15 @@ False - - False - - - False - False - - False - False - - False - False - - False - False diff --git a/Source/Core/Windows/PluginToolbarButton.cs b/Source/Core/Windows/PluginToolbarButton.cs new file mode 100644 index 00000000..cea9dba3 --- /dev/null +++ b/Source/Core/Windows/PluginToolbarButton.cs @@ -0,0 +1,46 @@ + +#region ================== Copyright (c) 2007 Pascal vd Heiden + +/* + * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com + * This program is released under GNU General Public License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#endregion + +#region ================== Namespaces + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Text; +using System.Windows.Forms; +using System.IO; +using System.Reflection; +using System.Drawing; +using System.ComponentModel; +using CodeImp.DoomBuilder.Map; +using SlimDX.Direct3D9; +using SlimDX; +using CodeImp.DoomBuilder.Geometry; +using System.Drawing.Imaging; +using CodeImp.DoomBuilder.Data; +using CodeImp.DoomBuilder.Editing; + +#endregion + +namespace CodeImp.DoomBuilder.Windows +{ + public struct PluginToolbarButton + { + public ToolbarSection section; + public ToolStripItem button; + } +} diff --git a/Source/Core/Windows/ToolbarSection.cs b/Source/Core/Windows/ToolbarSection.cs new file mode 100644 index 00000000..13876dd4 --- /dev/null +++ b/Source/Core/Windows/ToolbarSection.cs @@ -0,0 +1,54 @@ + +#region ================== Copyright (c) 2007 Pascal vd Heiden + +/* + * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com + * This program is released under GNU General Public License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#endregion + +#region ================== Namespaces + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Text; +using System.Windows.Forms; +using System.IO; +using System.Reflection; +using System.Drawing; +using System.ComponentModel; +using CodeImp.DoomBuilder.Map; +using SlimDX.Direct3D9; +using SlimDX; +using CodeImp.DoomBuilder.Geometry; +using System.Drawing.Imaging; +using CodeImp.DoomBuilder.Data; +using CodeImp.DoomBuilder.Editing; + +#endregion + +namespace CodeImp.DoomBuilder.Windows +{ + public enum ToolbarSection + { + File, + Script, + UndoRedo, + CopyPaste, + Prefabs, + Things, + Views, + Geometry, + Testing, + Custom + } +} diff --git a/Source/Plugins/ZDoomUSDF/BuilderPlug.cs b/Source/Plugins/ZDoomUSDF/BuilderPlug.cs new file mode 100644 index 00000000..948b4427 --- /dev/null +++ b/Source/Plugins/ZDoomUSDF/BuilderPlug.cs @@ -0,0 +1,160 @@ + +#region ================== Copyright (c) 2010 Pascal vd Heiden + +/* + * Copyright (c) 2010 Pascal vd Heiden + * This program is released under GNU General Public License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#endregion + +#region ================== Namespaces + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Globalization; +using System.Text; +using System.IO; +using System.Reflection; +using System.Windows.Forms; +using CodeImp.DoomBuilder.Controls; +using CodeImp.DoomBuilder.Windows; +using CodeImp.DoomBuilder.IO; +using CodeImp.DoomBuilder.Map; +using CodeImp.DoomBuilder.Rendering; +using CodeImp.DoomBuilder.Geometry; +using CodeImp.DoomBuilder.Editing; +using CodeImp.DoomBuilder.Plugins; +using CodeImp.DoomBuilder.Actions; +using CodeImp.DoomBuilder.Types; +using CodeImp.DoomBuilder.Config; +using CodeImp.DoomBuilder.Data; + +#endregion + +namespace CodeImp.DoomBuilder.ZDoomUSDF +{ + public class BuilderPlug : Plug + { + #region ================== Variables + + // Static instance + private static BuilderPlug me; + + // Tools form + private ToolsForm toolsform; + + #endregion + + #region ================== Properties + + // Static property to access the BuilderPlug + public static BuilderPlug Me { get { return me; } } + + #endregion + + #region ================== Methods + + // This loads what is needed to support USDF + private void Load() + { + // Check if the map format has a DIALOGUE lump we can edit + bool editlump = false; + foreach(KeyValuePair lump in General.Map.Config.MapLumps) + { + if(lump.Key.Trim().ToUpperInvariant() == "DIALOGUE") + editlump = true; + } + + if(editlump) + { + // Load tools (this adds our button to the toolbar) + if(toolsform == null) + toolsform = new ToolsForm(); + } + } + + // This unloads everything + private void Unload() + { + if(toolsform != null) + toolsform.Dispose(); + + toolsform = null; + } + + #endregion + + #region ================== Events + + // This event is called when the plugin is initialized + public override void OnInitialize() + { + base.OnInitialize(); + + // Keep a static reference + me = this; + + General.Actions.BindMethods(this); + } + + // This is called when the plugin is terminated + public override void Dispose() + { + General.Actions.UnbindMethods(this); + Unload(); + base.Dispose(); + } + + // New map started + public override void OnMapNewEnd() + { + base.OnMapNewEnd(); + Load(); + } + + // Map opened + public override void OnMapOpenEnd() + { + base.OnMapOpenEnd(); + Load(); + } + + // Map closed + public override void OnMapCloseEnd() + { + base.OnMapCloseEnd(); + Unload(); + } + + // Map config changed + public override void OnMapReconfigure() + { + base.OnMapReconfigure(); + Unload(); + Load(); + } + + #endregion + + #region ================== Actions + + [BeginAction("openconversationeditor")] + public void OpenConversationEditor() + { + + MessageBox.Show("Not implemented yet."); + + } + + #endregion + } +} diff --git a/Source/Plugins/ZDoomUSDF/Properties/AssemblyInfo.cs b/Source/Plugins/ZDoomUSDF/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..1d8210ca --- /dev/null +++ b/Source/Plugins/ZDoomUSDF/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ZDoomUSDF")] +[assembly: AssemblyDescription("ZDoom USDF Editor plugin")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Doom Builder")] +[assembly: AssemblyCopyright("Copyright © 2010")] +[assembly: AssemblyTrademark("CodeImp")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("49d76fc2-0683-4fce-9a22-7b288061ffc2")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/ZDoomUSDF/Properties/Resources.Designer.cs b/Source/Plugins/ZDoomUSDF/Properties/Resources.Designer.cs new file mode 100644 index 00000000..e3617fbb --- /dev/null +++ b/Source/Plugins/ZDoomUSDF/Properties/Resources.Designer.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.3615 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace CodeImp.DoomBuilder.ZDoomUSDF.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CodeImp.DoomBuilder.ZDoomUSDF.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + internal static System.Drawing.Bitmap Dialog { + get { + object obj = ResourceManager.GetObject("Dialog", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Plugins/ZDoomUSDF/Properties/Resources.resx b/Source/Plugins/ZDoomUSDF/Properties/Resources.resx new file mode 100644 index 00000000..d13f79a2 --- /dev/null +++ b/Source/Plugins/ZDoomUSDF/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\Dialog.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/ZDoomUSDF/Resources/Actions.cfg b/Source/Plugins/ZDoomUSDF/Resources/Actions.cfg new file mode 100644 index 00000000..7e806360 --- /dev/null +++ b/Source/Plugins/ZDoomUSDF/Resources/Actions.cfg @@ -0,0 +1,15 @@ +/******************************************\ + Doom Builder Actions Configuration +\******************************************/ + + +openconversationeditor +{ + title = "Conversation Editor"; + category = "view"; + description = "This opens the conversation editor that allows you to edit DIALOGUE conversations in your map."; + allowkeys = true; + allowmouse = true; + allowscroll = true; +} + diff --git a/Source/Plugins/ZDoomUSDF/Resources/Dialog.png b/Source/Plugins/ZDoomUSDF/Resources/Dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..1bbc62c7bf1aeda020cb0e81ad220276f72dd47c GIT binary patch literal 592 zcmV-W010UR<@0@$T?>mYj@v!4QvVXHM4wR#K7=+S2)CIfUE+Uai zm{Km#{8%kL5OD1*8x)Zdj0BKMr=aUPN+`W!FA5vm%jeo@_7tJm0XBBmFuyg6&r6^1 z?#n3ZTW)GfXa7_D4!R9p#&PBt`Fy@0d84vICckKb0OG3j)Ok<-Z%yd#;8D>nv9xiDL_YWra e3H&!oUOxvoeBprp+PReg0000 + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + #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.toolstrip = new System.Windows.Forms.ToolStrip(); + this.dialogbutton = new System.Windows.Forms.ToolStripButton(); + this.toolstrip.SuspendLayout(); + this.SuspendLayout(); + // + // toolstrip + // + this.toolstrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.dialogbutton}); + this.toolstrip.Location = new System.Drawing.Point(0, 0); + this.toolstrip.Name = "toolstrip"; + this.toolstrip.Size = new System.Drawing.Size(196, 25); + this.toolstrip.TabIndex = 0; + this.toolstrip.Text = "toolStrip1"; + // + // dialogbutton + // + this.dialogbutton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.dialogbutton.Image = global::CodeImp.DoomBuilder.ZDoomUSDF.Properties.Resources.Dialog; + this.dialogbutton.ImageTransparentColor = System.Drawing.Color.Magenta; + this.dialogbutton.Name = "dialogbutton"; + this.dialogbutton.Size = new System.Drawing.Size(23, 22); + this.dialogbutton.Tag = "openconversationeditor"; + this.dialogbutton.Text = "Open Conversation Editor"; + this.dialogbutton.Click += new System.EventHandler(this.InvokeTaggedAction); + // + // ToolsForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(196, 78); + this.Controls.Add(this.toolstrip); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "ToolsForm"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.Text = "ToolsForm"; + this.toolstrip.ResumeLayout(false); + this.toolstrip.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ToolStrip toolstrip; + private System.Windows.Forms.ToolStripButton dialogbutton; + } +} \ No newline at end of file diff --git a/Source/Plugins/ZDoomUSDF/ToolsForm.cs b/Source/Plugins/ZDoomUSDF/ToolsForm.cs new file mode 100644 index 00000000..525cdc27 --- /dev/null +++ b/Source/Plugins/ZDoomUSDF/ToolsForm.cs @@ -0,0 +1,69 @@ +#region === Copyright (c) 2010 Pascal van der Heiden === + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Text; +using System.ComponentModel; +using System.Windows.Forms; +using CodeImp.DoomBuilder.Windows; + +#endregion + +namespace CodeImp.DoomBuilder.ZDoomUSDF +{ + public partial class ToolsForm : Form + { + #region ================== Constants + + #endregion + + #region ================== Variables + + #endregion + + #region ================== Properties + + #endregion + + #region ================== Constructor / Destructor + + // Constructor + public ToolsForm() + { + InitializeComponent(); + + General.Interface.AddButton(dialogbutton, ToolbarSection.Script); + } + + // Disposer + protected override void Dispose(bool disposing) + { + if(disposing && (components != null)) + { + components.Dispose(); + + General.Interface.RemoveButton(dialogbutton); + } + + base.Dispose(disposing); + } + + #endregion + + #region ================== Methods + + // This invokes an action from control event + private void InvokeTaggedAction(object sender, EventArgs e) + { + General.Interface.InvokeTaggedAction(sender, e); + } + + #endregion + + #region ================== Events + + #endregion + } +} diff --git a/Source/Plugins/ZDoomUSDF/ToolsForm.resx b/Source/Plugins/ZDoomUSDF/ToolsForm.resx new file mode 100644 index 00000000..838d47af --- /dev/null +++ b/Source/Plugins/ZDoomUSDF/ToolsForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Plugins/ZDoomUSDF/ZDoomUSDF.csproj b/Source/Plugins/ZDoomUSDF/ZDoomUSDF.csproj new file mode 100644 index 00000000..c924847d --- /dev/null +++ b/Source/Plugins/ZDoomUSDF/ZDoomUSDF.csproj @@ -0,0 +1,83 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {CC9BAD62-C57B-45A0-BC5D-172A2957ADC7} + Library + Properties + CodeImp.DoomBuilder.ZDoomUSDF + ZDoomUSDF + v3.5 + 512 + + + true + ..\..\..\Build\Plugins\ + DEBUG;TRACE + true + full + x86 + prompt + + + ..\..\..\Build\Plugins\ + true + true + pdbonly + x86 + prompt + + + + + 3.5 + + + + + + + + + True + True + Resources.resx + + + Form + + + ToolsForm.cs + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + ToolsForm.cs + + + + + {818B3D10-F791-4C3F-9AF5-BB2D0079B63C} + Builder + + + + + + + + + \ No newline at end of file