mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2024-11-23 04:12:12 +00:00
created Resource Location edit control
This commit is contained in:
parent
962c630683
commit
8a7d13e9e8
20 changed files with 1308 additions and 408 deletions
|
@ -16,8 +16,8 @@ mainwindow
|
|||
{
|
||||
positionx = 150;
|
||||
windowstate = 2;
|
||||
sizeheight = 481;
|
||||
sizewidth = 777;
|
||||
positiony = 21;
|
||||
sizeheight = 572;
|
||||
sizewidth = 739;
|
||||
}
|
||||
|
||||
|
|
BIN
Resources/Icons/File.ico
Normal file
BIN
Resources/Icons/File.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
BIN
Resources/Icons/FileLocked.ico
Normal file
BIN
Resources/Icons/FileLocked.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
BIN
Resources/Icons/Folder.ico
Normal file
BIN
Resources/Icons/Folder.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
BIN
Resources/Icons/FolderLocked.ico
Normal file
BIN
Resources/Icons/FolderLocked.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
|
@ -58,6 +58,7 @@
|
|||
<Compile Include="Geometry\Line2D.cs" />
|
||||
<Compile Include="Geometry\Vector2D.cs" />
|
||||
<Compile Include="Geometry\Vector3D.cs" />
|
||||
<Compile Include="Images\ResourceLocationList.cs" />
|
||||
<Compile Include="Images\ResourceManager.cs" />
|
||||
<Compile Include="Interface\AboutForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
|
@ -86,6 +87,15 @@
|
|||
<Compile Include="Interface\OpenMapOptionsForm.Designer.cs">
|
||||
<DependentUpon>OpenMapOptionsForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Interface\ResourceListView.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Interface\ResourceListEditor.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Interface\ResourceListEditor.Designer.cs">
|
||||
<DependentUpon>ResourceListEditor.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Interface\ResourceOptionsForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
|
@ -133,8 +143,10 @@
|
|||
<ItemGroup>
|
||||
<Reference Include="SlimDX, Version=1.0.2813.30005, Culture=neutral, PublicKeyToken=b1b0c32fd1ffe4f9, processorArchitecture=x86" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Interface\AboutForm.resx">
|
||||
|
@ -180,6 +192,10 @@
|
|||
<SubType>Designer</SubType>
|
||||
<DependentUpon>DelayedForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Interface\ResourceListEditor.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>ResourceListEditor.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Resources\Actions.cfg" />
|
||||
<None Include="Resources\Splash2.png" />
|
||||
</ItemGroup>
|
||||
|
|
88
Source/Images/ResourceLocationList.cs
Normal file
88
Source/Images/ResourceLocationList.cs
Normal file
|
@ -0,0 +1,88 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Text;
|
||||
using CodeImp.DoomBuilder.IO;
|
||||
using System.Collections.Specialized;
|
||||
|
||||
namespace CodeImp.DoomBuilder.Images
|
||||
{
|
||||
internal class ResourceLocationList : List<ResourceLocation>
|
||||
{
|
||||
#region ================== Constructors
|
||||
|
||||
// This creates a new list
|
||||
public ResourceLocationList()
|
||||
{
|
||||
}
|
||||
|
||||
// This creates a list from a configuration structure
|
||||
public ResourceLocationList(Configuration cfg, string path)
|
||||
{
|
||||
IDictionary resinfo, rlinfo;
|
||||
ResourceLocation res;
|
||||
|
||||
// Go for all items in the map info
|
||||
resinfo = cfg.ReadSetting(path, new ListDictionary());
|
||||
foreach(DictionaryEntry rl in resinfo)
|
||||
{
|
||||
// Item is a structure?
|
||||
if(rl.Value is IDictionary)
|
||||
{
|
||||
// Create resource location
|
||||
rlinfo = (IDictionary)rl.Value;
|
||||
res = new ResourceLocation();
|
||||
|
||||
// Copy information from Configuration to ResourceLocation
|
||||
if(resinfo.Contains("type") && (resinfo["type"] is int)) res.type = (int)resinfo["type"];
|
||||
if(resinfo.Contains("location") && (resinfo["location"] is string)) res.location = (string)resinfo["location"];
|
||||
if(resinfo.Contains("textures") && (resinfo["textures"] is bool)) res.textures = (bool)resinfo["textures"];
|
||||
if(resinfo.Contains("flats") && (resinfo["flats"] is bool)) res.flats = (bool)resinfo["flats"];
|
||||
|
||||
// Add resource
|
||||
Add(res);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
||||
// This merges two lists together
|
||||
public static ResourceLocationList Combined(ResourceLocationList a, ResourceLocationList b)
|
||||
{
|
||||
ResourceLocationList result = new ResourceLocationList();
|
||||
result.AddRange(a);
|
||||
result.AddRange(b);
|
||||
return result;
|
||||
}
|
||||
|
||||
// This writes the list to configuration
|
||||
public void WriteToConfig(Configuration cfg, string path)
|
||||
{
|
||||
IDictionary resinfo, rlinfo;
|
||||
|
||||
// Fill structure
|
||||
resinfo = new ListDictionary();
|
||||
for(int i = 0; i < this.Count; i++)
|
||||
{
|
||||
// Create structure for resource
|
||||
rlinfo = new ListDictionary();
|
||||
rlinfo.Add("type", this[i].type);
|
||||
rlinfo.Add("location", this[i].location);
|
||||
rlinfo.Add("textures", this[i].textures);
|
||||
rlinfo.Add("flats", this[i].flats);
|
||||
|
||||
// Add structure
|
||||
resinfo.Add("resource" + i.ToString(CultureInfo.InvariantCulture), rlinfo);
|
||||
}
|
||||
|
||||
// Write to config
|
||||
cfg.WriteSetting(path, resinfo);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
136
Source/Interface/ConfigForm.Designer.cs
generated
136
Source/Interface/ConfigForm.Designer.cs
generated
|
@ -29,18 +29,102 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
private void InitializeComponent()
|
||||
{
|
||||
System.Windows.Forms.Label label1;
|
||||
System.Windows.Forms.GroupBox groupBox1;
|
||||
System.Windows.Forms.Label label4;
|
||||
System.Windows.Forms.Label label3;
|
||||
System.Windows.Forms.Label label2;
|
||||
this.configbuildonsave = new System.Windows.Forms.CheckBox();
|
||||
this.confignodebuilder = new System.Windows.Forms.ComboBox();
|
||||
this.tabs = new System.Windows.Forms.TabControl();
|
||||
this.tabinterface = new System.Windows.Forms.TabPage();
|
||||
this.tabediting = new System.Windows.Forms.TabPage();
|
||||
this.tabconfigs = new System.Windows.Forms.TabPage();
|
||||
this.listconfigs = new System.Windows.Forms.ListBox();
|
||||
this.cancel = new System.Windows.Forms.Button();
|
||||
this.apply = new System.Windows.Forms.Button();
|
||||
this.listconfigs = new System.Windows.Forms.ListBox();
|
||||
label1 = new System.Windows.Forms.Label();
|
||||
groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
label4 = new System.Windows.Forms.Label();
|
||||
label3 = new System.Windows.Forms.Label();
|
||||
label2 = new System.Windows.Forms.Label();
|
||||
groupBox1.SuspendLayout();
|
||||
this.tabs.SuspendLayout();
|
||||
this.tabconfigs.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.Location = new System.Drawing.Point(16, 25);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new System.Drawing.Size(303, 46);
|
||||
label1.TabIndex = 1;
|
||||
label1.Text = "Select the nodebuilder options to use with this configuration.\r\nThe nodebuilder i" +
|
||||
"s a compiler that builds geometry structures in your map when saved and when usi" +
|
||||
"ng 3D mode.";
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
groupBox1.Controls.Add(label4);
|
||||
groupBox1.Controls.Add(label3);
|
||||
groupBox1.Controls.Add(this.configbuildonsave);
|
||||
groupBox1.Controls.Add(label2);
|
||||
groupBox1.Controls.Add(this.confignodebuilder);
|
||||
groupBox1.Controls.Add(label1);
|
||||
groupBox1.Location = new System.Drawing.Point(205, 11);
|
||||
groupBox1.Name = "groupBox1";
|
||||
groupBox1.Size = new System.Drawing.Size(343, 270);
|
||||
groupBox1.TabIndex = 2;
|
||||
groupBox1.TabStop = false;
|
||||
groupBox1.Text = " Configuration Settings ";
|
||||
//
|
||||
// label4
|
||||
//
|
||||
label4.AutoSize = true;
|
||||
label4.Location = new System.Drawing.Point(29, 201);
|
||||
label4.Name = "label4";
|
||||
label4.Size = new System.Drawing.Size(79, 14);
|
||||
label4.TabIndex = 6;
|
||||
label4.Text = "IWAD wad file:";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
label3.Location = new System.Drawing.Point(16, 144);
|
||||
label3.Name = "label3";
|
||||
label3.Size = new System.Drawing.Size(303, 46);
|
||||
label3.TabIndex = 5;
|
||||
label3.Text = "Specify the IWAD wad file to use for this configuration.\r\nThe IWAD should contain" +
|
||||
" all default resources. such as textures and sprites, for the original game.";
|
||||
//
|
||||
// configbuildonsave
|
||||
//
|
||||
this.configbuildonsave.AutoSize = true;
|
||||
this.configbuildonsave.Location = new System.Drawing.Point(102, 111);
|
||||
this.configbuildonsave.Name = "configbuildonsave";
|
||||
this.configbuildonsave.Size = new System.Drawing.Size(201, 18);
|
||||
this.configbuildonsave.TabIndex = 4;
|
||||
this.configbuildonsave.Text = "Build nodes every time when saving";
|
||||
this.configbuildonsave.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
label2.AutoSize = true;
|
||||
label2.Location = new System.Drawing.Point(29, 81);
|
||||
label2.Name = "label2";
|
||||
label2.Size = new System.Drawing.Size(67, 14);
|
||||
label2.TabIndex = 3;
|
||||
label2.Text = "Nodebuilder:";
|
||||
//
|
||||
// confignodebuilder
|
||||
//
|
||||
this.confignodebuilder.FormattingEnabled = true;
|
||||
this.confignodebuilder.Location = new System.Drawing.Point(102, 78);
|
||||
this.confignodebuilder.Name = "confignodebuilder";
|
||||
this.confignodebuilder.Size = new System.Drawing.Size(217, 22);
|
||||
this.confignodebuilder.TabIndex = 2;
|
||||
//
|
||||
// tabs
|
||||
//
|
||||
this.tabs.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
|
@ -54,7 +138,7 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
this.tabs.Location = new System.Drawing.Point(12, 12);
|
||||
this.tabs.Name = "tabs";
|
||||
this.tabs.SelectedIndex = 0;
|
||||
this.tabs.Size = new System.Drawing.Size(519, 306);
|
||||
this.tabs.Size = new System.Drawing.Size(566, 320);
|
||||
this.tabs.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
|
||||
this.tabs.TabIndex = 0;
|
||||
//
|
||||
|
@ -64,7 +148,7 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
this.tabinterface.Location = new System.Drawing.Point(4, 23);
|
||||
this.tabinterface.Name = "tabinterface";
|
||||
this.tabinterface.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabinterface.Size = new System.Drawing.Size(511, 279);
|
||||
this.tabinterface.Size = new System.Drawing.Size(558, 293);
|
||||
this.tabinterface.TabIndex = 0;
|
||||
this.tabinterface.Text = "Interface";
|
||||
this.tabinterface.UseVisualStyleBackColor = true;
|
||||
|
@ -75,28 +159,39 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
this.tabediting.Location = new System.Drawing.Point(4, 23);
|
||||
this.tabediting.Name = "tabediting";
|
||||
this.tabediting.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabediting.Size = new System.Drawing.Size(511, 279);
|
||||
this.tabediting.Size = new System.Drawing.Size(558, 293);
|
||||
this.tabediting.TabIndex = 1;
|
||||
this.tabediting.Text = "Editing";
|
||||
this.tabediting.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tabconfigs
|
||||
//
|
||||
this.tabconfigs.Controls.Add(label1);
|
||||
this.tabconfigs.Controls.Add(groupBox1);
|
||||
this.tabconfigs.Controls.Add(this.listconfigs);
|
||||
this.tabconfigs.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.tabconfigs.Location = new System.Drawing.Point(4, 23);
|
||||
this.tabconfigs.Name = "tabconfigs";
|
||||
this.tabconfigs.Size = new System.Drawing.Size(511, 279);
|
||||
this.tabconfigs.Size = new System.Drawing.Size(558, 293);
|
||||
this.tabconfigs.TabIndex = 2;
|
||||
this.tabconfigs.Text = "Configurations";
|
||||
this.tabconfigs.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// listconfigs
|
||||
//
|
||||
this.listconfigs.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.listconfigs.FormattingEnabled = true;
|
||||
this.listconfigs.ItemHeight = 14;
|
||||
this.listconfigs.Location = new System.Drawing.Point(11, 11);
|
||||
this.listconfigs.Name = "listconfigs";
|
||||
this.listconfigs.Size = new System.Drawing.Size(181, 270);
|
||||
this.listconfigs.TabIndex = 0;
|
||||
//
|
||||
// cancel
|
||||
//
|
||||
this.cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.cancel.Location = new System.Drawing.Point(419, 332);
|
||||
this.cancel.Location = new System.Drawing.Point(466, 346);
|
||||
this.cancel.Name = "cancel";
|
||||
this.cancel.Size = new System.Drawing.Size(112, 25);
|
||||
this.cancel.TabIndex = 17;
|
||||
|
@ -106,39 +201,20 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
// apply
|
||||
//
|
||||
this.apply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.apply.Location = new System.Drawing.Point(301, 332);
|
||||
this.apply.Location = new System.Drawing.Point(348, 346);
|
||||
this.apply.Name = "apply";
|
||||
this.apply.Size = new System.Drawing.Size(112, 25);
|
||||
this.apply.TabIndex = 16;
|
||||
this.apply.Text = "OK";
|
||||
this.apply.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// listconfigs
|
||||
//
|
||||
this.listconfigs.FormattingEnabled = true;
|
||||
this.listconfigs.ItemHeight = 14;
|
||||
this.listconfigs.Location = new System.Drawing.Point(11, 11);
|
||||
this.listconfigs.Name = "listconfigs";
|
||||
this.listconfigs.Size = new System.Drawing.Size(181, 256);
|
||||
this.listconfigs.TabIndex = 0;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.Location = new System.Drawing.Point(209, 11);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new System.Drawing.Size(288, 46);
|
||||
label1.TabIndex = 1;
|
||||
label1.Text = "Select the nodebuilder to use with this configuration. The nodebuilder is a compi" +
|
||||
"ler that builds geometry structures in your map when saved and when using 3D mod" +
|
||||
"e.";
|
||||
//
|
||||
// ConfigForm
|
||||
//
|
||||
this.AcceptButton = this.apply;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 14F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.cancel;
|
||||
this.ClientSize = new System.Drawing.Size(543, 368);
|
||||
this.ClientSize = new System.Drawing.Size(590, 382);
|
||||
this.Controls.Add(this.cancel);
|
||||
this.Controls.Add(this.apply);
|
||||
this.Controls.Add(this.tabs);
|
||||
|
@ -150,6 +226,8 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
this.ShowIcon = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Configuration";
|
||||
groupBox1.ResumeLayout(false);
|
||||
groupBox1.PerformLayout();
|
||||
this.tabs.ResumeLayout(false);
|
||||
this.tabconfigs.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
@ -165,5 +243,7 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
private System.Windows.Forms.Button cancel;
|
||||
private System.Windows.Forms.Button apply;
|
||||
private System.Windows.Forms.ListBox listconfigs;
|
||||
private System.Windows.Forms.ComboBox confignodebuilder;
|
||||
private System.Windows.Forms.CheckBox configbuildonsave;
|
||||
}
|
||||
}
|
|
@ -120,4 +120,16 @@
|
|||
<metadata name="label1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label4.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label3.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
119
Source/Interface/MapOptionsForm.Designer.cs
generated
119
Source/Interface/MapOptionsForm.Designer.cs
generated
|
@ -32,22 +32,20 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
System.Windows.Forms.Label label2;
|
||||
System.Windows.Forms.Label label1;
|
||||
System.Windows.Forms.GroupBox panelsettings;
|
||||
System.Windows.Forms.GroupBox panelres;
|
||||
System.Windows.Forms.Label label4;
|
||||
this.levelname = new System.Windows.Forms.TextBox();
|
||||
this.config = new System.Windows.Forms.ComboBox();
|
||||
this.deleteresource = new System.Windows.Forms.Button();
|
||||
this.editresource = new System.Windows.Forms.Button();
|
||||
this.addresource = new System.Windows.Forms.Button();
|
||||
this.resources = new System.Windows.Forms.ListBox();
|
||||
this.apply = new System.Windows.Forms.Button();
|
||||
this.cancel = new System.Windows.Forms.Button();
|
||||
this.panelres = new System.Windows.Forms.GroupBox();
|
||||
this.resourcelocations = new CodeImp.DoomBuilder.Interface.ResourceListEditor();
|
||||
label3 = new System.Windows.Forms.Label();
|
||||
label2 = new System.Windows.Forms.Label();
|
||||
label1 = new System.Windows.Forms.Label();
|
||||
panelsettings = new System.Windows.Forms.GroupBox();
|
||||
panelres = new System.Windows.Forms.GroupBox();
|
||||
label4 = new System.Windows.Forms.Label();
|
||||
panelsettings.SuspendLayout();
|
||||
panelres.SuspendLayout();
|
||||
this.panelres.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label3
|
||||
|
@ -88,7 +86,7 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
panelsettings.Controls.Add(label1);
|
||||
panelsettings.Location = new System.Drawing.Point(12, 12);
|
||||
panelsettings.Name = "panelsettings";
|
||||
panelsettings.Size = new System.Drawing.Size(365, 118);
|
||||
panelsettings.Size = new System.Drawing.Size(367, 118);
|
||||
panelsettings.TabIndex = 10;
|
||||
panelsettings.TabStop = false;
|
||||
panelsettings.Text = " Settings ";
|
||||
|
@ -109,67 +107,10 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
this.config.Size = new System.Drawing.Size(213, 22);
|
||||
this.config.TabIndex = 6;
|
||||
//
|
||||
// panelres
|
||||
//
|
||||
panelres.Controls.Add(this.deleteresource);
|
||||
panelres.Controls.Add(this.editresource);
|
||||
panelres.Controls.Add(this.addresource);
|
||||
panelres.Controls.Add(this.resources);
|
||||
panelres.Location = new System.Drawing.Point(12, 145);
|
||||
panelres.Name = "panelres";
|
||||
panelres.Size = new System.Drawing.Size(365, 165);
|
||||
panelres.TabIndex = 11;
|
||||
panelres.TabStop = false;
|
||||
panelres.Text = " Custom Resources ";
|
||||
//
|
||||
// deleteresource
|
||||
//
|
||||
this.deleteresource.Enabled = false;
|
||||
this.deleteresource.Location = new System.Drawing.Point(268, 125);
|
||||
this.deleteresource.Name = "deleteresource";
|
||||
this.deleteresource.Size = new System.Drawing.Size(74, 25);
|
||||
this.deleteresource.TabIndex = 13;
|
||||
this.deleteresource.Text = "Remove";
|
||||
this.deleteresource.UseVisualStyleBackColor = true;
|
||||
this.deleteresource.Click += new System.EventHandler(this.deleteresource_Click);
|
||||
//
|
||||
// editresource
|
||||
//
|
||||
this.editresource.Enabled = false;
|
||||
this.editresource.Location = new System.Drawing.Point(139, 125);
|
||||
this.editresource.Name = "editresource";
|
||||
this.editresource.Size = new System.Drawing.Size(123, 25);
|
||||
this.editresource.TabIndex = 12;
|
||||
this.editresource.Text = "Resource Options...";
|
||||
this.editresource.UseVisualStyleBackColor = true;
|
||||
this.editresource.Click += new System.EventHandler(this.editresource_Click);
|
||||
//
|
||||
// addresource
|
||||
//
|
||||
this.addresource.Location = new System.Drawing.Point(21, 125);
|
||||
this.addresource.Name = "addresource";
|
||||
this.addresource.Size = new System.Drawing.Size(112, 25);
|
||||
this.addresource.TabIndex = 11;
|
||||
this.addresource.Text = "Add Resource...";
|
||||
this.addresource.UseVisualStyleBackColor = true;
|
||||
this.addresource.Click += new System.EventHandler(this.addresource_Click);
|
||||
//
|
||||
// resources
|
||||
//
|
||||
this.resources.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.resources.FormattingEnabled = true;
|
||||
this.resources.ItemHeight = 14;
|
||||
this.resources.Location = new System.Drawing.Point(21, 31);
|
||||
this.resources.Name = "resources";
|
||||
this.resources.Size = new System.Drawing.Size(321, 88);
|
||||
this.resources.TabIndex = 10;
|
||||
this.resources.DoubleClick += new System.EventHandler(this.resources_DoubleClick);
|
||||
this.resources.SelectedIndexChanged += new System.EventHandler(this.resources_SelectedIndexChanged);
|
||||
//
|
||||
// apply
|
||||
//
|
||||
this.apply.Location = new System.Drawing.Point(147, 330);
|
||||
this.apply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.apply.Location = new System.Drawing.Point(149, 355);
|
||||
this.apply.Name = "apply";
|
||||
this.apply.Size = new System.Drawing.Size(112, 25);
|
||||
this.apply.TabIndex = 12;
|
||||
|
@ -179,8 +120,9 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
//
|
||||
// cancel
|
||||
//
|
||||
this.cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.cancel.Location = new System.Drawing.Point(265, 330);
|
||||
this.cancel.Location = new System.Drawing.Point(267, 355);
|
||||
this.cancel.Name = "cancel";
|
||||
this.cancel.Size = new System.Drawing.Size(112, 25);
|
||||
this.cancel.TabIndex = 13;
|
||||
|
@ -188,16 +130,45 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
this.cancel.UseVisualStyleBackColor = true;
|
||||
this.cancel.Click += new System.EventHandler(this.cancel_Click);
|
||||
//
|
||||
// panelres
|
||||
//
|
||||
this.panelres.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.panelres.Controls.Add(this.resourcelocations);
|
||||
this.panelres.Controls.Add(label4);
|
||||
this.panelres.Location = new System.Drawing.Point(12, 141);
|
||||
this.panelres.Name = "panelres";
|
||||
this.panelres.Size = new System.Drawing.Size(367, 198);
|
||||
this.panelres.TabIndex = 14;
|
||||
this.panelres.TabStop = false;
|
||||
this.panelres.Text = " Custom Resources ";
|
||||
//
|
||||
// resourcelocations
|
||||
//
|
||||
this.resourcelocations.Location = new System.Drawing.Point(15, 28);
|
||||
this.resourcelocations.Name = "resourcelocations";
|
||||
this.resourcelocations.Size = new System.Drawing.Size(336, 130);
|
||||
this.resourcelocations.TabIndex = 18;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
label4.Location = new System.Drawing.Point(15, 161);
|
||||
label4.Name = "label4";
|
||||
label4.Size = new System.Drawing.Size(336, 34);
|
||||
label4.TabIndex = 17;
|
||||
label4.Text = "Drag items to change order (lower items override higher items). Grayed items are " +
|
||||
"loaded according to the game configuration.";
|
||||
//
|
||||
// MapOptionsForm
|
||||
//
|
||||
this.AcceptButton = this.apply;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 14F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.cancel;
|
||||
this.ClientSize = new System.Drawing.Size(389, 367);
|
||||
this.ClientSize = new System.Drawing.Size(391, 392);
|
||||
this.Controls.Add(this.panelres);
|
||||
this.Controls.Add(this.cancel);
|
||||
this.Controls.Add(this.apply);
|
||||
this.Controls.Add(panelres);
|
||||
this.Controls.Add(panelsettings);
|
||||
this.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
|
@ -211,7 +182,7 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
this.Text = "Map Options";
|
||||
panelsettings.ResumeLayout(false);
|
||||
panelsettings.PerformLayout();
|
||||
panelres.ResumeLayout(false);
|
||||
this.panelres.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
@ -220,12 +191,10 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
|
||||
private System.Windows.Forms.TextBox levelname;
|
||||
private System.Windows.Forms.ComboBox config;
|
||||
private System.Windows.Forms.Button deleteresource;
|
||||
private System.Windows.Forms.Button editresource;
|
||||
private System.Windows.Forms.Button addresource;
|
||||
private System.Windows.Forms.ListBox resources;
|
||||
private System.Windows.Forms.Button apply;
|
||||
private System.Windows.Forms.Button cancel;
|
||||
private System.Windows.Forms.GroupBox panelres;
|
||||
private ResourceListEditor resourcelocations;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -64,8 +64,7 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
levelname.Text = options.CurrentName;
|
||||
|
||||
// Fill the resources list
|
||||
foreach(ResourceLocation res in options.Resources)
|
||||
resources.Items.Add(res);
|
||||
resourcelocations.EditResourceLocationList(options.Resources);
|
||||
}
|
||||
|
||||
// OK clicked
|
||||
|
@ -93,7 +92,7 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
options.ClearResources();
|
||||
options.ConfigFile = General.Configs[config.SelectedIndex].filename;
|
||||
options.CurrentName = levelname.Text.Trim().ToUpper();
|
||||
foreach(ResourceLocation res in resources.Items) options.AddResource(res);
|
||||
options.CopyResources(resourcelocations.GetResources());
|
||||
|
||||
// Hide window
|
||||
this.DialogResult = DialogResult.OK;
|
||||
|
@ -107,73 +106,5 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
this.DialogResult = DialogResult.Cancel;
|
||||
this.Hide();
|
||||
}
|
||||
|
||||
// Add Resource clicked
|
||||
private void addresource_Click(object sender, EventArgs e)
|
||||
{
|
||||
ResourceOptionsForm resoptions;
|
||||
Point startposition;
|
||||
|
||||
// Open resource options dialog
|
||||
resoptions = new ResourceOptionsForm(new ResourceLocation(), "Add Resource");
|
||||
resoptions.StartPosition = FormStartPosition.Manual;
|
||||
startposition = this.Location;
|
||||
startposition.Offset(50, 160);
|
||||
resoptions.Location = startposition;
|
||||
if(resoptions.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
// Add resource
|
||||
resources.Items.Add(resoptions.ResourceLocation);
|
||||
}
|
||||
}
|
||||
|
||||
// Resource Options clicked
|
||||
private void editresource_Click(object sender, EventArgs e)
|
||||
{
|
||||
ResourceOptionsForm resoptions;
|
||||
Point startposition;
|
||||
|
||||
// Anything selected?
|
||||
if(resources.SelectedIndex > -1)
|
||||
{
|
||||
// Open resource options dialog
|
||||
resoptions = new ResourceOptionsForm((ResourceLocation)resources.SelectedItem, "Resource Options");
|
||||
resoptions.StartPosition = FormStartPosition.Manual;
|
||||
startposition = this.Location;
|
||||
startposition.Offset(50, 160);
|
||||
resoptions.Location = startposition;
|
||||
if(resoptions.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
// Replace resource
|
||||
resources.Items[resources.SelectedIndex] = resoptions.ResourceLocation;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Remove resource clicked
|
||||
private void deleteresource_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Anything selected?
|
||||
if(resources.SelectedIndex > -1)
|
||||
{
|
||||
// Remove it
|
||||
resources.Items.RemoveAt(resources.SelectedIndex);
|
||||
}
|
||||
}
|
||||
|
||||
// Resource selection changes
|
||||
private void resources_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
// Enable/disable buttons
|
||||
editresource.Enabled = (resources.SelectedIndex > -1);
|
||||
deleteresource.Enabled = (resources.SelectedIndex > -1);
|
||||
}
|
||||
|
||||
// Resource doubleclicked
|
||||
private void resources_DoubleClick(object sender, EventArgs e)
|
||||
{
|
||||
// Click Edit Resource
|
||||
if(resources.SelectedIndex > -1) editresource.PerformClick();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -117,61 +117,19 @@
|
|||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="label3.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="label3.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="label2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="label1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="panelsettings.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="panelsettings.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="levelname.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="config.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="panelres.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<metadata name="label4.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="panelres.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="deleteresource.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="editresource.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="addresource.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="resources.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="apply.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="cancel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
</root>
|
136
Source/Interface/OpenMapOptionsForm.Designer.cs
generated
136
Source/Interface/OpenMapOptionsForm.Designer.cs
generated
|
@ -29,18 +29,19 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
private void InitializeComponent()
|
||||
{
|
||||
System.Windows.Forms.ColumnHeader columnHeader1;
|
||||
System.Windows.Forms.Label label1;
|
||||
System.Windows.Forms.Label label2;
|
||||
System.Windows.Forms.Label label3;
|
||||
this.panelres = new System.Windows.Forms.GroupBox();
|
||||
this.deleteresource = new System.Windows.Forms.Button();
|
||||
this.editresource = new System.Windows.Forms.Button();
|
||||
this.addresource = new System.Windows.Forms.Button();
|
||||
this.resources = new System.Windows.Forms.ListBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.resourcelocations = new CodeImp.DoomBuilder.Interface.ResourceListEditor();
|
||||
this.apply = new System.Windows.Forms.Button();
|
||||
this.cancel = new System.Windows.Forms.Button();
|
||||
this.config = new System.Windows.Forms.ComboBox();
|
||||
this.mapslist = new System.Windows.Forms.ListView();
|
||||
columnHeader1 = new System.Windows.Forms.ColumnHeader();
|
||||
label1 = new System.Windows.Forms.Label();
|
||||
label2 = new System.Windows.Forms.Label();
|
||||
label3 = new System.Windows.Forms.Label();
|
||||
this.panelres.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
|
@ -48,87 +49,57 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
//
|
||||
columnHeader1.Text = "Map name";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.Location = new System.Drawing.Point(30, 24);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new System.Drawing.Size(105, 14);
|
||||
label1.TabIndex = 14;
|
||||
label1.Text = "Game Configuration:";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
label2.Location = new System.Drawing.Point(12, 57);
|
||||
label2.Name = "label2";
|
||||
label2.Size = new System.Drawing.Size(365, 30);
|
||||
label2.TabIndex = 16;
|
||||
label2.Text = "With the above selected configuration, the maps shown below were found in the cho" +
|
||||
"sen WAD file. Please select the map to load for editing.";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
label3.Location = new System.Drawing.Point(14, 161);
|
||||
label3.Name = "label3";
|
||||
label3.Size = new System.Drawing.Size(336, 34);
|
||||
label3.TabIndex = 17;
|
||||
label3.Text = "Drag items to change order (lower items override higher items). Grayed items are " +
|
||||
"loaded according to the game configuration.";
|
||||
//
|
||||
// panelres
|
||||
//
|
||||
this.panelres.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.panelres.Controls.Add(this.deleteresource);
|
||||
this.panelres.Controls.Add(this.editresource);
|
||||
this.panelres.Controls.Add(this.addresource);
|
||||
this.panelres.Controls.Add(this.resources);
|
||||
this.panelres.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.panelres.Controls.Add(this.resourcelocations);
|
||||
this.panelres.Controls.Add(label3);
|
||||
this.panelres.Location = new System.Drawing.Point(12, 214);
|
||||
this.panelres.Name = "panelres";
|
||||
this.panelres.Size = new System.Drawing.Size(365, 165);
|
||||
this.panelres.Size = new System.Drawing.Size(365, 198);
|
||||
this.panelres.TabIndex = 11;
|
||||
this.panelres.TabStop = false;
|
||||
this.panelres.Text = " Custom Resources ";
|
||||
//
|
||||
// deleteresource
|
||||
// resourcelocations
|
||||
//
|
||||
this.deleteresource.Enabled = false;
|
||||
this.deleteresource.Location = new System.Drawing.Point(268, 125);
|
||||
this.deleteresource.Name = "deleteresource";
|
||||
this.deleteresource.Size = new System.Drawing.Size(74, 25);
|
||||
this.deleteresource.TabIndex = 13;
|
||||
this.deleteresource.Text = "Remove";
|
||||
this.deleteresource.UseVisualStyleBackColor = true;
|
||||
this.deleteresource.Click += new System.EventHandler(this.deleteresource_Click);
|
||||
//
|
||||
// editresource
|
||||
//
|
||||
this.editresource.Enabled = false;
|
||||
this.editresource.Location = new System.Drawing.Point(139, 125);
|
||||
this.editresource.Name = "editresource";
|
||||
this.editresource.Size = new System.Drawing.Size(123, 25);
|
||||
this.editresource.TabIndex = 12;
|
||||
this.editresource.Text = "Resource Options...";
|
||||
this.editresource.UseVisualStyleBackColor = true;
|
||||
this.editresource.Click += new System.EventHandler(this.editresource_Click);
|
||||
//
|
||||
// addresource
|
||||
//
|
||||
this.addresource.Location = new System.Drawing.Point(21, 125);
|
||||
this.addresource.Name = "addresource";
|
||||
this.addresource.Size = new System.Drawing.Size(112, 25);
|
||||
this.addresource.TabIndex = 11;
|
||||
this.addresource.Text = "Add Resource...";
|
||||
this.addresource.UseVisualStyleBackColor = true;
|
||||
this.addresource.Click += new System.EventHandler(this.addresource_Click);
|
||||
//
|
||||
// resources
|
||||
//
|
||||
this.resources.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.resources.FormattingEnabled = true;
|
||||
this.resources.ItemHeight = 14;
|
||||
this.resources.Location = new System.Drawing.Point(21, 31);
|
||||
this.resources.Name = "resources";
|
||||
this.resources.Size = new System.Drawing.Size(321, 88);
|
||||
this.resources.TabIndex = 10;
|
||||
this.resources.DoubleClick += new System.EventHandler(this.resources_DoubleClick);
|
||||
this.resources.SelectedIndexChanged += new System.EventHandler(this.resources_SelectedIndexChanged);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(30, 24);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(105, 14);
|
||||
this.label1.TabIndex = 14;
|
||||
this.label1.Text = "Game Configuration:";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.Location = new System.Drawing.Point(12, 57);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(365, 30);
|
||||
this.label2.TabIndex = 16;
|
||||
this.label2.Text = "With the above selected configuration, the maps shown below were found in the cho" +
|
||||
"sen WAD file. Please select the map to load for editing.";
|
||||
this.resourcelocations.Location = new System.Drawing.Point(14, 26);
|
||||
this.resourcelocations.Name = "resourcelocations";
|
||||
this.resourcelocations.Size = new System.Drawing.Size(336, 127);
|
||||
this.resourcelocations.TabIndex = 18;
|
||||
//
|
||||
// apply
|
||||
//
|
||||
this.apply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.apply.Location = new System.Drawing.Point(147, 399);
|
||||
this.apply.Location = new System.Drawing.Point(147, 428);
|
||||
this.apply.Name = "apply";
|
||||
this.apply.Size = new System.Drawing.Size(112, 25);
|
||||
this.apply.TabIndex = 12;
|
||||
|
@ -140,7 +111,7 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
//
|
||||
this.cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.cancel.Location = new System.Drawing.Point(265, 399);
|
||||
this.cancel.Location = new System.Drawing.Point(265, 428);
|
||||
this.cancel.Name = "cancel";
|
||||
this.cancel.Size = new System.Drawing.Size(112, 25);
|
||||
this.cancel.TabIndex = 13;
|
||||
|
@ -160,6 +131,8 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
//
|
||||
// mapslist
|
||||
//
|
||||
this.mapslist.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.mapslist.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
columnHeader1});
|
||||
this.mapslist.FullRowSelect = true;
|
||||
|
@ -183,11 +156,11 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 14F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.cancel;
|
||||
this.ClientSize = new System.Drawing.Size(389, 436);
|
||||
this.ClientSize = new System.Drawing.Size(389, 465);
|
||||
this.Controls.Add(this.mapslist);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(label2);
|
||||
this.Controls.Add(this.config);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(label1);
|
||||
this.Controls.Add(this.cancel);
|
||||
this.Controls.Add(this.apply);
|
||||
this.Controls.Add(this.panelres);
|
||||
|
@ -210,17 +183,12 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button deleteresource;
|
||||
private System.Windows.Forms.Button editresource;
|
||||
private System.Windows.Forms.Button addresource;
|
||||
private System.Windows.Forms.ListBox resources;
|
||||
private System.Windows.Forms.Button apply;
|
||||
private System.Windows.Forms.Button cancel;
|
||||
private System.Windows.Forms.ComboBox config;
|
||||
private System.Windows.Forms.GroupBox panelres;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.ListView mapslist;
|
||||
private ResourceListEditor resourcelocations;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -275,7 +275,7 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
options.ClearResources();
|
||||
options.ConfigFile = General.Configs[config.SelectedIndex].filename;
|
||||
options.CurrentName = mapslist.SelectedItems[0].Text;
|
||||
foreach(ResourceLocation res in resources.Items) options.AddResource(res);
|
||||
options.CopyResources(resourcelocations.GetResources());
|
||||
|
||||
// Hide window
|
||||
wadfile.Dispose();
|
||||
|
@ -292,67 +292,6 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
this.Hide();
|
||||
}
|
||||
|
||||
// Add Resource clicked
|
||||
private void addresource_Click(object sender, EventArgs e)
|
||||
{
|
||||
ResourceOptionsForm resoptions;
|
||||
Point startposition;
|
||||
|
||||
// Open resource options dialog
|
||||
resoptions = new ResourceOptionsForm(new ResourceLocation(), "Add Resource");
|
||||
resoptions.StartPosition = FormStartPosition.Manual;
|
||||
startposition = this.Location;
|
||||
startposition.Offset(50, 230);
|
||||
resoptions.Location = startposition;
|
||||
if(resoptions.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
// Add resource
|
||||
resources.Items.Add(resoptions.ResourceLocation);
|
||||
}
|
||||
}
|
||||
|
||||
// Resource Options clicked
|
||||
private void editresource_Click(object sender, EventArgs e)
|
||||
{
|
||||
ResourceOptionsForm resoptions;
|
||||
Point startposition;
|
||||
|
||||
// Anything selected?
|
||||
if(resources.SelectedIndex > -1)
|
||||
{
|
||||
// Open resource options dialog
|
||||
resoptions = new ResourceOptionsForm((ResourceLocation)resources.SelectedItem, "Resource Options");
|
||||
resoptions.StartPosition = FormStartPosition.Manual;
|
||||
startposition = this.Location;
|
||||
startposition.Offset(50, 230);
|
||||
resoptions.Location = startposition;
|
||||
if(resoptions.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
// Replace resource
|
||||
resources.Items[resources.SelectedIndex] = resoptions.ResourceLocation;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Remove resource clicked
|
||||
private void deleteresource_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Anything selected?
|
||||
if(resources.SelectedIndex > -1)
|
||||
{
|
||||
// Remove it
|
||||
resources.Items.RemoveAt(resources.SelectedIndex);
|
||||
}
|
||||
}
|
||||
|
||||
// Resource selection changes
|
||||
private void resources_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
// Enable/disable buttons
|
||||
editresource.Enabled = (resources.SelectedIndex > -1);
|
||||
deleteresource.Enabled = (resources.SelectedIndex > -1);
|
||||
}
|
||||
|
||||
// Window is shown
|
||||
private void OpenMapOptionsForm_Shown(object sender, EventArgs e)
|
||||
{
|
||||
|
@ -370,11 +309,5 @@ namespace CodeImp.DoomBuilder.Interface
|
|||
if(mapslist.SelectedItems.Count > 0) apply.PerformClick();
|
||||
}
|
||||
|
||||
// Resource doubeclicked
|
||||
private void resources_DoubleClick(object sender, EventArgs e)
|
||||
{
|
||||
// Click Edit Resource
|
||||
if(resources.SelectedIndex > -1) editresource.PerformClick();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -120,40 +120,13 @@
|
|||
<metadata name="columnHeader1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="panelres.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
<metadata name="label1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="deleteresource.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
<metadata name="label2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="editresource.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="addresource.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="resources.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="label1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="label2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="apply.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="cancel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="config.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="mapslist.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
<metadata name="label3.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
223
Source/Interface/ResourceListEditor.Designer.cs
generated
Normal file
223
Source/Interface/ResourceListEditor.Designer.cs
generated
Normal file
|
@ -0,0 +1,223 @@
|
|||
namespace CodeImp.DoomBuilder.Interface
|
||||
{
|
||||
internal partial class ResourceListEditor
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if(disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.Windows.Forms.SplitContainer buttonsbar2;
|
||||
System.Windows.Forms.SplitContainer buttonsbar1;
|
||||
System.Windows.Forms.ListViewItem listViewItem1 = new System.Windows.Forms.ListViewItem(new string[] {
|
||||
"C:\\Windows\\Doom\\Doom2.wad"}, 3, System.Drawing.SystemColors.GrayText, System.Drawing.SystemColors.Window, null);
|
||||
System.Windows.Forms.ListViewItem listViewItem2 = new System.Windows.Forms.ListViewItem(new string[] {
|
||||
"C:\\My\\Little\\Textures\\"}, 2, System.Drawing.SystemColors.GrayText, System.Drawing.SystemColors.Window, null);
|
||||
System.Windows.Forms.ListViewItem listViewItem3 = new System.Windows.Forms.ListViewItem("C:\\My\\Little\\Pony.wad", 1);
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ResourceListEditor));
|
||||
this.editresource = new System.Windows.Forms.Button();
|
||||
this.deleteresource = new System.Windows.Forms.Button();
|
||||
this.addresource = new System.Windows.Forms.Button();
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.resourceitems = new CodeImp.DoomBuilder.Interface.ResourceListView();
|
||||
this.column = new System.Windows.Forms.ColumnHeader();
|
||||
this.images = new System.Windows.Forms.ImageList(this.components);
|
||||
buttonsbar2 = new System.Windows.Forms.SplitContainer();
|
||||
buttonsbar1 = new System.Windows.Forms.SplitContainer();
|
||||
buttonsbar2.Panel1.SuspendLayout();
|
||||
buttonsbar2.Panel2.SuspendLayout();
|
||||
buttonsbar2.SuspendLayout();
|
||||
buttonsbar1.Panel1.SuspendLayout();
|
||||
buttonsbar1.Panel2.SuspendLayout();
|
||||
buttonsbar1.SuspendLayout();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
this.splitContainer1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// buttonsbar2
|
||||
//
|
||||
buttonsbar2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
buttonsbar2.IsSplitterFixed = true;
|
||||
buttonsbar2.Location = new System.Drawing.Point(0, 0);
|
||||
buttonsbar2.Name = "buttonsbar2";
|
||||
//
|
||||
// buttonsbar2.Panel1
|
||||
//
|
||||
buttonsbar2.Panel1.Controls.Add(this.editresource);
|
||||
//
|
||||
// buttonsbar2.Panel2
|
||||
//
|
||||
buttonsbar2.Panel2.Controls.Add(this.deleteresource);
|
||||
buttonsbar2.Size = new System.Drawing.Size(228, 24);
|
||||
buttonsbar2.SplitterDistance = 136;
|
||||
buttonsbar2.TabIndex = 0;
|
||||
//
|
||||
// editresource
|
||||
//
|
||||
this.editresource.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.editresource.Enabled = false;
|
||||
this.editresource.Location = new System.Drawing.Point(0, 0);
|
||||
this.editresource.Name = "editresource";
|
||||
this.editresource.Size = new System.Drawing.Size(136, 24);
|
||||
this.editresource.TabIndex = 18;
|
||||
this.editresource.Text = "Resource options...";
|
||||
this.editresource.UseVisualStyleBackColor = true;
|
||||
this.editresource.Click += new System.EventHandler(this.editresource_Click);
|
||||
//
|
||||
// deleteresource
|
||||
//
|
||||
this.deleteresource.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.deleteresource.Enabled = false;
|
||||
this.deleteresource.Location = new System.Drawing.Point(0, 0);
|
||||
this.deleteresource.Name = "deleteresource";
|
||||
this.deleteresource.Size = new System.Drawing.Size(88, 24);
|
||||
this.deleteresource.TabIndex = 19;
|
||||
this.deleteresource.Text = "Remove";
|
||||
this.deleteresource.UseVisualStyleBackColor = true;
|
||||
this.deleteresource.Click += new System.EventHandler(this.deleteresource_Click);
|
||||
//
|
||||
// buttonsbar1
|
||||
//
|
||||
buttonsbar1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
buttonsbar1.IsSplitterFixed = true;
|
||||
buttonsbar1.Location = new System.Drawing.Point(0, 0);
|
||||
buttonsbar1.Name = "buttonsbar1";
|
||||
//
|
||||
// buttonsbar1.Panel1
|
||||
//
|
||||
buttonsbar1.Panel1.Controls.Add(this.addresource);
|
||||
//
|
||||
// buttonsbar1.Panel2
|
||||
//
|
||||
buttonsbar1.Panel2.Controls.Add(buttonsbar2);
|
||||
buttonsbar1.Size = new System.Drawing.Size(350, 24);
|
||||
buttonsbar1.SplitterDistance = 118;
|
||||
buttonsbar1.TabIndex = 21;
|
||||
//
|
||||
// addresource
|
||||
//
|
||||
this.addresource.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.addresource.Location = new System.Drawing.Point(0, 0);
|
||||
this.addresource.Name = "addresource";
|
||||
this.addresource.Size = new System.Drawing.Size(118, 24);
|
||||
this.addresource.TabIndex = 17;
|
||||
this.addresource.Text = "Add resource...";
|
||||
this.addresource.UseVisualStyleBackColor = true;
|
||||
this.addresource.Click += new System.EventHandler(this.addresource_Click);
|
||||
//
|
||||
// splitContainer1
|
||||
//
|
||||
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
|
||||
this.splitContainer1.IsSplitterFixed = true;
|
||||
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer1.Name = "splitContainer1";
|
||||
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
// splitContainer1.Panel1
|
||||
//
|
||||
this.splitContainer1.Panel1.Controls.Add(this.resourceitems);
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
this.splitContainer1.Panel2.Controls.Add(buttonsbar1);
|
||||
this.splitContainer1.Panel2MinSize = 24;
|
||||
this.splitContainer1.Size = new System.Drawing.Size(350, 166);
|
||||
this.splitContainer1.SplitterDistance = 138;
|
||||
this.splitContainer1.TabIndex = 22;
|
||||
//
|
||||
// resourceitems
|
||||
//
|
||||
this.resourceitems.AllowDrop = true;
|
||||
this.resourceitems.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
this.column});
|
||||
this.resourceitems.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.resourceitems.FullRowSelect = true;
|
||||
this.resourceitems.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
|
||||
this.resourceitems.HideSelection = false;
|
||||
this.resourceitems.Items.AddRange(new System.Windows.Forms.ListViewItem[] {
|
||||
listViewItem1,
|
||||
listViewItem2,
|
||||
listViewItem3});
|
||||
this.resourceitems.Location = new System.Drawing.Point(0, 0);
|
||||
this.resourceitems.MultiSelect = false;
|
||||
this.resourceitems.Name = "resourceitems";
|
||||
this.resourceitems.ShowGroups = false;
|
||||
this.resourceitems.ShowItemToolTips = true;
|
||||
this.resourceitems.Size = new System.Drawing.Size(350, 138);
|
||||
this.resourceitems.SmallImageList = this.images;
|
||||
this.resourceitems.TabIndex = 20;
|
||||
this.resourceitems.UseCompatibleStateImageBehavior = false;
|
||||
this.resourceitems.View = System.Windows.Forms.View.Details;
|
||||
this.resourceitems.DoubleClick += new System.EventHandler(this.resourceitems_DoubleClick);
|
||||
this.resourceitems.SizeChanged += new System.EventHandler(this.resources_SizeChanged);
|
||||
this.resourceitems.ItemSelectionChanged += new System.Windows.Forms.ListViewItemSelectionChangedEventHandler(this.resourceitems_ItemSelectionChanged);
|
||||
//
|
||||
// column
|
||||
//
|
||||
this.column.Text = "Resource location";
|
||||
this.column.Width = 200;
|
||||
//
|
||||
// images
|
||||
//
|
||||
this.images.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("images.ImageStream")));
|
||||
this.images.TransparentColor = System.Drawing.Color.Transparent;
|
||||
this.images.Images.SetKeyName(0, "Folder.ico");
|
||||
this.images.Images.SetKeyName(1, "File.ico");
|
||||
this.images.Images.SetKeyName(2, "FolderLocked.ico");
|
||||
this.images.Images.SetKeyName(3, "FileLocked.ico");
|
||||
//
|
||||
// ResourceListEditor
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.splitContainer1);
|
||||
this.Name = "ResourceListEditor";
|
||||
this.Size = new System.Drawing.Size(350, 166);
|
||||
buttonsbar2.Panel1.ResumeLayout(false);
|
||||
buttonsbar2.Panel2.ResumeLayout(false);
|
||||
buttonsbar2.ResumeLayout(false);
|
||||
buttonsbar1.Panel1.ResumeLayout(false);
|
||||
buttonsbar1.Panel2.ResumeLayout(false);
|
||||
buttonsbar1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||
this.splitContainer1.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button deleteresource;
|
||||
private System.Windows.Forms.Button editresource;
|
||||
private System.Windows.Forms.Button addresource;
|
||||
private CodeImp.DoomBuilder.Interface.ResourceListView resourceitems;
|
||||
private System.Windows.Forms.ColumnHeader column;
|
||||
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||
private System.Windows.Forms.ImageList images;
|
||||
}
|
||||
}
|
266
Source/Interface/ResourceListEditor.cs
Normal file
266
Source/Interface/ResourceListEditor.cs
Normal file
|
@ -0,0 +1,266 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using CodeImp.DoomBuilder.Images;
|
||||
|
||||
namespace CodeImp.DoomBuilder.Interface
|
||||
{
|
||||
internal partial class ResourceListEditor : UserControl
|
||||
{
|
||||
#region ================== Variables
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Constructor / Disposer
|
||||
|
||||
// Constructor
|
||||
public ResourceListEditor()
|
||||
{
|
||||
// Initialize
|
||||
InitializeComponent();
|
||||
ResizeColumnHeader();
|
||||
|
||||
// Start with a clear list
|
||||
resourceitems.Items.Clear();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
||||
// This will show a fixed list
|
||||
public void FixedResourceLocationList(ResourceLocationList list)
|
||||
{
|
||||
// Start editing list
|
||||
resourceitems.BeginUpdate();
|
||||
|
||||
// Go for all items
|
||||
for(int i = resourceitems.Items.Count; i >= 0; i--)
|
||||
{
|
||||
// Remove item if fixed
|
||||
if(resourceitems.Items[i].ForeColor != SystemColors.WindowText)
|
||||
resourceitems.Items.RemoveAt(i);
|
||||
}
|
||||
|
||||
// Go for all items
|
||||
for(int i = list.Count; i >= 0; i--)
|
||||
{
|
||||
// Add item as fixed
|
||||
resourceitems.Items.Insert(0, new ListViewItem(list[i].location));
|
||||
resourceitems.Items[0].Tag = list[i];
|
||||
|
||||
// Set icon
|
||||
if(list[i].type == ResourceLocation.RESOURCE_DIRECTORY)
|
||||
resourceitems.Items[0].ImageIndex = 2;
|
||||
else if(list[i].type == ResourceLocation.RESOURCE_WAD)
|
||||
resourceitems.Items[0].ImageIndex = 3;
|
||||
|
||||
// Set disabled
|
||||
resourceitems.Items[0].ForeColor = SystemColors.GrayText;
|
||||
}
|
||||
|
||||
// Done
|
||||
resourceitems.EndUpdate();
|
||||
}
|
||||
|
||||
// This will edit the given list
|
||||
public void EditResourceLocationList(ResourceLocationList list)
|
||||
{
|
||||
// Start editing list
|
||||
resourceitems.BeginUpdate();
|
||||
|
||||
// Go for all items
|
||||
for(int i = resourceitems.Items.Count; i >= 0; i--)
|
||||
{
|
||||
// Remove item unless fixed
|
||||
if(resourceitems.Items[i].ForeColor == SystemColors.WindowText)
|
||||
resourceitems.Items.RemoveAt(i);
|
||||
}
|
||||
|
||||
// Go for all items
|
||||
for(int i = 0; i < list.Count; i++)
|
||||
{
|
||||
// Add item
|
||||
AddItem(list[i]);
|
||||
}
|
||||
|
||||
// Done
|
||||
resourceitems.EndUpdate();
|
||||
}
|
||||
|
||||
// This adds a normal item
|
||||
public void AddItem(ResourceLocation rl)
|
||||
{
|
||||
int index;
|
||||
|
||||
// Start editing list
|
||||
resourceitems.BeginUpdate();
|
||||
|
||||
// Add item
|
||||
index = resourceitems.Items.Count;
|
||||
resourceitems.Items.Add(new ListViewItem(rl.location));
|
||||
resourceitems.Items[index].Tag = rl;
|
||||
|
||||
// Set icon
|
||||
if(rl.type == ResourceLocation.RESOURCE_DIRECTORY)
|
||||
resourceitems.Items[index].ImageIndex = 0;
|
||||
else if(rl.type == ResourceLocation.RESOURCE_WAD)
|
||||
resourceitems.Items[index].ImageIndex = 1;
|
||||
|
||||
// Set normal color
|
||||
resourceitems.Items[index].ForeColor = SystemColors.WindowText;
|
||||
|
||||
// Done
|
||||
resourceitems.EndUpdate();
|
||||
}
|
||||
|
||||
// This fixes the column header in the list
|
||||
private void ResizeColumnHeader()
|
||||
{
|
||||
// Resize column header to full extend
|
||||
column.Width = resourceitems.ClientSize.Width - 2;
|
||||
}
|
||||
|
||||
// When the resources list resizes
|
||||
private void resources_SizeChanged(object sender, EventArgs e)
|
||||
{
|
||||
// Resize column header also
|
||||
ResizeColumnHeader();
|
||||
}
|
||||
|
||||
// Add a resource
|
||||
private void addresource_Click(object sender, EventArgs e)
|
||||
{
|
||||
ResourceOptionsForm resoptions;
|
||||
Rectangle startposition;
|
||||
|
||||
// Open resource options dialog
|
||||
resoptions = new ResourceOptionsForm(new ResourceLocation(), "Add Resource");
|
||||
resoptions.StartPosition = FormStartPosition.Manual;
|
||||
startposition = new Rectangle(40, 20, 1, 1);
|
||||
startposition = this.RectangleToScreen(startposition);
|
||||
resoptions.Location = startposition.Location;
|
||||
if(resoptions.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
// Add resource
|
||||
AddItem(resoptions.ResourceLocation);
|
||||
}
|
||||
}
|
||||
|
||||
// Edit resource
|
||||
private void editresource_Click(object sender, EventArgs e)
|
||||
{
|
||||
ResourceOptionsForm resoptions;
|
||||
Rectangle startposition;
|
||||
ListViewItem selecteditem;
|
||||
ResourceLocation rl;
|
||||
|
||||
// Anything selected?
|
||||
if(resourceitems.SelectedItems.Count > 0)
|
||||
{
|
||||
// Get selected item
|
||||
selecteditem = resourceitems.SelectedItems[0];
|
||||
|
||||
// Open resource options dialog
|
||||
resoptions = new ResourceOptionsForm((ResourceLocation)selecteditem.Tag, "Resource Options");
|
||||
resoptions.StartPosition = FormStartPosition.Manual;
|
||||
startposition = new Rectangle(40, 20, 1, 1);
|
||||
startposition = this.RectangleToScreen(startposition);
|
||||
resoptions.Location = startposition.Location;
|
||||
if(resoptions.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
// Start editing list
|
||||
resourceitems.BeginUpdate();
|
||||
|
||||
// Update item
|
||||
rl = resoptions.ResourceLocation;
|
||||
selecteditem.Text = rl.location;
|
||||
selecteditem.Tag = rl;
|
||||
|
||||
// Set icon
|
||||
if(rl.type == ResourceLocation.RESOURCE_DIRECTORY)
|
||||
selecteditem.ImageIndex = 0;
|
||||
else if(rl.type == ResourceLocation.RESOURCE_WAD)
|
||||
selecteditem.ImageIndex = 1;
|
||||
|
||||
// Done
|
||||
resourceitems.EndUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Remove resource
|
||||
private void deleteresource_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Anything selected?
|
||||
if(resourceitems.SelectedItems.Count > 0)
|
||||
{
|
||||
// Remove it
|
||||
resourceitems.Items.Remove(resourceitems.SelectedItems[0]);
|
||||
}
|
||||
}
|
||||
|
||||
// Item selected
|
||||
private void resourceitems_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
|
||||
{
|
||||
// Anything selected
|
||||
if(resourceitems.SelectedItems.Count > 0)
|
||||
{
|
||||
// Go for all selected items
|
||||
for(int i = resourceitems.SelectedItems.Count - 1; i >= 0; i--)
|
||||
{
|
||||
// Item grayed? Then deselect.
|
||||
if(resourceitems.SelectedItems[i].ForeColor != SystemColors.WindowText)
|
||||
resourceitems.SelectedItems[i].Selected = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Anything selected
|
||||
if(resourceitems.SelectedItems.Count > 0)
|
||||
{
|
||||
// Enable buttons
|
||||
editresource.Enabled = true;
|
||||
deleteresource.Enabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Disable buttons
|
||||
editresource.Enabled = false;
|
||||
deleteresource.Enabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
// When an item is double clicked
|
||||
private void resourceitems_DoubleClick(object sender, EventArgs e)
|
||||
{
|
||||
// Click the edit resource button
|
||||
if(editresource.Enabled) editresource_Click(sender, e);
|
||||
}
|
||||
|
||||
// Returns a list of the resources
|
||||
public ResourceLocationList GetResources()
|
||||
{
|
||||
ResourceLocationList list = new ResourceLocationList();
|
||||
|
||||
// Go for all items
|
||||
for(int i = 0; i < resourceitems.Items.Count; i++)
|
||||
{
|
||||
// Item not grayed?
|
||||
if(resourceitems.Items[i].ForeColor == SystemColors.WindowText)
|
||||
{
|
||||
// Add item to list
|
||||
list.Add((ResourceLocation)resourceitems.Items[i].Tag);
|
||||
}
|
||||
}
|
||||
|
||||
// Return result
|
||||
return list;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
225
Source/Interface/ResourceListEditor.resx
Normal file
225
Source/Interface/ResourceListEditor.resx
Normal file
|
@ -0,0 +1,225 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
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.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="buttonsbar2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="buttonsbar2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="editresource.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="deleteresource.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="buttonsbar1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="buttonsbar1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="addresource.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="splitContainer1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="images.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<data name="images.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADi
|
||||
DwAAAk1TRnQBSQFMAgEBBAEAAQkBAAEEAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
||||
AwABIAMAAQEBAAEgBgABIP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AxgABBAKWAf8BBAKW
|
||||
Af8BBAJUAf8BBAJUAf8BBAJUAf8BBAJUAf8oAAEEApYB/wEEApYB/wEEAlQB/wEEAlQB/wEEAlQB/wEE
|
||||
AlQB/1gAAxkB/wMZAf8DGQH/AxkB/wMZAf8DGQH/AxkB/wMZAf8wAAEEArkB/wEEApYB/wEEApYB/wEE
|
||||
AoEB/wEEAoEB/wEEAlQB/xgAAxIB/wMSAf8DEgH/AxIB/wEEArkB/wEEApYB/wEEApYB/wEEAoEB/wEE
|
||||
AoEB/wEEAlQB/wQAAXsBiAGQAf8BawGBAZAB/wFrAoEB/wFbAXsBgQH/AVsBawF7Af8BSwFjAWsB/wFL
|
||||
AVMBWwH/ATsBQwFLAf8BKwI7Af8CKwE7Af8BGwEjASsB/wMbAf8CGwErAf8cAAMZAf8DCwH/A7AB/wOx
|
||||
Af8DsAH/A60B/wOrAf8DoAH/AxkB/wwAAXQBiAGQAf8BZAGBAZAB/wFkAXwBgQH/AVQBdAGBAf8BVAFk
|
||||
AXQB/wFEAVwBZAH/AUQBTAFUAf8BNAE8AUQB/wEkAjQB/wEEArkB/wOgAf8DfgH/A34B/wEEAoEB/wEE
|
||||
AlQB/xQAAxIB/wMEAf8DsAH/A7EB/wOwAf8BBAK5Af8DoAH/A34B/wN+Af8BBAKBAf8BBAJUAf8EAAF7
|
||||
AYgBkAH/AZABqAGwAf8BkAGoAbAB/wELAZAB0AH/AQsBkAHQAf8BCwGQAdAB/wELAZABwAH/ARsBiAHA
|
||||
Af8BGwGBAbAB/wEbAYEBsAH/ASsBgQGgAf8BKwF7AZAB/wErAVMBawH/A5IB/xQAAxkB/wOqAf8DCwH/
|
||||
A9cB/wPZAf8D3AH/A98B/wPhAf8DzwH/AxkB/wwAAXQBiAGQAf8BkAGoAbAB/wGQAagBsAH/AQQBkAHQ
|
||||
Af8BBAGQAdAB/wEEAZAB0AH/AQQBkAHAAf8BFAGIAcAB/wEUAYEBsAH/AQQCuQH/AQQD/wEEA/8BBAP/
|
||||
AQQCgQH/AQQCVAH/EAADEgH/A6oB/wMEAf8D1wH/A9kB/wPcAf8BBAK5Af8BBAP/AQQD/wEEA/8BBAKB
|
||||
Af8BBAJUAf8EAAGBAYgBkAH/AWsB2AL/AZABqAGwAf8BgQHgAv8BawHQAv8BWwHIAv8BWwHIAv8BSwHA
|
||||
AfAB/wE7AbAB8AH/ATsBqAHwAf8BKwGgAeAB/wEbAZAB0AH/ASsBcwGBAf8BZAFsAXIB/xAAAxkB/wOq
|
||||
Af8DwQH/AwsB/wPVAf8D2QH/A90B/wPhAf8D5QH/A9IB/wMZAf8MAAGBAYgBkAH/AWQB2AL/AZABqAGw
|
||||
Af8BgQHgAv8BZAHQAv8BVAHIAv8BVAHIAv8BRAHAAfAB/wE0AbAB8AH/AQQCuQH/AQQClgH/AQQClgH/
|
||||
AQQCgQH/AQQCgQH/AQQCdwH/DAADEgH/A6oB/wPBAf8DBAH/A9UB/wPZAf8D3QH/AQQCuQH/AQQClgH/
|
||||
AQQClgH/AQQCgQH/AQQCgQH/AQQCdwH/BAABgQGQAaAB/wFrAdgC/wGQAagBsAH/AZABwAHQAf8BewHY
|
||||
Av8BawHQAv8BawHQAv8BWwHIAv8BWwHAAv8BSwG4AfAB/wE7AbAB8AH/ATsBqAHwAf8BGwGIAdAB/wEr
|
||||
AVMBawH/A5IB/wwAAxkB/wMLAf8DCwH/A6oB/wPOAf8D0wH/A9gB/wPcAf8D4AH/A9EB/wMZAf8MAAGB
|
||||
AZABoAH/AWQB2AL/AZABqAGwAf8BkAHAAdAB/wF0AdgC/wFkAdAC/wFkAdAC/wFUAcgC/wFUAcAC/wEE
|
||||
ArkB/wEEAlQB/wOxAf8DHgH/AQQCgQH/AQQCVAH/DAADEgH/AwQB/wMEAf8DqgH/A84B/wPTAf8D2AH/
|
||||
AQQCuQH/AQQCVAH/A7EB/wMeAf8BBAKBAf8BBAJUAf8EAAGBAZABoAH/AYEB2AHwAf8BawHYAv8BkAGo
|
||||
AbAB/wGBAeAC/wF7AdAC/wFrAdgC/wFrAdAC/wFrAdAC/wFbAcgC/wFLAcAB8AH/AUsBuAHwAf8BOwGw
|
||||
AfAB/wErAXMBgQH/A3kB/wwAAxkB/wPVAf8DwQH/A8QB/wPJAf8DzwH/A9MB/wPXAf8D2wH/A80B/wMZ
|
||||
Af8MAAGBAZABoAH/AYEB2AHwAf8BZAHYAv8BkAGoAbAB/wGBAeAC/wF0AdAC/wFkAdgC/wFkAdAC/wFk
|
||||
AdAC/wEEArkB/wEEAlQB/wMEAf8DHgH/AQQClgH/AQQCVAH/DAADEgH/A9UB/wPBAf8DxAH/A8kB/wPP
|
||||
Af8D0wH/AQQCuQH/AQQCVAH/AwQB/wMeAf8BBAKWAf8BBAJUAf8EAAGBAZgBoAH/AZAB4AHwAf8BawHY
|
||||
Av8BkAGoAbAB/wGQAbgBwAH/AXsB2AL/AWsB2AL/AWsB2AL/AWsB2AL/AWsB0AL/AVsB0AL/AVsByAL/
|
||||
AUsBuAHwAf8BOwGgAeAB/wFUAXIBgQH/A5IB/wgAAxkB/wPTAf8DvAH/A8AB/wPFAf8DyQH/A80B/wPR
|
||||
Af8D1QH/A8wB/wMZAf8MAAGBAZgBoAH/AZAB4AHwAf8BZAHYAv8BkAGoAbAB/wGQAbgBwAH/AXQB2AL/
|
||||
AWQB2AL/AWQB2AL/AWQB2AL/AWQB0AL/AQQCuQH/AQQCuQH/AQQClgH/AQQCVAH/AU0BawF7Af8DkgH/
|
||||
CAADEgH/A9MB/wO8Af8DwAH/A8UB/wPJAf8DzQH/A9EB/wEEArkB/wEEArkB/wEEApYB/wEEAlQB/wgA
|
||||
AYEBmAGgAf8BkAHgAfAB/wGgAegC/wFrAdgC/wGQAagBsAH/AYEB4AL/AYEB4AL/AYEB4AL/AYEB4AL/
|
||||
AYEB4AL/AYEB4AL/AYEB4AL/AXsB2AL/AXsB2AL/AVsBqAHQAf8DeQH/CAADGQH/A9EB/wO3Af8DuwH/
|
||||
A8AB/wPEAf8DyAH/A8wB/wPRAf8DyQH/AxkB/wwAAYEBmAGgAf8BkAHgAfAB/wGgAegC/wFkAdgC/wGQ
|
||||
AagBsAH/AYEB4AL/AYEB4AL/AYEB4AL/AYEB4AL/AYEB4AL/AYEB4AL/AYEB4AL/AXQB2AL/AXQB2AL/
|
||||
AVQBqAHQAf8DcgH/CAADEgH/A9EB/wO3Af8DuwH/A8AB/wPEAf8DyAH/A8wB/wPRAf8DyQH/AxIB/wwA
|
||||
AZACoAH/AaAB6AHwAf8BoAHoAv8BoAHoAv8BkAGoAbAB/wGQAagBsAH/AZABqAGwAf8BkAGoAbAB/wGB
|
||||
AaABsAH/AYEBoAGwAf8BgQGYAaAB/wGBAZgBoAH/AYEBkAGgAf8BgQGQAaAB/wGBAYgBkAH/AXsBiAGQ
|
||||
Af8IAAMZAf8D0QH/A7MB/wO1Af8DuQH/A78B/wPDAf8DxwH/A8sB/wPGAf8DGQH/DAABkAKgAf8BoAHo
|
||||
AfAB/wGgAegC/wGgAegC/wGQAagBsAH/AZABqAGwAf8BkAGoAbAB/wGQAagBsAH/AYEBoAGwAf8BgQGg
|
||||
AbAB/wGBAZgBoAH/AYEBmAGgAf8BgQGQAaAB/wGBAZABoAH/AYEBiAGQAf8BdAGIAZAB/wgAAxIB/wPR
|
||||
Af8DswH/A7UB/wO5Af8DvwH/A8MB/wPHAf8DywH/A8YB/wMSAf8MAAGQAaABsAH/AaAB6AHwAf8BoAHw
|
||||
Av8BoAHoAv8BoAHoAv8BgQHYAv8BawHYAv8BawHYAv8BawHYAv8BawHYAv8BawHYAv8BawHYAv8BewGI
|
||||
AZAB/xQAAxkB/wPRAf8DrQH/A7EB/wO0Af8DuQH/A7wB/wPBAf8DxQH/A8QB/wMZAf8MAAGQAaABsAH/
|
||||
AaAB6AHwAf8BoAHwAv8BoAHoAv8BoAHoAv8BgQHYAv8BZAHYAv8BZAHYAv8BZAHYAv8BZAHYAv8BZAHY
|
||||
Av8BZAHYAv8BdAGIAZAB/xQAAxIB/wPRAf8DrQH/A7EB/wO0Af8DuQH/A7wB/wPBAf8DxQH/A8QB/wMS
|
||||
Af8MAAGQAaABsAH/AaAC8AH/AbAC8AH/AaAB8AL/AaAB6AL/AaAB6AL/AXsB2AL/AZACoAH/AYEBmAGg
|
||||
Af8BgQGYAaAB/wGBAZABoAH/AYECkAH/AXsBiAGQAf8UAAMZAf8DygH/A6gB/wOsAf8DsAH/A7QB/wO4
|
||||
Af8DvAH/A8AB/wPBAf8DGQH/DAABkAGgAbAB/wGgAvAB/wGwAvAB/wGgAfAC/wGgAegC/wGgAegC/wF0
|
||||
AdgC/wGQAqAB/wGBAZgBoAH/AYEBmAGgAf8BgQGQAaAB/wGBApAB/wF0AYgBkAH/FAADEgH/A8oB/wOo
|
||||
Af8DrAH/A7AB/wO0Af8DuAH/A7wB/wPAAf8DwQH/AxIB/wwAAZABqAGwAf8BoAHQAeAB/wGwAvAB/wGw
|
||||
AvAB/wGgAfAC/wGgAegC/wGQAaABsAH/A5IB/ygAAxkB/wPLAf8DqQH/A6wB/wOwAf8DtAH/A7cB/wO7
|
||||
Af8DvQH/A8AB/wMZAf8MAAGQAagBsAH/AaAB0AHgAf8BsALwAf8BsALwAf8BoAHwAv8BoAHoAv8BkAGg
|
||||
AbAB/wOSAf8oAAMSAf8DywH/A6kB/wOsAf8DsAH/A7QB/wO3Af8DuwH/A70B/wPAAf8DEgH/EAABkAGo
|
||||
AbAB/wGQAagBsAH/AZABqAGwAf8BkAGoAbAB/wGQAagBsAH/A5IB/ywAAxkB/wPyAf8D1QH/A9IB/wPR
|
||||
Af8DzgH/A8sB/wPKAf8DxwH/A8YB/wMZAf8QAAGQAagBsAH/AZABqAGwAf8BkAGoAbAB/wGQAagBsAH/
|
||||
AZABqAGwAf8DkgH/LAADEgH/A/IB/wPVAf8D0gH/A9EB/wPOAf8DywH/A8oB/wPHAf8DxgH/AxIB/1QA
|
||||
AxkB/wMZAf8DGQH/AxkB/wMZAf8DGQH/AxkB/wMZAf8DGQH/AxkB/wMZAf9UAAMSAf8DEgH/AxIB/wMS
|
||||
Af8DEgH/AxIB/wMSAf8DEgH/AxIB/wMSAf8DEgH//wANAAFCAU0BPgcAAT4DAAEoAwABQAMAASADAAEB
|
||||
AQABAQYAAQEWAAP/gQAF/wGBAf8BgQL/AfgBBwH/AYEB+AEBAQABBwHwAQcBAAEBAfABAQEAAQMB4AEH
|
||||
AQABAQHgAQEBAAEDAcABBwEAAQEBwAEBAQABAQHAAQcBAAEBAcABAQEAAQEBwAEHAQABAQHAAQECAAHA
|
||||
AQcCAAHAAQMCAAHAAQcCAAHAAQcCAAHAAQcCAAHAAQcBAAEHAcABBwEAAQcBwAEHAQABBwHAAQcBAAEH
|
||||
AcABBwEAAf8BwAEHAQAB/wHAAQcBgQH/AcABBwGBAf8BwAEHAv8BwAEHAv8BwAEHCP8L
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
</root>
|
250
Source/Interface/ResourceListView.cs
Normal file
250
Source/Interface/ResourceListView.cs
Normal file
|
@ -0,0 +1,250 @@
|
|||
|
||||
#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.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Globalization;
|
||||
using System.Windows.Forms;
|
||||
using CodeImp.DoomBuilder.Controls;
|
||||
using CodeImp.DoomBuilder.Geometry;
|
||||
using CodeImp.DoomBuilder.Rendering;
|
||||
using CodeImp.DoomBuilder.Editing;
|
||||
|
||||
#endregion
|
||||
|
||||
namespace CodeImp.DoomBuilder.Interface
|
||||
{
|
||||
internal class ResourceListView : ListView
|
||||
{
|
||||
private const string DRAG_TYPE = "ReorderItems";
|
||||
private List<ListViewItem> dragitems;
|
||||
|
||||
// Disable sorting
|
||||
public new SortOrder Sorting { get { return SortOrder.None; } set { base.Sorting = SortOrder.None; } }
|
||||
|
||||
// Constructor
|
||||
public ResourceListView(): base()
|
||||
{
|
||||
// List for dragged items
|
||||
dragitems = new List<ListViewItem>();
|
||||
}
|
||||
|
||||
// When items are dropped
|
||||
protected override void OnDragDrop(DragEventArgs e)
|
||||
{
|
||||
int dropindex, i;
|
||||
ListViewItem insertatitem;
|
||||
Point cp;
|
||||
|
||||
// Pass on to base
|
||||
base.OnDragDrop(e);
|
||||
|
||||
// Leave when no items being dragged
|
||||
if(dragitems.Count == 0) return;
|
||||
|
||||
// Determine where to insert
|
||||
cp = base.PointToClient(new Point(e.X, e.Y));
|
||||
insertatitem = base.GetItemAt(cp.X, cp.Y);
|
||||
|
||||
// Leave when nowhere to insert or same as selected item
|
||||
if((insertatitem == null) || (dragitems.Contains(insertatitem))) return;
|
||||
|
||||
// Leave when item is grayed
|
||||
if(insertatitem.ForeColor != SystemColors.WindowText) return;
|
||||
|
||||
// Determine index where to insert
|
||||
dropindex = insertatitem.Index;
|
||||
if(dropindex > dragitems[0].Index) dropindex++;
|
||||
|
||||
// Deselect items
|
||||
DeselectAll();
|
||||
|
||||
// Insert items
|
||||
for(i = dragitems.Count - 1; i >= 0; i--)
|
||||
{
|
||||
// Insert a copy of the item here
|
||||
base.Items.Insert(dropindex, (ListViewItem)dragitems[i].Clone());
|
||||
base.Items[dropindex].Selected = true;
|
||||
}
|
||||
|
||||
// Remove old items
|
||||
foreach(ListViewItem lvi in dragitems)
|
||||
{
|
||||
// Remove item from list
|
||||
base.Items.Remove(lvi);
|
||||
}
|
||||
|
||||
// Clear the list
|
||||
dragitems.Clear();
|
||||
}
|
||||
|
||||
// When items are dragged over
|
||||
protected override void OnDragOver(DragEventArgs e)
|
||||
{
|
||||
int dropindex, i;
|
||||
ListViewItem insertatitem;
|
||||
Point cp;
|
||||
|
||||
// Check if our data format is present
|
||||
if(!e.Data.GetDataPresent(DataFormats.Text))
|
||||
{
|
||||
e.Effect = DragDropEffects.None;
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if the data matches our data
|
||||
String text = (String)e.Data.GetData(DRAG_TYPE.GetType());
|
||||
if(text.CompareTo(DRAG_TYPE + this.Name) == 0)
|
||||
{
|
||||
// Determine where to insert
|
||||
cp = base.PointToClient(new Point(e.X, e.Y));
|
||||
insertatitem = base.GetItemAt(cp.X, cp.Y);
|
||||
if(insertatitem == null)
|
||||
{
|
||||
// Cannot insert here
|
||||
e.Effect = DragDropEffects.None;
|
||||
return;
|
||||
}
|
||||
|
||||
// Item is one of the items being dragged?
|
||||
if(dragitems.Contains(insertatitem))
|
||||
{
|
||||
// Show move possibility, but dont do anything
|
||||
e.Effect = DragDropEffects.Move;
|
||||
insertatitem.EnsureVisible();
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if item is grayed
|
||||
if(insertatitem.ForeColor != SystemColors.WindowText)
|
||||
{
|
||||
// Cannot insert here
|
||||
e.Effect = DragDropEffects.None;
|
||||
insertatitem.EnsureVisible();
|
||||
return;
|
||||
}
|
||||
|
||||
// Pass on to base
|
||||
base.OnDragOver(e);
|
||||
|
||||
// Can insert here
|
||||
e.Effect = DragDropEffects.Move;
|
||||
insertatitem.EnsureVisible();
|
||||
|
||||
// Determine index where to insert
|
||||
dropindex = insertatitem.Index;
|
||||
if(dropindex > dragitems[0].Index) dropindex++;
|
||||
|
||||
// Deselect items
|
||||
DeselectAll();
|
||||
|
||||
// Insert items
|
||||
for(i = dragitems.Count - 1; i >= 0; i--)
|
||||
{
|
||||
// Insert a copy of the item here
|
||||
base.Items.Insert(dropindex, (ListViewItem)dragitems[i].Clone());
|
||||
base.Items[dropindex].Selected = true;
|
||||
}
|
||||
|
||||
// Remove old items
|
||||
foreach(ListViewItem lvi in dragitems)
|
||||
{
|
||||
// Remove item from list
|
||||
base.Items.Remove(lvi);
|
||||
}
|
||||
|
||||
// Copy selected items to the list
|
||||
dragitems.Clear();
|
||||
foreach(ListViewItem lvi in base.SelectedItems) dragitems.Add(lvi);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Cannot insert here
|
||||
e.Effect = DragDropEffects.None;
|
||||
}
|
||||
}
|
||||
|
||||
// When items are first dragged over
|
||||
protected override void OnDragEnter(DragEventArgs e)
|
||||
{
|
||||
// Pass on to base
|
||||
base.OnDragEnter(e);
|
||||
|
||||
// Check if our data format is present
|
||||
if(!e.Data.GetDataPresent(DataFormats.Text))
|
||||
{
|
||||
// No effect
|
||||
e.Effect = DragDropEffects.None;
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if the data matches our data
|
||||
String text = (String)e.Data.GetData(DRAG_TYPE.GetType());
|
||||
if(text.CompareTo(DRAG_TYPE + base.Name) == 0)
|
||||
{
|
||||
// We're moving these items
|
||||
e.Effect = DragDropEffects.Move;
|
||||
}
|
||||
else
|
||||
{
|
||||
// No effect
|
||||
e.Effect = DragDropEffects.None;
|
||||
}
|
||||
}
|
||||
|
||||
// When items are first dragged
|
||||
protected override void OnItemDrag(ItemDragEventArgs e)
|
||||
{
|
||||
// Pass on to base
|
||||
base.OnItemDrag(e);
|
||||
|
||||
// Anything selected?
|
||||
if(base.SelectedItems.Count > 0)
|
||||
{
|
||||
// Go for all selected items
|
||||
for(int i = base.SelectedItems.Count - 1; i >= 0; i--)
|
||||
{
|
||||
// Item grayed? Then abort!
|
||||
if(base.SelectedItems[i].ForeColor != SystemColors.WindowText)
|
||||
return;
|
||||
}
|
||||
|
||||
// Copy selected items to the list
|
||||
dragitems.Clear();
|
||||
foreach(ListViewItem lvi in base.SelectedItems) dragitems.Add(lvi);
|
||||
|
||||
// Start drag operation
|
||||
base.DoDragDrop(DRAG_TYPE + base.Name, DragDropEffects.Move);
|
||||
}
|
||||
}
|
||||
|
||||
// This deselects all items
|
||||
private void DeselectAll()
|
||||
{
|
||||
// Go for all selected items
|
||||
for(int i = base.SelectedItems.Count - 1; i >= 0; i--)
|
||||
{
|
||||
// Item grayed? Then abort!
|
||||
base.SelectedItems[i].Selected = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -45,14 +45,14 @@ namespace CodeImp.DoomBuilder.Map
|
|||
private string previousname;
|
||||
|
||||
// Additional resources
|
||||
private List<ResourceLocation> resources;
|
||||
private ResourceLocationList resources;
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Properties
|
||||
|
||||
public string ConfigFile { get { return configfile; } set { configfile = value; } }
|
||||
public ICollection<ResourceLocation> Resources { get { return resources; } }
|
||||
public ResourceLocationList Resources { get { return resources; } }
|
||||
public string PreviousName { get { return previousname; } }
|
||||
public string CurrentName
|
||||
{
|
||||
|
@ -80,7 +80,7 @@ namespace CodeImp.DoomBuilder.Map
|
|||
this.previousname = "";
|
||||
this.currentname = "";
|
||||
this.configfile = "";
|
||||
this.resources = new List<ResourceLocation>();
|
||||
this.resources = new ResourceLocationList();
|
||||
}
|
||||
|
||||
// Constructor to load from Doom Builder Map Settings Configuration
|
||||
|
@ -93,7 +93,7 @@ namespace CodeImp.DoomBuilder.Map
|
|||
this.previousname = "";
|
||||
this.currentname = mapname;
|
||||
this.configfile = cfg.ReadSetting("config", "");
|
||||
this.resources = new List<ResourceLocation>();
|
||||
this.resources = new ResourceLocationList();
|
||||
|
||||
// Go for all items in the map info
|
||||
mapinfo = cfg.ReadSetting(mapname, new Hashtable());
|
||||
|
@ -165,6 +165,14 @@ namespace CodeImp.DoomBuilder.Map
|
|||
resources.RemoveAt(index);
|
||||
}
|
||||
|
||||
// This copies resources from a list
|
||||
public void CopyResources(ResourceLocationList fromlist)
|
||||
{
|
||||
// Clear this list
|
||||
resources.Clear();
|
||||
resources.AddRange(fromlist);
|
||||
}
|
||||
|
||||
// This displays the current map name
|
||||
public override string ToString()
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue