Wad file can now be loaded by dragging them on top of GZDB's main window.

Open Map Options and Map Options forms: resources can be added by dragging them on top of resources list.
This commit is contained in:
MaxED 2013-12-20 11:40:33 +00:00
parent 0366f13c9a
commit 2dee709ed6
9 changed files with 552 additions and 470 deletions

View file

@ -197,6 +197,7 @@ namespace CodeImp.DoomBuilder.Controls
//
// ResourceListEditor
//
this.AllowDrop = true;
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.Controls.Add(this.splitContainer1);

View file

@ -18,6 +18,7 @@
using System;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using CodeImp.DoomBuilder.Data;
using CodeImp.DoomBuilder.Windows;
@ -186,6 +187,28 @@ namespace CodeImp.DoomBuilder.Controls
// Done
resourceitems.EndUpdate();
}
//mxd
internal void DropItem(IDataObject data) {
if(!data.GetDataPresent(DataFormats.FileDrop)) return;
string[] paths = (string[])data.GetData(DataFormats.FileDrop);
foreach(string path in paths) {
if(File.Exists(path)) {
string ext = Path.GetExtension(path);
if(string.IsNullOrEmpty(ext))
continue;
ext = ext.ToLower();
if(ext == ".wad") {
AddItem(new DataLocation(DataLocation.RESOURCE_WAD, path, false, false, false));
} else if(ext == ".pk3" || ext == ".pk7") {
AddItem(new DataLocation(DataLocation.RESOURCE_PK3, path, false, false, false));
}
} else if(Directory.Exists(path)) {
AddItem(new DataLocation(DataLocation.RESOURCE_DIRECTORY, path, false, false, false));
}
}
}
// This fixes the column header in the list
private void ResizeColumnHeader()
@ -355,6 +378,8 @@ namespace CodeImp.DoomBuilder.Controls
// Item dropped
private void resourceitems_DragDrop(object sender, DragEventArgs e)
{
DropItem(e.Data); //mxd
// Raise content changed event
if(OnContentChanged != null) OnContentChanged();
}

View file

@ -1,254 +1,254 @@
<?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.
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.
-->
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: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>
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
<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>
<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>
<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>
<value>True</value>
</metadata>
<metadata name="buttonsbar2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="editresource.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="deleteresource.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="buttonsbar1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="buttonsbar1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="addresource.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="splitContainer1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<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>
<value>17, 17</value>
</metadata>
<data name="images.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACy
FgAAAk1TRnQBSQFMAgEBBgEAAQkBAAEEAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIDYAAQMClgH/AQMClgH/AQMCUwH/AQMCUwH/AQMCUwH/AQMCUwH/LAABAwKW
Af8BAwKWAf8BAwJTAf8BAwJTAf8BAwJTAf8BAwJTAf+UAAOFAf8DhQH/A4UB/wOFAf8BAwK5Af8BAwKW
Af8BAwKWAf8BAwKBAf8BAwKBAf8BAwJTAf8QAAOAAf8DgQH/A4AB/wOAAf8DgQH/A4EB/wOAAf8BAwK5
Af8BAwKWAf8BAwKWAf8BAwKBAf8BAwKBAf8BAwJTAf+QAAOFAf8DhQH/A8YB/wPJAf8DxgH/AQMCuQH/
A6AB/wN9Af8DfQH/AQMCgQH/AQMCUwH/DAADgAH/A2cB/wOAAf8DlQH/A8kB/wPaAf8D2gH/A7wB/wED
ArkB/wOoAf8DgQH/A4EB/wEDAoEB/wEDAlMB/4wAA4UB/wPBAf8DhQH/A+UB/wPhAf8D5QH/AQMCuQH/
AQMD/wEDA/8BAwP/AQMCgQH/AQMCUwH/CAADgAH/A4EB/wOBAf8DgAH/A4EB/wOAAf8DgQH/A4AB/wOB
Af8BAwK5Af8BAwP/AQMD/wEDA/8BAwKBAf8BAwJTAf+IAAOFAf8DwQH/A9EB/wOFAf8D4QH/A+EB/wPl
Af8BAwK5Af8BAwKWAf8BAwKWAf8BAwKBAf8BAwKBAf8BAwJ2Af8QAAOPAf8DgAH/A4EB/wOAAf8DgQH/
A4AB/wOBAf8BAwK5Af8BAwKWAf8BAwKWAf8BAwKBAf8BAwKBAf8BAwJ2Af+IAAOFAf8DhQH/A4UB/wPB
Af8D3gH/A94B/wPhAf8BAwK5Af8BAwJTAf8DsQH/Ax0B/wEDAoEB/wEDAlMB/wwAA48B/wPjAf8DjwH/
A9UB/wPaAf8D3gH/A+MB/wOAAf8BAwK5Af8BAwJTAf8DsQH/A4EB/wEDAoEB/wEDAlMB/4gAA4UB/wPh
Af8D0QH/A9UB/wPZAf8D3gH/A+EB/wEDArkB/wEDAlMB/wMDAf8DHQH/AQMClgH/AQMCUwH/DAADjwH/
A48B/wOPAf8D0QH/A9oB/wPeAf8D3gH/A4AB/wEDArkB/wEDAlMB/wMDAf8BIgEaARsB/wEDApYB/wED
AlMB/4gAA4UB/wPeAf8DzQH/A9EB/wPVAf8D2QH/A9kB/wPeAf8BAwK5Af8BAwK5Af8BAwKWAf8BAwJT
Af8QAAOPAf8D3gH/A9EB/wPRAf8D1QH/A9oB/wPaAf8DgAH/BAABAwK5Af8BAwK5Af8BAwKWAf8BAwJT
Af+MAAOFAf8D3gH/A80B/wPNAf8D0QH/A9UB/wPZAf8D2QH/A94B/wPZAf8DhQH/FAADjwH/A94B/wPN
Af8DzQH/A9EB/wPVAf8D2gH/A4AB/wQAA48B/wOPAf8DgQH/kAADhQH/A94B/wPJAf8DyQH/A80B/wPR
Af8D1QH/A9UB/wPZAf8D1QH/A4UB/xQAA48B/wPeAf8DyQH/A8kB/wPNAf8D0QH/A9UB/wOAAf8EAAOB
Af8D0QH/A6QB/5AAA4UB/wPeAf8DxgH/A8kB/wPJAf8DzQH/A9EB/wPRAf8D1QH/A9UB/wOFAf8UAAOP
Af8D3gH/A8UB/wPFAf8DyQH/A80B/wPNAf8DgQH/BAADjwH/A48B/wOAAf+QAAOFAf8D2QH/A8EB/wPB
Af8DxgH/A8kB/wPNAf8DzQH/A9UB/wPRAf8DhQH/FAADjwH/A9oB/wPBAf8DwQH/A8UB/wPJAf8DzQH/
A4AB/wQAA4AB/wPRAf8DpAH/kAADhQH/A9kB/wPBAf8DxgH/A8YB/wPJAf8DzQH/A80B/wPRAf8D0QH/
A4UB/xQAA48B/wOPAf8DjwH/A48B/wOPAf8DjwH/A48B/wOPAf8EAAOAAf8DoAH/A4EB/5AAA4UB/wP1
Af8D4QH/A94B/wPeAf8D2QH/A9kB/wPZAf8D1QH/A9UB/wOFAf8QAAOAAf8DgAH/A4EB/wOAAf8DgQH/
A4EB/wOBAf8DgQH/A4EB/wOAAf8DmgH/A58B/wNkAf8DgAH/jAADhQH/A4UB/wOFAf8DhQH/A4UB/wOF
Af8DhQH/A4UB/wOFAf8DhQH/A4UB/xQAA4EB/wNtAf8DlQH/A8kB/wPaAf8D2gH/A9oB/wPaAf8D2gH/
A7wB/wOAAf8DgAH/A4AB/9AAA4AB/wOAAf8DgAH/A4AB/wOAAf8DgAH/A4AB/wOAAf8DgAH/A4AB/wOA
Af//ADEAAwUB/wMFAf8DBQH/AwUB/ywAAQMClgH/AQMClgH/AQMCUwH/AQMCUwH/AQMCUwH/AQMCUwH/
WAADIgH/AyIB/wMiAf8DIgH/AyIB/wMiAf8DIgH/AyIB/xgAARUBCwEPAf8BFQELAQ8B/wEVAQsBDwH/
ARUBCwEPAf8BFQELAQ8B/wEVAQsBDwH/ARUBCwEPAf8BMAEmASIB/wF3AXMBaQH/AWQBXwEyAf8BIQEc
AQ4B/wEVAQsBDwH/KAABAwK5Af8BAwKWAf8BAwKWAf8BAwKBAf8BAwKBAf8BAwJTAf8EAAGBAYgBkAH/
AXQBgQGQAf8BdAKBAf8BZAKBAf8BZAF0AYEB/wFUAWwBdAH/AVQBXAFkAf8BRAFMAVQB/wE0AkQB/wI0
AUQB/wEkASwBNAH/AyQB/wIkATQB/xwAAyIB/wMUAf8DsAH/A7EB/wOwAf8DrQH/A6sB/wOgAf8DIgH/
FAABIAESAQ4B/wFEATIBEwH/AWgBWgE0Af8BnwGCATsB/wHbAccBkAH/AeYB1wG0Af8B5gHXAbQB/wG0
Aa4BjwH/AXoBcAFNAf8BfgFwAUwB/wFdAVEBKgH/ASQBGAENAf8BFQELAQ8B/wQAA5cB/wORAf8DiQH/
A4QB/wOBAf8DdAH/A20B/wNgAf8DUwH/AQMCuQH/A6AB/wN9Af8DfQH/AQMCgQH/AQMCUwH/BAABgQGI
AZAB/wGQAagBsAH/AZABqAGwAf8BFAGQAdAB/wEUAZAB0AH/ARQBkAHQAf8BFAGQAcAB/wEkAYgBwAH/
ASQBgQGwAf8BJAGBAbAB/wE0AYEBoAH/ATQBgQGQAf8BNAFcAXQB/wOSAf8UAAMiAf8DqgH/AxQB/wPX
Af8D2QH/A9wB/wPfAf8D4QH/A88B/wMiAf8QAAENAQgBCgH/AQ0BCAEKAf8BDQEIAQoB/wENAQgBCgH/
AQ0BCAEKAf8BDQEIAQoB/wENAQgBCgH/AQ0BCAEKAf8BDQEIAQoB/wEhARoBFgH/AXEBaAFUAf8BdwFm
ATkB/wEvASABDQH/ARUBCwEPAf8EAAOXAf8DsQH/A7EB/wOEAf8DhAH/A4QB/wOBAf8DhAH/A4EB/wED
ArkB/wEDA/8BAwP/AQMD/wEDAoEB/wEDAlMB/wQAAYEBiAGQAf8BdAHYAv8BkAGoAbAB/wGBAeAC/wF0
AdAC/wFkAcgC/wFkAcgC/wFUAcAB8AH/AUQBsAHwAf8BRAGoAfAB/wE0AaAB4AH/ASQBkAHQAf8BNAF8
AYEB/wFtAXUBewH/EAADIgH/A6oB/wPBAf8DFAH/A9UB/wPZAf8D3QH/A+EB/wPlAf8D0gH/AyIB/xgA
A2cB/wMFAf8DBQH/AwUB/wMFAf8DBQH/AwUB/wQAATsBMwEtAf8BcwFtAWMB/wEeARQBFwH/CAADngH/
A74B/wOxAf8DywH/A74B/wO4Af8DuAH/A6sB/wOkAf8BAwK5Af8BAwKWAf8BAwKWAf8BAwKBAf8BAwKB
Af8BAwJ2Af8EAAGBAZABoAH/AXQB2AL/AZABqAGwAf8BkAHAAdAB/wGBAdgC/wF0AdAC/wF0AdAC/wFk
AcgC/wFkAcAC/wFUAbgB8AH/AUQBsAHwAf8BRAGoAfAB/wEkAYgB0AH/ATQBXAF0Af8DkgH/DAADIgH/
AxQB/wMUAf8DqgH/A84B/wPTAf8D2AH/A9wB/wPgAf8D0QH/AyIB/xQAA2cB/wPYAf8DZwH/A8AB/wPO
Af8D0wH/A9gB/wMFAf8EAAE1ASsBKgH/A8AB/wOBAf8IAAOkAf8DvgH/A7EB/wO+Af8DxAH/A74B/wO+
Af8DuAH/A7gB/wEDArkB/wEDAlMB/wOxAf8DHQH/AQMCgQH/AQMCUwH/BAABgQGQAaAB/wGBAdgB8AH/
AXQB2AL/AZABqAGwAf8BgQHgAv8BgQHQAv8BdAHYAv8BdAHQAv8BdAHQAv8BZAHIAv8BVAHAAfAB/wFU
AbgB8AH/AUQBsAHwAf8BNAF8AYEB/wOBAf8MAAMiAf8D1QH/A8EB/wPEAf8DyQH/A88B/wPTAf8D1wH/
A9sB/wPNAf8DIgH/FAADZwH/A2cB/wNnAf8DwAH/A8kB/wPPAf8D0wH/AwUB/wQAA2cB/wNnAf8BIQEY
ARoB/wgAA6QB/wPEAf8DvgH/A7EB/wPLAf8DxAH/A74B/wO+Af8DvgH/AQMCuQH/AQMCUwH/AwMB/wMd
Af8BAwKWAf8BAwJTAf8EAAGBAZgBoAH/AZAB4AHwAf8BdAHYAv8BkAGoAbAB/wGQAbgBwAH/AYEB2AL/
AXQB2AL/AXQB2AL/AXQB2AL/AXQB0AL/AWQB0AL/AWQByAL/AVQBuAHwAf8BRAGgAeAB/wFdAXsBgQH/
A5IB/wgAAyIB/wPTAf8DvAH/A8AB/wPFAf8DyQH/A80B/wPRAf8D1QH/A8wB/wMiAf8UAANnAf8D0wH/
A7wB/wPAAf8DxQH/A8kB/wPNAf8DBQH/BAABLwElASYB/wPAAf8DgQH/CAADpAH/A8sB/wO+Af8DsQH/
A7gB/wPEAf8DvgH/A74B/wO+Af8DvgH/AQMCuQH/AQMCuQH/AQMClgH/AQMCUwH/AUwBagF6Af8DpAH/
AYEBmAGgAf8BkAHgAfAB/wGgAegC/wF0AdgC/wGQAagBsAH/AYEB4AL/AYEB4AL/AYEB4AL/AYEB4AL/
AYEB4AL/AYEB4AL/AYEB4AL/AYEB2AL/AYEB2AL/AWQBqAHQAf8DgQH/CAADIgH/A9EB/wO3Af8DuwH/
A8AB/wPEAf8DyAH/A8wB/wPRAf8DyQH/AyIB/xQAA2cB/wPRAf8DtwH/A7sB/wPAAf8DxAH/A8gB/wMF
Af8EAANnAf8DZwH/ARoBEwEUAf8IAAOkAf8DywH/A9gB/wO+Af8DsQH/A8sB/wPLAf8DywH/A8sB/wPL
Af8DywH/A8sB/wPEAf8DxAH/A6QB/wOJAf8BkAKgAf8BoAHoAfAB/wGgAegC/wGgAegC/wGQAagBsAH/
AZABqAGwAf8BkAGoAbAB/wGQAagBsAH/AYEBoAGwAf8BgQGgAbAB/wGBAZgBoAH/AYEBmAGgAf8BgQGQ
AaAB/wGBAZABoAH/AYEBiAGQAf8BgQGIAZAB/wgAAyIB/wPRAf8DswH/A7UB/wO5Af8DvwH/A8MB/wPH
Af8DywH/A8YB/wMiAf8UAANnAf8D0QH/A7MB/wO1Af8DuQH/A78B/wPDAf8DBQH/BAABLwElASYB/wPA
Af8DgQH/CAADqwH/A9IB/wPYAf8D2AH/A7EB/wOxAf8DsQH/A7EB/wOrAf8DqwH/A6QB/wOkAf8DpAH/
A6QB/wOeAf8DlwH/AZABoAGwAf8BoAHoAfAB/wGgAfAC/wGgAegC/wGgAegC/wGBAdgC/wF0AdgC/wF0
AdgC/wF0AdgC/wF0AdgC/wF0AdgC/wF0AdgC/wGBAYgBkAH/FAADIgH/A9EB/wOtAf8DsQH/A7QB/wO5
Af8DvAH/A8EB/wPFAf8DxAH/AyIB/xQAA2cB/wPRAf8DrQH/A7EB/wO0Af8DuQH/A7wB/wMFAf8EAANn
Af8DZwH/ARoBEwEUAf8IAAOxAf8D0gH/A9gB/wPYAf8D2AH/A8sB/wO+Af8DvgH/A74B/wO+Af8DvgH/
A74B/wOXAf8MAAGQAaABsAH/AaAC8AH/AbAC8AH/AaAB8AL/AaAB6AL/AaAB6AL/AYEB2AL/AZACoAH/
AYEBmAGgAf8BgQGYAaAB/wGBAZABoAH/AYECkAH/AYEBiAGQAf8UAAMiAf8DygH/A6gB/wOsAf8DsAH/
A7QB/wO4Af8DvAH/A8AB/wPBAf8DIgH/FAADZwH/A8oB/wOoAf8DrAH/A7AB/wO0Af8DuAH/AwUB/wQA
AS8BJQEmAf8DwAH/A4EB/wgAA7EB/wPSAf8D2AH/A9gB/wPYAf8D2AH/A8QB/wOrAf8DpAH/A6QB/wOk
Af8DngH/A5cB/wwAAZABqAGwAf8BoAHQAeAB/wGwAvAB/wGwAvAB/wGgAfAC/wGgAegC/wGQAaABsAH/
A5IB/ygAAyIB/wPLAf8DqQH/A6wB/wOwAf8DtAH/A7cB/wO7Af8DvQH/A8AB/wMiAf8UAANnAf8DZwH/
A2cB/wNnAf8DZwH/A2cB/wNnAf8DZwH/BAABJAEcAR0B/wGFAYMBdQH/ASYBHQEcAf8IAAOxAf8DywH/
A9gB/wPYAf8D2AH/A9gB/wOxAf8DpAH/JAABkAGoAbAB/wGQAagBsAH/AZABqAGwAf8BkAGoAbAB/wGQ
AagBsAH/A5IB/ywAAyIB/wPyAf8D1QH/A9IB/wPRAf8DzgH/A8sB/wPKAf8DxwH/A8YB/wMiAf8QAAEN
AQgBCgH/ARUBCwEPAf8BFQELAQ8B/wEVAQsBDwH/ARUBCwEPAf8BFQELAQ8B/wEVAQsBDwH/ARUBCwEP
Af8BFQELAQ8B/wEVAQsBDwH/AYEBewFsAf8BnQGRAVsB/wFAATABDgH/AwUB/wgAA7EB/wOxAf8DsQH/
A7EB/wOxAf8DpAH/bAADIgH/AyIB/wMiAf8DIgH/AyIB/wMiAf8DIgH/AyIB/wMiAf8DIgH/AyIB/xQA
ARgBDgEMAf8BWAE8AQ4B/wGfAYIBOwH/AdsBxwGQAf8B5gHXAbQB/wHmAdcBtAH/AeYB1wG0Af8B5gHX
AbQB/wHgAdUBsQH/AbQBrgGPAf8BZQFZATYB/wEoARsBDQH/ARUBCwEPAf/QAAEPAQkBCwH/AQ0BCAEK
Af8BDQEIAQoB/wENAQgBCgH/AQ0BCAEKAf8BDQEIAQoB/wENAQgBCgH/AQ0BCAEKAf8BDQEIAQoB/wEP
AQkBCwH/ARUBCwEPAf9IAAFCAU0BPgcAAT4DAAEoAwABQAMAASADAAEBAQABAQYAAQEWAAP/AQAB/wGB
Af8BwAQAAfgBAQHgBQAB8AEBAcAFAAHgAQEBgAUAAcABAQHgBQABwAEBAcAFAAHAAQEBwAUAAcABAwHA
ASEEAAHAAQcBwAEjBAABwAEHAcABIwQAAcABBwHAASMEAAHAAQcBwAEjBAABwAEHAcABIwQAAcABBwGA
AQEEAAHAAQcBwAEBBAAC/wHgAQMEAAX/AcMB/wGBAv8B+AEHAeABAQH/AYEBAAEHAfABBwHAAQEBAAEB
AQABAwHgAQcBgAEBAQABAQEAAQMBwAEHAeABIwEAAQEBAAEBAcABBwHAASMBAAEBAQABAQHAAQcBwAEj
AQABAQIAAcABBwHAASMEAAHAAQcBwAEjBAABwAEHAcABIwMAAQcBwAEHAcABIwEAAQcBAAEHAcABBwHA
ASMBAAEHAQAB/wHAAQcBwAEjAQAB/wGBAf8BwAEHAYABAQGBA/8BwAEHAcABAQb/AeABAwL/Cw==
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACm
FgAAAk1TRnQBSQFMAgEBBgEAATQBAAE0AQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIDcAApYB/wEAApYB/wEAAk0B/wEAAk0B/wEAAk0B/wEAAk0B/y0AApYB/wEA
ApYB/wEAAk0B/wEAAk0B/wEAAk0B/wEAAk0B/5QAA4UB/wOFAf8DhQH/A4UB/wEAArkB/wEAApYB/wEA
ApYB/wEAAoEB/wEAAoEB/wEAAk0B/xAAA4AB/wOBAf8DgAH/A4AB/wOBAf8DgQH/A4AB/wEAArkB/wEA
ApYB/wEAApYB/wEAAoEB/wEAAoEB/wEAAk0B/5AAA4UB/wOFAf8DxgH/A8kB/wPGAf8BAAK5Af8DoAH/
A3cB/wN3Af8BAAKBAf8BAAJNAf8MAAOAAf8DYQH/A4AB/wOVAf8DyQH/A9oB/wPaAf8DvAH/AQACuQH/
A6gB/wOBAf8DgQH/AQACgQH/AQACTQH/jAADhQH/A8EB/wOFAf8D5QH/A+EB/wPlAf8BAAK5Af8BAAP/
AQAD/wEAA/8BAAKBAf8BAAJNAf8IAAOAAf8DgQH/A4EB/wOAAf8DgQH/A4AB/wOBAf8DgAH/A4EB/wEA
ArkB/wEAA/8BAAP/AQAD/wEAAoEB/wEAAk0B/4gAA4UB/wPBAf8D0QH/A4UB/wPhAf8D4QH/A+UB/wEA
ArkB/wEAApYB/wEAApYB/wEAAoEB/wEAAoEB/wEAAnAB/xAAA48B/wOAAf8DgQH/A4AB/wOBAf8DgAH/
A4EB/wEAArkB/wEAApYB/wEAApYB/wEAAoEB/wEAAoEB/wEAAnAB/4gAA4UB/wOFAf8DhQH/A8EB/wPe
Af8D3gH/A+EB/wEAArkB/wEAAk0B/wOxAf8DFwH/AQACgQH/AQACTQH/DAADjwH/A+MB/wOPAf8D1QH/
A9oB/wPeAf8D4wH/A4AB/wEAArkB/wEAAk0B/wOxAf8DgQH/AQACgQH/AQACTQH/iAADhQH/A+EB/wPR
Af8D1QH/A9kB/wPeAf8D4QH/AQACuQH/AQACTQH/AwAB/wMXAf8BAAKWAf8BAAJNAf8MAAOPAf8DjwH/
A48B/wPRAf8D2gH/A94B/wPeAf8DgAH/AQACuQH/AQACTQH/AwAB/wEcARQBFQH/AQAClgH/AQACTQH/
iAADhQH/A94B/wPNAf8D0QH/A9UB/wPZAf8D2QH/A94B/wEAArkB/wEAArkB/wEAApYB/wEAAk0B/xAA
A48B/wPeAf8D0QH/A9EB/wPVAf8D2gH/A9oB/wOAAf8FAAK5Af8BAAK5Af8BAAKWAf8BAAJNAf+MAAOF
Af8D3gH/A80B/wPNAf8D0QH/A9UB/wPZAf8D2QH/A94B/wPZAf8DhQH/FAADjwH/A94B/wPNAf8DzQH/
A9EB/wPVAf8D2gH/A4AB/wQAA48B/wOPAf8DgQH/kAADhQH/A94B/wPJAf8DyQH/A80B/wPRAf8D1QH/
A9UB/wPZAf8D1QH/A4UB/xQAA48B/wPeAf8DyQH/A8kB/wPNAf8D0QH/A9UB/wOAAf8EAAOBAf8D0QH/
A6QB/5AAA4UB/wPeAf8DxgH/A8kB/wPJAf8DzQH/A9EB/wPRAf8D1QH/A9UB/wOFAf8UAAOPAf8D3gH/
A8UB/wPFAf8DyQH/A80B/wPNAf8DgQH/BAADjwH/A48B/wOAAf+QAAOFAf8D2QH/A8EB/wPBAf8DxgH/
A8kB/wPNAf8DzQH/A9UB/wPRAf8DhQH/FAADjwH/A9oB/wPBAf8DwQH/A8UB/wPJAf8DzQH/A4AB/wQA
A4AB/wPRAf8DpAH/kAADhQH/A9kB/wPBAf8DxgH/A8YB/wPJAf8DzQH/A80B/wPRAf8D0QH/A4UB/xQA
A48B/wOPAf8DjwH/A48B/wOPAf8DjwH/A48B/wOPAf8EAAOAAf8DoAH/A4EB/5AAA4UB/wP1Af8D4QH/
A94B/wPeAf8D2QH/A9kB/wPZAf8D1QH/A9UB/wOFAf8QAAOAAf8DgAH/A4EB/wOAAf8DgQH/A4EB/wOB
Af8DgQH/A4EB/wOAAf8DmgH/A58B/wNeAf8DgAH/jAADhQH/A4UB/wOFAf8DhQH/A4UB/wOFAf8DhQH/
A4UB/wOFAf8DhQH/A4UB/xQAA4EB/wNnAf8DlQH/A8kB/wPaAf8D2gH/A9oB/wPaAf8D2gH/A7wB/wOA
Af8DgAH/A4AB/9AAA4AB/wOAAf8DgAH/A4AB/wOAAf8DgAH/A4AB/wOAAf8DgAH/A4AB/wOAAf//ADQA
Af8DAAH/AwAB/wMAAf8tAAKWAf8BAAKWAf8BAAJNAf8BAAJNAf8BAAJNAf8BAAJNAf9YAAMcAf8DHAH/
AxwB/wMcAf8DHAH/AxwB/wMcAf8DHAH/GAABDwEFAQkB/wEPAQUBCQH/AQ8BBQEJAf8BDwEFAQkB/wEP
AQUBCQH/AQ8BBQEJAf8BDwEFAQkB/wEqASABHAH/AXEBbQFjAf8BXgFZASwB/wEbARYBCAH/AQ8BBQEJ
Af8pAAK5Af8BAAKWAf8BAAKWAf8BAAKBAf8BAAKBAf8BAAJNAf8EAAGBAYgBkAH/AW4BgQGQAf8BbgKB
Af8BXgKBAf8BXgFuAYEB/wFOAWYBbgH/AU4BVgFeAf8BPgFGAU4B/wEuAj4B/wIuAT4B/wEeASYBLgH/
Ax4B/wIeAS4B/xwAAxwB/wMOAf8DsAH/A7EB/wOwAf8DrQH/A6sB/wOgAf8DHAH/FAABGgEMAQgB/wE+
ASwBDQH/AWIBVAEuAf8BnwGCATUB/wHbAccBkAH/AeYB1wG0Af8B5gHXAbQB/wG0Aa4BjwH/AXQBagFH
Af8BeAFqAUYB/wFXAUsBJAH/AR4BEgEHAf8BDwEFAQkB/wQAA5cB/wORAf8DiQH/A4QB/wOBAf8DbgH/
A2cB/wNaAf8DTQH/AQACuQH/A6AB/wN3Af8DdwH/AQACgQH/AQACTQH/BAABgQGIAZAB/wGQAagBsAH/
AZABqAGwAf8BDgGQAdAB/wEOAZAB0AH/AQ4BkAHQAf8BDgGQAcAB/wEeAYgBwAH/AR4BgQGwAf8BHgGB
AbAB/wEuAYEBoAH/AS4BgQGQAf8BLgFWAW4B/wOSAf8UAAMcAf8DqgH/Aw4B/wPXAf8D2QH/A9wB/wPf
Af8D4QH/A88B/wMcAf8QAAEHAQIBBAH/AQcBAgEEAf8BBwECAQQB/wEHAQIBBAH/AQcBAgEEAf8BBwEC
AQQB/wEHAQIBBAH/AQcBAgEEAf8BBwECAQQB/wEbARQBEAH/AWsBYgFOAf8BcQFgATMB/wEpARoBBwH/
AQ8BBQEJAf8EAAOXAf8DsQH/A7EB/wOEAf8DhAH/A4QB/wOBAf8DhAH/A4EB/wEAArkB/wEAA/8BAAP/
AQAD/wEAAoEB/wEAAk0B/wQAAYEBiAGQAf8BbgHYAv8BkAGoAbAB/wGBAeAC/wFuAdAC/wFeAcgC/wFe
AcgC/wFOAcAB8AH/AT4BsAHwAf8BPgGoAfAB/wEuAaAB4AH/AR4BkAHQAf8BLgF2AYEB/wFnAW8BdQH/
EAADHAH/A6oB/wPBAf8DDgH/A9UB/wPZAf8D3QH/A+EB/wPlAf8D0gH/AxwB/xgAA2EB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wQAATUBLQEnAf8BbQFnAV0B/wEYAQ4BEQH/CAADngH/A74B/wOxAf8DywH/
A74B/wO4Af8DuAH/A6sB/wOkAf8BAAK5Af8BAAKWAf8BAAKWAf8BAAKBAf8BAAKBAf8BAAJwAf8EAAGB
AZABoAH/AW4B2AL/AZABqAGwAf8BkAHAAdAB/wGBAdgC/wFuAdAC/wFuAdAC/wFeAcgC/wFeAcAC/wFO
AbgB8AH/AT4BsAHwAf8BPgGoAfAB/wEeAYgB0AH/AS4BVgFuAf8DkgH/DAADHAH/Aw4B/wMOAf8DqgH/
A84B/wPTAf8D2AH/A9wB/wPgAf8D0QH/AxwB/xQAA2EB/wPYAf8DYQH/A8AB/wPOAf8D0wH/A9gB/wMA
Af8EAAEvASUBJAH/A8AB/wOBAf8IAAOkAf8DvgH/A7EB/wO+Af8DxAH/A74B/wO+Af8DuAH/A7gB/wEA
ArkB/wEAAk0B/wOxAf8DFwH/AQACgQH/AQACTQH/BAABgQGQAaAB/wGBAdgB8AH/AW4B2AL/AZABqAGw
Af8BgQHgAv8BgQHQAv8BbgHYAv8BbgHQAv8BbgHQAv8BXgHIAv8BTgHAAfAB/wFOAbgB8AH/AT4BsAHw
Af8BLgF2AYEB/wOBAf8MAAMcAf8D1QH/A8EB/wPEAf8DyQH/A88B/wPTAf8D1wH/A9sB/wPNAf8DHAH/
FAADYQH/A2EB/wNhAf8DwAH/A8kB/wPPAf8D0wH/AwAB/wQAA2EB/wNhAf8BGwESARQB/wgAA6QB/wPE
Af8DvgH/A7EB/wPLAf8DxAH/A74B/wO+Af8DvgH/AQACuQH/AQACTQH/AwAB/wMXAf8BAAKWAf8BAAJN
Af8EAAGBAZgBoAH/AZAB4AHwAf8BbgHYAv8BkAGoAbAB/wGQAbgBwAH/AYEB2AL/AW4B2AL/AW4B2AL/
AW4B2AL/AW4B0AL/AV4B0AL/AV4ByAL/AU4BuAHwAf8BPgGgAeAB/wFXAXUBgQH/A5IB/wgAAxwB/wPT
Af8DvAH/A8AB/wPFAf8DyQH/A80B/wPRAf8D1QH/A8wB/wMcAf8UAANhAf8D0wH/A7wB/wPAAf8DxQH/
A8kB/wPNAf8DAAH/BAABKQEfASAB/wPAAf8DgQH/CAADpAH/A8sB/wO+Af8DsQH/A7gB/wPEAf8DvgH/
A74B/wO+Af8DvgH/AQACuQH/AQACuQH/AQAClgH/AQACTQH/AUYBZAF0Af8DpAH/AYEBmAGgAf8BkAHg
AfAB/wGgAegC/wFuAdgC/wGQAagBsAH/AYEB4AL/AYEB4AL/AYEB4AL/AYEB4AL/AYEB4AL/AYEB4AL/
AYEB4AL/AYEB2AL/AYEB2AL/AV4BqAHQAf8DgQH/CAADHAH/A9EB/wO3Af8DuwH/A8AB/wPEAf8DyAH/
A8wB/wPRAf8DyQH/AxwB/xQAA2EB/wPRAf8DtwH/A7sB/wPAAf8DxAH/A8gB/wMAAf8EAANhAf8DYQH/
ARQBDQEOAf8IAAOkAf8DywH/A9gB/wO+Af8DsQH/A8sB/wPLAf8DywH/A8sB/wPLAf8DywH/A8sB/wPE
Af8DxAH/A6QB/wOJAf8BkAKgAf8BoAHoAfAB/wGgAegC/wGgAegC/wGQAagBsAH/AZABqAGwAf8BkAGo
AbAB/wGQAagBsAH/AYEBoAGwAf8BgQGgAbAB/wGBAZgBoAH/AYEBmAGgAf8BgQGQAaAB/wGBAZABoAH/
AYEBiAGQAf8BgQGIAZAB/wgAAxwB/wPRAf8DswH/A7UB/wO5Af8DvwH/A8MB/wPHAf8DywH/A8YB/wMc
Af8UAANhAf8D0QH/A7MB/wO1Af8DuQH/A78B/wPDAf8DAAH/BAABKQEfASAB/wPAAf8DgQH/CAADqwH/
A9IB/wPYAf8D2AH/A7EB/wOxAf8DsQH/A7EB/wOrAf8DqwH/A6QB/wOkAf8DpAH/A6QB/wOeAf8DlwH/
AZABoAGwAf8BoAHoAfAB/wGgAfAC/wGgAegC/wGgAegC/wGBAdgC/wFuAdgC/wFuAdgC/wFuAdgC/wFu
AdgC/wFuAdgC/wFuAdgC/wGBAYgBkAH/FAADHAH/A9EB/wOtAf8DsQH/A7QB/wO5Af8DvAH/A8EB/wPF
Af8DxAH/AxwB/xQAA2EB/wPRAf8DrQH/A7EB/wO0Af8DuQH/A7wB/wMAAf8EAANhAf8DYQH/ARQBDQEO
Af8IAAOxAf8D0gH/A9gB/wPYAf8D2AH/A8sB/wO+Af8DvgH/A74B/wO+Af8DvgH/A74B/wOXAf8MAAGQ
AaABsAH/AaAC8AH/AbAC8AH/AaAB8AL/AaAB6AL/AaAB6AL/AYEB2AL/AZACoAH/AYEBmAGgAf8BgQGY
AaAB/wGBAZABoAH/AYECkAH/AYEBiAGQAf8UAAMcAf8DygH/A6gB/wOsAf8DsAH/A7QB/wO4Af8DvAH/
A8AB/wPBAf8DHAH/FAADYQH/A8oB/wOoAf8DrAH/A7AB/wO0Af8DuAH/AwAB/wQAASkBHwEgAf8DwAH/
A4EB/wgAA7EB/wPSAf8D2AH/A9gB/wPYAf8D2AH/A8QB/wOrAf8DpAH/A6QB/wOkAf8DngH/A5cB/wwA
AZABqAGwAf8BoAHQAeAB/wGwAvAB/wGwAvAB/wGgAfAC/wGgAegC/wGQAaABsAH/A5IB/ygAAxwB/wPL
Af8DqQH/A6wB/wOwAf8DtAH/A7cB/wO7Af8DvQH/A8AB/wMcAf8UAANhAf8DYQH/A2EB/wNhAf8DYQH/
A2EB/wNhAf8DYQH/BAABHgEWARcB/wGFAYMBbwH/ASABFwEWAf8IAAOxAf8DywH/A9gB/wPYAf8D2AH/
A9gB/wOxAf8DpAH/JAABkAGoAbAB/wGQAagBsAH/AZABqAGwAf8BkAGoAbAB/wGQAagBsAH/A5IB/ywA
AxwB/wPyAf8D1QH/A9IB/wPRAf8DzgH/A8sB/wPKAf8DxwH/A8YB/wMcAf8QAAEHAQIBBAH/AQ8BBQEJ
Af8BDwEFAQkB/wEPAQUBCQH/AQ8BBQEJAf8BDwEFAQkB/wEPAQUBCQH/AQ8BBQEJAf8BDwEFAQkB/wEP
AQUBCQH/AYEBdQFmAf8BnQGRAVUB/wE6ASoBCAH/AwAB/wgAA7EB/wOxAf8DsQH/A7EB/wOxAf8DpAH/
bAADHAH/AxwB/wMcAf8DHAH/AxwB/wMcAf8DHAH/AxwB/wMcAf8DHAH/AxwB/xQAARIBCAEGAf8BUgE2
AQgB/wGfAYIBNQH/AdsBxwGQAf8B5gHXAbQB/wHmAdcBtAH/AeYB1wG0Af8B5gHXAbQB/wHgAdUBsQH/
AbQBrgGPAf8BXwFTATAB/wEiARUBBwH/AQ8BBQEJAf/QAAEJAQMBBQH/AQcBAgEEAf8BBwECAQQB/wEH
AQIBBAH/AQcBAgEEAf8BBwECAQQB/wEHAQIBBAH/AQcBAgEEAf8BBwECAQQB/wEJAQMBBQH/AQ8BBQEJ
Af9IAAFCAU0BPgcAAT4DAAEoAwABQAMAASADAAEBAQABAQYAAQEWAAP/AQAB/wGBAf8BwAQAAfgBAQHg
BQAB8AEBAcAFAAHgAQEBgAUAAcABAQHgBQABwAEBAcAFAAHAAQEBwAUAAcABAwHAASEEAAHAAQcBwAEj
BAABwAEHAcABIwQAAcABBwHAASMEAAHAAQcBwAEjBAABwAEHAcABIwQAAcABBwGAAQEEAAHAAQcBwAEB
BAAC/wHgAQMEAAX/AcMB/wGBAv8B+AEHAeABAQH/AYEBAAEHAfABBwHAAQEBAAEBAQABAwHgAQcBgAEB
AQABAQEAAQMBwAEHAeABIwEAAQEBAAEBAcABBwHAASMBAAEBAQABAQHAAQcBwAEjAQABAQIAAcABBwHA
ASMEAAHAAQcBwAEjBAABwAEHAcABIwMAAQcBwAEHAcABIwEAAQcBAAEHAcABBwHAASMBAAEHAQAB/wHA
AQcBwAEjAQAB/wGBAf8BwAEHAYABAQGBA/8BwAEHAcABAQb/AeABAwL/Cw==
</value>
</data>
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
</root>

View file

@ -120,6 +120,12 @@ namespace CodeImp.DoomBuilder.Controls
ListViewItem insertatitem;
Point cp;
//mxd. Check if valid extenal data is present
if(e.Data.GetDataPresent(DataFormats.FileDrop)) {
e.Effect = DragDropEffects.Copy;
return;
}
// Check if our data format is present
if(!e.Data.GetDataPresent(DataFormats.Text))
{
@ -211,6 +217,12 @@ namespace CodeImp.DoomBuilder.Controls
// Pass on to base
base.OnDragEnter(e);
//mxd. Check if valid extenal data is present
if(e.Data.GetDataPresent(DataFormats.FileDrop)) {
e.Effect = DragDropEffects.Copy;
return;
}
// Check if our data format is present
if(!e.Data.GetDataPresent(DataFormats.Text))
{

View file

@ -506,6 +506,11 @@ namespace CodeImp.DoomBuilder.Windows
lastsize = this.Size;
}
//mxd. Enable drag and drop
this.AllowDrop = true;
this.DragEnter += OnDragEnter;
this.DragDrop += OnDragDrop;
// Info panel state?
bool expandedpanel = General.Settings.ReadSetting("mainwindow.expandedinfopanel", true);
if(expandedpanel != IsInfoPanelExpanded) ToggleInfoPanel();
@ -615,6 +620,41 @@ namespace CodeImp.DoomBuilder.Windows
}
}
//mxd
private void OnDragEnter(object sender, DragEventArgs e) {
if(e.Data.GetDataPresent(DataFormats.FileDrop)) {
e.Effect = DragDropEffects.Copy;
} else {
e.Effect = DragDropEffects.None;
}
}
//mxd
private void OnDragDrop(object sender, DragEventArgs e) {
if (e.Data.GetDataPresent(DataFormats.FileDrop)) {
string[] filePaths = (string[])e.Data.GetData(DataFormats.FileDrop);
if (filePaths.Length != 1) {
General.Interface.DisplayStatus(StatusType.Warning, "Cannot open multiple files at once!");
return;
}
if (!File.Exists(filePaths[0])) {
General.Interface.DisplayStatus(StatusType.Warning, "Cannot open '" + filePaths[0] + "': file does not exist!");
return;
}
string ext = Path.GetExtension(filePaths[0]);
if(string.IsNullOrEmpty(ext) || ext.ToLower() != ".wad") {
General.Interface.DisplayStatus(StatusType.Warning, "Cannot open '" + filePaths[0] + "': only WAD files can be loaded this way!");
return;
}
this.Update(); // Update main window
General.OpenMapFile(filePaths[0], null);
UpdateGZDoomPanel();
}
}
#endregion
#region ================== Statusbar

View file

@ -118,10 +118,11 @@ namespace CodeImp.DoomBuilder.Windows
label4.AutoSize = true;
label4.Location = new System.Drawing.Point(15, 190);
label4.Name = "label4";
label4.Size = new System.Drawing.Size(312, 28);
label4.Size = new System.Drawing.Size(312, 42);
label4.TabIndex = 17;
label4.Text = "Drag items to change order (lower items override higher items).\r\nGrayed items are" +
" loaded according to the game configuration.";
label4.Text = "Drag && drop resources to add them.\r\nDrag items to change order (lower items over" +
"ride higher items).\r\nGrayed items are loaded according to the game configuration" +
".";
//
// apply
//
@ -155,7 +156,7 @@ namespace CodeImp.DoomBuilder.Windows
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(397, 230);
this.panelres.Size = new System.Drawing.Size(397, 236);
this.panelres.TabIndex = 1;
this.panelres.TabStop = false;
this.panelres.Text = " Resources ";
@ -165,13 +166,14 @@ namespace CodeImp.DoomBuilder.Windows
this.strictpatches.AutoSize = true;
this.strictpatches.Location = new System.Drawing.Point(15, 27);
this.strictpatches.Name = "strictpatches";
this.strictpatches.Size = new System.Drawing.Size(352, 18);
this.strictpatches.Size = new System.Drawing.Size(351, 18);
this.strictpatches.TabIndex = 20;
this.strictpatches.Text = "Strictly load patches between P_START and P_END only for this file";
this.strictpatches.UseVisualStyleBackColor = true;
//
// datalocations
//
this.datalocations.AllowDrop = true;
this.datalocations.DialogOffset = new System.Drawing.Point(40, 20);
this.datalocations.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.datalocations.Location = new System.Drawing.Point(15, 57);

View file

@ -1,174 +1,174 @@
<?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.
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.
-->
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: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>
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
<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>
<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>
<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>
<value>True</value>
</metadata>
<metadata name="label3.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="label2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="label2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="label1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="label1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="panelsettings.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="panelsettings.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="levelname.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="config.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="label4.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="label4.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="apply.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="cancel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="panelres.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="strictpatches.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="datalocations.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
</root>

View file

@ -71,12 +71,13 @@ namespace CodeImp.DoomBuilder.Windows
// label3
//
label3.AutoSize = true;
label3.Location = new System.Drawing.Point(14, 193);
label3.Location = new System.Drawing.Point(14, 191);
label3.Name = "label3";
label3.Size = new System.Drawing.Size(312, 28);
label3.Size = new System.Drawing.Size(312, 42);
label3.TabIndex = 17;
label3.Text = "Drag items to change order (lower items override higher items).\r\nGrayed items are" +
" loaded according to the game configuration.";
label3.Text = "Drag && drop resources to add them.\r\nDrag items to change order (lower items over" +
"ride higher items).\r\nGrayed items are loaded according to the game configuration" +
".";
//
// panelres
//
@ -87,7 +88,7 @@ namespace CodeImp.DoomBuilder.Windows
this.panelres.Controls.Add(label3);
this.panelres.Location = new System.Drawing.Point(12, 215);
this.panelres.Name = "panelres";
this.panelres.Size = new System.Drawing.Size(396, 231);
this.panelres.Size = new System.Drawing.Size(396, 238);
this.panelres.TabIndex = 2;
this.panelres.TabStop = false;
this.panelres.Text = " Resources ";
@ -104,6 +105,7 @@ namespace CodeImp.DoomBuilder.Windows
//
// datalocations
//
this.datalocations.AllowDrop = true;
this.datalocations.DialogOffset = new System.Drawing.Point(40, 20);
this.datalocations.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.datalocations.Location = new System.Drawing.Point(14, 58);
@ -151,7 +153,7 @@ namespace CodeImp.DoomBuilder.Windows
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});
columnHeader1});
this.mapslist.FullRowSelect = true;
this.mapslist.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
this.mapslist.HideSelection = false;

View file

@ -1,165 +1,165 @@
<?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.
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.
-->
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: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>
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
<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>
<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>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="columnHeader1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="label1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="label1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="label2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="label2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="label3.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="label3.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="panelres.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="strictpatches.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="datalocations.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="apply.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="cancel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="config.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="mapslist.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
</root>