Added Draw Settings side panel, which replaces Set Default Textures Form and allows to set textures, brightness and floor/ceiling heights to use when drawing sectors. Used settings are now saved in the map's .dbs file.

Location and active tab of all Edit Forms are now stored while GZDB is running.
Focus management between editing window and the rest of the interface should work better now.
Tag Explorer plugin: editing window was not updated properly when Edit forms were opened from Tag Explorer.
Tag Explorer plugin, UDMF: comment editing was incorrectly initialized in some cases.
This commit is contained in:
MaxED 2013-11-21 10:53:11 +00:00
parent c441c5640a
commit e8f52aecb9
58 changed files with 3022 additions and 2802 deletions

View file

@ -842,12 +842,6 @@
<Compile Include="Windows\SectorEditFormUDMF.Designer.cs">
<DependentUpon>SectorEditFormUDMF.cs</DependentUpon>
</Compile>
<Compile Include="Windows\SetDefaultTexturesForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Windows\SetDefaultTexturesForm.Designer.cs">
<DependentUpon>SetDefaultTexturesForm.cs</DependentUpon>
</Compile>
<Compile Include="Windows\StatusInfo.cs" />
<Compile Include="Windows\TanColorTable.cs" />
<Compile Include="Windows\ThingBrowserForm.cs">
@ -1080,9 +1074,6 @@
<EmbeddedResource Include="Windows\SectorEditFormUDMF.resx">
<DependentUpon>SectorEditFormUDMF.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Windows\SetDefaultTexturesForm.resx">
<DependentUpon>SetDefaultTexturesForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Windows\TextEditForm.resx">
<SubType>Designer</SubType>
<DependentUpon>TextEditForm.cs</DependentUpon>

View file

@ -108,18 +108,11 @@ namespace CodeImp.DoomBuilder.Config
private float gzVertexScale2D;
private bool gzShowVisualVertices;
private int gzVisualVertexSize;
private bool gzForceDefaultTextures;
private string lastUsedConfigName;
private bool gzMarkExtraFloors;
private int maxRecentFiles;
// These are not stored in the configuration, only used at runtime
private string defaulttexture;
private int defaultbrightness;
private int defaultfloorheight;
private int defaultceilheight;
private string defaultfloortexture;
private string defaultceiltexture;
private int defaultthingtype = 1;
private float defaultthingangle;
private List<string> defaultthingflags;
@ -194,17 +187,18 @@ namespace CodeImp.DoomBuilder.Config
public float GZVertexScale2D { get { return gzVertexScale2D; } internal set { gzVertexScale2D = value; } }
public bool GZShowVisualVertices { get { return gzShowVisualVertices; } internal set { gzShowVisualVertices = value; } }
public int GZVisualVertexSize { get { return gzVisualVertexSize; } internal set { gzVisualVertexSize = value; } }
public bool GZForceDefaultTextures { get { return gzForceDefaultTextures; } internal set { gzForceDefaultTextures = value; } }
public string LastUsedConfigName { get { return lastUsedConfigName; } internal set { lastUsedConfigName = value; } }
public bool GZMarkExtraFloors { get { return gzMarkExtraFloors; } internal set { gzMarkExtraFloors = value; } }
public int MaxRecentFiles { get { return maxRecentFiles; } internal set { maxRecentFiles = General.Clamp(value, 8, 25); } }
public string DefaultTexture { get { return defaulttexture; } set { defaulttexture = value; } }
public string DefaultFloorTexture { get { return defaultfloortexture; } set { defaultfloortexture = value; } }
public string DefaultCeilingTexture { get { return defaultceiltexture; } set { defaultceiltexture = value; } }
public int DefaultBrightness { get { return defaultbrightness; } set { defaultbrightness = value; } }
public int DefaultFloorHeight { get { return defaultfloorheight; } set { defaultfloorheight = value; } }
public int DefaultCeilingHeight { get { return defaultceilheight; } set { defaultceilheight = value; } }
//mxd. Left here for compatibility reasons...
public string DefaultTexture { get { return General.Map != null ? General.Map.Options.DefaultWallTexture : "-"; } set { if(General.Map != null) General.Map.Options.DefaultWallTexture = value; } }
public string DefaultFloorTexture { get { return General.Map != null ? General.Map.Options.DefaultFloorTexture : "-"; } set { if(General.Map != null) General.Map.Options.DefaultFloorTexture = value; } }
public string DefaultCeilingTexture { get { return General.Map != null ? General.Map.Options.DefaultCeilingTexture : "-"; } set { if(General.Map != null) General.Map.Options.DefaultCeilingTexture = value; } }
public int DefaultBrightness { get { return General.Map != null ? General.Map.Options.DefaultBrightness : 196; } set { if(General.Map != null) General.Map.Options.DefaultBrightness = value; } }
public int DefaultFloorHeight { get { return General.Map != null ? General.Map.Options.DefaultFloorHeight : 0; } set { if(General.Map != null) General.Map.Options.DefaultFloorHeight = value; } }
public int DefaultCeilingHeight { get { return General.Map != null ? General.Map.Options.DefaultCeilingHeight : 128; } set { if(General.Map != null) General.Map.Options.DefaultCeilingHeight = value; } }
public int DefaultThingType { get { return defaultthingtype; } set { defaultthingtype = value; } }
public float DefaultThingAngle { get { return defaultthingangle; } set { defaultthingangle = value; } }
@ -299,11 +293,6 @@ namespace CodeImp.DoomBuilder.Config
lastUsedConfigName = cfg.ReadSetting("lastusedconfigname", "");
gzMarkExtraFloors = cfg.ReadSetting("gzmarkextrafloors", true);
maxRecentFiles = cfg.ReadSetting("maxrecentfiles", 8);
//mxd. Sector defaults
defaultceilheight = cfg.ReadSetting("defaultceilheight", 128);
defaultfloorheight = cfg.ReadSetting("defaultfloorheight", 0);
defaultbrightness = cfg.ReadSetting("defaultbrightness", 192);
// Success
return true;
@ -385,11 +374,6 @@ namespace CodeImp.DoomBuilder.Config
if(!string.IsNullOrEmpty(lastUsedConfigName))
cfg.WriteSetting("lastusedconfigname", lastUsedConfigName);
cfg.WriteSetting("maxrecentfiles", maxRecentFiles);
//mxd. Sector defaults
cfg.WriteSetting("defaultceilheight", defaultceilheight);
cfg.WriteSetting("defaultfloorheight", defaultfloorheight);
cfg.WriteSetting("defaultbrightness", defaultbrightness);
// Save settings configuration
General.WriteLogLine("Saving program configuration...");
@ -552,10 +536,10 @@ namespace CodeImp.DoomBuilder.Config
bool foundone;
// Only possible when a map is loaded
if(General.Map == null) return;
if(General.Map == null || General.Map.Options == null) return;
// Default texture missing?
if(defaulttexture == null || (!gzForceDefaultTextures && defaulttexture == "-")) //mxd
if(!General.Map.Options.OverrideWallTexture || string.IsNullOrEmpty(General.Map.Options.DefaultWallTexture)) //mxd
{
// Find default texture from map
foundone = false;
@ -563,8 +547,8 @@ namespace CodeImp.DoomBuilder.Config
{
if(sd.MiddleTexture != "-")
{
defaulttexture = sd.MiddleTexture;
if(General.Map.Data.GetTextureExists(defaulttexture))
General.Map.Options.DefaultWallTexture = sd.MiddleTexture;
if(General.Map.Data.GetTextureExists(General.Map.Options.DefaultWallTexture))
{
foundone = true;
break;
@ -582,7 +566,7 @@ namespace CodeImp.DoomBuilder.Config
if(s.StartsWith("STARTAN"))
{
foundone = true;
defaulttexture = s;
General.Map.Options.DefaultWallTexture = s;
break;
}
}
@ -591,13 +575,13 @@ namespace CodeImp.DoomBuilder.Config
if(!foundone)
{
if(General.Map.Data.TextureNames.Count > 1)
defaulttexture = General.Map.Data.TextureNames[1];
General.Map.Options.DefaultWallTexture = General.Map.Data.TextureNames[1];
}
}
}
// Default floor missing?
if(string.IsNullOrEmpty(defaultfloortexture))
if(!General.Map.Options.OverrideFloorTexture || string.IsNullOrEmpty(General.Map.Options.DefaultFloorTexture))
{
// Find default texture from map
foundone = false;
@ -606,8 +590,8 @@ namespace CodeImp.DoomBuilder.Config
// Find one that is known
foreach(Sector s in General.Map.Map.Sectors)
{
defaultfloortexture = s.FloorTexture;
if(General.Map.Data.GetFlatExists(defaultfloortexture))
General.Map.Options.DefaultFloorTexture = s.FloorTexture;
if(General.Map.Data.GetFlatExists(General.Map.Options.DefaultFloorTexture))
{
foundone = true;
break;
@ -623,7 +607,7 @@ namespace CodeImp.DoomBuilder.Config
if(s.StartsWith("FLOOR"))
{
foundone = true;
defaultfloortexture = s;
General.Map.Options.DefaultFloorTexture = s;
break;
}
}
@ -633,12 +617,12 @@ namespace CodeImp.DoomBuilder.Config
if(!foundone)
{
if(General.Map.Data.FlatNames.Count > 1)
defaultfloortexture = General.Map.Data.FlatNames[1];
General.Map.Options.DefaultFloorTexture = General.Map.Data.FlatNames[1];
}
}
// Default ceiling missing?
if(string.IsNullOrEmpty(defaultceiltexture))
if(!General.Map.Options.OverrideCeilingTexture || string.IsNullOrEmpty(General.Map.Options.DefaultCeilingTexture))
{
// Find default texture from map
foundone = false;
@ -647,8 +631,8 @@ namespace CodeImp.DoomBuilder.Config
// Find one that is known
foreach(Sector s in General.Map.Map.Sectors)
{
defaultceiltexture = s.CeilTexture;
if(General.Map.Data.GetFlatExists(defaultceiltexture))
General.Map.Options.DefaultCeilingTexture = s.CeilTexture;
if(General.Map.Data.GetFlatExists(General.Map.Options.DefaultCeilingTexture))
{
foundone = true;
break;
@ -664,7 +648,7 @@ namespace CodeImp.DoomBuilder.Config
if(s.StartsWith("CEIL"))
{
foundone = true;
defaultceiltexture = s;
General.Map.Options.DefaultCeilingTexture = s;
break;
}
}
@ -674,14 +658,14 @@ namespace CodeImp.DoomBuilder.Config
if(!foundone)
{
if(General.Map.Data.FlatNames.Count > 1)
defaultceiltexture = General.Map.Data.FlatNames[1];
General.Map.Options.DefaultCeilingTexture = General.Map.Data.FlatNames[1];
}
}
// Texture names may not be null
if(string.IsNullOrEmpty(defaulttexture)) defaulttexture = "-";
if(string.IsNullOrEmpty(defaultfloortexture)) defaultfloortexture = "-";
if(string.IsNullOrEmpty(defaultceiltexture)) defaultceiltexture = "-";
if(string.IsNullOrEmpty(General.Map.Options.DefaultWallTexture)) General.Map.Options.DefaultWallTexture = "-";
if(string.IsNullOrEmpty(General.Map.Options.DefaultFloorTexture)) General.Map.Options.DefaultFloorTexture = "-";
if(string.IsNullOrEmpty(General.Map.Options.DefaultCeilingTexture)) General.Map.Options.DefaultCeilingTexture = "-";
}
#endregion

View file

@ -38,6 +38,8 @@ namespace CodeImp.DoomBuilder.Controls
// This finds the image we need for the given flat name
protected override Image FindImage(string imagename)
{
timer.Stop(); //mxd
// Check if name is a "none" texture
if((imagename.Length < 1) || (imagename == "-"))
{
@ -52,6 +54,7 @@ namespace CodeImp.DoomBuilder.Controls
if(string.IsNullOrEmpty(texture.FullName) || texture is UnknownImage) DisplayImageSize(0, 0); //mxd
else DisplayImageSize(texture.ScaledWidth, texture.ScaledHeight); //mxd
if(!texture.IsPreviewLoaded) timer.Start(); //mxd
// Set the image
return texture.GetPreview();
@ -64,7 +67,6 @@ namespace CodeImp.DoomBuilder.Controls
string result;
// Browse for texture
//result = FlatBrowserForm.Browse(this.ParentForm, imagename);
result = TextureBrowserForm.Browse(this.ParentForm, imagename, true); //mxd
if(result != null) return result; else return imagename;
}

View file

@ -29,9 +29,11 @@ namespace CodeImp.DoomBuilder.Controls
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.preview = new System.Windows.Forms.Panel();
this.labelSize = new System.Windows.Forms.Label();
this.name = new CodeImp.DoomBuilder.Controls.AutoSelectTextbox();
this.timer = new System.Windows.Forms.Timer(this.components);
this.preview.SuspendLayout();
this.SuspendLayout();
//
@ -78,6 +80,11 @@ namespace CodeImp.DoomBuilder.Controls
this.name.TabIndex = 2;
this.name.TextChanged += new System.EventHandler(this.name_TextChanged);
//
// timer
//
this.timer.Interval = 1000;
this.timer.Tick += new System.EventHandler(this.timer_Tick);
//
// ImageSelectorControl
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
@ -100,6 +107,7 @@ namespace CodeImp.DoomBuilder.Controls
protected System.Windows.Forms.Panel preview;
protected CodeImp.DoomBuilder.Controls.AutoSelectTextbox name;
private System.Windows.Forms.Label labelSize;
protected System.Windows.Forms.Timer timer;
}
}

View file

@ -151,6 +151,11 @@ namespace CodeImp.DoomBuilder.Controls
ShowPreview(FindImage(name.Text));
}
}
//mxd
private void timer_Tick(object sender, EventArgs e) {
Refresh();
}
#endregion
@ -190,7 +195,7 @@ namespace CodeImp.DoomBuilder.Controls
//mxd
protected void DisplayImageSize(float width, float height) {
if(!General.Settings.ShowTextureSizes || width == 0 || height == 0) {
if(!General.Settings.ShowTextureSizes || !this.Enabled || width == 0 || height == 0) {
labelSize.Visible = false;
return;
}

View file

@ -1,129 +1,132 @@
<?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="preview.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="name.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="timer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</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

@ -45,6 +45,8 @@ namespace CodeImp.DoomBuilder.Controls
// Initialize
this.SetStyle(ControlStyles.FixedWidth, true);
this.SetStyle(ControlStyles.FixedHeight, true);
this.MouseEnter += new System.EventHandler(RenderTargetControl_MouseEnter); //mxd
}
// Disposer
@ -70,6 +72,11 @@ namespace CodeImp.DoomBuilder.Controls
protected override void OnKeyUp(KeyEventArgs e) {
if(OnKeyReleased != null) OnKeyReleased(this, e);
}
//mxd
private void RenderTargetControl_MouseEnter(object sender, System.EventArgs e) {
this.Focus();
}
#endregion

View file

@ -44,6 +44,8 @@ namespace CodeImp.DoomBuilder.Controls
// This finds the image we need for the given texture name
protected override Image FindImage(string imagename)
{
timer.Stop(); //mxd
// Check if name is a "none" texture
if((imagename.Length < 1) || (imagename == "-"))
{
@ -61,6 +63,7 @@ namespace CodeImp.DoomBuilder.Controls
if(string.IsNullOrEmpty(texture.FullName) || texture is UnknownImage) DisplayImageSize(0, 0); //mxd
else DisplayImageSize(texture.ScaledWidth, texture.ScaledHeight); //mxd
if(!texture.IsPreviewLoaded) timer.Start(); //mxd
// Set the image
return texture.GetPreview();

View file

@ -209,6 +209,7 @@ namespace CodeImp.DoomBuilder.Controls
this.typelist.UseMultiSelection = false;
this.typelist.DoubleClick += new System.EventHandler(this.typelist_DoubleClick);
this.typelist.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.typelist_AfterSelect);
this.typelist.MouseEnter += new System.EventHandler(this.typelist_MouseEnter);
//
// ThingBrowserControl
//

View file

@ -289,6 +289,11 @@ namespace CodeImp.DoomBuilder.Controls
sizelabel.Left = sizecaption.Right + sizecaption.Margin.Right;
}
//mxd
private void typelist_MouseEnter(object sender, EventArgs e) {
typelist.Focus();
}
//mxd
private void bClear_Click(object sender, EventArgs e) {
tbFilter.Clear();

File diff suppressed because it is too large Load diff

View file

@ -126,13 +126,5 @@ namespace CodeImp.DoomBuilder.GZBuilder
if (General.Map != null)
General.Map.Data.ReloadMapInfo();
}
[BeginAction("setcurrenttextures")]
private static void setCurrentTextures() {
if(General.Map != null) {
SetCurrentTexturesForm form = new SetCurrentTexturesForm();
form.ShowDialog(Form.ActiveForm);
}
}
}
}

View file

@ -979,7 +979,6 @@ namespace CodeImp.DoomBuilder
// Cancel volatile mode, if any
General.Editing.DisengageVolatileMode();
General.Settings.GZForceDefaultTextures = false;//mxd
// Ask the user to save changes (if any)
if(General.AskSaveMap())
@ -1021,11 +1020,12 @@ namespace CodeImp.DoomBuilder
mainwindow.ShowSplashDisplay();
}
settings.FindDefaultDrawSettings(); //mxd
// Let the plugins know
plugins.OnMapNewEnd();
// All done
settings.FindDefaultDrawSettings();
mainwindow.SetupInterface();
mainwindow.RedrawDisplay();
mainwindow.UpdateThingsFilters();
@ -1056,8 +1056,6 @@ namespace CodeImp.DoomBuilder
// Cancel volatile mode, if any
General.Editing.DisengageVolatileMode();
General.Settings.GZForceDefaultTextures = false;//mxd
// Ask the user to save changes (if any)
if(General.AskSaveMap())
{
@ -1124,7 +1122,6 @@ namespace CodeImp.DoomBuilder
//mxd
mainwindow.UpdateGZDoomPanel();
General.Settings.GZForceDefaultTextures = false;
}
openfile.Dispose();
@ -1166,11 +1163,12 @@ namespace CodeImp.DoomBuilder
if(!map.InitializeSwitchMap(changemapwindow.Options)) return;
settings.FindDefaultDrawSettings(); //mxd
// Let the plugins know
plugins.OnMapOpenEnd();
// All done
settings.FindDefaultDrawSettings();
mainwindow.SetupInterface();
mainwindow.RedrawDisplay();
mainwindow.UpdateThingsFilters();
@ -1179,7 +1177,6 @@ namespace CodeImp.DoomBuilder
//mxd
mainwindow.UpdateGZDoomPanel();
Settings.GZForceDefaultTextures = false;
if (errorlogger.IsErrorAdded)
{
@ -1255,11 +1252,12 @@ namespace CodeImp.DoomBuilder
mainwindow.ShowSplashDisplay();
}
settings.FindDefaultDrawSettings(); //mxd
// Let the plugins know
plugins.OnMapOpenEnd();
// All done
settings.FindDefaultDrawSettings();
mainwindow.SetupInterface();
mainwindow.RedrawDisplay();
mainwindow.UpdateThingsFilters();

View file

@ -427,7 +427,7 @@ namespace CodeImp.DoomBuilder.Geometry
// properties from the nearest line in this collection when the
// default properties can't be found in the alllines collection.
// Return null when no new sector could be made.
public static Sector MakeSector(List<LinedefSide> alllines, List<Linedef> nearbylines, bool useDefaultTextures)
public static Sector MakeSector(List<LinedefSide> alllines, List<Linedef> nearbylines, bool useOverrides)
{
Sector sourcesector = null;
SidedefSettings sourceside = new SidedefSettings();
@ -519,7 +519,7 @@ namespace CodeImp.DoomBuilder.Geometry
}
// Use defaults where no settings could be found
TakeSidedefDefaults(ref sourceside, useDefaultTextures);
TakeSidedefDefaults(ref sourceside, useOverrides);
// Found a source sector?
if(sourcesector != null)
@ -527,10 +527,13 @@ namespace CodeImp.DoomBuilder.Geometry
// Copy properties from source to new sector
sourcesector.CopyPropertiesTo(newsector);
//mxd
if(useDefaultTextures) {
newsector.SetCeilTexture(General.Settings.DefaultCeilingTexture);
newsector.SetFloorTexture(General.Settings.DefaultFloorTexture);
//mxd. Apply overrides
if(useOverrides) {
if (General.Map.Options.OverrideCeilingTexture) newsector.SetCeilTexture(General.Map.Options.DefaultCeilingTexture);
if (General.Map.Options.OverrideFloorTexture) newsector.SetFloorTexture(General.Map.Options.DefaultFloorTexture);
if (General.Map.Options.OverrideCeilingHeight) newsector.CeilHeight = General.Map.Options.DefaultCeilingHeight;
if (General.Map.Options.OverrideFloorHeight) newsector.FloorHeight = General.Map.Options.DefaultFloorHeight;
if (General.Map.Options.OverrideBrightness) newsector.Brightness = General.Map.Options.DefaultBrightness;
}
}
else
@ -579,7 +582,7 @@ namespace CodeImp.DoomBuilder.Geometry
// This joins a sector with the given lines and sides. Returns null when operation could not be completed.
public static Sector JoinSector(List<LinedefSide> alllines, Sidedef original, bool useDefaultTextures)
public static Sector JoinSector(List<LinedefSide> alllines, Sidedef original, bool useOverrides)
{
SidedefSettings sourceside = new SidedefSettings();
@ -587,7 +590,7 @@ namespace CodeImp.DoomBuilder.Geometry
TakeSidedefSettings(ref sourceside, original);
// Use defaults where no settings could be found
TakeSidedefDefaults(ref sourceside, useDefaultTextures);
TakeSidedefDefaults(ref sourceside, useOverrides);
// Go for all sides to make sidedefs
foreach(LinedefSide ls in alllines)
@ -679,12 +682,15 @@ namespace CodeImp.DoomBuilder.Geometry
}
// This takes default settings if not taken yet
private static void TakeSidedefDefaults(ref SidedefSettings settings, bool useDefaultTextures)
private static void TakeSidedefDefaults(ref SidedefSettings settings, bool useOverrides)
{
// Use defaults where no settings could be found
if(settings.newtexhigh == null || useDefaultTextures) settings.newtexhigh = General.Settings.DefaultTexture;
if(settings.newtexmid == null || useDefaultTextures) settings.newtexmid = General.Settings.DefaultTexture;
if(settings.newtexlow == null || useDefaultTextures) settings.newtexlow = General.Settings.DefaultTexture;
if(settings.newtexhigh == null || (useOverrides && General.Map.Options.OverrideWallTexture))
settings.newtexhigh = General.Map.Options.DefaultWallTexture;
if(settings.newtexmid == null || (useOverrides && General.Map.Options.OverrideWallTexture))
settings.newtexmid = General.Map.Options.DefaultWallTexture;
if(settings.newtexlow == null || (useOverrides && General.Map.Options.OverrideWallTexture))
settings.newtexlow = General.Map.Options.DefaultWallTexture;
}
// This takes sidedef settings if not taken yet
@ -709,11 +715,11 @@ namespace CodeImp.DoomBuilder.Geometry
// This applies defaults to a sector
private static void ApplyDefaultsToSector(Sector s)
{
s.SetFloorTexture(General.Settings.DefaultFloorTexture);
s.SetCeilTexture(General.Settings.DefaultCeilingTexture);
s.FloorHeight = General.Settings.DefaultFloorHeight;
s.CeilHeight = General.Settings.DefaultCeilingHeight;
s.Brightness = General.Settings.DefaultBrightness;
s.SetFloorTexture(General.Map.Options.DefaultFloorTexture);
s.SetCeilTexture(General.Map.Options.DefaultCeilingTexture);
s.FloorHeight = General.Map.Options.DefaultFloorHeight;
s.CeilHeight = General.Map.Options.DefaultCeilingHeight;
s.Brightness = General.Map.Options.DefaultBrightness;
}
#endregion
@ -857,7 +863,7 @@ namespace CodeImp.DoomBuilder.Geometry
/// marks and marks the new lines and vertices when done. Also marks the sectors that were added.
/// Returns false when the drawing failed.
/// </summary>
public static bool DrawLines(IList<DrawnVertex> points, bool useDefaultTextures, bool autoAlignTextureOffsets)
public static bool DrawLines(IList<DrawnVertex> points, bool useOverrides, bool autoAlignTextureOffsets)
{
List<Vertex> newverts = new List<Vertex>();
List<Vertex> intersectverts = new List<Vertex>();
@ -1323,7 +1329,7 @@ namespace CodeImp.DoomBuilder.Geometry
if(!istruenewsector || !splittingonly)
{
// Make the new sector
Sector newsector = Tools.MakeSector(sectorlines, oldlines, useDefaultTextures);
Sector newsector = Tools.MakeSector(sectorlines, oldlines, useOverrides);
if(newsector == null) return false;
if(istruenewsector) newsector.Marked = true;
@ -1398,7 +1404,7 @@ namespace CodeImp.DoomBuilder.Geometry
}
// Have our new lines join the existing sector
if(Tools.JoinSector(newsectorlines, joinsidedef, useDefaultTextures) == null)
if(Tools.JoinSector(newsectorlines, joinsidedef, useOverrides) == null)
return false;
}
}

View file

@ -56,6 +56,22 @@ namespace CodeImp.DoomBuilder.Map
// Script files opened
private List<string> scriptfiles;
//mxd. Sector drawing options
private string defaultfloortexture;
private string defaultceiltexture;
private string defaultwalltexture;
private int defaultbrightness;
private int defaultfloorheight;
private int defaultceilheight;
//mxd. Sector drawing overrides
private bool overridefloortexture;
private bool overrideceiltexture;
private bool overridewalltexture;
private bool overridefloorheight;
private bool overrideceilheight;
private bool overridebrightness;
#endregion
@ -84,6 +100,22 @@ namespace CodeImp.DoomBuilder.Map
public string LevelName { get { return currentname; } }
public Dictionary<int, string> TagLabels { get { return tagLabels; } internal set { tagLabels = value; } } //mxd
private Dictionary<int, string> tagLabels;
//mxd. Sector drawing options
public string DefaultWallTexture { get { return defaultwalltexture; } set { defaultwalltexture = value; } }
public string DefaultFloorTexture { get { return defaultfloortexture; } set { defaultfloortexture = value; } }
public string DefaultCeilingTexture { get { return defaultceiltexture; } set { defaultceiltexture = value; } }
public int DefaultBrightness { get { return defaultbrightness; } set { defaultbrightness = value; } }
public int DefaultFloorHeight { get { return defaultfloorheight; } set { defaultfloorheight = value; } }
public int DefaultCeilingHeight { get { return defaultceilheight; } set { defaultceilheight = value; } }
//mxd. Sector drawing overrides
public bool OverrideFloorTexture { get { return overridefloortexture; } set { overridefloortexture = value; } }
public bool OverrideCeilingTexture { get { return overrideceiltexture; } set { overrideceiltexture = value; } }
public bool OverrideWallTexture { get { return overridewalltexture; } set { overridewalltexture = value; } }
public bool OverrideFloorHeight { get { return overridefloorheight; } set { overridefloorheight = value; } }
public bool OverrideCeilingHeight { get { return overrideceilheight; } set { overrideceilheight = value; } }
public bool OverrideBrightness { get { return overridebrightness; } set { overridebrightness = value; } }
#endregion
@ -101,6 +133,10 @@ namespace CodeImp.DoomBuilder.Map
this.mapconfig = new Configuration(true);
this.scriptfiles = new List<string>();
this.tagLabels = new Dictionary<int, string>(); //mxd
//mxd. Sector drawing options
this.defaultbrightness = 196;
this.defaultceilheight = 128;
}
// Constructor to load from Doom Builder Map Settings Configuration
@ -121,7 +157,7 @@ namespace CodeImp.DoomBuilder.Map
// Read map configuration
this.mapconfig.Root = cfg.ReadSetting("maps." + mapname, new Hashtable());
//mxd. Tag Labels
//mxd. Read Tag Labels
this.tagLabels = new Dictionary<int, string>();
ListDictionary tagLabelsData = (ListDictionary)this.mapconfig.ReadSetting("taglabels", new ListDictionary());
@ -138,6 +174,22 @@ namespace CodeImp.DoomBuilder.Map
tagLabels.Add(tag, label);
}
//mxd. Read Sector drawing options
defaultfloortexture = this.mapconfig.ReadSetting("defaultfloortexture", string.Empty);
defaultceiltexture = this.mapconfig.ReadSetting("defaultceiltexture", string.Empty);
defaultwalltexture = this.mapconfig.ReadSetting("defaultwalltexture", string.Empty);
defaultbrightness = General.Clamp(this.mapconfig.ReadSetting("defaultbrightness", 196), 0, 255);
defaultfloorheight = this.mapconfig.ReadSetting("defaultfloorheight", 0);
defaultceilheight = this.mapconfig.ReadSetting("defaultceilheight", 128);
//mxd. Read Sector drawing overrides
overridefloortexture = this.mapconfig.ReadSetting("overridefloortexture", false);
overrideceiltexture = this.mapconfig.ReadSetting("overrideceiltexture", false);
overridewalltexture = this.mapconfig.ReadSetting("overridewalltexture", false);
overridefloorheight = this.mapconfig.ReadSetting("overridefloorheight", false);
overrideceilheight = this.mapconfig.ReadSetting("overrideceilheight", false);
overridebrightness = this.mapconfig.ReadSetting("overridebrightness", false);
// Resources
IDictionary reslist = this.mapconfig.ReadSetting("resources", new Hashtable());
foreach(DictionaryEntry mp in reslist)
@ -234,6 +286,22 @@ namespace CodeImp.DoomBuilder.Map
mapconfig.WriteSetting("taglabels", tagLabelsData);
}
//mxd. Write Sector drawing options
mapconfig.WriteSetting("defaultfloortexture", defaultfloortexture);
mapconfig.WriteSetting("defaultceiltexture", defaultceiltexture);
mapconfig.WriteSetting("defaultwalltexture", defaultwalltexture);
mapconfig.WriteSetting("defaultbrightness", defaultbrightness);
mapconfig.WriteSetting("defaultfloorheight", defaultfloorheight);
mapconfig.WriteSetting("defaultceilheight", defaultceilheight);
//mxd. Write Sector drawing overrides
mapconfig.WriteSetting("overridefloortexture", overridefloortexture);
mapconfig.WriteSetting("overrideceiltexture", overrideceiltexture);
mapconfig.WriteSetting("overridewalltexture", overridewalltexture);
mapconfig.WriteSetting("overridefloorheight", overridefloorheight);
mapconfig.WriteSetting("overrideceilheight", overrideceilheight);
mapconfig.WriteSetting("overridebrightness", overridebrightness);
// Write grid settings
General.Map.Grid.WriteToConfig(mapconfig, "grid");

View file

@ -1189,14 +1189,3 @@ placethingatcursor
allowscroll = false;
default = 131076;
}
setcurrenttextures
{
title = "Set Current Textures";
category = "edit";
description = "Opens the window, which lets user to change textures, which will be used in next drawing operations.";
allowkeys = true;
allowmouse = false;
allowscroll = false;
//default = 131076;
}

View file

@ -643,8 +643,8 @@ namespace CodeImp.DoomBuilder.Windows
this.cbRenderStyle.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cbRenderStyle.FormattingEnabled = true;
this.cbRenderStyle.Items.AddRange(new object[] {
"Translucent",
"Additive"});
"Translucent",
"Additive"});
this.cbRenderStyle.Location = new System.Drawing.Point(92, 26);
this.cbRenderStyle.Name = "cbRenderStyle";
this.cbRenderStyle.Size = new System.Drawing.Size(86, 22);
@ -1360,6 +1360,7 @@ namespace CodeImp.DoomBuilder.Windows
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Edit Linedef";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.LinedefEditForm_FormClosing);
this.HelpRequested += new System.Windows.Forms.HelpEventHandler(this.LinedefEditForm_HelpRequested);
this.actiongroup.ResumeLayout(false);
this.actiongroup.PerformLayout();

View file

@ -53,7 +53,7 @@ namespace CodeImp.DoomBuilder.Windows
private string arg0str; //mxd
private bool haveArg0Str; //mxd
//Value linking
//mxd. Persistent settings
private static bool linkFrontTopScale;
private static bool linkFrontMidScale;
private static bool linkFrontBottomScale;
@ -64,6 +64,12 @@ namespace CodeImp.DoomBuilder.Windows
private List<PairedFieldsControl> frontUdmfControls; //mxd
private List<PairedFieldsControl> backUdmfControls; //mxd
//mxd. Window setup stuff
private static Point location = Point.Empty;
private static int activeTab;
private static int activeFrontTab;
private static int activeBackTab;
private struct LinedefProperties //mxd
{
public Dictionary<string, bool> Flags;
@ -149,6 +155,19 @@ namespace CodeImp.DoomBuilder.Windows
{
// Initialize
InitializeComponent();
//mxd. Widow setup
if(location != Point.Empty) {
this.StartPosition = FormStartPosition.Manual;
this.Location = location;
if (activeTab > 0 && activeTab < tabs.TabCount) {
tabs.SelectTab(activeTab);
} else {
activeTab = 0;
}
if(activeFrontTab > 0) udmfPropertiesFront.SelectTab(activeFrontTab);
if(activeBackTab > 0) udmfPropertiesBack.SelectTab(activeBackTab);
}
// Fill flags lists
foreach(KeyValuePair<string, string> lf in General.Map.Config.LinedefFlags)
@ -885,6 +904,14 @@ namespace CodeImp.DoomBuilder.Windows
fieldslist.Focus();
}
//mxd. Store window location
private void LinedefEditForm_FormClosing(object sender, FormClosingEventArgs e) {
location = this.Location;
activeTab = tabs.SelectedIndex;
activeFrontTab = udmfPropertiesFront.SelectedIndex;
activeBackTab = udmfPropertiesBack.SelectedIndex;
}
// Help!
private void LinedefEditForm_HelpRequested(object sender, HelpEventArgs hlpevent)
{

View file

@ -1,240 +1,240 @@
<?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="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="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="label5.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="label5.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="label8.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="label8.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="label9.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="label9.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="label10.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="label10.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="label11.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="label12.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="activationlabel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="activationlabel.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="label7.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="label14.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="label6.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</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="apply.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="argspanel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="hexenpanel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="activation.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="udmfpanel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="flags.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="tabproperties.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="frontside.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="frontlow.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="frontmid.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="fronthigh.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="backside.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="backlow.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="backmid.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="backhigh.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="tabcustom.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="heightpanel1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="heightpanel2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
</root>

View file

@ -109,8 +109,6 @@ namespace CodeImp.DoomBuilder.Windows
this.clearGroup8 = new System.Windows.Forms.ToolStripMenuItem();
this.clearGroup9 = new System.Windows.Forms.ToolStripMenuItem();
this.clearGroup10 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
this.itemSetCurrentTextures = new System.Windows.Forms.ToolStripMenuItem();
this.itemmapoptions = new System.Windows.Forms.ToolStripMenuItem();
this.itemviewusedtags = new System.Windows.Forms.ToolStripMenuItem();
this.menuview = new System.Windows.Forms.ToolStripMenuItem();
@ -217,9 +215,11 @@ namespace CodeImp.DoomBuilder.Windows
this.itemgrid16 = new System.Windows.Forms.ToolStripMenuItem();
this.itemgrid8 = new System.Windows.Forms.ToolStripMenuItem();
this.itemgrid4 = new System.Windows.Forms.ToolStripMenuItem();
this.itemgrid1 = new System.Windows.Forms.ToolStripMenuItem();
this.itemgridcustom = new System.Windows.Forms.ToolStripMenuItem();
this.zoomlabel = new System.Windows.Forms.ToolStripStatusLabel();
this.buttonzoom = new System.Windows.Forms.ToolStripDropDownButton();
this.itemzoom400 = new System.Windows.Forms.ToolStripMenuItem();
this.itemzoom200 = new System.Windows.Forms.ToolStripMenuItem();
this.itemzoom100 = new System.Windows.Forms.ToolStripMenuItem();
this.itemzoom50 = new System.Windows.Forms.ToolStripMenuItem();
@ -240,15 +240,13 @@ namespace CodeImp.DoomBuilder.Windows
this.thinginfo = new CodeImp.DoomBuilder.Controls.ThingInfoPanel();
this.sectorinfo = new CodeImp.DoomBuilder.Controls.SectorInfoPanel();
this.redrawtimer = new System.Windows.Forms.Timer(this.components);
this.display = new CodeImp.DoomBuilder.Controls.RenderTargetControl();
this.display = new RenderTargetControl();
this.processor = new System.Windows.Forms.Timer(this.components);
this.statusflasher = new System.Windows.Forms.Timer(this.components);
this.statusresetter = new System.Windows.Forms.Timer(this.components);
this.dockersspace = new System.Windows.Forms.Panel();
this.dockerspanel = new CodeImp.DoomBuilder.Controls.DockersControl();
this.dockerscollapser = new System.Windows.Forms.Timer(this.components);
this.itemgrid1 = new System.Windows.Forms.ToolStripMenuItem();
this.itemzoom400 = new System.Windows.Forms.ToolStripMenuItem();
toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator();
toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator();
@ -312,13 +310,13 @@ namespace CodeImp.DoomBuilder.Windows
//
this.seperatoreditgrid.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.seperatoreditgrid.Name = "seperatoreditgrid";
this.seperatoreditgrid.Size = new System.Drawing.Size(194, 6);
this.seperatoreditgrid.Size = new System.Drawing.Size(211, 6);
//
// seperatoreditcopypaste
//
this.seperatoreditcopypaste.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.seperatoreditcopypaste.Name = "seperatoreditcopypaste";
this.seperatoreditcopypaste.Size = new System.Drawing.Size(194, 6);
this.seperatoreditcopypaste.Size = new System.Drawing.Size(211, 6);
//
// seperatorfile
//
@ -367,13 +365,13 @@ namespace CodeImp.DoomBuilder.Windows
// menumain
//
this.menumain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.menufile,
this.menuedit,
this.menuview,
this.menumode,
this.menuprefabs,
this.menutools,
this.menuhelp});
this.menufile,
this.menuedit,
this.menuview,
this.menumode,
this.menuprefabs,
this.menutools,
this.menuhelp});
this.menumain.Location = new System.Drawing.Point(0, 0);
this.menumain.Name = "menumain";
this.menumain.Size = new System.Drawing.Size(1012, 24);
@ -382,18 +380,18 @@ namespace CodeImp.DoomBuilder.Windows
// menufile
//
this.menufile.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.itemnewmap,
this.itemopenmap,
this.itemopenmapincurwad,
this.itemclosemap,
this.seperatorfileopen,
this.itemsavemap,
this.itemsavemapas,
this.itemsavemapinto,
this.seperatorfilesave,
this.itemnorecent,
this.seperatorfilerecent,
this.itemexit});
this.itemnewmap,
this.itemopenmap,
this.itemopenmapincurwad,
this.itemclosemap,
this.seperatorfileopen,
this.itemsavemap,
this.itemsavemapas,
this.itemsavemapinto,
this.seperatorfilesave,
this.itemnorecent,
this.seperatorfilerecent,
this.itemexit});
this.menufile.Name = "menufile";
this.menufile.Size = new System.Drawing.Size(37, 20);
this.menufile.Text = "&File";
@ -481,29 +479,27 @@ namespace CodeImp.DoomBuilder.Windows
// menuedit
//
this.menuedit.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.itemundo,
this.itemredo,
this.seperatoreditundo,
this.itemcut,
this.itemcopy,
this.itempaste,
this.itempastespecial,
this.seperatoreditcopypaste,
this.itemsnaptogrid,
this.itemautomerge,
this.seperatoreditgeometry,
this.itemgridinc,
this.itemgriddec,
this.itemgridsetup,
this.toolStripSeparator5,
this.addToGroup,
this.selectGroup,
this.clearGroup,
this.toolStripSeparator4,
this.itemSetCurrentTextures,
this.seperatoreditgrid,
this.itemmapoptions,
this.itemviewusedtags});
this.itemundo,
this.itemredo,
this.seperatoreditundo,
this.itemcut,
this.itemcopy,
this.itempaste,
this.itempastespecial,
this.seperatoreditcopypaste,
this.itemsnaptogrid,
this.itemautomerge,
this.seperatoreditgeometry,
this.itemgridinc,
this.itemgriddec,
this.itemgridsetup,
this.toolStripSeparator5,
this.addToGroup,
this.selectGroup,
this.clearGroup,
this.seperatoreditgrid,
this.itemmapoptions,
this.itemviewusedtags});
this.menuedit.Name = "menuedit";
this.menuedit.Size = new System.Drawing.Size(39, 20);
this.menuedit.Text = "&Edit";
@ -513,7 +509,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemundo.Image = global::CodeImp.DoomBuilder.Properties.Resources.Undo;
this.itemundo.Name = "itemundo";
this.itemundo.Size = new System.Drawing.Size(197, 22);
this.itemundo.Size = new System.Drawing.Size(214, 22);
this.itemundo.Tag = "builder_undo";
this.itemundo.Text = "&Undo";
this.itemundo.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -522,7 +518,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemredo.Image = global::CodeImp.DoomBuilder.Properties.Resources.Redo;
this.itemredo.Name = "itemredo";
this.itemredo.Size = new System.Drawing.Size(197, 22);
this.itemredo.Size = new System.Drawing.Size(214, 22);
this.itemredo.Tag = "builder_redo";
this.itemredo.Text = "&Redo";
this.itemredo.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -531,13 +527,13 @@ namespace CodeImp.DoomBuilder.Windows
//
this.seperatoreditundo.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.seperatoreditundo.Name = "seperatoreditundo";
this.seperatoreditundo.Size = new System.Drawing.Size(194, 6);
this.seperatoreditundo.Size = new System.Drawing.Size(211, 6);
//
// itemcut
//
this.itemcut.Image = global::CodeImp.DoomBuilder.Properties.Resources.Cut;
this.itemcut.Name = "itemcut";
this.itemcut.Size = new System.Drawing.Size(197, 22);
this.itemcut.Size = new System.Drawing.Size(214, 22);
this.itemcut.Tag = "builder_cutselection";
this.itemcut.Text = "Cu&t";
this.itemcut.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -546,7 +542,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemcopy.Image = global::CodeImp.DoomBuilder.Properties.Resources.Copy;
this.itemcopy.Name = "itemcopy";
this.itemcopy.Size = new System.Drawing.Size(197, 22);
this.itemcopy.Size = new System.Drawing.Size(214, 22);
this.itemcopy.Tag = "builder_copyselection";
this.itemcopy.Text = "&Copy";
this.itemcopy.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -555,7 +551,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itempaste.Image = global::CodeImp.DoomBuilder.Properties.Resources.Paste;
this.itempaste.Name = "itempaste";
this.itempaste.Size = new System.Drawing.Size(197, 22);
this.itempaste.Size = new System.Drawing.Size(214, 22);
this.itempaste.Tag = "builder_pasteselection";
this.itempaste.Text = "&Paste";
this.itempaste.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -564,7 +560,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itempastespecial.Image = global::CodeImp.DoomBuilder.Properties.Resources.PasteSpecial;
this.itempastespecial.Name = "itempastespecial";
this.itempastespecial.Size = new System.Drawing.Size(197, 22);
this.itempastespecial.Size = new System.Drawing.Size(214, 22);
this.itempastespecial.Tag = "builder_pasteselectionspecial";
this.itempastespecial.Text = "Paste Special...";
this.itempastespecial.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -575,7 +571,7 @@ namespace CodeImp.DoomBuilder.Windows
this.itemsnaptogrid.CheckState = System.Windows.Forms.CheckState.Checked;
this.itemsnaptogrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid4;
this.itemsnaptogrid.Name = "itemsnaptogrid";
this.itemsnaptogrid.Size = new System.Drawing.Size(197, 22);
this.itemsnaptogrid.Size = new System.Drawing.Size(214, 22);
this.itemsnaptogrid.Tag = "builder_togglesnap";
this.itemsnaptogrid.Text = "&Snap to Grid";
this.itemsnaptogrid.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -586,7 +582,7 @@ namespace CodeImp.DoomBuilder.Windows
this.itemautomerge.CheckState = System.Windows.Forms.CheckState.Checked;
this.itemautomerge.Image = global::CodeImp.DoomBuilder.Properties.Resources.mergegeometry2;
this.itemautomerge.Name = "itemautomerge";
this.itemautomerge.Size = new System.Drawing.Size(197, 22);
this.itemautomerge.Size = new System.Drawing.Size(214, 22);
this.itemautomerge.Tag = "builder_toggleautomerge";
this.itemautomerge.Text = "&Merge Geometry";
this.itemautomerge.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -595,12 +591,12 @@ namespace CodeImp.DoomBuilder.Windows
//
this.seperatoreditgeometry.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.seperatoreditgeometry.Name = "seperatoreditgeometry";
this.seperatoreditgeometry.Size = new System.Drawing.Size(194, 6);
this.seperatoreditgeometry.Size = new System.Drawing.Size(211, 6);
//
// itemgridinc
//
this.itemgridinc.Name = "itemgridinc";
this.itemgridinc.Size = new System.Drawing.Size(197, 22);
this.itemgridinc.Size = new System.Drawing.Size(214, 22);
this.itemgridinc.Tag = "builder_griddec";
this.itemgridinc.Text = "&Increase Grid";
this.itemgridinc.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -608,7 +604,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgriddec
//
this.itemgriddec.Name = "itemgriddec";
this.itemgriddec.Size = new System.Drawing.Size(197, 22);
this.itemgriddec.Size = new System.Drawing.Size(214, 22);
this.itemgriddec.Tag = "builder_gridinc";
this.itemgriddec.Text = "&Decrease Grid";
this.itemgriddec.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -617,7 +613,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemgridsetup.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid2;
this.itemgridsetup.Name = "itemgridsetup";
this.itemgridsetup.Size = new System.Drawing.Size(197, 22);
this.itemgridsetup.Size = new System.Drawing.Size(214, 22);
this.itemgridsetup.Tag = "builder_gridsetup";
this.itemgridsetup.Text = "&Grid and Backdrop Setup...";
this.itemgridsetup.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -625,23 +621,23 @@ namespace CodeImp.DoomBuilder.Windows
// toolStripSeparator5
//
this.toolStripSeparator5.Name = "toolStripSeparator5";
this.toolStripSeparator5.Size = new System.Drawing.Size(194, 6);
this.toolStripSeparator5.Size = new System.Drawing.Size(211, 6);
//
// addToGroup
//
this.addToGroup.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.addGroup1,
this.addGroup2,
this.addGroup3,
this.addGroup4,
this.addGroup5,
this.addGroup6,
this.addGroup7,
this.addGroup8,
this.addGroup9,
this.addGroup10});
this.addGroup1,
this.addGroup2,
this.addGroup3,
this.addGroup4,
this.addGroup5,
this.addGroup6,
this.addGroup7,
this.addGroup8,
this.addGroup9,
this.addGroup10});
this.addToGroup.Name = "addToGroup";
this.addToGroup.Size = new System.Drawing.Size(197, 22);
this.addToGroup.Size = new System.Drawing.Size(214, 22);
this.addToGroup.Text = "Add Selection to Group";
this.addToGroup.DropDownOpening += new System.EventHandler(this.addToGroup_DropDownOpening);
//
@ -728,18 +724,18 @@ namespace CodeImp.DoomBuilder.Windows
// selectGroup
//
this.selectGroup.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.selectGroup1,
this.selectGroup2,
this.selectGroup3,
this.selectGroup4,
this.selectGroup5,
this.selectGroup6,
this.selectGroup7,
this.selectGroup8,
this.selectGroup9,
this.selectGroup10});
this.selectGroup1,
this.selectGroup2,
this.selectGroup3,
this.selectGroup4,
this.selectGroup5,
this.selectGroup6,
this.selectGroup7,
this.selectGroup8,
this.selectGroup9,
this.selectGroup10});
this.selectGroup.Name = "selectGroup";
this.selectGroup.Size = new System.Drawing.Size(197, 22);
this.selectGroup.Size = new System.Drawing.Size(214, 22);
this.selectGroup.Text = "Select Group";
this.selectGroup.DropDownOpening += new System.EventHandler(this.selectGroup_DropDownOpening);
//
@ -826,18 +822,18 @@ namespace CodeImp.DoomBuilder.Windows
// clearGroup
//
this.clearGroup.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.clearGroup1,
this.clearGroup2,
this.clearGroup3,
this.clearGroup4,
this.clearGroup5,
this.clearGroup6,
this.clearGroup7,
this.clearGroup8,
this.clearGroup9,
this.clearGroup10});
this.clearGroup1,
this.clearGroup2,
this.clearGroup3,
this.clearGroup4,
this.clearGroup5,
this.clearGroup6,
this.clearGroup7,
this.clearGroup8,
this.clearGroup9,
this.clearGroup10});
this.clearGroup.Name = "clearGroup";
this.clearGroup.Size = new System.Drawing.Size(197, 22);
this.clearGroup.Size = new System.Drawing.Size(214, 22);
this.clearGroup.Text = "Clear Group";
this.clearGroup.DropDownOpening += new System.EventHandler(this.selectGroup_DropDownOpening);
//
@ -921,24 +917,11 @@ namespace CodeImp.DoomBuilder.Windows
this.clearGroup10.Text = "10:";
this.clearGroup10.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// toolStripSeparator4
//
this.toolStripSeparator4.Name = "toolStripSeparator4";
this.toolStripSeparator4.Size = new System.Drawing.Size(194, 6);
//
// itemSetCurrentTextures
//
this.itemSetCurrentTextures.Name = "itemSetCurrentTextures";
this.itemSetCurrentTextures.Size = new System.Drawing.Size(197, 22);
this.itemSetCurrentTextures.Tag = "builder_setcurrenttextures";
this.itemSetCurrentTextures.Text = "Set Default &Textures...";
this.itemSetCurrentTextures.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// itemmapoptions
//
this.itemmapoptions.Image = global::CodeImp.DoomBuilder.Properties.Resources.Properties;
this.itemmapoptions.Name = "itemmapoptions";
this.itemmapoptions.Size = new System.Drawing.Size(197, 22);
this.itemmapoptions.Size = new System.Drawing.Size(214, 22);
this.itemmapoptions.Tag = "builder_mapoptions";
this.itemmapoptions.Text = "Map &Options....";
this.itemmapoptions.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -947,7 +930,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemviewusedtags.Image = global::CodeImp.DoomBuilder.Properties.Resources.TagStatistics;
this.itemviewusedtags.Name = "itemviewusedtags";
this.itemviewusedtags.Size = new System.Drawing.Size(197, 22);
this.itemviewusedtags.Size = new System.Drawing.Size(214, 22);
this.itemviewusedtags.Tag = "builder_viewusedtags";
this.itemviewusedtags.Text = "View Used Tags...";
this.itemviewusedtags.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -955,18 +938,18 @@ namespace CodeImp.DoomBuilder.Windows
// menuview
//
this.menuview.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.itemthingsfilter,
this.seperatorviewthings,
this.itemviewnormal,
this.itemviewbrightness,
this.itemviewfloors,
this.itemviewceilings,
this.seperatorviewviews,
this.menuzoom,
this.itemfittoscreen,
this.itemtoggleinfo,
this.seperatorviewzoom,
this.itemscripteditor});
this.itemthingsfilter,
this.seperatorviewthings,
this.itemviewnormal,
this.itemviewbrightness,
this.itemviewfloors,
this.itemviewceilings,
this.seperatorviewviews,
this.menuzoom,
this.itemfittoscreen,
this.itemtoggleinfo,
this.seperatorviewzoom,
this.itemscripteditor});
this.menuview.Name = "menuview";
this.menuview.Size = new System.Drawing.Size(44, 20);
this.menuview.Text = "&View";
@ -1030,12 +1013,12 @@ namespace CodeImp.DoomBuilder.Windows
// menuzoom
//
this.menuzoom.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.item2zoom200,
this.item2zoom100,
this.item2zoom50,
this.item2zoom25,
this.item2zoom10,
this.item2zoom5});
this.item2zoom200,
this.item2zoom100,
this.item2zoom50,
this.item2zoom25,
this.item2zoom10,
this.item2zoom5});
this.menuzoom.Image = global::CodeImp.DoomBuilder.Properties.Resources.Zoom;
this.menuzoom.Name = "menuzoom";
this.menuzoom.Size = new System.Drawing.Size(209, 22);
@ -1123,7 +1106,7 @@ namespace CodeImp.DoomBuilder.Windows
// menumode
//
this.menumode.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.separatorDrawModes});
this.separatorDrawModes});
this.menumode.Name = "menumode";
this.menumode.Size = new System.Drawing.Size(50, 20);
this.menumode.Text = "&Mode";
@ -1136,10 +1119,10 @@ namespace CodeImp.DoomBuilder.Windows
// menuprefabs
//
this.menuprefabs.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.iteminsertprefabfile,
this.iteminsertpreviousprefab,
this.seperatorprefabsinsert,
this.itemcreateprefab});
this.iteminsertprefabfile,
this.iteminsertpreviousprefab,
this.seperatorprefabsinsert,
this.itemcreateprefab});
this.menuprefabs.Name = "menuprefabs";
this.menuprefabs.Size = new System.Drawing.Size(58, 20);
this.menuprefabs.Text = "&Prefabs";
@ -1177,19 +1160,19 @@ namespace CodeImp.DoomBuilder.Windows
// menutools
//
this.menutools.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.itemreloadresources,
this.itemReloadModedef,
this.itemReloadGldefs,
this.itemReloadMapinfo,
this.itemshowerrors,
this.seperatortoolsresources,
this.configurationToolStripMenuItem,
this.preferencesToolStripMenuItem,
this.seperatortoolsconfig,
this.screenshotToolStripMenuItem,
this.editAreaScreenshotToolStripMenuItem,
this.separatortoolsscreenshots,
this.itemtestmap});
this.itemreloadresources,
this.itemReloadModedef,
this.itemReloadGldefs,
this.itemReloadMapinfo,
this.itemshowerrors,
this.seperatortoolsresources,
this.configurationToolStripMenuItem,
this.preferencesToolStripMenuItem,
this.seperatortoolsconfig,
this.screenshotToolStripMenuItem,
this.editAreaScreenshotToolStripMenuItem,
this.separatortoolsscreenshots,
this.itemtestmap});
this.menutools.Name = "menutools";
this.menutools.Size = new System.Drawing.Size(48, 20);
this.menutools.Text = "&Tools";
@ -1296,11 +1279,11 @@ namespace CodeImp.DoomBuilder.Windows
// menuhelp
//
this.menuhelp.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.itemhelprefmanual,
this.itemShortcutReference,
this.itemhelpeditmode,
this.seperatorhelpmanual,
this.itemhelpabout});
this.itemhelprefmanual,
this.itemShortcutReference,
this.itemhelpeditmode,
this.seperatorhelpmanual,
this.itemhelpabout});
this.menuhelp.Name = "menuhelp";
this.menuhelp.Size = new System.Drawing.Size(44, 20);
this.menuhelp.Text = "&Help";
@ -1349,44 +1332,44 @@ namespace CodeImp.DoomBuilder.Windows
this.toolbar.ContextMenuStrip = this.toolbarContextMenu;
this.toolbar.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
this.toolbar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.buttonnewmap,
this.buttonopenmap,
this.buttonsavemap,
this.seperatorfile,
this.buttonscripteditor,
this.seperatorscript,
this.buttonundo,
this.buttonredo,
this.seperatorundo,
this.buttoncut,
this.buttoncopy,
this.buttonpaste,
this.seperatorcopypaste,
this.buttoninsertprefabfile,
this.buttoninsertpreviousprefab,
this.seperatorprefabs,
this.seperatormodes,
this.buttonthingsfilter,
this.thingfilters,
this.buttonviewnormal,
this.buttonviewbrightness,
this.buttonviewfloors,
this.buttonviewceilings,
this.seperatorviews,
this.buttonsnaptogrid,
this.buttonautomerge,
this.seperatorgeometry,
this.buttontogglefx,
this.buttontoggledynlight,
this.buttontoggleanimatedlight,
this.buttontogglemodels,
this.buttonselectedmodelsonly,
this.buttontogglefog,
this.buttontoggleeventlines,
this.buttontogglevisualvertices,
this.separatorgzmodes,
this.buttontest,
this.seperatortesting});
this.buttonnewmap,
this.buttonopenmap,
this.buttonsavemap,
this.seperatorfile,
this.buttonscripteditor,
this.seperatorscript,
this.buttonundo,
this.buttonredo,
this.seperatorundo,
this.buttoncut,
this.buttoncopy,
this.buttonpaste,
this.seperatorcopypaste,
this.buttoninsertprefabfile,
this.buttoninsertpreviousprefab,
this.seperatorprefabs,
this.seperatormodes,
this.buttonthingsfilter,
this.thingfilters,
this.buttonviewnormal,
this.buttonviewbrightness,
this.buttonviewfloors,
this.buttonviewceilings,
this.seperatorviews,
this.buttonsnaptogrid,
this.buttonautomerge,
this.seperatorgeometry,
this.buttontogglefx,
this.buttontoggledynlight,
this.buttontoggleanimatedlight,
this.buttontogglemodels,
this.buttonselectedmodelsonly,
this.buttontogglefog,
this.buttontoggleeventlines,
this.buttontogglevisualvertices,
this.separatorgzmodes,
this.buttontest,
this.seperatortesting});
this.toolbar.Location = new System.Drawing.Point(0, 24);
this.toolbar.Name = "toolbar";
this.toolbar.Size = new System.Drawing.Size(1012, 25);
@ -1395,16 +1378,16 @@ namespace CodeImp.DoomBuilder.Windows
// toolbarContextMenu
//
this.toolbarContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toggleFile,
this.toggleScript,
this.toggleUndo,
this.toggleCopy,
this.togglePrefabs,
this.toggleFilter,
this.toggleViewModes,
this.toggleGeometry,
this.toggleTesting,
this.toggleRendering});
this.toggleFile,
this.toggleScript,
this.toggleUndo,
this.toggleCopy,
this.togglePrefabs,
this.toggleFilter,
this.toggleViewModes,
this.toggleGeometry,
this.toggleTesting,
this.toggleRendering});
this.toolbarContextMenu.Name = "toolbarContextMenu";
this.toolbarContextMenu.Size = new System.Drawing.Size(174, 224);
this.toolbarContextMenu.Opening += new System.ComponentModel.CancelEventHandler(this.toolbarContextMenu_Opening);
@ -1619,11 +1602,11 @@ namespace CodeImp.DoomBuilder.Windows
this.thingfilters.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.thingfilters.Enabled = false;
this.thingfilters.Items.AddRange(new object[] {
"(none)",
"(custom)",
"Easy skill items only",
"Medium skill items only",
"Hard skill items only"});
"(none)",
"(custom)",
"Easy skill items only",
"Medium skill items only",
"Hard skill items only"});
this.thingfilters.Margin = new System.Windows.Forms.Padding(1, 0, 6, 0);
this.thingfilters.Name = "thingfilters";
this.thingfilters.Size = new System.Drawing.Size(130, 25);
@ -1845,20 +1828,20 @@ namespace CodeImp.DoomBuilder.Windows
//
this.statusbar.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.statusbar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.statuslabel,
this.configlabel,
toolStripSeparator12,
this.gridlabel,
this.buttongrid,
toolStripSeparator1,
this.zoomlabel,
this.buttonzoom,
toolStripSeparator3,
this.xposlabel,
this.poscommalabel,
this.yposlabel,
toolStripSeparator9,
this.warnsLabel});
this.statuslabel,
this.configlabel,
toolStripSeparator12,
this.gridlabel,
this.buttongrid,
toolStripSeparator1,
this.zoomlabel,
this.buttonzoom,
toolStripSeparator3,
this.xposlabel,
this.poscommalabel,
this.yposlabel,
toolStripSeparator9,
this.warnsLabel});
this.statusbar.Location = new System.Drawing.Point(0, 670);
this.statusbar.Name = "statusbar";
this.statusbar.ShowItemToolTips = true;
@ -1871,7 +1854,7 @@ namespace CodeImp.DoomBuilder.Windows
this.statuslabel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.statuslabel.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.statuslabel.Name = "statuslabel";
this.statuslabel.Size = new System.Drawing.Size(309, 18);
this.statuslabel.Size = new System.Drawing.Size(340, 18);
this.statuslabel.Spring = true;
this.statuslabel.Text = "Initializing user interface...";
this.statuslabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
@ -1902,18 +1885,18 @@ namespace CodeImp.DoomBuilder.Windows
this.buttongrid.AutoToolTip = false;
this.buttongrid.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.buttongrid.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.itemgrid1024,
this.itemgrid512,
this.itemgrid256,
this.itemgrid128,
this.itemgrid64,
this.itemgrid32,
this.itemgrid16,
this.itemgrid8,
this.itemgrid4,
this.itemgrid1,
toolStripMenuItem4,
this.itemgridcustom});
this.itemgrid1024,
this.itemgrid512,
this.itemgrid256,
this.itemgrid128,
this.itemgrid64,
this.itemgrid32,
this.itemgrid16,
this.itemgrid8,
this.itemgrid4,
this.itemgrid1,
toolStripMenuItem4,
this.itemgridcustom});
this.buttongrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid2_arrowup;
this.buttongrid.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.buttongrid.ImageTransparentColor = System.Drawing.Color.Transparent;
@ -1994,6 +1977,14 @@ namespace CodeImp.DoomBuilder.Windows
this.itemgrid4.Text = "4 mp";
this.itemgrid4.Click += new System.EventHandler(this.itemgridsize_Click);
//
// itemgrid1
//
this.itemgrid1.Name = "itemgrid1";
this.itemgrid1.Size = new System.Drawing.Size(153, 22);
this.itemgrid1.Tag = "1";
this.itemgrid1.Text = "1 mp";
this.itemgrid1.Click += new System.EventHandler(this.itemgridsize_Click);
//
// itemgridcustom
//
this.itemgridcustom.Name = "itemgridcustom";
@ -2017,15 +2008,15 @@ namespace CodeImp.DoomBuilder.Windows
this.buttonzoom.AutoToolTip = false;
this.buttonzoom.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.buttonzoom.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.itemzoom400,
this.itemzoom200,
this.itemzoom100,
this.itemzoom50,
this.itemzoom25,
this.itemzoom10,
this.itemzoom5,
toolStripSeparator2,
this.itemzoomfittoscreen});
this.itemzoom400,
this.itemzoom200,
this.itemzoom100,
this.itemzoom50,
this.itemzoom25,
this.itemzoom10,
this.itemzoom5,
toolStripSeparator2,
this.itemzoomfittoscreen});
this.buttonzoom.Image = global::CodeImp.DoomBuilder.Properties.Resources.Zoom_arrowup;
this.buttonzoom.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.buttonzoom.ImageTransparentColor = System.Drawing.Color.Transparent;
@ -2034,6 +2025,14 @@ namespace CodeImp.DoomBuilder.Windows
this.buttonzoom.Size = new System.Drawing.Size(29, 21);
this.buttonzoom.Text = "Zoom";
//
// itemzoom400
//
this.itemzoom400.Name = "itemzoom400";
this.itemzoom400.Size = new System.Drawing.Size(156, 22);
this.itemzoom400.Tag = "400";
this.itemzoom400.Text = "400%";
this.itemzoom400.Click += new System.EventHandler(this.itemzoomto_Click);
//
// itemzoom200
//
this.itemzoom200.Name = "itemzoom200";
@ -2294,22 +2293,6 @@ namespace CodeImp.DoomBuilder.Windows
this.dockerscollapser.Interval = 200;
this.dockerscollapser.Tick += new System.EventHandler(this.dockerscollapser_Tick);
//
// itemgrid1
//
this.itemgrid1.Name = "itemgrid1";
this.itemgrid1.Size = new System.Drawing.Size(153, 22);
this.itemgrid1.Tag = "1";
this.itemgrid1.Text = "1 mp";
this.itemgrid1.Click += new System.EventHandler(this.itemgridsize_Click);
//
// itemzoom400
//
this.itemzoom400.Name = "itemzoom400";
this.itemzoom400.Size = new System.Drawing.Size(156, 22);
this.itemzoom400.Tag = "400";
this.itemzoom400.Text = "400%";
this.itemzoom400.Click += new System.EventHandler(this.itemzoomto_Click);
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
@ -2511,8 +2494,6 @@ namespace CodeImp.DoomBuilder.Windows
private System.Windows.Forms.ToolStripSeparator separatorDrawModes;
private System.Windows.Forms.ToolStripButton buttontoggleeventlines;
private System.Windows.Forms.ToolStripButton buttontogglevisualvertices;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
private System.Windows.Forms.ToolStripMenuItem itemSetCurrentTextures;
private System.Windows.Forms.ToolStripMenuItem itemviewusedtags;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator5;
private System.Windows.Forms.ToolStripMenuItem addToGroup;

View file

@ -2306,7 +2306,6 @@ namespace CodeImp.DoomBuilder.Windows
itemgridsetup.Enabled = (General.Map != null);
itemgridinc.Enabled = (General.Map != null);
itemgriddec.Enabled = (General.Map != null);
itemSetCurrentTextures.Enabled = (General.Map != null); //mxd
itemviewusedtags.Enabled = (General.Map != null); //mxd
addToGroup.Enabled = (General.Map != null); //mxd
selectGroup.Enabled = (General.Map != null); //mxd

File diff suppressed because it is too large Load diff

View file

@ -198,11 +198,6 @@ namespace CodeImp.DoomBuilder.Windows
options.CurrentName = levelname.Text.Trim().ToUpper();
options.StrictPatches = strictpatches.Checked;
options.CopyResources(datalocations.GetResources());
// Reset default drawing textures
General.Settings.DefaultTexture = null;
General.Settings.DefaultFloorTexture = null;
General.Settings.DefaultCeilingTexture = null;
// Hide window
this.DialogResult = DialogResult.OK;

View file

@ -355,6 +355,7 @@ namespace CodeImp.DoomBuilder.Windows
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Edit Sector";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.SectorEditForm_FormClosing);
this.HelpRequested += new System.Windows.Forms.HelpEventHandler(this.SectorEditForm_HelpRequested);
groupeffect.ResumeLayout(false);
groupeffect.PerformLayout();

View file

@ -18,6 +18,7 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using CodeImp.DoomBuilder.Map;
using CodeImp.DoomBuilder.Types;
@ -40,6 +41,9 @@ namespace CodeImp.DoomBuilder.Windows
private List<SectorProperties> sectorProps; //mxd
private bool blockUpdate; //mxd
//mxd. Window setup stuff
private static Point location = Point.Empty;
private struct SectorProperties //mxd
{
public int Brightness;
@ -67,6 +71,12 @@ namespace CodeImp.DoomBuilder.Windows
// Initialize
InitializeComponent();
//mxd. Widow setup
if(location != Point.Empty) {
this.StartPosition = FormStartPosition.Manual;
this.Location = location;
}
// Fill effects list
effect.AddInfo(General.Map.Config.SortedSectorEffects.ToArray());
@ -241,6 +251,11 @@ namespace CodeImp.DoomBuilder.Windows
effect.Value = EffectBrowserForm.BrowseEffect(this, effect.Value);
}
//mxd
private void SectorEditForm_FormClosing(object sender, FormClosingEventArgs e) {
location = this.Location;
}
// Help
private void SectorEditForm_HelpRequested(object sender, HelpEventArgs hlpevent) {
General.ShowHelp("w_sectoredit.html");
@ -358,5 +373,6 @@ namespace CodeImp.DoomBuilder.Windows
}
#endregion
}
}

View file

@ -1,174 +1,162 @@
<?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="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="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="groupeffect.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="label8.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="label9.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="groupfloorceiling.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="label6.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="label5.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</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="label4.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label6.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label5.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>
<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="flatSelectorControl2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="flatSelectorControl1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
</root>

View file

@ -909,6 +909,7 @@
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Edit Sector";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.SectorEditFormUDMF_FormClosing);
this.HelpRequested += new System.Windows.Forms.HelpEventHandler(this.SectorEditFormUDMF_HelpRequested);
groupaction.ResumeLayout(false);
groupeffect.ResumeLayout(false);

View file

@ -1,9 +1,10 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using CodeImp.DoomBuilder.GZBuilder.Tools;
using CodeImp.DoomBuilder.Map;
using CodeImp.DoomBuilder.Types;
using CodeImp.DoomBuilder.GZBuilder.Tools;
namespace CodeImp.DoomBuilder.Windows
{
@ -22,12 +23,16 @@ namespace CodeImp.DoomBuilder.Windows
private bool blockUpdate; //mxd
private StepsList angleSteps; //mxd
//Persistent settings
//mxd. Persistent settings
private static bool linkCeilingScale;
private static bool linkFloorScale;
private static bool useFloorLineAngles;
private static bool useCeilLineAngles;
//mxd. Window setup stuff
private static Point location = Point.Empty;
private static int activeTab;
private struct SectorProperties //mxd
{
public int Brightness;
@ -101,6 +106,13 @@ namespace CodeImp.DoomBuilder.Windows
public SectorEditFormUDMF() {
InitializeComponent();
//mxd. Widow setup
if(location != Point.Empty) {
this.StartPosition = FormStartPosition.Manual;
this.Location = location;
if(activeTab > 0) tabs.SelectTab(activeTab);
}
// Fill flags list
foreach(KeyValuePair<string, string> lf in General.Map.Config.SectorFlags)
flags.Add(lf.Value, lf.Key);
@ -461,6 +473,12 @@ namespace CodeImp.DoomBuilder.Windows
effect.Value = EffectBrowserForm.BrowseEffect(this, effect.Value);
}
//mxd
private void SectorEditFormUDMF_FormClosing(object sender, FormClosingEventArgs e) {
location = this.Location;
activeTab = tabs.SelectedIndex;
}
private void SectorEditFormUDMF_HelpRequested(object sender, HelpEventArgs hlpevent) {
General.ShowHelp("w_sectoredit.html");
hlpevent.Handled = true;

View file

@ -1,171 +0,0 @@
namespace CodeImp.DoomBuilder.Windows
{
partial class SetCurrentTexturesForm
{
/// <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 Windows Form 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.labelWalls = new System.Windows.Forms.Label();
this.labelFloor = new System.Windows.Forms.Label();
this.labelCeiling = new System.Windows.Forms.Label();
this.bApply = new System.Windows.Forms.Button();
this.bCancel = new System.Windows.Forms.Button();
this.cbForceDefault = new System.Windows.Forms.CheckBox();
this.walls = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
this.floor = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
this.ceiling = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
this.SuspendLayout();
//
// labelWalls
//
this.labelWalls.Location = new System.Drawing.Point(194, 8);
this.labelWalls.Name = "labelWalls";
this.labelWalls.Size = new System.Drawing.Size(83, 16);
this.labelWalls.TabIndex = 11;
this.labelWalls.Text = "Walls";
this.labelWalls.TextAlign = System.Drawing.ContentAlignment.TopCenter;
//
// labelFloor
//
this.labelFloor.Location = new System.Drawing.Point(103, 8);
this.labelFloor.Name = "labelFloor";
this.labelFloor.Size = new System.Drawing.Size(83, 16);
this.labelFloor.TabIndex = 8;
this.labelFloor.Text = "Floor";
this.labelFloor.TextAlign = System.Drawing.ContentAlignment.TopCenter;
//
// labelCeiling
//
this.labelCeiling.Location = new System.Drawing.Point(12, 8);
this.labelCeiling.Name = "labelCeiling";
this.labelCeiling.Size = new System.Drawing.Size(83, 16);
this.labelCeiling.TabIndex = 7;
this.labelCeiling.Text = "Ceiling";
this.labelCeiling.TextAlign = System.Drawing.ContentAlignment.TopCenter;
//
// bApply
//
this.bApply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.bApply.Location = new System.Drawing.Point(103, 185);
this.bApply.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.bApply.Name = "bApply";
this.bApply.Size = new System.Drawing.Size(174, 26);
this.bApply.TabIndex = 0;
this.bApply.Text = "OK";
this.bApply.UseVisualStyleBackColor = true;
this.bApply.Click += new System.EventHandler(this.bApply_Click);
//
// bCancel
//
this.bCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.bCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.bCancel.Location = new System.Drawing.Point(12, 185);
this.bCancel.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.bCancel.Name = "bCancel";
this.bCancel.Size = new System.Drawing.Size(83, 26);
this.bCancel.TabIndex = 1;
this.bCancel.Text = "Cancel";
this.bCancel.UseVisualStyleBackColor = true;
this.bCancel.Click += new System.EventHandler(this.bCancel_Click);
//
// cbForceDefault
//
this.cbForceDefault.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.cbForceDefault.AutoSize = true;
this.cbForceDefault.Location = new System.Drawing.Point(13, 147);
this.cbForceDefault.Name = "cbForceDefault";
this.cbForceDefault.Size = new System.Drawing.Size(252, 32);
this.cbForceDefault.TabIndex = 13;
this.cbForceDefault.Text = "Use these textures instead of textures from \r\nneighbouring geometry when creating" +
" a sector\r\n";
this.cbForceDefault.UseVisualStyleBackColor = true;
this.cbForceDefault.CheckedChanged += new System.EventHandler(this.cbForceDefault_CheckedChanged);
//
// walls
//
this.walls.Location = new System.Drawing.Point(194, 27);
this.walls.Name = "walls";
this.walls.Required = false;
this.walls.Size = new System.Drawing.Size(83, 112);
this.walls.TabIndex = 12;
this.walls.TextureName = "";
//
// floor
//
this.floor.Location = new System.Drawing.Point(103, 27);
this.floor.Name = "floor";
this.floor.Required = false;
this.floor.Size = new System.Drawing.Size(83, 112);
this.floor.TabIndex = 10;
this.floor.TextureName = "";
//
// ceiling
//
this.ceiling.Location = new System.Drawing.Point(12, 27);
this.ceiling.Name = "ceiling";
this.ceiling.Required = false;
this.ceiling.Size = new System.Drawing.Size(83, 112);
this.ceiling.TabIndex = 9;
this.ceiling.TextureName = "";
//
// SetCurrentTexturesForm
//
this.AcceptButton = this.bApply;
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.CancelButton = this.bCancel;
this.ClientSize = new System.Drawing.Size(289, 216);
this.Controls.Add(this.cbForceDefault);
this.Controls.Add(this.walls);
this.Controls.Add(this.floor);
this.Controls.Add(this.ceiling);
this.Controls.Add(this.labelWalls);
this.Controls.Add(this.labelFloor);
this.Controls.Add(this.labelCeiling);
this.Controls.Add(this.bCancel);
this.Controls.Add(this.bApply);
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.FixedToolWindow;
this.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
this.Name = "SetCurrentTexturesForm";
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
this.Text = "Default textures:";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Button bApply;
private System.Windows.Forms.Button bCancel;
private CodeImp.DoomBuilder.Controls.TextureSelectorControl walls;
private CodeImp.DoomBuilder.Controls.TextureSelectorControl floor;
private CodeImp.DoomBuilder.Controls.TextureSelectorControl ceiling;
private System.Windows.Forms.CheckBox cbForceDefault;
private System.Windows.Forms.Label labelWalls;
private System.Windows.Forms.Label labelFloor;
private System.Windows.Forms.Label labelCeiling;
}
}

View file

@ -1,46 +0,0 @@
using System;
using System.Drawing;
using System.Windows.Forms;
namespace CodeImp.DoomBuilder.Windows
{
public partial class SetCurrentTexturesForm : Form
{
public SetCurrentTexturesForm() {
this.Location = new Point(Cursor.Position.X - this.Width / 2, Cursor.Position.Y - this.Height / 2);
InitializeComponent();
// Initialize image selectors
ceiling.Initialize();
floor.Initialize();
walls.Initialize();
ceiling.TextureName = General.Settings.DefaultCeilingTexture;
floor.TextureName = General.Settings.DefaultFloorTexture;
walls.TextureName = General.Settings.DefaultTexture;
cbForceDefault.Checked = General.Settings.GZForceDefaultTextures;
cbForceDefault_CheckedChanged(this, EventArgs.Empty);
}
private void bCancel_Click(object sender, EventArgs e) {
Close();
}
private void bApply_Click(object sender, EventArgs e) {
General.Settings.DefaultCeilingTexture = string.IsNullOrEmpty(ceiling.TextureName) ? "-" : ceiling.TextureName;
General.Settings.DefaultFloorTexture = string.IsNullOrEmpty(floor.TextureName) ? "-" : floor.TextureName;
General.Settings.DefaultTexture = string.IsNullOrEmpty(walls.TextureName) ? "-" : walls.TextureName;
General.Settings.GZForceDefaultTextures = cbForceDefault.Checked;
Close();
}
private void cbForceDefault_CheckedChanged(object sender, EventArgs e) {
ceiling.Enabled = cbForceDefault.Checked;
floor.Enabled = cbForceDefault.Checked;
walls.Enabled = cbForceDefault.Checked;
labelCeiling.Enabled = cbForceDefault.Checked;
labelFloor.Enabled = cbForceDefault.Checked;
labelWalls.Enabled = cbForceDefault.Checked;
}
}
}

View file

@ -1,120 +0,0 @@
<?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>
</root>

View file

@ -87,6 +87,7 @@ namespace CodeImp.DoomBuilder.Windows
this.tvTextureSets.Size = new System.Drawing.Size(200, 576);
this.tvTextureSets.TabIndex = 4;
this.tvTextureSets.TabStop = false;
this.tvTextureSets.KeyUp += new System.Windows.Forms.KeyEventHandler(this.tvTextureSets_KeyUp);
this.tvTextureSets.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.tvTextureSets_NodeMouseClick);
//
// browser

View file

@ -448,5 +448,13 @@ namespace CodeImp.DoomBuilder.Windows
selectedset = e.Node;
FillImagesList();
}
//mxd
private void tvTextureSets_KeyUp(object sender, KeyEventArgs e) {
if(tvTextureSets.SelectedNode != selectedset) {
selectedset = tvTextureSets.SelectedNode;
FillImagesList();
}
}
}
}

View file

@ -125,7 +125,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAc
DwAAAk1TRnQBSQFMAgEBBwEAAcwBAAHMAQABEAEAARYBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
DwAAAk1TRnQBSQFMAgEBBwEAAdQBAAHUAQABEAEAARYBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAASwDAAEBAQABCAYAAQsYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA

View file

@ -694,6 +694,7 @@ namespace CodeImp.DoomBuilder.Windows
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Edit Thing";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ThingEditForm_FormClosing);
this.HelpRequested += new System.Windows.Forms.HelpEventHandler(this.ThingEditForm_HelpRequested);
groupBox1.ResumeLayout(false);
groupBox2.ResumeLayout(false);

View file

@ -57,6 +57,10 @@ namespace CodeImp.DoomBuilder.Windows
private List<ThingProperties> thingProps; //mxd
//mxd. Window setup stuff
private static Point location = Point.Empty;
private static int activeTab;
private struct ThingProperties //mxd
{
public int Type;
@ -83,6 +87,17 @@ namespace CodeImp.DoomBuilder.Windows
{
// Initialize
InitializeComponent();
//mxd. Widow setup
if(location != Point.Empty) {
this.StartPosition = FormStartPosition.Manual;
this.Location = location;
if(activeTab > 0 && activeTab < tabs.TabCount) {
tabs.SelectTab(activeTab);
} else {
activeTab = 0;
}
}
// Fill flags list
foreach(KeyValuePair<string, string> tf in General.Map.Config.ThingFlags)
@ -557,6 +572,12 @@ namespace CodeImp.DoomBuilder.Windows
fieldslist.Focus();
}
//mxd
private void ThingEditForm_FormClosing(object sender, FormClosingEventArgs e) {
location = this.Location;
activeTab = tabs.SelectedIndex;
}
// Help
private void ThingEditForm_HelpRequested(object sender, HelpEventArgs hlpevent)
{
@ -693,5 +714,6 @@ namespace CodeImp.DoomBuilder.Windows
}
#endregion
}
}

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="groupBox1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="groupBox1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="groupBox2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="label7.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="label7.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="tabeffects.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="actiongroup.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="hexenpanel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="arg1label.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="arg0label.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="arg2label.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="doompanel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="groupBox3.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="tabcustom.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="fieldslist.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
</root>

View file

@ -302,6 +302,7 @@ namespace CodeImp.DoomBuilder.Windows
this.Opacity = 0;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Edit Vertex";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.VertexEditForm_FormClosing);
this.HelpRequested += new System.Windows.Forms.HelpEventHandler(this.VertexEditForm_HelpRequested);
tabproperties.ResumeLayout(false);
this.groupposition.ResumeLayout(false);

View file

@ -22,6 +22,7 @@ using System.Windows.Forms;
using CodeImp.DoomBuilder.Geometry;
using CodeImp.DoomBuilder.Map;
using CodeImp.DoomBuilder.GZBuilder.Tools;
using System.Drawing;
#endregion
@ -47,6 +48,10 @@ namespace CodeImp.DoomBuilder.Windows
private bool blockUpdate; //mxd
private List<VertexProperties> vertexProps; //mxd
//mxd. Window setup stuff
private static Point location = Point.Empty;
private static int activeTab;
private struct VertexProperties //mxd
{
public float X;
@ -71,6 +76,17 @@ namespace CodeImp.DoomBuilder.Windows
{
InitializeComponent();
//mxd. Widow setup
if(location != Point.Empty) {
this.StartPosition = FormStartPosition.Manual;
this.Location = location;
if(activeTab > 0 && activeTab < tabs.TabCount) {
tabs.SelectTab(activeTab);
} else {
activeTab = 0;
}
}
if(General.Map.FormatInterface.HasCustomFields) { //mxd
// Initialize custom fields editor
fieldslist.Setup("vertex");
@ -322,6 +338,12 @@ namespace CodeImp.DoomBuilder.Windows
fieldslist.Focus();
}
//mxd
private void VertexEditForm_FormClosing(object sender, FormClosingEventArgs e) {
location = this.Location;
activeTab = tabs.SelectedIndex;
}
// Help requested
private void VertexEditForm_HelpRequested(object sender, HelpEventArgs hlpevent)
{

View file

@ -1,162 +1,162 @@
<?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="tabproperties.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="tabproperties.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="groupposition.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.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="label6.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
<value>False</value>
</metadata>
<metadata name="tabs.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="tabcustom.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<value>True</value>
</metadata>
<metadata name="fieldslist.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="apply.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

@ -276,6 +276,12 @@
<Compile Include="Interface\EditSelectionPanel.Designer.cs">
<DependentUpon>EditSelectionPanel.cs</DependentUpon>
</Compile>
<Compile Include="Interface\SectorDrawingOptionsPanel.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Interface\SectorDrawingOptionsPanel.Designer.cs">
<DependentUpon>SectorDrawingOptionsPanel.cs</DependentUpon>
</Compile>
<Compile Include="Interface\WavefrontSettingsForm.cs">
<SubType>Form</SubType>
</Compile>
@ -386,6 +392,9 @@
<EmbeddedResource Include="Resources\FloorAlign.png" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Interface\SectorDrawingOptionsPanel.resx">
<DependentUpon>SectorDrawingOptionsPanel.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Interface\WavefrontSettingsForm.resx">
<DependentUpon>WavefrontSettingsForm.cs</DependentUpon>
</EmbeddedResource>

View file

@ -180,7 +180,7 @@ namespace CodeImp.DoomBuilder.BuilderModes.ClassicModes
}
// Make the drawing
if(!Tools.DrawLines(verts, General.Settings.GZForceDefaultTextures, BuilderPlug.Me.AutoAlignTextureOffsetsOnCreate)) //mxd
if(!Tools.DrawLines(verts, true, BuilderPlug.Me.AutoAlignTextureOffsetsOnCreate)) //mxd
{
// Drawing failed
// NOTE: I have to call this twice, because the first time only cancels this volatile mode

View file

@ -471,7 +471,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
General.Interface.DisplayStatus(StatusType.Action, "Created " + a + word + " drawing.");
// Make the drawing
if(!Tools.DrawLines(points, General.Settings.GZForceDefaultTextures, BuilderPlug.Me.AutoAlignTextureOffsetsOnCreate)) //mxd
if(!Tools.DrawLines(points, true, BuilderPlug.Me.AutoAlignTextureOffsetsOnCreate)) //mxd
{
// Drawing failed
// NOTE: I have to call this twice, because the first time only cancels this volatile mode

View file

@ -261,7 +261,7 @@ namespace CodeImp.DoomBuilder.BuilderModes.ClassicModes
General.Interface.DisplayStatus(StatusType.Action, "Created " + a + word + " " + shapeName+".");
// Make the drawing
if (!Tools.DrawLines(points, General.Settings.GZForceDefaultTextures, BuilderPlug.Me.AutoAlignTextureOffsetsOnCreate)) {
if (!Tools.DrawLines(points, true, BuilderPlug.Me.AutoAlignTextureOffsetsOnCreate)) {
// Drawing failed
// NOTE: I have to call this twice, because the first time only cancels this volatile mode
General.Map.UndoRedo.WithdrawUndo();

View file

@ -428,7 +428,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
private void vertexEditForm_OnValuesChanged(object sender, EventArgs e) {
// Update entire display
General.Map.Map.Update();
//General.Map.Renderer2D.Update3dFloorIndicators();
General.Interface.RedrawDisplay();
}

View file

@ -91,9 +91,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
General.Settings.FindDefaultDrawSettings();
switch (part)
{
case SidedefPart.Upper: side.SetTextureHigh(General.Settings.DefaultTexture); break;
case SidedefPart.Middle: side.SetTextureMid(General.Settings.DefaultTexture); break;
case SidedefPart.Lower: side.SetTextureLow(General.Settings.DefaultTexture); break;
case SidedefPart.Upper: side.SetTextureHigh(General.Map.Options.DefaultWallTexture); break;
case SidedefPart.Middle: side.SetTextureMid(General.Map.Options.DefaultWallTexture); break;
case SidedefPart.Lower: side.SetTextureLow(General.Map.Options.DefaultWallTexture); break;
}
General.Map.Map.Update();

View file

@ -79,9 +79,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
General.Settings.FindDefaultDrawSettings();
if(ceiling)
sector.SetCeilTexture(General.Settings.DefaultCeilingTexture);
sector.SetCeilTexture(General.Map.Options.DefaultCeilingTexture);
else
sector.SetFloorTexture(General.Settings.DefaultFloorTexture);
sector.SetFloorTexture(General.Map.Options.DefaultFloorTexture);
General.Map.Map.Update();
return true;

View file

@ -105,9 +105,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
General.Settings.FindDefaultDrawSettings();
switch(part)
{
case SidedefPart.Upper: side.SetTextureHigh(General.Settings.DefaultTexture); break;
case SidedefPart.Middle: side.SetTextureMid(General.Settings.DefaultTexture); break;
case SidedefPart.Lower: side.SetTextureLow(General.Settings.DefaultTexture); break;
case SidedefPart.Upper: side.SetTextureHigh(General.Map.Options.DefaultWallTexture); break;
case SidedefPart.Middle: side.SetTextureMid(General.Map.Options.DefaultWallTexture); break;
case SidedefPart.Lower: side.SetTextureLow(General.Map.Options.DefaultWallTexture); break;
}
General.Map.Map.Update();

View file

@ -76,6 +76,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
// Dockers
private UndoRedoPanel undoredopanel;
private Docker undoredodocker;
private SectorDrawingOptionsPanel drawingOverridesPanel; //mxd
private Docker drawingOverridesDocker; //mxd
//mxd
private ToolStripMenuItem exportToObjMenuItem;
@ -219,6 +221,10 @@ namespace CodeImp.DoomBuilder.BuilderModes
undoredodocker = new Docker("undoredo", "Undo / Redo", undoredopanel);
General.Interface.AddDocker(undoredodocker);
//mxd. Load Sector Drawing Overrides docker
drawingOverridesPanel = new SectorDrawingOptionsPanel();
drawingOverridesDocker = new Docker("drawingoverrides", "Draw Settings", drawingOverridesPanel);
//mxd. Export to .obj
exportToObjMenuItem = new ToolStripMenuItem("Export to .obj...");
exportToObjMenuItem.Tag = "exporttoobj";
@ -279,6 +285,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
{
// Clean up
General.Interface.RemoveDocker(undoredodocker);
General.Interface.RemoveDocker(drawingOverridesDocker); //mxd
//mxd
General.Interface.RemoveMenu(exportToObjMenuItem);
@ -454,6 +461,10 @@ namespace CodeImp.DoomBuilder.BuilderModes
undoredopanel.SetBeginDescription("New Map");
undoredopanel.UpdateList();
//mxd
General.Interface.AddDocker(drawingOverridesDocker);
drawingOverridesPanel.Setup();
//mxd
exportToObjMenuItem.Enabled = true;
snapModeMenuItem.Enabled = true;
@ -470,6 +481,10 @@ namespace CodeImp.DoomBuilder.BuilderModes
undoredopanel.SetBeginDescription("Opened Map");
undoredopanel.UpdateList();
//mxd
General.Interface.AddDocker(drawingOverridesDocker);
drawingOverridesPanel.Setup();
//mxd
exportToObjMenuItem.Enabled = true;
snapModeMenuItem.Enabled = true;
@ -487,6 +502,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
base.OnMapCloseEnd();
undoredopanel.UpdateList();
//mxd
General.Interface.RemoveDocker(drawingOverridesDocker);
//mxd
exportToObjMenuItem.Enabled = false;
snapModeMenuItem.Enabled = false;

View file

@ -59,21 +59,11 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.label10 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.heightbysidedef = new System.Windows.Forms.ComboBox();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.defaultbrightness = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.label11 = new System.Windows.Forms.Label();
this.defaultceilheight = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.label12 = new System.Windows.Forms.Label();
this.defaultfloorheight = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.label13 = new System.Windows.Forms.Label();
this.label14 = new System.Windows.Forms.Label();
this.label15 = new System.Windows.Forms.Label();
this.tabs.SuspendLayout();
this.taboptions.SuspendLayout();
this.groupBox3.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox1.SuspendLayout();
this.groupBox4.SuspendLayout();
this.SuspendLayout();
//
// tabs
@ -91,7 +81,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
//
// taboptions
//
this.taboptions.Controls.Add(this.groupBox4);
this.taboptions.Controls.Add(this.groupBox3);
this.taboptions.Controls.Add(this.groupBox2);
this.taboptions.Controls.Add(this.groupBox1);
@ -239,7 +228,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.groupBox2.Controls.Add(this.label7);
this.groupBox2.Location = new System.Drawing.Point(6, 104);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(272, 151);
this.groupBox2.Size = new System.Drawing.Size(272, 287);
this.groupBox2.TabIndex = 17;
this.groupBox2.TabStop = false;
this.groupBox2.Text = " Ranges ";
@ -251,7 +240,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.splitlinedefsrange.AllowRelative = false;
this.splitlinedefsrange.ButtonStep = 5;
this.splitlinedefsrange.ButtonStepFloat = 1F;
this.splitlinedefsrange.Location = new System.Drawing.Point(156, 111);
this.splitlinedefsrange.Location = new System.Drawing.Point(156, 117);
this.splitlinedefsrange.Name = "splitlinedefsrange";
this.splitlinedefsrange.Size = new System.Drawing.Size(59, 24);
this.splitlinedefsrange.StepValues = null;
@ -264,7 +253,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.stitchrange.AllowRelative = false;
this.stitchrange.ButtonStep = 5;
this.stitchrange.ButtonStepFloat = 1F;
this.stitchrange.Location = new System.Drawing.Point(156, 81);
this.stitchrange.Location = new System.Drawing.Point(156, 85);
this.stitchrange.Name = "stitchrange";
this.stitchrange.Size = new System.Drawing.Size(59, 24);
this.stitchrange.StepValues = null;
@ -277,7 +266,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.highlightthingsrange.AllowRelative = false;
this.highlightthingsrange.ButtonStep = 5;
this.highlightthingsrange.ButtonStepFloat = 1F;
this.highlightthingsrange.Location = new System.Drawing.Point(156, 51);
this.highlightthingsrange.Location = new System.Drawing.Point(156, 53);
this.highlightthingsrange.Name = "highlightthingsrange";
this.highlightthingsrange.Size = new System.Drawing.Size(59, 24);
this.highlightthingsrange.StepValues = null;
@ -299,7 +288,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// label8
//
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(221, 116);
this.label8.Location = new System.Drawing.Point(221, 122);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(35, 14);
this.label8.TabIndex = 15;
@ -308,7 +297,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(33, 86);
this.label2.Location = new System.Drawing.Point(33, 90);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(117, 14);
this.label2.TabIndex = 4;
@ -318,7 +307,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(221, 86);
this.label3.Location = new System.Drawing.Point(221, 90);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(35, 14);
this.label3.TabIndex = 6;
@ -327,7 +316,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// label9
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(47, 115);
this.label9.Location = new System.Drawing.Point(47, 121);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(103, 14);
this.label9.TabIndex = 13;
@ -347,7 +336,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(221, 55);
this.label6.Location = new System.Drawing.Point(221, 57);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(35, 14);
this.label6.TabIndex = 12;
@ -365,7 +354,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(36, 56);
this.label7.Location = new System.Drawing.Point(36, 58);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(114, 14);
this.label7.TabIndex = 10;
@ -432,110 +421,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.heightbysidedef.Size = new System.Drawing.Size(309, 22);
this.heightbysidedef.TabIndex = 0;
//
// groupBox4
//
this.groupBox4.Controls.Add(this.label15);
this.groupBox4.Controls.Add(this.label14);
this.groupBox4.Controls.Add(this.defaultfloorheight);
this.groupBox4.Controls.Add(this.label13);
this.groupBox4.Controls.Add(this.defaultceilheight);
this.groupBox4.Controls.Add(this.label12);
this.groupBox4.Controls.Add(this.defaultbrightness);
this.groupBox4.Controls.Add(this.label11);
this.groupBox4.Location = new System.Drawing.Point(6, 261);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Size = new System.Drawing.Size(272, 130);
this.groupBox4.TabIndex = 19;
this.groupBox4.TabStop = false;
this.groupBox4.Text = " Default sector values";
//
// defaultbrightness
//
this.defaultbrightness.AllowDecimal = false;
this.defaultbrightness.AllowNegative = false;
this.defaultbrightness.AllowRelative = false;
this.defaultbrightness.ButtonStep = 5;
this.defaultbrightness.ButtonStepFloat = 1F;
this.defaultbrightness.Location = new System.Drawing.Point(156, 23);
this.defaultbrightness.Name = "defaultbrightness";
this.defaultbrightness.Size = new System.Drawing.Size(59, 24);
this.defaultbrightness.StepValues = null;
this.defaultbrightness.TabIndex = 21;
//
// label11
//
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(52, 28);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(98, 14);
this.label11.TabIndex = 20;
this.label11.Text = "Default brightness:";
this.label11.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// defaultceilheight
//
this.defaultceilheight.AllowDecimal = false;
this.defaultceilheight.AllowNegative = false;
this.defaultceilheight.AllowRelative = false;
this.defaultceilheight.ButtonStep = 5;
this.defaultceilheight.ButtonStepFloat = 1F;
this.defaultceilheight.Location = new System.Drawing.Point(156, 53);
this.defaultceilheight.Name = "defaultceilheight";
this.defaultceilheight.Size = new System.Drawing.Size(59, 24);
this.defaultceilheight.StepValues = null;
this.defaultceilheight.TabIndex = 23;
//
// label12
//
this.label12.AutoSize = true;
this.label12.Location = new System.Drawing.Point(41, 58);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(109, 14);
this.label12.TabIndex = 22;
this.label12.Text = "Default ceiling height:";
this.label12.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// defaultfloorheight
//
this.defaultfloorheight.AllowDecimal = false;
this.defaultfloorheight.AllowNegative = false;
this.defaultfloorheight.AllowRelative = false;
this.defaultfloorheight.ButtonStep = 5;
this.defaultfloorheight.ButtonStepFloat = 1F;
this.defaultfloorheight.Location = new System.Drawing.Point(156, 83);
this.defaultfloorheight.Name = "defaultfloorheight";
this.defaultfloorheight.Size = new System.Drawing.Size(59, 24);
this.defaultfloorheight.StepValues = null;
this.defaultfloorheight.TabIndex = 25;
//
// label13
//
this.label13.AutoSize = true;
this.label13.Location = new System.Drawing.Point(49, 88);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(101, 14);
this.label13.TabIndex = 24;
this.label13.Text = "Default floor height:";
this.label13.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// label14
//
this.label14.AutoSize = true;
this.label14.Location = new System.Drawing.Point(221, 58);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(27, 14);
this.label14.TabIndex = 20;
this.label14.Text = "m.u.";
//
// label15
//
this.label15.AutoSize = true;
this.label15.Location = new System.Drawing.Point(221, 88);
this.label15.Name = "label15";
this.label15.Size = new System.Drawing.Size(27, 14);
this.label15.TabIndex = 26;
this.label15.Text = "m.u.";
//
// PreferencesForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
@ -556,8 +441,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.groupBox2.PerformLayout();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.groupBox4.ResumeLayout(false);
this.groupBox4.PerformLayout();
this.ResumeLayout(false);
}
@ -595,14 +478,5 @@ namespace CodeImp.DoomBuilder.BuilderModes
private System.Windows.Forms.CheckBox autoalignDraggedSidedefsOffsetX;
private System.Windows.Forms.CheckBox dontMoveGeometryOutsideBounds;
private System.Windows.Forms.CheckBox syncSelection;
private System.Windows.Forms.GroupBox groupBox4;
private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox defaultbrightness;
private System.Windows.Forms.Label label11;
private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox defaultfloorheight;
private System.Windows.Forms.Label label13;
private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox defaultceilheight;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.Label label15;
private System.Windows.Forms.Label label14;
}
}

View file

@ -27,8 +27,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
{
#region ================== Variables
//private PreferencesController controller;
#endregion
#region ================== Properties
@ -59,9 +57,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
autoalignDraggedSidedefsOffsetX.Checked = BuilderPlug.Me.AutoAlignTextureOffsetsOnDrag; //mxd
dontMoveGeometryOutsideBounds.Checked = BuilderPlug.Me.DontMoveGeometryOutsideMapBoundary; //mxd
syncSelection.Checked = BuilderPlug.Me.SyncSelection; //mxd
defaultbrightness.Text = General.Settings.DefaultBrightness.ToString(); //mxd
defaultceilheight.Text = General.Settings.DefaultCeilingHeight.ToString();//mxd
defaultfloorheight.Text = General.Settings.DefaultFloorHeight.ToString(); //mxd
}
#endregion
@ -88,16 +83,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
General.Settings.WritePluginSetting("autoaligntextureoffsetsondrag", autoalignDraggedSidedefsOffsetX.Checked);//mxd
General.Settings.WritePluginSetting("dontmovegeometryoutsidemapboundary", dontMoveGeometryOutsideBounds.Checked);//mxd
General.Settings.WritePluginSetting("syncselection", syncSelection.Checked);//mxd
//default sector values
General.Settings.DefaultBrightness = General.Clamp(defaultbrightness.GetResult(192), 0, 255);
int ceilHeight = defaultceilheight.GetResult(128);
int floorHeight = defaultfloorheight.GetResult(0);
if(ceilHeight < floorHeight) General.Swap(ref ceilHeight, ref floorHeight);
General.Settings.DefaultCeilingHeight = ceilHeight;
General.Settings.DefaultFloorHeight = floorHeight;
}
// When Cancel is pressed on the preferences dialog
@ -112,8 +97,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
// This sets up the form with the preferences controller
public void Setup(PreferencesController controller)
{
//this.controller = controller;
// Add tab pages
foreach(TabPage p in tabs.TabPages)
{

View file

@ -0,0 +1,275 @@
namespace CodeImp.DoomBuilder.BuilderModes.Interface
{
partial class SectorDrawingOptionsPanel
{
/// <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.groupBox1 = new System.Windows.Forms.GroupBox();
this.cbOverrideCeilingTexture = new System.Windows.Forms.CheckBox();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.cbOverrideFloorTexture = new System.Windows.Forms.CheckBox();
this.cbOverrideWallTexture = new System.Windows.Forms.CheckBox();
this.cbFloorHeight = new System.Windows.Forms.CheckBox();
this.cbCeilHeight = new System.Windows.Forms.CheckBox();
this.cbBrightness = new System.Windows.Forms.CheckBox();
this.label14 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.brightness = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.floorHeight = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.ceilHeight = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.walls = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
this.floor = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
this.ceiling = new CodeImp.DoomBuilder.Controls.TextureSelectorControl();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.SuspendLayout();
//
// groupBox1
//
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox1.Controls.Add(this.cbOverrideWallTexture);
this.groupBox1.Controls.Add(this.cbOverrideFloorTexture);
this.groupBox1.Controls.Add(this.walls);
this.groupBox1.Controls.Add(this.cbOverrideCeilingTexture);
this.groupBox1.Controls.Add(this.floor);
this.groupBox1.Controls.Add(this.ceiling);
this.groupBox1.Location = new System.Drawing.Point(3, 3);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(243, 138);
this.groupBox1.TabIndex = 0;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Texture overrides:";
//
// cbOverrideCeilingTexture
//
this.cbOverrideCeilingTexture.AutoSize = true;
this.cbOverrideCeilingTexture.Location = new System.Drawing.Point(7, 19);
this.cbOverrideCeilingTexture.Name = "cbOverrideCeilingTexture";
this.cbOverrideCeilingTexture.Size = new System.Drawing.Size(57, 17);
this.cbOverrideCeilingTexture.TabIndex = 20;
this.cbOverrideCeilingTexture.Text = "Ceiling";
this.cbOverrideCeilingTexture.UseVisualStyleBackColor = true;
this.cbOverrideCeilingTexture.CheckedChanged += new System.EventHandler(this.cbOverrideCeilingTexture_CheckedChanged);
//
// groupBox2
//
this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox2.Controls.Add(this.label1);
this.groupBox2.Controls.Add(this.label14);
this.groupBox2.Controls.Add(this.cbBrightness);
this.groupBox2.Controls.Add(this.brightness);
this.groupBox2.Controls.Add(this.floorHeight);
this.groupBox2.Controls.Add(this.cbCeilHeight);
this.groupBox2.Controls.Add(this.cbFloorHeight);
this.groupBox2.Controls.Add(this.ceilHeight);
this.groupBox2.Location = new System.Drawing.Point(3, 147);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(243, 118);
this.groupBox2.TabIndex = 21;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "Geometry overrides:";
//
// cbOverrideFloorTexture
//
this.cbOverrideFloorTexture.AutoSize = true;
this.cbOverrideFloorTexture.Location = new System.Drawing.Point(88, 19);
this.cbOverrideFloorTexture.Name = "cbOverrideFloorTexture";
this.cbOverrideFloorTexture.Size = new System.Drawing.Size(49, 17);
this.cbOverrideFloorTexture.TabIndex = 21;
this.cbOverrideFloorTexture.Text = "Floor";
this.cbOverrideFloorTexture.UseVisualStyleBackColor = true;
this.cbOverrideFloorTexture.CheckedChanged += new System.EventHandler(this.cbOverrideFloorTexture_CheckedChanged);
//
// cbOverrideWallTexture
//
this.cbOverrideWallTexture.AutoSize = true;
this.cbOverrideWallTexture.Location = new System.Drawing.Point(170, 19);
this.cbOverrideWallTexture.Name = "cbOverrideWallTexture";
this.cbOverrideWallTexture.Size = new System.Drawing.Size(52, 17);
this.cbOverrideWallTexture.TabIndex = 22;
this.cbOverrideWallTexture.Text = "Walls";
this.cbOverrideWallTexture.UseVisualStyleBackColor = true;
this.cbOverrideWallTexture.CheckedChanged += new System.EventHandler(this.cbOverrideWallTexture_CheckedChanged);
//
// cbFloorHeight
//
this.cbFloorHeight.AutoSize = true;
this.cbFloorHeight.Location = new System.Drawing.Point(7, 52);
this.cbFloorHeight.Name = "cbFloorHeight";
this.cbFloorHeight.Size = new System.Drawing.Size(84, 17);
this.cbFloorHeight.TabIndex = 23;
this.cbFloorHeight.Text = "Floor height:";
this.cbFloorHeight.UseVisualStyleBackColor = true;
this.cbFloorHeight.CheckedChanged += new System.EventHandler(this.cbFloorHeight_CheckedChanged);
//
// cbCeilHeight
//
this.cbCeilHeight.AutoSize = true;
this.cbCeilHeight.Location = new System.Drawing.Point(7, 23);
this.cbCeilHeight.Name = "cbCeilHeight";
this.cbCeilHeight.Size = new System.Drawing.Size(92, 17);
this.cbCeilHeight.TabIndex = 24;
this.cbCeilHeight.Text = "Ceiling height:";
this.cbCeilHeight.UseVisualStyleBackColor = true;
this.cbCeilHeight.CheckedChanged += new System.EventHandler(this.cbCeilHeight_CheckedChanged);
//
// cbBrightness
//
this.cbBrightness.AutoSize = true;
this.cbBrightness.Location = new System.Drawing.Point(7, 82);
this.cbBrightness.Name = "cbBrightness";
this.cbBrightness.Size = new System.Drawing.Size(78, 17);
this.cbBrightness.TabIndex = 27;
this.cbBrightness.Text = "Brightness:";
this.cbBrightness.UseVisualStyleBackColor = true;
this.cbBrightness.CheckedChanged += new System.EventHandler(this.cbBrightness_CheckedChanged);
//
// label14
//
this.label14.AutoSize = true;
this.label14.Location = new System.Drawing.Point(182, 24);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(27, 13);
this.label14.TabIndex = 28;
this.label14.Text = "m.u.";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(182, 53);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(27, 13);
this.label1.TabIndex = 29;
this.label1.Text = "m.u.";
//
// brightness
//
this.brightness.AllowDecimal = false;
this.brightness.AllowNegative = false;
this.brightness.AllowRelative = false;
this.brightness.ButtonStep = 16;
this.brightness.ButtonStepFloat = 1F;
this.brightness.Location = new System.Drawing.Point(105, 78);
this.brightness.Name = "brightness";
this.brightness.Size = new System.Drawing.Size(72, 24);
this.brightness.StepValues = null;
this.brightness.TabIndex = 26;
this.brightness.WhenTextChanged += new System.EventHandler(this.brightness_WhenTextChanged);
//
// floorHeight
//
this.floorHeight.AllowDecimal = false;
this.floorHeight.AllowNegative = true;
this.floorHeight.AllowRelative = false;
this.floorHeight.ButtonStep = 16;
this.floorHeight.ButtonStepFloat = 1F;
this.floorHeight.Location = new System.Drawing.Point(105, 48);
this.floorHeight.Name = "floorHeight";
this.floorHeight.Size = new System.Drawing.Size(72, 24);
this.floorHeight.StepValues = null;
this.floorHeight.TabIndex = 25;
this.floorHeight.WhenTextChanged += new System.EventHandler(this.floorHeight_WhenTextChanged);
//
// ceilHeight
//
this.ceilHeight.AllowDecimal = false;
this.ceilHeight.AllowNegative = true;
this.ceilHeight.AllowRelative = false;
this.ceilHeight.ButtonStep = 16;
this.ceilHeight.ButtonStepFloat = 1F;
this.ceilHeight.Location = new System.Drawing.Point(105, 18);
this.ceilHeight.Name = "ceilHeight";
this.ceilHeight.Size = new System.Drawing.Size(72, 24);
this.ceilHeight.StepValues = null;
this.ceilHeight.TabIndex = 11;
this.ceilHeight.WhenTextChanged += new System.EventHandler(this.ceilHeight_WhenTextChanged);
//
// walls
//
this.walls.Location = new System.Drawing.Point(168, 41);
this.walls.Name = "walls";
this.walls.Required = false;
this.walls.Size = new System.Drawing.Size(68, 90);
this.walls.TabIndex = 19;
this.walls.TextureName = "";
this.walls.OnValueChanged += new System.EventHandler(this.walls_OnValueChanged);
//
// floor
//
this.floor.Location = new System.Drawing.Point(87, 41);
this.floor.Name = "floor";
this.floor.Required = false;
this.floor.Size = new System.Drawing.Size(68, 90);
this.floor.TabIndex = 17;
this.floor.TextureName = "";
this.floor.OnValueChanged += new System.EventHandler(this.floor_OnValueChanged);
//
// ceiling
//
this.ceiling.Location = new System.Drawing.Point(6, 41);
this.ceiling.Name = "ceiling";
this.ceiling.Required = false;
this.ceiling.Size = new System.Drawing.Size(68, 90);
this.ceiling.TabIndex = 16;
this.ceiling.TextureName = "";
this.ceiling.OnValueChanged += new System.EventHandler(this.ceiling_OnValueChanged);
//
// SectorDrawingOptionsPanel
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1);
this.Name = "SectorDrawingOptionsPanel";
this.Size = new System.Drawing.Size(249, 600);
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.CheckBox cbOverrideCeilingTexture;
private CodeImp.DoomBuilder.Controls.TextureSelectorControl walls;
private CodeImp.DoomBuilder.Controls.TextureSelectorControl floor;
private CodeImp.DoomBuilder.Controls.TextureSelectorControl ceiling;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.CheckBox cbOverrideWallTexture;
private System.Windows.Forms.CheckBox cbOverrideFloorTexture;
private System.Windows.Forms.CheckBox cbBrightness;
private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox brightness;
private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox floorHeight;
private System.Windows.Forms.CheckBox cbCeilHeight;
private System.Windows.Forms.CheckBox cbFloorHeight;
private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox ceilHeight;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label14;
}
}

View file

@ -0,0 +1,113 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace CodeImp.DoomBuilder.BuilderModes.Interface
{
public partial class SectorDrawingOptionsPanel : UserControl
{
#region Constructor / Setup
public SectorDrawingOptionsPanel() {
InitializeComponent();
}
public void Setup() {
ceilHeight.Text = General.Map.Options.DefaultCeilingHeight.ToString();
floorHeight.Text = General.Map.Options.DefaultFloorHeight.ToString();
brightness.StepValues = General.Map.Config.BrightnessLevels;
brightness.Text = General.Map.Options.DefaultBrightness.ToString();
ceiling.TextureName = General.Map.Options.DefaultCeilingTexture;
floor.TextureName = General.Map.Options.DefaultFloorTexture;
walls.TextureName = General.Map.Options.DefaultWallTexture;
cbOverrideCeilingTexture.Checked = General.Map.Options.OverrideCeilingTexture;
cbOverrideFloorTexture.Checked = General.Map.Options.OverrideFloorTexture;
cbOverrideWallTexture.Checked = General.Map.Options.OverrideWallTexture;
cbCeilHeight.Checked = General.Map.Options.OverrideCeilingHeight;
cbFloorHeight.Checked = General.Map.Options.OverrideFloorHeight;
cbBrightness.Checked = General.Map.Options.OverrideBrightness;
ceiling.Enabled = cbOverrideCeilingTexture.Checked;
floor.Enabled = cbOverrideFloorTexture.Checked;
walls.Enabled = cbOverrideWallTexture.Checked;
ceilHeight.Enabled = cbCeilHeight.Checked;
floorHeight.Enabled = cbFloorHeight.Checked;
brightness.Enabled = cbBrightness.Checked;
}
#endregion
#region Checkbox Events
private void cbOverrideCeilingTexture_CheckedChanged(object sender, EventArgs e) {
ceiling.Enabled = cbOverrideCeilingTexture.Checked;
General.Map.Options.OverrideCeilingTexture = cbOverrideCeilingTexture.Checked;
}
private void cbOverrideFloorTexture_CheckedChanged(object sender, EventArgs e) {
floor.Enabled = cbOverrideFloorTexture.Checked;
General.Map.Options.OverrideFloorTexture = cbOverrideFloorTexture.Checked;
}
private void cbOverrideWallTexture_CheckedChanged(object sender, EventArgs e) {
walls.Enabled = cbOverrideWallTexture.Checked;
General.Map.Options.OverrideWallTexture = cbOverrideWallTexture.Checked;
}
private void cbCeilHeight_CheckedChanged(object sender, EventArgs e) {
ceilHeight.Enabled = cbCeilHeight.Checked;
General.Map.Options.OverrideCeilingHeight = cbCeilHeight.Checked;
}
private void cbFloorHeight_CheckedChanged(object sender, EventArgs e) {
floorHeight.Enabled = cbFloorHeight.Checked;
General.Map.Options.OverrideFloorHeight = cbFloorHeight.Checked;
}
private void cbBrightness_CheckedChanged(object sender, EventArgs e) {
brightness.Enabled = cbBrightness.Checked;
General.Map.Options.OverrideBrightness = cbBrightness.Checked;
}
#endregion
#region Inputs Events
private void ceilHeight_WhenTextChanged(object sender, EventArgs e) {
General.Map.Options.DefaultCeilingHeight = ceilHeight.GetResult(General.Map.Options.DefaultCeilingHeight);
}
private void floorHeight_WhenTextChanged(object sender, EventArgs e) {
General.Map.Options.DefaultFloorHeight = floorHeight.GetResult(General.Map.Options.DefaultFloorHeight);
}
private void brightness_WhenTextChanged(object sender, EventArgs e) {
General.Map.Options.DefaultBrightness = General.Clamp(brightness.GetResult(General.Map.Options.DefaultBrightness), 0, 255);
}
private void ceiling_OnValueChanged(object sender, EventArgs e) {
General.Map.Options.DefaultCeilingTexture = ceiling.TextureName;
}
private void floor_OnValueChanged(object sender, EventArgs e) {
General.Map.Options.DefaultFloorTexture = floor.TextureName;
}
private void walls_OnValueChanged(object sender, EventArgs e) {
General.Map.Options.DefaultWallTexture = walls.TextureName;
}
/*private void SectorDrawingOptionsPanel_MouseLeave(object sender, EventArgs e) {
General.Interface.FocusDisplay();
}*/
#endregion
}
}

View file

@ -0,0 +1,120 @@
<?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>
</root>

View file

@ -549,7 +549,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
mode.CreateUndo("Create middle texture");
mode.SetActionResult("Created middle texture.");
General.Settings.FindDefaultDrawSettings();
Sidedef.SetTextureMid(General.Settings.DefaultTexture);
Sidedef.SetTextureMid(General.Map.Options.DefaultWallTexture);
// Update
Sector.Changed = true;
@ -557,7 +557,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// Other side as well
if(string.IsNullOrEmpty(Sidedef.Other.MiddleTexture) || (Sidedef.Other.MiddleTexture == "-"))
{
Sidedef.Other.SetTextureMid(General.Settings.DefaultTexture);
Sidedef.Other.SetTextureMid(General.Map.Options.DefaultWallTexture);
// Update
VisualSector othersector = mode.GetVisualSector(Sidedef.Other.Sector);

View file

@ -30,8 +30,8 @@
this.btnClearSearch = new System.Windows.Forms.Button();
this.tbSearch = new System.Windows.Forms.TextBox();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.updatetimer = new System.Windows.Forms.Timer(this.components);
this.bExportToFile = new System.Windows.Forms.Button();
this.updatetimer = new System.Windows.Forms.Timer(this.components);
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
@ -53,7 +53,6 @@
this.treeView.AfterLabelEdit += new System.Windows.Forms.NodeLabelEditEventHandler(this.treeView_AfterLabelEdit);
this.treeView.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView_NodeMouseClick);
this.treeView.BeforeLabelEdit += new System.Windows.Forms.NodeLabelEditEventHandler(this.treeView_BeforeLabelEdit);
this.treeView.MouseLeave += new System.EventHandler(this.treeView_MouseLeave);
//
// imageList1
//
@ -195,11 +194,6 @@
this.tbSearch.TabIndex = 7;
this.tbSearch.TextChanged += new System.EventHandler(this.tbSearch_TextChanged);
//
// updatetimer
//
this.updatetimer.Interval = 750;
this.updatetimer.Tick += new System.EventHandler(this.updatetimer_Tick);
//
// bExportToFile
//
this.bExportToFile.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
@ -214,6 +208,11 @@
this.bExportToFile.UseVisualStyleBackColor = true;
this.bExportToFile.Click += new System.EventHandler(this.bExportToFile_Click);
//
// updatetimer
//
this.updatetimer.Interval = 750;
this.updatetimer.Tick += new System.EventHandler(this.updatetimer_Tick);
//
// TagExplorer
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);

View file

@ -58,7 +58,6 @@ namespace CodeImp.DoomBuilder.TagExplorer
if (udmf) {
cbCommentsOnly.Checked = General.Settings.ReadPluginSetting("commentsonly", false);
treeView.LabelEdit = true;
toolTip1.SetToolTip(tbSearch, "Enter text to find comment\r\nEnter # + tag number to show only specified tag. Example: #667\r\nEnter $ + effect number to show only specified effect. Example: $80");
toolTip1.SetToolTip(treeView, "Double-click item to edit item's comment\r\nRight-click item to open item's Properties");
} else {
@ -548,20 +547,22 @@ namespace CodeImp.DoomBuilder.TagExplorer
selection.Index = info.Index;
if (e.Button == MouseButtons.Right) { //open element properties
bool updateDisplay = false;
switch (info.Type) {
case NodeInfoType.THING:
Thing t = General.Map.Map.GetThingByIndex(info.Index);
if (t != null) General.Interface.ShowEditThings(new List<Thing>() { t });
updateDisplay = (t != null && General.Interface.ShowEditThings(new List<Thing>() { t }) == DialogResult.OK);
break;
case NodeInfoType.SECTOR:
Sector s = General.Map.Map.GetSectorByIndex(info.Index);
if (s != null) General.Interface.ShowEditSectors(new List<Sector>() { s });
updateDisplay = (s != null && General.Interface.ShowEditSectors(new List<Sector>() { s }) == DialogResult.OK);
break;
case NodeInfoType.LINEDEF:
Linedef l = General.Map.Map.GetLinedefByIndex(info.Index);
if (l != null) General.Interface.ShowEditLinedefs(new List<Linedef>() { l });
updateDisplay = (l != null && General.Interface.ShowEditLinedefs(new List<Linedef>() { l }) == DialogResult.OK);
break;
default:
@ -569,8 +570,12 @@ namespace CodeImp.DoomBuilder.TagExplorer
break;
}
General.Map.Map.Update();
updateTree(true);
if(updateDisplay) {
// Update entire display
General.Map.Map.Update();
General.Interface.RedrawDisplay();
updateTree(true);
}
} else {
//select element?
@ -660,6 +665,7 @@ namespace CodeImp.DoomBuilder.TagExplorer
NodeInfo info = e.Node.Tag as NodeInfo;
if (info == null) return;
treeView.LabelEdit = true;
e.Node.Text = info.Comment; //set node text to comment
e.Node.BeginEdit(); //begin editing
}
@ -667,11 +673,10 @@ namespace CodeImp.DoomBuilder.TagExplorer
//we don't want to edit categories if we are in UDMF
private void treeView_BeforeLabelEdit(object sender, NodeLabelEditEventArgs e) {
if (!udmf || e.Node.Tag == null) {
if (!udmf || !treeView.LabelEdit || e.Node.Tag == null) {
e.CancelEdit = true;
return;
}
treeView.MouseLeave -= treeView_MouseLeave;
}
//map should be in UDMF format, or we wouldn't be here
@ -682,17 +687,12 @@ namespace CodeImp.DoomBuilder.TagExplorer
//to set comment manually we actually have to cancel edit...
e.CancelEdit = true;
e.Node.EndEdit(true);
treeView.LabelEdit = false;
//apply comment
if(e.Label != null) info.Comment = e.Label;
e.Node.Text = info.GetName(ref comment, currentSortMode);
e.Node.ForeColor = string.IsNullOrEmpty(info.Comment) ? Color.Black : commentColor;
treeView.MouseLeave += new EventHandler(treeView_MouseLeave);
}
private void treeView_MouseLeave(object sender, EventArgs e) {
General.Interface.FocusDisplay();
}
//It is called every time a dialog window closes.
@ -702,7 +702,6 @@ namespace CodeImp.DoomBuilder.TagExplorer
private void btnClearSearch_Click(object sender, EventArgs e) {
tbSearch.Clear();
General.Interface.FocusDisplay();
}
private void tbSearch_TextChanged(object sender, EventArgs e) {

View file

@ -1,239 +1,239 @@
<?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="imageList1.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="imageList1.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAA+
FwAAAk1TRnQBSQFMAgEBBgEAAVABAAFQAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIBYAAxIBGQMSARkDEgEZNAADEgEZAxIBGQMSARmwAAMwAUwBAAE/AecB/wEA
ASsBoQH/AzABTAMSARksAAMwAUwBswFtASMB/wF3AUcBGQH/AzABTAMSARmsAAEcAVwC/wEUAVYC/wEA
ATgBzgH/AQABKwGhAf8DEgEZLAAB4AGHASsB/wHZAYYBKgH/AZ4BYQEgAf8BdwFHARkB/wMSARmsAAFw
AZsC/wHoAe8C/wEUAVYC/wEAAT8B5wH/AxIBGSwAAf4BtAFoAv8B/QHlAf8B2QGGASoB/wGzAW0BIwH/
AxIBGawAAzABTAFwAZsC/wEcAVwC/wOJAf8DRAH/AyMBMygAAzABTAH+AbQBaAH/AeABhwErAf8BowGJ
AW0B/wNEAf8DIwEzsAADIwEzA7wB/wOBAf8DRAH/AyMBMwgAAyMBMwMjATMDIwEzGAADIwEzA7wB/wOB
Af8DRAH/AyMBMwgAAyMBMwMjATMDIwEznAADIwEzA80B/wOUAf8DRAH/AyMBMwMwAUwDRAH/A5QB/wMj
ATMcAAMjATMDzQH/A5QB/wNEAf8DIwEzAzABTANEAf8DlAH/AyMBM6AAAyMBMwPNAf8DlAH/A0QB/wNE
Af8DlAH/AyMBMyQAAyMBMwPNAf8DlAH/A0QB/wNEAf8DlAH/AyMBM6gAAyMBMwO4Af8DlAH/A4EB/wMj
ATMsAAMjATMDuAH/A5QB/wOBAf8DIwEzsAADIwEzA88B/wOUAf8DRAH/AyMBMywAAyMBMwPPAf8DlAH/
A0QB/wMjATOwAAMjATMDwwH/A5QB/wNEAf8DIwEzLAADIwEzA8MB/wOUAf8DRAH/AyMBM7AAAyMBMwO8
Af8DlAH/A0QB/wMSARkDEgEZAxIBGSQAAyMBMwO8Af8DlAH/A0QB/wMSARkDEgEZAxIBGagAAyMBMwPZ
Af8DtwH/AQABPwHnAf8BAAErAaEB/wMwAUwDEgEZJAADIwEzA9kB/wHRAbcBnQH/AbMBbQEjAf8BdwFH
ARkB/wMwAUwDEgEZqAADIwEzARwBXAL/ARQBVgL/AQABOAHOAf8BAAErAaEB/wMSARkoAAMjATMB4AGH
ASsB/wHZAYYBKgH/AZ4BYQEgAf8BdwFHARkB/wMSARmsAAFwAZsC/wHoAe8C/wEUAVYC/wEAAT8B5wH/
AxIBGSwAAf4BtAFoAv8B/QHlAf8B2QGGASoB/wGzAW0BIwH/AxIBGawAAzABTAFwAZsC/wEcAVwC/wMw
AUwwAAMwAUwB/gG0AWgB/wHgAYcBKwH/AzABTJgAAwgBCwMfAS0DJwE7AycBOwMnATsDHgErAxIBGAMS
ARggAAMIAQsDHwEtAycBOwMnATsDJwE7Ax4BKwMSARgDEgEYEAADEgEZAxIBGQMSARkgAAMSARkDEgEZ
AxIBGQgAAxIBGQMSARkDEgEZIAADEgEZAxIBGQMSARkUAAM4AVwCXwFhAegBIgEqAYEB/wEcASMBcAH/
ARsBIgFtAf8BGgEhAWYB/wJaAWAB5AM4AVwDJwE7AxIBGBgAAzgBXAFjAl8B6AGBAVUBIgH/AXABTQEc
Af8BbQFLARsB/wFmAUYBGgH/AWECWgHkAzgBXAMnATsDEgEYCAADMAFMASQBMwGyAf8BGgEnAXYB/wMw
AUwDEgEZAxIBGQMSARkDEgEZAxIBGQMSARkDEgEZAzABTAEkATMBsgH/ARoBJwF2Af8DMAFMAxIBGQMw
AUwBsgFtASQB/wF2AUcBGgH/AzABTAMSARkDEgEZAxIBGQMSARkDEgEZAxIBGQMSARkDMAFMAbIBbQEk
Af8BdgFHARoB/wMwAUwDEgEZDAADWgHFATIBPgG7Af8BMAE8AbwB/wEvATsBugH/AS4BOgG3Af8BLAE2
AbQB/wEqATUBrAH/ASUBLQGUAf8BGwEjAXAB/wNaAb0DJwE7AxIBGBAAA1oBxQG7AYMBMgH/AbwBggEw
Af8BugGBAS8B/wG3AYEBLgH/AbQBgQEsAf8BrAFzASoB/wGUAWUBJQH/AXABTAEbAf8DWgG9AycBOwMS
ARgEAAEtAUUB3wH/ASsBPwHYAf8BIAEsAZ0B/wEaAScBdgH/Az0B/wM9Af8DPQH/Az0B/wM9Af8DPQH/
Az0B/wEtAUUB3wH/ASsBPwHYAf8BIAEsAZ0B/wEaAScBdgH/AxIBGQHfAYcBLQH/AdgBhgErAf8BnQFh
ASAB/wF2AUcBGgH/Az0B/wM9Af8DPQH/Az0B/wM9Af8DPQH/Az0B/wHfAYcBLQH/AdgBhgErAf8BnQFh
ASAB/wF2AUcBGgH/AxIBGQgAA1kBvgE3AUQB0wH/ATwBSwHoAf8BQAFOAfMB/wE/AU4B8AH/AT4BTgHv
Af8BPgFOAe8B/wE9AUsB7QH/AToBSQHiAf8BMAE8AbsB/wEgAScBgQH/A1oBvQMnATsDEgEYCAADWQG+
AdMBkwE3Af8B6AGhATwB/wHzAaoBQAH/AfABpwE/Af8B7wGlAT4B/wHvAaUBPgH/Ae0BpQE9Af8B4gGc
AToB/wG7AYIBMAH/AYEBVwEgAf8DWgG9AycBOwMSARgBaQGBAf0B/wHsAeUC/wErAT8B2AH/ASQBMwGy
Af8DuAH/A7gB/wO4Af8DuAH/A7gB/wOmAf8DmAH/AWkBgQH9Af8B7AHlAv8BKwE/AdgB/wEkATMBsgH/
AxIBGQH9AbQBaQL/Af0B5QH/AdgBhgErAf8BsgFtASQB/wO4Af8DuAH/A7gB/wO4Af8DuAH/A6YB/wOY
Af8B/QG0AWkC/wH9AeUB/wHYAYYBKwH/AbIBbQEkAf8DEgEZBAADOAFcAUABTgHjAf8BPwFNAfEB/wEv
AToBswH/AS0BOAGrAf8BPQFLAeoB/wFCAVIB+gH/AUEBUAH2Af8BPwFNAfEB/wE/AU4B8AH/ATwBSgHq
Af8BLwE6Ab4B/wEfASUBgQH/AzgBXAMSARgEAAM4AVwB4wGgAUAB/wHxAagBPwH/AbMBgQEvAf8BqwF0
AS0B/wHqAaMBPQH/AfoBrgFCAf8B9gGsAUEB/wHxAagBPwH/AfABpwE/Af8B6gGjATwB/wG+AYQBLwH/
AYEBVgEfAf8DOAFcAxIBGAMwAUwBaQGBAf0B/wEtAUUB3wH/AzABTAwAA7gB/wNOAZkIAAMwAUwBaQGB
Af0B/wEtAUUB3wH/AzABTAQAAzABTAH9AbQBaQH/Ad8BhwEtAf8DMAFMDAADuAH/A04BmQgAAzABTAH9
AbQBaQH/Ad8BhwEtAf8DMAFMCAADXwHbAU8BXQH2Af8BSQFYAv8BLwE6AbEB/wMAAf8BCAEKASQB/wEd
ASQBcAH/ATQBPwHCAf8BPwFPAfEB/wFCAVIB+gH/AUABUAH0Af8BOQFHAeQB/wEqATUBrAH/AlwBZAHn
Ax4BKwQAA18B2wH2AbEBTwL/AbQBSQH/AbEBeAEvAf8DAAH/ASQBGQEIAf8BcAFNAR0B/wHCAYgBNAH/
AfEBpwE/Af8B+gGuAUIB/wH0AakBQAH/AeQBngE5Af8BrAFzASoB/wFkAWIBXAHnAx4BKwQAA5gB/wNE
Af8DEgEZDAADpQH/A04BmQwAA5gB/wM9Af8DEgEZCAADmAH/A0QB/wMSARkMAAOlAf8DTgGZDAADmAH/
Az0B/wMSARkIAAFMAVoC/wFkAXIC/wFTAWAB+wH/AUUBUwHoAf8BCAEJARoB/wMAAf8DAAH/AwAB/wEM
AQ8BMwH/ASIBKgGEAf8BNgFCAc4B/wE+AU0B7wH/ATQBQAHMAf8BIwEsAYoB/wMnATsEAAH/AbYBTAL/
Ab4BZAH/AfsBtwFTAf8B6AGlAUUB/wEaARMBCAH/AwAB/wMAAf8DAAH/ATMBIwEMAf8BhAFZASIB/wHO
AZABNgH/Ae8BpgE+Af8BzAGOATQB/wGKAV0BIwH/AycBOwQAA6YB/wNEAf8DEgEZIAADpgH/Az0B/wMS
ARkIAAOmAf8DRAH/AxIBGSAAA6YB/wM9Af8DEgEZBAADIwEzAV8BbAL/AXUBhAL/AV0BaQH5Af8BTwFe
AfwB/wEgASgBdQH/AwAB/wMAAf8DAAH/AQYBBwENAf8BGQEgAV8B/wEpATIBnQH/ATwBSQHkAf8BOQFI
AeEB/wEmAS8BnAH/AycBOwMjATMB/wG9AV8C/wHGAXUB/wH5AboBXQH/AfwBtAFPAf8BdQFRASAB/wMA
Af8DAAH/AwAB/wENAQoBBgH/AV8BQQEZAf8BnQFrASkB/wHkAaABPAH/AeEBmwE5Af8BnAFpASYB/wMn
ATsEAAOwAf8DRAH/A04BmQNOAZkUAANOAZkDTgGZA7AB/wM9Af8DEgEZCAADsAH/A0QB/wNOAZkDTgGZ
FAADTgGZA04BmQOwAf8DPQH/AxIBGQQAAyMBMwFpAXYC/wGBAYwC/wFeAWwB+AH/AU0BXQH7Af8BNQFB
AcsB/wIBAQMB/wMAAf8DAAH/ARIBFgFFAf8BQgFRAfkB/wFCAVIB+gH/AT8BTgHwAf8BOQFHAeMB/wEn
ATEBogH/AycBOwMjATMB/wHBAWkC/wHKAYEB/wH4AbgBXgH/AfsBsgFNAf8BywGOATUB/wEDAQIBAQH/
AwAB/wMAAf8BRQEwARIB/wH5Aa4BQgH/AfoBrgFCAf8B8AGnAT8B/wHjAZ0BOQH/AaIBbQEnAf8DJwE7
BAADuAH/A7gB/wO4Af8DpQH/FAADpQH/A7gB/wO4Af8DPQH/AxIBGQgAA7gB/wO4Af8DuAH/A6UB/xQA
A6UB/wO4Af8DuAH/Az0B/wMSARkIAAFnAXYC/wGOAZcC/wFmAXEB/gH/AU8BXgH1Af8BRQFTAfgB/wER
ARYBRQH/AQMBAgEEAf8BHgEmAXQB/wMAAf8BFQEbAVQB/wE/AU4B8AH/AUABTgHzAf8BNwFFAdoB/wEp
ATIBnwH/AyIBMQQAAf8BvwFnAv8B0AGOAf8B/gHBAWYB/wH1AbABTwH/AfgBrwFFAf8BRQEvAREB/wIE
AQIB/wF0AU8BHgH/AwAB/wFUATkBFQH/AfABpwE/Af8B8wGqAUAB/wHaAZcBNwH/AZ8BbQEpAf8DIgEx
BAADuAH/A0QB/wMSARkgAAO4Af8DPQH/AxIBGQgAA7gB/wNEAf8DEgEZIAADuAH/Az0B/wMSARkIAANf
AdsBlgGgAv8BhgGQAv8BZwF0AfkB/wFSAWAB/gH/ASoBNAGdAf8BEAEVAUEB/wFEAVQC/wEoATEBmAH/
AwAB/wEVARsBVAH/AT4BTQHtAf8BNwFEAdUB/wJcAWIB6gMMARAEAANfAdsB/wHSAZYC/wHMAYYB/wH5
AbwBZwH/Af4BuAFSAf8BnQFrASoB/wFBASwBEAL/AbIBRAH/AZgBaAEoAf8DAAH/AVQBOQEVAf8B7QGl
AT4B/wHVAZQBNwH/AWMBXwFcAeoDDAEQBAADuAH/A0QB/wMSARkgAAO4Af8DPQH/AxIBGQgAA7gB/wNE
Af8DEgEZIAADuAH/Az0B/wMSARkIAAM4AVwBmAGiAv8BngGnAv8BcAGBAv8BXAFpAfkB/wFHAVIB5AH/
ATgBQwG+Af8BSAFYAfgB/wFKAVgB/QH/ATEBOQGcAf8DAAH/AS4BOAGxAf8BOgFHAd4B/wM4AVwIAAM4
AVwB/wHTAZgC/wHWAZ4C/wHFAXAB/wH5AbkBXAH/AeQBpQFHAf8BvgGHATgB/wH4Aa4BSAH/Af0BtAFK
Af8BnAFuATEB/wMAAf8BsQGAAS4B/wHeAZsBOgH/AzgBXAgAA7gB/wNEAf8DEgEZDAADpQH/A04BmQwA
A7gB/wM9Af8DEgEZCAADuAH/A0QB/wMSARkMAAOlAf8DTgGZDAADuAH/Az0B/wMSARkMAANVAbIBqAGx
Av8BiQGTAv8BdgGDAv8BbQGAAfwB/wFiAW4B9gH/AVwBaAH2Af8BWwFnAfUB/wFXAWQB+wH/AToBRAHC
Af8BOwFJAeAB/wNbAcYQAANVAbIB/wHZAagC/wHOAYkC/wHIAXYB/wH8AcEBbQH/AfYBuQFiAf8B9gG3
AVwB/wH1AbYBWwH/AfsBuAFXAf8BwgGLAToB/wHgAZwBOwH/A1sBxggAAzABTAEkATMBsgH/ARoBJwF2
Af8DMAFMAxIBGQMSARkDEgEZA7gB/wNOAZkDEgEZAxIBGQMwAUwBJAEzAbIB/wEaAScBdgH/AzABTAMS
ARkDMAFMAbIBbQEkAf8BdgFHARoB/wMwAUwDEgEZAxIBGQMSARkDuAH/A04BmQMSARkDEgEZAzABTAGy
AW0BJAH/AXYBRwEaAf8DMAFMAxIBGQwAA1YBsQGfAakC/wGXAaIC/wGLAZUC/wFxAYIC/wFfAW4B/QH/
AVUBYgH5Af8BSQFYAfcB/wFCAVIB+gH/A1oBvRgAA1YBsQH/AdUBnwL/AdEBlwL/Ac8BiwL/AcMBcQH/
Af0BugFfAf8B+QG2AVUB/wH3Aa8BSQH/AfoBrQFCAf8DWgG9DAABLQFFAd8B/wErAT8B2AH/ASABLAGd
Af8BGgEnAXYB/wNEAf8DRAH/A0QB/wO4Af8DRAH/A0QB/wNEAf8BLQFFAd8B/wErAT8B2AH/ASABLAGd
Af8BGgEnAXYB/wMSARkB3wGHAS0B/wHYAYYBKwH/AZ0BYQEgAf8BdgFHARoB/wNEAf8DRAH/A0QB/wO4
Af8DRAH/A0QB/wNEAf8B3wGHAS0B/wHYAYYBKwH/AZ0BYQEgAf8BdgFHARoB/wMSARkQAAM4AVwDXgHY
AXgBhwL/AYMBjQL/AXEBgwL/AVwBagL/A14B2AM4AVwgAAM4AVwDXgHYAf8BxwF4Av8BzAGDAv8BwgFx
Av8BvAFcAf8DXgHYAzgBXBAAAWkBgQH9Af8B7AHlAv8BKwE/AdgB/wEkATMBsgH/A7gB/wO4Af8DuAH/
A7gB/wO4Af8DpgH/A5gB/wFpAYEB/QH/AewB5QL/ASsBPwHYAf8BJAEzAbIB/wMSARkB/QG0AWkC/wH9
AeUB/wHYAYYBKwH/AbIBbQEkAf8DuAH/A7gB/wO4Af8DuAH/A7gB/wOmAf8DmAH/Af0BtAFpAv8B/QHl
Af8B2AGGASsB/wGyAW0BJAH/AxIBGRwAAyMBMwMjATM4AAMjATMDIwEzHAADMAFMAWkBgQH9Af8BLQFF
Ad8B/wMwAUwcAAMwAUwBaQGBAf0B/wEtAUUB3wH/AzABTAQAAzABTAH9AbQBaQH/Ad8BhwEtAf8DMAFM
HAADMAFMAf0BtAFpAf8B3wGHAS0B/wMwAUwEAAFCAU0BPgcAAT4DAAEoAwABQAMAASADAAEBAQABAQYA
AQEWAAP/AQABjwH/AY8B/wQAAQcB/wEHAf8EAAEHAf8BBwH/BAABBwH/AQcB/wQAAQMB/wEDAf8EAAHB
AY8BwQGPBAAB4AEPAeABDwQAAfABHwHwAR8EAAH4AT8B+AE/BAAB/AEfAfwBHwQAAf4BDwH+AQ8EAAH/
AQEB/wEBBAAB/wGAAf8BgAQAAf8BwAH/AcAEAAH/AeAB/wHgBAAB/wHhAf8B4QQAAfgBBwH4AQcBjwHx
AY8B8QHwAQMB8AEDBAAB4AEBAeABAQQAAcABAAHABQABgAEAAYABAAEOAWEBDgFhAYABAAGAAQABjgFx
AY4BcQGAAQABgAEAAY8B8QGPAfEEAAGHAcEBhwHBBAABhwHBAYcBwQGAAQABgAEAAY8B8QGPAfEBgAEA
AYABAAGPAfEBjwHxAYABAQGAAQEBjgFxAY4BcQHAAQMBwAEDBAAB4AEHAeABBwQAAfABDwHwAQ8EAAH+
AX8B/gF/AQ8B4QEPAeEL
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAA+
FwAAAk1TRnQBSQFMAgEBBgEAAVgBAAFYAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIBYAAxIBGQMSARkDEgEZNAADEgEZAxIBGQMSARmwAAMwAUwBAAE+AecB/wEA
ASoBoQH/AzABTAMSARksAAMwAUwBswFsASIB/wF2AUYBGAH/AzABTAMSARmsAAEbAVsC/wETAVUC/wEA
ATcBzgH/AQABKgGhAf8DEgEZLAAB4AGHASoB/wHZAYYBKQH/AZ4BYAEfAf8BdgFGARgB/wMSARmsAAFv
AZsC/wHoAe8C/wETAVUC/wEAAT4B5wH/AxIBGSwAAf4BtAFnAv8B/QHlAf8B2QGGASkB/wGzAWwBIgH/
AxIBGawAAzABTAFvAZsC/wEbAVsC/wOJAf8DQwH/AyMBMygAAzABTAH+AbQBZwH/AeABhwEqAf8BowGJ
AWwB/wNDAf8DIwEzsAADIwEzA7wB/wOBAf8DQwH/AyMBMwgAAyMBMwMjATMDIwEzGAADIwEzA7wB/wOB
Af8DQwH/AyMBMwgAAyMBMwMjATMDIwEznAADIwEzA80B/wOUAf8DQwH/AyMBMwMwAUwDQwH/A5QB/wMj
ATMcAAMjATMDzQH/A5QB/wNDAf8DIwEzAzABTANDAf8DlAH/AyMBM6AAAyMBMwPNAf8DlAH/A0MB/wND
Af8DlAH/AyMBMyQAAyMBMwPNAf8DlAH/A0MB/wNDAf8DlAH/AyMBM6gAAyMBMwO4Af8DlAH/A4EB/wMj
ATMsAAMjATMDuAH/A5QB/wOBAf8DIwEzsAADIwEzA88B/wOUAf8DQwH/AyMBMywAAyMBMwPPAf8DlAH/
A0MB/wMjATOwAAMjATMDwwH/A5QB/wNDAf8DIwEzLAADIwEzA8MB/wOUAf8DQwH/AyMBM7AAAyMBMwO8
Af8DlAH/A0MB/wMSARkDEgEZAxIBGSQAAyMBMwO8Af8DlAH/A0MB/wMSARkDEgEZAxIBGagAAyMBMwPZ
Af8DtwH/AQABPgHnAf8BAAEqAaEB/wMwAUwDEgEZJAADIwEzA9kB/wHRAbcBnQH/AbMBbAEiAf8BdgFG
ARgB/wMwAUwDEgEZqAADIwEzARsBWwL/ARMBVQL/AQABNwHOAf8BAAEqAaEB/wMSARkoAAMjATMB4AGH
ASoB/wHZAYYBKQH/AZ4BYAEfAf8BdgFGARgB/wMSARmsAAFvAZsC/wHoAe8C/wETAVUC/wEAAT4B5wH/
AxIBGSwAAf4BtAFnAv8B/QHlAf8B2QGGASkB/wGzAWwBIgH/AxIBGawAAzABTAFvAZsC/wEbAVsC/wMw
AUwwAAMwAUwB/gG0AWcB/wHgAYcBKgH/AzABTJgAAwgBCwMfAS0DJwE7AycBOwMnATsDHgErAxIBGAMS
ARggAAMIAQsDHwEtAycBOwMnATsDJwE7Ax4BKwMSARgDEgEYEAADEgEZAxIBGQMSARkgAAMSARkDEgEZ
AxIBGQgAAxIBGQMSARkDEgEZIAADEgEZAxIBGQMSARkUAAM4AVwCXwFgAegBIQEpAYEB/wEbASIBbwH/
ARoBIQFsAf8BGQEgAWUB/wJaAWAB5AM4AVwDJwE7AxIBGBgAAzgBXAFhAl8B6AGBAVQBIQH/AW8BTAEb
Af8BbAFKARoB/wFlAUUBGQH/AWECWgHkAzgBXAMnATsDEgEYCAADMAFMASMBMgGyAf8BGQEmAXUB/wMw
AUwDEgEZAxIBGQMSARkDEgEZAxIBGQMSARkDEgEZAzABTAEjATIBsgH/ARkBJgF1Af8DMAFMAxIBGQMw
AUwBsgFsASMB/wF1AUYBGQH/AzABTAMSARkDEgEZAxIBGQMSARkDEgEZAxIBGQMSARkDMAFMAbIBbAEj
Af8BdQFGARkB/wMwAUwDEgEZDAADWgHFATEBPQG7Af8BLwE7AbwB/wEuAToBugH/AS0BOQG3Af8BKwE1
AbQB/wEpATQBrAH/ASQBLAGUAf8BGgEiAW8B/wNaAb0DJwE7AxIBGBAAA1oBxQG7AYMBMQH/AbwBggEv
Af8BugGBAS4B/wG3AYEBLQH/AbQBgQErAf8BrAFyASkB/wGUAWQBJAH/AW8BSwEaAf8DWgG9AycBOwMS
ARgEAAEsAUQB3wH/ASoBPgHYAf8BHwErAZ0B/wEZASYBdQH/AzwB/wM8Af8DPAH/AzwB/wM8Af8DPAH/
AzwB/wEsAUQB3wH/ASoBPgHYAf8BHwErAZ0B/wEZASYBdQH/AxIBGQHfAYcBLAH/AdgBhgEqAf8BnQFg
AR8B/wF1AUYBGQH/AzwB/wM8Af8DPAH/AzwB/wM8Af8DPAH/AzwB/wHfAYcBLAH/AdgBhgEqAf8BnQFg
AR8B/wF1AUYBGQH/AxIBGQgAA1kBvgE2AUMB0wH/ATsBSgHoAf8BPwFNAfMB/wE+AU0B8AH/AT0BTQHv
Af8BPQFNAe8B/wE8AUoB7QH/ATkBSAHiAf8BLwE7AbsB/wEfASYBgQH/A1oBvQMnATsDEgEYCAADWQG+
AdMBkwE2Af8B6AGhATsB/wHzAaoBPwH/AfABpwE+Af8B7wGlAT0B/wHvAaUBPQH/Ae0BpQE8Af8B4gGc
ATkB/wG7AYIBLwH/AYEBVgEfAf8DWgG9AycBOwMSARgBaAGBAf0B/wHsAeUC/wEqAT4B2AH/ASMBMgGy
Af8DuAH/A7gB/wO4Af8DuAH/A7gB/wOmAf8DmAH/AWgBgQH9Af8B7AHlAv8BKgE+AdgB/wEjATIBsgH/
AxIBGQH9AbQBaAL/Af0B5QH/AdgBhgEqAf8BsgFsASMB/wO4Af8DuAH/A7gB/wO4Af8DuAH/A6YB/wOY
Af8B/QG0AWgC/wH9AeUB/wHYAYYBKgH/AbIBbAEjAf8DEgEZBAADOAFcAT8BTQHjAf8BPgFMAfEB/wEu
ATkBswH/ASwBNwGrAf8BPAFKAeoB/wFBAVEB+gH/AUABTwH2Af8BPgFMAfEB/wE+AU0B8AH/ATsBSQHq
Af8BLgE5Ab4B/wEeASQBgQH/AzgBXAMSARgEAAM4AVwB4wGgAT8B/wHxAagBPgH/AbMBgQEuAf8BqwFz
ASwB/wHqAaMBPAH/AfoBrgFBAf8B9gGsAUAB/wHxAagBPgH/AfABpwE+Af8B6gGjATsB/wG+AYQBLgH/
AYEBVQEeAf8DOAFcAxIBGAMwAUwBaAGBAf0B/wEsAUQB3wH/AzABTAwAA7gB/wNOAZkIAAMwAUwBaAGB
Af0B/wEsAUQB3wH/AzABTAQAAzABTAH9AbQBaAH/Ad8BhwEsAf8DMAFMDAADuAH/A04BmQgAAzABTAH9
AbQBaAH/Ad8BhwEsAf8DMAFMCAADXwHbAU4BXAH2Af8BSAFXAv8BLgE5AbEB/wMAAf8BBwEJASMB/wEc
ASMBbwH/ATMBPgHCAf8BPgFOAfEB/wFBAVEB+gH/AT8BTwH0Af8BOAFGAeQB/wEpATQBrAH/AlwBZAHn
Ax4BKwQAA18B2wH2AbEBTgL/AbQBSAH/AbEBdwEuAf8DAAH/ASMBGAEHAf8BbwFMARwB/wHCAYgBMwH/
AfEBpwE+Af8B+gGuAUEB/wH0AakBPwH/AeQBngE4Af8BrAFyASkB/wFkAWIBXAHnAx4BKwQAA5gB/wND
Af8DEgEZDAADpQH/A04BmQwAA5gB/wM8Af8DEgEZCAADmAH/A0MB/wMSARkMAAOlAf8DTgGZDAADmAH/
AzwB/wMSARkIAAFLAVkC/wFjAXEC/wFSAV8B+wH/AUQBUgHoAf8BBwEIARkB/wMAAf8DAAH/AwAB/wEL
AQ4BMgH/ASEBKQGEAf8BNQFBAc4B/wE9AUwB7wH/ATMBPwHMAf8BIgErAYoB/wMnATsEAAH/AbYBSwL/
Ab4BYwH/AfsBtwFSAf8B6AGlAUQB/wEZARIBBwH/AwAB/wMAAf8DAAH/ATIBIgELAf8BhAFYASEB/wHO
AZABNQH/Ae8BpgE9Af8BzAGOATMB/wGKAVwBIgH/AycBOwQAA6YB/wNDAf8DEgEZIAADpgH/AzwB/wMS
ARkIAAOmAf8DQwH/AxIBGSAAA6YB/wM8Af8DEgEZBAADIwEzAV4BawL/AXQBhAL/AVwBaAH5Af8BTgFd
AfwB/wEfAScBdAH/AwAB/wMAAf8DAAH/AQUBBgEMAf8BGAEfAV4B/wEoATEBnQH/ATsBSAHkAf8BOAFH
AeEB/wElAS4BnAH/AycBOwMjATMB/wG9AV4C/wHGAXQB/wH5AboBXAH/AfwBtAFOAf8BdAFQAR8B/wMA
Af8DAAH/AwAB/wEMAQkBBQH/AV4BQAEYAf8BnQFqASgB/wHkAaABOwH/AeEBmwE4Af8BnAFoASUB/wMn
ATsEAAOwAf8DQwH/A04BmQNOAZkUAANOAZkDTgGZA7AB/wM8Af8DEgEZCAADsAH/A0MB/wNOAZkDTgGZ
FAADTgGZA04BmQOwAf8DPAH/AxIBGQQAAyMBMwFoAXUC/wGBAYwC/wFdAWsB+AH/AUwBXAH7Af8BNAFA
AcsB/wIAAQIB/wMAAf8DAAH/AREBFQFEAf8BQQFQAfkB/wFBAVEB+gH/AT4BTQHwAf8BOAFGAeMB/wEm
ATABogH/AycBOwMjATMB/wHBAWgC/wHKAYEB/wH4AbgBXQH/AfsBsgFMAf8BywGOATQB/wECAQEBAAH/
AwAB/wMAAf8BRAEvAREB/wH5Aa4BQQH/AfoBrgFBAf8B8AGnAT4B/wHjAZ0BOAH/AaIBbAEmAf8DJwE7
BAADuAH/A7gB/wO4Af8DpQH/FAADpQH/A7gB/wO4Af8DPAH/AxIBGQgAA7gB/wO4Af8DuAH/A6UB/xQA
A6UB/wO4Af8DuAH/AzwB/wMSARkIAAFmAXUC/wGOAZcC/wFlAXAB/gH/AU4BXQH1Af8BRAFSAfgB/wEQ
ARUBRAH/AQIBAQEDAf8BHQElAXMB/wMAAf8BFAEaAVMB/wE+AU0B8AH/AT8BTQHzAf8BNgFEAdoB/wEo
ATEBnwH/AyIBMQQAAf8BvwFmAv8B0AGOAf8B/gHBAWUB/wH1AbABTgH/AfgBrwFEAf8BRAEuARAB/wID
AQEB/wFzAU4BHQH/AwAB/wFTATgBFAH/AfABpwE+Af8B8wGqAT8B/wHaAZcBNgH/AZ8BbAEoAf8DIgEx
BAADuAH/A0MB/wMSARkgAAO4Af8DPAH/AxIBGQgAA7gB/wNDAf8DEgEZIAADuAH/AzwB/wMSARkIAANf
AdsBlgGgAv8BhgGQAv8BZgFzAfkB/wFRAV8B/gH/ASkBMwGdAf8BDwEUAUAB/wFDAVMC/wEnATABmAH/
AwAB/wEUARoBUwH/AT0BTAHtAf8BNgFDAdUB/wJcAWEB6gMMARAEAANfAdsB/wHSAZYC/wHMAYYB/wH5
AbwBZgH/Af4BuAFRAf8BnQFqASkB/wFAASsBDwL/AbIBQwH/AZgBZwEnAf8DAAH/AVMBOAEUAf8B7QGl
AT0B/wHVAZQBNgH/AWIBXgFcAeoDDAEQBAADuAH/A0MB/wMSARkgAAO4Af8DPAH/AxIBGQgAA7gB/wND
Af8DEgEZIAADuAH/AzwB/wMSARkIAAM4AVwBmAGiAv8BngGnAv8BbwGBAv8BWwFoAfkB/wFGAVEB5AH/
ATcBQgG+Af8BRwFXAfgB/wFJAVcB/QH/ATABOAGcAf8DAAH/AS0BNwGxAf8BOQFGAd4B/wM4AVwIAAM4
AVwB/wHTAZgC/wHWAZ4C/wHFAW8B/wH5AbkBWwH/AeQBpQFGAf8BvgGHATcB/wH4Aa4BRwH/Af0BtAFJ
Af8BnAFtATAB/wMAAf8BsQGAAS0B/wHeAZsBOQH/AzgBXAgAA7gB/wNDAf8DEgEZDAADpQH/A04BmQwA
A7gB/wM8Af8DEgEZCAADuAH/A0MB/wMSARkMAAOlAf8DTgGZDAADuAH/AzwB/wMSARkMAANVAbIBqAGx
Av8BiQGTAv8BdQGDAv8BbAGAAfwB/wFhAW0B9gH/AVsBZwH2Af8BWgFmAfUB/wFWAWMB+wH/ATkBQwHC
Af8BOgFIAeAB/wNbAcYQAANVAbIB/wHZAagC/wHOAYkC/wHIAXUB/wH8AcEBbAH/AfYBuQFhAf8B9gG3
AVsB/wH1AbYBWgH/AfsBuAFWAf8BwgGLATkB/wHgAZwBOgH/A1sBxggAAzABTAEjATIBsgH/ARkBJgF1
Af8DMAFMAxIBGQMSARkDEgEZA7gB/wNOAZkDEgEZAxIBGQMwAUwBIwEyAbIB/wEZASYBdQH/AzABTAMS
ARkDMAFMAbIBbAEjAf8BdQFGARkB/wMwAUwDEgEZAxIBGQMSARkDuAH/A04BmQMSARkDEgEZAzABTAGy
AWwBIwH/AXUBRgEZAf8DMAFMAxIBGQwAA1YBsQGfAakC/wGXAaIC/wGLAZUC/wFwAYIC/wFeAW0B/QH/
AVQBYQH5Af8BSAFXAfcB/wFBAVEB+gH/A1oBvRgAA1YBsQH/AdUBnwL/AdEBlwL/Ac8BiwL/AcMBcAH/
Af0BugFeAf8B+QG2AVQB/wH3Aa8BSAH/AfoBrQFBAf8DWgG9DAABLAFEAd8B/wEqAT4B2AH/AR8BKwGd
Af8BGQEmAXUB/wNDAf8DQwH/A0MB/wO4Af8DQwH/A0MB/wNDAf8BLAFEAd8B/wEqAT4B2AH/AR8BKwGd
Af8BGQEmAXUB/wMSARkB3wGHASwB/wHYAYYBKgH/AZ0BYAEfAf8BdQFGARkB/wNDAf8DQwH/A0MB/wO4
Af8DQwH/A0MB/wNDAf8B3wGHASwB/wHYAYYBKgH/AZ0BYAEfAf8BdQFGARkB/wMSARkQAAM4AVwDXgHY
AXcBhwL/AYMBjQL/AXABgwL/AVsBaQL/A14B2AM4AVwgAAM4AVwDXgHYAf8BxwF3Av8BzAGDAv8BwgFw
Av8BvAFbAf8DXgHYAzgBXBAAAWgBgQH9Af8B7AHlAv8BKgE+AdgB/wEjATIBsgH/A7gB/wO4Af8DuAH/
A7gB/wO4Af8DpgH/A5gB/wFoAYEB/QH/AewB5QL/ASoBPgHYAf8BIwEyAbIB/wMSARkB/QG0AWgC/wH9
AeUB/wHYAYYBKgH/AbIBbAEjAf8DuAH/A7gB/wO4Af8DuAH/A7gB/wOmAf8DmAH/Af0BtAFoAv8B/QHl
Af8B2AGGASoB/wGyAWwBIwH/AxIBGRwAAyMBMwMjATM4AAMjATMDIwEzHAADMAFMAWgBgQH9Af8BLAFE
Ad8B/wMwAUwcAAMwAUwBaAGBAf0B/wEsAUQB3wH/AzABTAQAAzABTAH9AbQBaAH/Ad8BhwEsAf8DMAFM
HAADMAFMAf0BtAFoAf8B3wGHASwB/wMwAUwEAAFCAU0BPgcAAT4DAAEoAwABQAMAASADAAEBAQABAQYA
AQEWAAP/AQABjwH/AY8B/wQAAQcB/wEHAf8EAAEHAf8BBwH/BAABBwH/AQcB/wQAAQMB/wEDAf8EAAHB
AY8BwQGPBAAB4AEPAeABDwQAAfABHwHwAR8EAAH4AT8B+AE/BAAB/AEfAfwBHwQAAf4BDwH+AQ8EAAH/
AQEB/wEBBAAB/wGAAf8BgAQAAf8BwAH/AcAEAAH/AeAB/wHgBAAB/wHhAf8B4QQAAfgBBwH4AQcBjwHx
AY8B8QHwAQMB8AEDBAAB4AEBAeABAQQAAcABAAHABQABgAEAAYABAAEOAWEBDgFhAYABAAGAAQABjgFx
AY4BcQGAAQABgAEAAY8B8QGPAfEEAAGHAcEBhwHBBAABhwHBAYcBwQGAAQABgAEAAY8B8QGPAfEBgAEA
AYABAAGPAfEBjwHxAYABAQGAAQEBjgFxAY4BcQHAAQMBwAEDBAAB4AEHAeABBwQAAfABDwHwAQ8EAAH+
AX8B/gF/AQ8B4QEPAeEL
</value>
</data>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>122, 17</value>
<value>122, 17</value>
</metadata>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>122, 17</value>
<value>122, 17</value>
</metadata>
<metadata name="updatetimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>219, 17</value>
<value>219, 17</value>
</metadata>
</root>