Default sector brightness can now be set in Preferences.

Default sector ceiling height can now be set in Preferences.
Default sector floor height can now be set in Preferences.
Maximum number of recent files can now be changed in Preferences.
UDMF, Custom fields: a warning is now shown when a user tries to manually add a managed filed.
UDMF: "Translucent" linedef flag is now marked as obsolete.
This commit is contained in:
MaxED 2013-09-16 13:41:00 +00:00
parent e2802b2712
commit 735447edbe
13 changed files with 575 additions and 367 deletions

View file

@ -31,7 +31,7 @@ linedefflags_udmf
blockeverything = "Block everything"; blockeverything = "Block everything";
blockplayers = "Block players"; blockplayers = "Block players";
blockfloaters = "Block floating"; blockfloaters = "Block floating";
translucent = "Translucent"; translucent = "Translucent (obsolete)";
jumpover = "Jump-over railing"; jumpover = "Jump-over railing";
zoneboundary = "Sound zone boundary"; zoneboundary = "Sound zone boundary";
clipmidtex = "Clip middle texture"; clipmidtex = "Clip middle texture";

View file

@ -38,8 +38,9 @@
</tr> </tr>
<tr valign="top"> <tr valign="top">
<td><p><strong>1. Vertex scale factor:</strong> controls the size of vertex handles.</p> <td><p><strong>1. Vertex scale factor:</strong> controls the size of vertex handles.</p>
<p><strong><a name="synch_camera" id="synch_camera"></a>2.<a href="features/all_modes/synch_camera.html"> Sync camera position between 2D and 3D modes</a>:</strong> when enabled, GZDoom Builder will center 2D-mode on Visual Camera position when you leave Visual mode, and will place Visual Camera at cursor position when you toggle from 2D-mode to Visual Mode (unless you have Visual Mode camera thing in your map).</p> <p><strong>2. Max. recent files:</strong> controls how many recent files to show in File menu.</p>
<p><strong>3. Rendering toolbar:</strong> if enabled, <a href="features/general/rendering_toolbar.html">Rendering toolbar</a> will be shown in the main editing window.</p> </td> <p><strong><a name="synch_camera" id="synch_camera"></a>3.<a href="features/all_modes/synch_camera.html"> Sync camera position between 2D and 3D modes</a>:</strong> when enabled, GZDoom Builder will center 2D-mode on Visual Camera position when you leave Visual mode, and will place Visual Camera at cursor position when you toggle from 2D-mode to Visual Mode (unless you have Visual Mode camera thing in your map).</p>
<p><strong>4. Rendering toolbar:</strong> if enabled, <a href="features/general/rendering_toolbar.html">Rendering toolbar</a> will be shown in the main editing window.</p> </td>
<td><img src="preferences1.jpg" alt="" /></td> <td><img src="preferences1.jpg" alt="" /></td>
</tr> </tr>
<tr valign="top"> <tr valign="top">
@ -64,10 +65,13 @@
<td style="background-color:#333333" colspan="2"><h3 class="style4">Editing tab</h3></td> <td style="background-color:#333333" colspan="2"><h3 class="style4">Editing tab</h3></td>
<td>&nbsp;</td> <td>&nbsp;</td>
<tr valign="top"> <tr valign="top">
<td><p><strong>1. Auto-align textures on newly created linedefs.</strong> When enabled, auto texture alignment will be applied to sidedefs created after drawing deometry.</p> <td><p><strong>1. Default sector brightness.</strong></p>
<p><strong>2. Try to align horizontal texture offset of dragged geometry.</strong> When enabled, texture offsets of sidedefs, adjacent to dragged geometry, will be aligned to dragged geometry.</p> <p><strong>2. Default sector ceiling height.</strong></p>
<p><strong>3. Don't move selection if any part of it is outside of map boundary.</strong> When enabled, geometry outisde of map boundaries can not be dragged. When disabled, geometry will be moved inside of map boundary, most likely destroying sector shapes in process (DB2 behaviour).</p> <p><strong>3. Default sector floor height.</strong></p>
<p><strong><a name="synch_selection" id="synch_selection"></a>4. <a href="features/all_modes/synch_selection.html">Synchronise selection between Visual and Classic modes</a>.</strong></p> </td> <p><strong>4. Auto-align textures on newly created linedefs.</strong> When enabled, auto texture alignment will be applied to sidedefs created after drawing deometry.</p>
<p><strong>5. Try to align horizontal texture offset of dragged geometry.</strong> When enabled, texture offsets of sidedefs, adjacent to dragged geometry, will be aligned to dragged geometry.</p>
<p><strong>6. Don't move selection if any part of it is outside of map boundary.</strong> When enabled, geometry outisde of map boundaries can not be dragged. When disabled, geometry will be moved inside of map boundary, most likely destroying sector shapes in process (DB2 behaviour).</p>
<p><strong><a name="synch_selection" id="synch_selection"></a>7. <a href="features/all_modes/synch_selection.html">Synchronise selection between Visual and Classic modes</a>.</strong></p> </td>
<td><img src="preferences3.jpg" alt="" /></td> <td><img src="preferences3.jpg" alt="" /></td>
</table> </table>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 81 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Before After
Before After

View file

@ -111,12 +111,13 @@ namespace CodeImp.DoomBuilder.Config
private bool gzForceDefaultTextures; private bool gzForceDefaultTextures;
private string lastUsedConfigName; private string lastUsedConfigName;
private bool gzMarkExtraFloors; private bool gzMarkExtraFloors;
private int maxRecentFiles;
// These are not stored in the configuration, only used at runtime // These are not stored in the configuration, only used at runtime
private string defaulttexture; private string defaulttexture;
private int defaultbrightness = 192; private int defaultbrightness;
private int defaultfloorheight; private int defaultfloorheight;
private int defaultceilheight = 128; private int defaultceilheight;
private string defaultfloortexture; private string defaultfloortexture;
private string defaultceiltexture; private string defaultceiltexture;
private int defaultthingtype = 1; private int defaultthingtype = 1;
@ -196,6 +197,7 @@ namespace CodeImp.DoomBuilder.Config
public bool GZForceDefaultTextures { get { return gzForceDefaultTextures; } internal set { gzForceDefaultTextures = value; } } public bool GZForceDefaultTextures { get { return gzForceDefaultTextures; } internal set { gzForceDefaultTextures = value; } }
public string LastUsedConfigName { get { return lastUsedConfigName; } internal set { lastUsedConfigName = value; } } public string LastUsedConfigName { get { return lastUsedConfigName; } internal set { lastUsedConfigName = value; } }
public bool GZMarkExtraFloors { get { return gzMarkExtraFloors; } internal set { gzMarkExtraFloors = 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 DefaultTexture { get { return defaulttexture; } set { defaulttexture = value; } }
public string DefaultFloorTexture { get { return defaultfloortexture; } set { defaultfloortexture = value; } } public string DefaultFloorTexture { get { return defaultfloortexture; } set { defaultfloortexture = value; } }
@ -296,6 +298,12 @@ namespace CodeImp.DoomBuilder.Config
gzVisualVertexSize = cfg.ReadSetting("gzvisualvertexsize", 6); gzVisualVertexSize = cfg.ReadSetting("gzvisualvertexsize", 6);
lastUsedConfigName = cfg.ReadSetting("lastusedconfigname", ""); lastUsedConfigName = cfg.ReadSetting("lastusedconfigname", "");
gzMarkExtraFloors = cfg.ReadSetting("gzmarkextrafloors", true); 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 // Success
return true; return true;
@ -376,6 +384,12 @@ namespace CodeImp.DoomBuilder.Config
cfg.WriteSetting("gzmarkextrafloors", gzMarkExtraFloors); cfg.WriteSetting("gzmarkextrafloors", gzMarkExtraFloors);
if(!string.IsNullOrEmpty(lastUsedConfigName)) if(!string.IsNullOrEmpty(lastUsedConfigName))
cfg.WriteSetting("lastusedconfigname", 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 // Save settings configuration
General.WriteLogLine("Saving program configuration..."); General.WriteLogLine("Saving program configuration...");

View file

@ -543,35 +543,38 @@ namespace CodeImp.DoomBuilder.Controls
{ {
// Make a valid UDMF field name // Make a valid UDMF field name
string validname = UniValue.ValidateName(row.Cells[0].Value.ToString()); string validname = UniValue.ValidateName(row.Cells[0].Value.ToString());
if(validname.Length > 0 && !uifields.ContainsKey(validname)) //mxd if(validname.Length > 0)
{ {
// Check if no other row already has this name if(uifields.ContainsKey(validname)) { //mxd
foreach(DataGridViewRow r in fieldslist.Rows) MessageBox.Show("Please set this field's value via user interface.");
{ } else {
// Name matches and not the same row? // Check if no other row already has this name
if((r.Index != row.Index) && (r.Cells.Count > 0) && (r.Cells[0].Value != null) && foreach (DataGridViewRow r in fieldslist.Rows)
(r.Cells[0].Value.ToString().ToLowerInvariant() == validname))
{ {
// Cannot have two rows with same name // Name matches and not the same row?
validname = ""; if ((r.Index != row.Index) && (r.Cells.Count > 0) && (r.Cells[0].Value != null) &&
General.ShowWarningMessage("Fields must have unique names!", MessageBoxButtons.OK); (r.Cells[0].Value.ToString().ToLowerInvariant() == validname)) {
break; // Cannot have two rows with same name
validname = "";
General.ShowWarningMessage("Fields must have unique names!", MessageBoxButtons.OK);
break;
}
} }
}
// Still valid? // Still valid?
if(validname.Length > 0) if (validname.Length > 0)
{ {
// Try to find the type in the map options // Try to find the type in the map options
int type = General.Map.Options.GetUniversalFieldType(elementname, validname, 0); int type = General.Map.Options.GetUniversalFieldType(elementname, validname, 0);
// Make new row // Make new row
frow = new FieldsEditorRow(fieldslist, validname, type, null); frow = new FieldsEditorRow(fieldslist, validname, type, null);
frow.Visible = false; frow.Visible = false;
fieldslist.Rows.Insert(e.RowIndex + 1, frow); fieldslist.Rows.Insert(e.RowIndex + 1, frow);
if(OnFieldInserted != null) if (OnFieldInserted != null)
OnFieldInserted(validname); OnFieldInserted(validname);
}
} }
} }
} }

View file

@ -48,7 +48,6 @@ namespace CodeImp.DoomBuilder.Windows
#region ================== Constants #region ================== Constants
// Recent files // Recent files
private const int MAX_RECENT_FILES = 8;
private const int MAX_RECENT_FILES_PIXELS = 250; private const int MAX_RECENT_FILES_PIXELS = 250;
// Dockers // Dockers
@ -2139,16 +2138,15 @@ namespace CodeImp.DoomBuilder.Windows
// This sets the recent files from configuration // This sets the recent files from configuration
private void CreateRecentFiles() private void CreateRecentFiles()
{ {
int insertindex;
bool anyitems = false; bool anyitems = false;
string filename; string filename;
// Where to insert // Where to insert
insertindex = menufile.DropDownItems.IndexOf(itemnorecent); int insertindex = menufile.DropDownItems.IndexOf(itemnorecent);
// Create all items // Create all items
recentitems = new ToolStripMenuItem[MAX_RECENT_FILES]; recentitems = new ToolStripMenuItem[General.Settings.MaxRecentFiles];
for(int i = 0; i < MAX_RECENT_FILES; i++) for(int i = 0; i < General.Settings.MaxRecentFiles; i++)
{ {
// Create item // Create item
recentitems[i] = new ToolStripMenuItem(""); recentitems[i] = new ToolStripMenuItem("");
@ -2182,7 +2180,7 @@ namespace CodeImp.DoomBuilder.Windows
private void SaveRecentFiles() private void SaveRecentFiles()
{ {
// Go for all items // Go for all items
for(int i = 0; i < MAX_RECENT_FILES; i++) for(int i = 0; i < recentitems.Length; i++)
{ {
// Recent file set? // Recent file set?
if(recentitems[i].Text != "") if(recentitems[i].Text != "")
@ -2196,10 +2194,19 @@ namespace CodeImp.DoomBuilder.Windows
// This adds a recent file to the list // This adds a recent file to the list
internal void AddRecentFile(string filename) internal void AddRecentFile(string filename)
{ {
int movedownto = MAX_RECENT_FILES - 1; //mxd. Recreate recent files list
if (recentitems.Length != General.Settings.MaxRecentFiles) {
foreach(ToolStripMenuItem item in recentitems)
menufile.DropDownItems.Remove(item);
SaveRecentFiles();
CreateRecentFiles();
}
int movedownto = General.Settings.MaxRecentFiles - 1;
// Check if this file is already in the list // Check if this file is already in the list
for(int i = 0; i < MAX_RECENT_FILES; i++) for(int i = 0; i < General.Settings.MaxRecentFiles; i++)
{ {
// File same as this item? // File same as this item?
if(string.Compare(filename, recentitems[i].Tag.ToString(), true) == 0) if(string.Compare(filename, recentitems[i].Tag.ToString(), true) == 0)

View file

@ -159,6 +159,9 @@ namespace CodeImp.DoomBuilder.Windows
this.label16 = new System.Windows.Forms.Label(); this.label16 = new System.Windows.Forms.Label();
this.pasteoptions = new CodeImp.DoomBuilder.Controls.PasteOptionsControl(); this.pasteoptions = new CodeImp.DoomBuilder.Controls.PasteOptionsControl();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.recentFiles = new Dotnetrix.Controls.TrackBar();
this.labelRecentFiles = new System.Windows.Forms.Label();
this.label25 = new System.Windows.Forms.Label();
label7 = new System.Windows.Forms.Label(); label7 = new System.Windows.Forms.Label();
label6 = new System.Windows.Forms.Label(); label6 = new System.Windows.Forms.Label();
label5 = new System.Windows.Forms.Label(); label5 = new System.Windows.Forms.Label();
@ -193,6 +196,7 @@ namespace CodeImp.DoomBuilder.Windows
((System.ComponentModel.ISupportInitialize)(this.imagebrightness)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.imagebrightness)).BeginInit();
this.colorsgroup3.SuspendLayout(); this.colorsgroup3.SuspendLayout();
this.tabpasting.SuspendLayout(); this.tabpasting.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.recentFiles)).BeginInit();
this.SuspendLayout(); this.SuspendLayout();
// //
// label7 // label7
@ -224,6 +228,9 @@ namespace CodeImp.DoomBuilder.Windows
// //
// groupBox1 // groupBox1
// //
groupBox1.Controls.Add(this.recentFiles);
groupBox1.Controls.Add(this.labelRecentFiles);
groupBox1.Controls.Add(this.label25);
groupBox1.Controls.Add(this.vertexScaleLabel); groupBox1.Controls.Add(this.vertexScaleLabel);
groupBox1.Controls.Add(this.label22); groupBox1.Controls.Add(this.label22);
groupBox1.Controls.Add(this.vertexScale); groupBox1.Controls.Add(this.vertexScale);
@ -243,7 +250,7 @@ namespace CodeImp.DoomBuilder.Windows
groupBox1.Controls.Add(this.defaultviewmode); groupBox1.Controls.Add(this.defaultviewmode);
groupBox1.Location = new System.Drawing.Point(8, 8); groupBox1.Location = new System.Drawing.Point(8, 8);
groupBox1.Name = "groupBox1"; groupBox1.Name = "groupBox1";
groupBox1.Size = new System.Drawing.Size(331, 313); groupBox1.Size = new System.Drawing.Size(331, 372);
groupBox1.TabIndex = 0; groupBox1.TabIndex = 0;
groupBox1.TabStop = false; groupBox1.TabStop = false;
groupBox1.Text = " Options "; groupBox1.Text = " Options ";
@ -282,7 +289,7 @@ namespace CodeImp.DoomBuilder.Windows
// cbSynchCameras // cbSynchCameras
// //
this.cbSynchCameras.AutoSize = true; this.cbSynchCameras.AutoSize = true;
this.cbSynchCameras.Location = new System.Drawing.Point(32, 282); this.cbSynchCameras.Location = new System.Drawing.Point(32, 343);
this.cbSynchCameras.Name = "cbSynchCameras"; this.cbSynchCameras.Name = "cbSynchCameras";
this.cbSynchCameras.Size = new System.Drawing.Size(264, 18); this.cbSynchCameras.Size = new System.Drawing.Size(264, 18);
this.cbSynchCameras.TabIndex = 42; this.cbSynchCameras.TabIndex = 42;
@ -292,7 +299,7 @@ namespace CodeImp.DoomBuilder.Windows
// showtexturesizes // showtexturesizes
// //
this.showtexturesizes.AutoSize = true; this.showtexturesizes.AutoSize = true;
this.showtexturesizes.Location = new System.Drawing.Point(32, 258); this.showtexturesizes.Location = new System.Drawing.Point(32, 319);
this.showtexturesizes.Name = "showtexturesizes"; this.showtexturesizes.Name = "showtexturesizes";
this.showtexturesizes.Size = new System.Drawing.Size(222, 18); this.showtexturesizes.Size = new System.Drawing.Size(222, 18);
this.showtexturesizes.TabIndex = 41; this.showtexturesizes.TabIndex = 41;
@ -302,7 +309,7 @@ namespace CodeImp.DoomBuilder.Windows
// scriptontop // scriptontop
// //
this.scriptontop.AutoSize = true; this.scriptontop.AutoSize = true;
this.scriptontop.Location = new System.Drawing.Point(32, 234); this.scriptontop.Location = new System.Drawing.Point(32, 295);
this.scriptontop.Name = "scriptontop"; this.scriptontop.Name = "scriptontop";
this.scriptontop.Size = new System.Drawing.Size(237, 18); this.scriptontop.Size = new System.Drawing.Size(237, 18);
this.scriptontop.TabIndex = 40; this.scriptontop.TabIndex = 40;
@ -412,10 +419,10 @@ namespace CodeImp.DoomBuilder.Windows
this.defaultviewmode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.defaultviewmode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.defaultviewmode.FormattingEnabled = true; this.defaultviewmode.FormattingEnabled = true;
this.defaultviewmode.Items.AddRange(new object[] { this.defaultviewmode.Items.AddRange(new object[] {
"Wireframe", "Wireframe",
"Brightness Levels", "Brightness Levels",
"Floor Textures", "Floor Textures",
"Ceiling Textures"}); "Ceiling Textures"});
this.defaultviewmode.Location = new System.Drawing.Point(135, 17); this.defaultviewmode.Location = new System.Drawing.Point(135, 17);
this.defaultviewmode.Name = "defaultviewmode"; this.defaultviewmode.Name = "defaultviewmode";
this.defaultviewmode.Size = new System.Drawing.Size(145, 22); this.defaultviewmode.Size = new System.Drawing.Size(145, 22);
@ -760,7 +767,7 @@ namespace CodeImp.DoomBuilder.Windows
this.groupBox5.Controls.Add(this.toolbar_copy); this.groupBox5.Controls.Add(this.toolbar_copy);
this.groupBox5.Controls.Add(this.toolbar_undo); this.groupBox5.Controls.Add(this.toolbar_undo);
this.groupBox5.Controls.Add(this.toolbar_script); this.groupBox5.Controls.Add(this.toolbar_script);
this.groupBox5.Location = new System.Drawing.Point(8, 327); this.groupBox5.Location = new System.Drawing.Point(345, 327);
this.groupBox5.Name = "groupBox5"; this.groupBox5.Name = "groupBox5";
this.groupBox5.Size = new System.Drawing.Size(331, 173); this.groupBox5.Size = new System.Drawing.Size(331, 173);
this.groupBox5.TabIndex = 4; this.groupBox5.TabIndex = 4;
@ -872,9 +879,9 @@ namespace CodeImp.DoomBuilder.Windows
this.groupBox4.Controls.Add(this.collapsedockers); this.groupBox4.Controls.Add(this.collapsedockers);
this.groupBox4.Controls.Add(this.dockersposition); this.groupBox4.Controls.Add(this.dockersposition);
this.groupBox4.Controls.Add(this.label17); this.groupBox4.Controls.Add(this.label17);
this.groupBox4.Location = new System.Drawing.Point(345, 327); this.groupBox4.Location = new System.Drawing.Point(10, 386);
this.groupBox4.Name = "groupBox4"; this.groupBox4.Name = "groupBox4";
this.groupBox4.Size = new System.Drawing.Size(329, 173); this.groupBox4.Size = new System.Drawing.Size(329, 114);
this.groupBox4.TabIndex = 3; this.groupBox4.TabIndex = 3;
this.groupBox4.TabStop = false; this.groupBox4.TabStop = false;
this.groupBox4.Text = " Side Panels "; this.groupBox4.Text = " Side Panels ";
@ -894,9 +901,9 @@ namespace CodeImp.DoomBuilder.Windows
this.dockersposition.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.dockersposition.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.dockersposition.FormattingEnabled = true; this.dockersposition.FormattingEnabled = true;
this.dockersposition.Items.AddRange(new object[] { this.dockersposition.Items.AddRange(new object[] {
"Left", "Left",
"Right", "Right",
"None"}); "None"});
this.dockersposition.Location = new System.Drawing.Point(95, 34); this.dockersposition.Location = new System.Drawing.Point(95, 34);
this.dockersposition.Name = "dockersposition"; this.dockersposition.Name = "dockersposition";
this.dockersposition.Size = new System.Drawing.Size(85, 22); this.dockersposition.Size = new System.Drawing.Size(85, 22);
@ -1118,8 +1125,8 @@ namespace CodeImp.DoomBuilder.Windows
| System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.listactions.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.listactions.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columncontrolaction, this.columncontrolaction,
this.columncontrolkey}); this.columncontrolkey});
this.listactions.FullRowSelect = true; this.listactions.FullRowSelect = true;
this.listactions.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; this.listactions.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.listactions.HideSelection = false; this.listactions.HideSelection = false;
@ -1527,23 +1534,23 @@ namespace CodeImp.DoomBuilder.Windows
this.scriptfontsize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.scriptfontsize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.scriptfontsize.FormattingEnabled = true; this.scriptfontsize.FormattingEnabled = true;
this.scriptfontsize.Items.AddRange(new object[] { this.scriptfontsize.Items.AddRange(new object[] {
"7", "7",
"8", "8",
"9", "9",
"10", "10",
"11", "11",
"12", "12",
"14", "14",
"16", "16",
"18", "18",
"20", "20",
"22", "22",
"24", "24",
"26", "26",
"28", "28",
"36", "36",
"48", "48",
"72"}); "72"});
this.scriptfontsize.Location = new System.Drawing.Point(236, 45); this.scriptfontsize.Location = new System.Drawing.Point(236, 45);
this.scriptfontsize.Name = "scriptfontsize"; this.scriptfontsize.Name = "scriptfontsize";
this.scriptfontsize.Size = new System.Drawing.Size(94, 22); this.scriptfontsize.Size = new System.Drawing.Size(94, 22);
@ -1716,6 +1723,37 @@ namespace CodeImp.DoomBuilder.Windows
this.pasteoptions.Size = new System.Drawing.Size(666, 427); this.pasteoptions.Size = new System.Drawing.Size(666, 427);
this.pasteoptions.TabIndex = 0; this.pasteoptions.TabIndex = 0;
// //
// recentFiles
//
this.recentFiles.LargeChange = 1;
this.recentFiles.Location = new System.Drawing.Point(127, 238);
this.recentFiles.Maximum = 25;
this.recentFiles.Minimum = 8;
this.recentFiles.Name = "recentFiles";
this.recentFiles.Size = new System.Drawing.Size(116, 45);
this.recentFiles.TabIndex = 46;
this.recentFiles.TickStyle = System.Windows.Forms.TickStyle.Both;
this.recentFiles.Value = 8;
this.recentFiles.ValueChanged += new System.EventHandler(this.recentFiles_ValueChanged);
//
// labelRecentFiles
//
this.labelRecentFiles.AutoSize = true;
this.labelRecentFiles.Location = new System.Drawing.Point(249, 250);
this.labelRecentFiles.Name = "labelRecentFiles";
this.labelRecentFiles.Size = new System.Drawing.Size(13, 14);
this.labelRecentFiles.TabIndex = 48;
this.labelRecentFiles.Text = "8";
//
// label25
//
this.label25.AutoSize = true;
this.label25.Location = new System.Drawing.Point(31, 251);
this.label25.Name = "label25";
this.label25.Size = new System.Drawing.Size(90, 14);
this.label25.TabIndex = 47;
this.label25.Text = "Max. recent files:";
//
// PreferencesForm // PreferencesForm
// //
this.AcceptButton = this.apply; this.AcceptButton = this.apply;
@ -1772,6 +1810,7 @@ namespace CodeImp.DoomBuilder.Windows
this.colorsgroup3.ResumeLayout(false); this.colorsgroup3.ResumeLayout(false);
this.colorsgroup3.PerformLayout(); this.colorsgroup3.PerformLayout();
this.tabpasting.ResumeLayout(false); this.tabpasting.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.recentFiles)).EndInit();
this.ResumeLayout(false); this.ResumeLayout(false);
} }
@ -1899,5 +1938,8 @@ namespace CodeImp.DoomBuilder.Windows
private System.Windows.Forms.TextBox actiondescription; private System.Windows.Forms.TextBox actiondescription;
private System.Windows.Forms.RichTextBox fontpreview; private System.Windows.Forms.RichTextBox fontpreview;
private System.Windows.Forms.CheckBox cbMarkExtraFloors; private System.Windows.Forms.CheckBox cbMarkExtraFloors;
private Dotnetrix.Controls.TrackBar recentFiles;
private System.Windows.Forms.Label labelRecentFiles;
private System.Windows.Forms.Label label25;
} }
} }

View file

@ -104,6 +104,7 @@ namespace CodeImp.DoomBuilder.Windows
vertexScale.Value = General.Clamp((int)(General.Settings.GZVertexScale2D), vertexScale.Minimum, vertexScale.Maximum); vertexScale.Value = General.Clamp((int)(General.Settings.GZVertexScale2D), vertexScale.Minimum, vertexScale.Maximum);
vertexScaleLabel.Text = vertexScale.Value * 100 + "%" + (vertexScale.Value == 1 ? " (default)" : ""); vertexScaleLabel.Text = vertexScale.Value * 100 + "%" + (vertexScale.Value == 1 ? " (default)" : "");
cbMarkExtraFloors.Checked = General.Settings.GZMarkExtraFloors; cbMarkExtraFloors.Checked = General.Settings.GZMarkExtraFloors;
recentFiles.Value = General.Settings.MaxRecentFiles;
// Fill fonts list // Fill fonts list
scriptfontname.BeginUpdate(); scriptfontname.BeginUpdate();
@ -241,6 +242,7 @@ namespace CodeImp.DoomBuilder.Windows
General.Settings.ToolbarTesting = toolbar_testing.Checked; General.Settings.ToolbarTesting = toolbar_testing.Checked;
General.Settings.GZToolbarGZDoom = toolbar_gzdoom.Checked; //mxd General.Settings.GZToolbarGZDoom = toolbar_gzdoom.Checked; //mxd
General.Settings.ShowTextureSizes = showtexturesizes.Checked; General.Settings.ShowTextureSizes = showtexturesizes.Checked;
General.Settings.MaxRecentFiles = recentFiles.Value; //mxd
// Script font size // Script font size
int fontsize = 8; int fontsize = 8;
@ -402,6 +404,11 @@ namespace CodeImp.DoomBuilder.Windows
vertexScaleLabel.Text = vertexScale.Value * 100 + "%" + (vertexScale.Value == 1 ? " (default)" : ""); vertexScaleLabel.Text = vertexScale.Value * 100 + "%" + (vertexScale.Value == 1 ? " (default)" : "");
} }
//mxd
private void recentFiles_ValueChanged(object sender, EventArgs e) {
labelRecentFiles.Text = recentFiles.Value.ToString();
}
// This updates the script font preview label // This updates the script font preview label
private void updateScriptFontPreview() private void updateScriptFontPreview()
{ {

View file

@ -1,147 +1,147 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<root> <root>
<!-- <!--
Microsoft ResX Schema Microsoft ResX Schema
Version 2.0 Version 2.0
The primary goals of this format is to allow a simple XML format The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes various data types are done through the TypeConverter classes
associated with the data types. associated with the data types.
Example: Example:
... ado.net/XML headers & schema ... ... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader> <resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader> <resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, 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="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="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value> <value>[base64 mime encoded serialized .NET Framework object]</value>
</data> </data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <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> <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment> <comment>This is a comment</comment>
</data> </data>
There are any number of "resheader" rows that contain simple There are any number of "resheader" rows that contain simple
name/value pairs. name/value pairs.
Each data row contains a name, and value. The row also contains a Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture. text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the Classes that don't support this are serialized and stored with the
mimetype set. mimetype set.
The mimetype is used for serialized objects, and tells the The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly: extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below. read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64 mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64 mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64 mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter : using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding. : 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: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:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true"> <xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType> <xsd:complexType>
<xsd:choice maxOccurs="unbounded"> <xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata"> <xsd:element name="metadata">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" /> <xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" /> <xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" /> <xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" /> <xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" /> <xsd:attribute ref="xml:space" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="assembly"> <xsd:element name="assembly">
<xsd:complexType> <xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" /> <xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" /> <xsd:attribute name="name" type="xsd:string" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="data"> <xsd:element name="data">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <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:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> <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="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" /> <xsd:attribute ref="xml:space" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="resheader"> <xsd:element name="resheader">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" /> <xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
</xsd:choice> </xsd:choice>
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
</xsd:schema> </xsd:schema>
<resheader name="resmimetype"> <resheader name="resmimetype">
<value>text/microsoft-resx</value> <value>text/microsoft-resx</value>
</resheader> </resheader>
<resheader name="version"> <resheader name="version">
<value>2.0</value> <value>2.0</value>
</resheader> </resheader>
<resheader name="reader"> <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>
<resheader name="writer"> <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> </resheader>
<metadata name="label7.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <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>
<metadata name="label6.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <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>
<metadata name="label5.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <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>
<metadata name="groupBox1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <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>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="toolTip1.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> </metadata>
<metadata name="label1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <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>
<metadata name="label18.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="label18.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value> <value>False</value>
</metadata> </metadata>
<metadata name="label20.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="label20.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value> <value>False</value>
</metadata> </metadata>
<metadata name="label21.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="label21.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value> <value>False</value>
</metadata> </metadata>
</root> </root>

View file

@ -42,6 +42,10 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.editnewsector = new System.Windows.Forms.CheckBox(); this.editnewsector = new System.Windows.Forms.CheckBox();
this.additiveselect = new System.Windows.Forms.CheckBox(); this.additiveselect = new System.Windows.Forms.CheckBox();
this.groupBox2 = new System.Windows.Forms.GroupBox(); this.groupBox2 = new System.Windows.Forms.GroupBox();
this.splitlinedefsrange = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.stitchrange = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.highlightthingsrange = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.highlightrange = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.label8 = new System.Windows.Forms.Label(); this.label8 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label();
@ -55,15 +59,21 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.label10 = new System.Windows.Forms.Label(); this.label10 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label();
this.heightbysidedef = new System.Windows.Forms.ComboBox(); this.heightbysidedef = new System.Windows.Forms.ComboBox();
this.splitlinedefsrange = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); this.groupBox4 = new System.Windows.Forms.GroupBox();
this.stitchrange = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); this.defaultbrightness = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.highlightthingsrange = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); this.label11 = new System.Windows.Forms.Label();
this.highlightrange = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); 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.tabs.SuspendLayout();
this.taboptions.SuspendLayout(); this.taboptions.SuspendLayout();
this.groupBox3.SuspendLayout(); this.groupBox3.SuspendLayout();
this.groupBox2.SuspendLayout(); this.groupBox2.SuspendLayout();
this.groupBox1.SuspendLayout(); this.groupBox1.SuspendLayout();
this.groupBox4.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
// tabs // tabs
@ -81,6 +91,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// //
// taboptions // taboptions
// //
this.taboptions.Controls.Add(this.groupBox4);
this.taboptions.Controls.Add(this.groupBox3); this.taboptions.Controls.Add(this.groupBox3);
this.taboptions.Controls.Add(this.groupBox2); this.taboptions.Controls.Add(this.groupBox2);
this.taboptions.Controls.Add(this.groupBox1); this.taboptions.Controls.Add(this.groupBox1);
@ -228,15 +239,67 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.groupBox2.Controls.Add(this.label7); this.groupBox2.Controls.Add(this.label7);
this.groupBox2.Location = new System.Drawing.Point(6, 104); this.groupBox2.Location = new System.Drawing.Point(6, 104);
this.groupBox2.Name = "groupBox2"; this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(272, 287); this.groupBox2.Size = new System.Drawing.Size(272, 151);
this.groupBox2.TabIndex = 17; this.groupBox2.TabIndex = 17;
this.groupBox2.TabStop = false; this.groupBox2.TabStop = false;
this.groupBox2.Text = " Ranges "; this.groupBox2.Text = " Ranges ";
// //
// splitlinedefsrange
//
this.splitlinedefsrange.AllowDecimal = false;
this.splitlinedefsrange.AllowNegative = false;
this.splitlinedefsrange.AllowRelative = false;
this.splitlinedefsrange.ButtonStep = 5;
this.splitlinedefsrange.ButtonStepFloat = 1F;
this.splitlinedefsrange.Location = new System.Drawing.Point(156, 111);
this.splitlinedefsrange.Name = "splitlinedefsrange";
this.splitlinedefsrange.Size = new System.Drawing.Size(59, 24);
this.splitlinedefsrange.StepValues = null;
this.splitlinedefsrange.TabIndex = 19;
//
// stitchrange
//
this.stitchrange.AllowDecimal = false;
this.stitchrange.AllowNegative = false;
this.stitchrange.AllowRelative = false;
this.stitchrange.ButtonStep = 5;
this.stitchrange.ButtonStepFloat = 1F;
this.stitchrange.Location = new System.Drawing.Point(156, 81);
this.stitchrange.Name = "stitchrange";
this.stitchrange.Size = new System.Drawing.Size(59, 24);
this.stitchrange.StepValues = null;
this.stitchrange.TabIndex = 18;
//
// highlightthingsrange
//
this.highlightthingsrange.AllowDecimal = false;
this.highlightthingsrange.AllowNegative = false;
this.highlightthingsrange.AllowRelative = false;
this.highlightthingsrange.ButtonStep = 5;
this.highlightthingsrange.ButtonStepFloat = 1F;
this.highlightthingsrange.Location = new System.Drawing.Point(156, 51);
this.highlightthingsrange.Name = "highlightthingsrange";
this.highlightthingsrange.Size = new System.Drawing.Size(59, 24);
this.highlightthingsrange.StepValues = null;
this.highlightthingsrange.TabIndex = 17;
//
// highlightrange
//
this.highlightrange.AllowDecimal = false;
this.highlightrange.AllowNegative = false;
this.highlightrange.AllowRelative = false;
this.highlightrange.ButtonStep = 5;
this.highlightrange.ButtonStepFloat = 1F;
this.highlightrange.Location = new System.Drawing.Point(156, 21);
this.highlightrange.Name = "highlightrange";
this.highlightrange.Size = new System.Drawing.Size(59, 24);
this.highlightrange.StepValues = null;
this.highlightrange.TabIndex = 16;
//
// label8 // label8
// //
this.label8.AutoSize = true; this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(221, 157); this.label8.Location = new System.Drawing.Point(221, 116);
this.label8.Name = "label8"; this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(35, 14); this.label8.Size = new System.Drawing.Size(35, 14);
this.label8.TabIndex = 15; this.label8.TabIndex = 15;
@ -245,7 +308,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// label2 // label2
// //
this.label2.AutoSize = true; this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(33, 117); this.label2.Location = new System.Drawing.Point(33, 86);
this.label2.Name = "label2"; this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(117, 14); this.label2.Size = new System.Drawing.Size(117, 14);
this.label2.TabIndex = 4; this.label2.TabIndex = 4;
@ -255,7 +318,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// label3 // label3
// //
this.label3.AutoSize = true; this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(221, 117); this.label3.Location = new System.Drawing.Point(221, 86);
this.label3.Name = "label3"; this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(35, 14); this.label3.Size = new System.Drawing.Size(35, 14);
this.label3.TabIndex = 6; this.label3.TabIndex = 6;
@ -264,7 +327,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// label9 // label9
// //
this.label9.AutoSize = true; this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(47, 157); this.label9.Location = new System.Drawing.Point(47, 115);
this.label9.Name = "label9"; this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(103, 14); this.label9.Size = new System.Drawing.Size(103, 14);
this.label9.TabIndex = 13; this.label9.TabIndex = 13;
@ -274,7 +337,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// label5 // label5
// //
this.label5.AutoSize = true; this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(20, 37); this.label5.Location = new System.Drawing.Point(20, 26);
this.label5.Name = "label5"; this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(130, 14); this.label5.Size = new System.Drawing.Size(130, 14);
this.label5.TabIndex = 7; this.label5.TabIndex = 7;
@ -284,7 +347,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// label6 // label6
// //
this.label6.AutoSize = true; this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(221, 77); this.label6.Location = new System.Drawing.Point(221, 55);
this.label6.Name = "label6"; this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(35, 14); this.label6.Size = new System.Drawing.Size(35, 14);
this.label6.TabIndex = 12; this.label6.TabIndex = 12;
@ -293,7 +356,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// label4 // label4
// //
this.label4.AutoSize = true; this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(221, 37); this.label4.Location = new System.Drawing.Point(221, 26);
this.label4.Name = "label4"; this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(35, 14); this.label4.Size = new System.Drawing.Size(35, 14);
this.label4.TabIndex = 9; this.label4.TabIndex = 9;
@ -302,7 +365,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// label7 // label7
// //
this.label7.AutoSize = true; this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(36, 77); this.label7.Location = new System.Drawing.Point(36, 56);
this.label7.Name = "label7"; this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(114, 14); this.label7.Size = new System.Drawing.Size(114, 14);
this.label7.TabIndex = 10; this.label7.TabIndex = 10;
@ -327,9 +390,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.splitbehavior.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.splitbehavior.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.splitbehavior.FormattingEnabled = true; this.splitbehavior.FormattingEnabled = true;
this.splitbehavior.Items.AddRange(new object[] { this.splitbehavior.Items.AddRange(new object[] {
"Interpolate texture coordinates", "Interpolate texture coordinates",
"Duplicate texture coordinates", "Duplicate texture coordinates",
"Reset X coordinate, duplicate Y coordinate"}); "Reset X coordinate, duplicate Y coordinate"});
this.splitbehavior.Location = new System.Drawing.Point(342, 55); this.splitbehavior.Location = new System.Drawing.Point(342, 55);
this.splitbehavior.Name = "splitbehavior"; this.splitbehavior.Name = "splitbehavior";
this.splitbehavior.Size = new System.Drawing.Size(309, 22); this.splitbehavior.Size = new System.Drawing.Size(309, 22);
@ -360,62 +423,118 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.heightbysidedef.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.heightbysidedef.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.heightbysidedef.FormattingEnabled = true; this.heightbysidedef.FormattingEnabled = true;
this.heightbysidedef.Items.AddRange(new object[] { this.heightbysidedef.Items.AddRange(new object[] {
"Do nothing", "Do nothing",
"Change the ceiling height", "Change the ceiling height",
"Change the floor height", "Change the floor height",
"Change both floor and ceiling height"}); "Change both floor and ceiling height"});
this.heightbysidedef.Location = new System.Drawing.Point(342, 19); this.heightbysidedef.Location = new System.Drawing.Point(342, 19);
this.heightbysidedef.Name = "heightbysidedef"; this.heightbysidedef.Name = "heightbysidedef";
this.heightbysidedef.Size = new System.Drawing.Size(309, 22); this.heightbysidedef.Size = new System.Drawing.Size(309, 22);
this.heightbysidedef.TabIndex = 0; this.heightbysidedef.TabIndex = 0;
// //
// splitlinedefsrange // groupBox4
// //
this.splitlinedefsrange.AllowDecimal = false; this.groupBox4.Controls.Add(this.label15);
this.splitlinedefsrange.AllowNegative = false; this.groupBox4.Controls.Add(this.label14);
this.splitlinedefsrange.AllowRelative = false; this.groupBox4.Controls.Add(this.defaultfloorheight);
this.splitlinedefsrange.ButtonStep = 5; this.groupBox4.Controls.Add(this.label13);
this.splitlinedefsrange.Location = new System.Drawing.Point(156, 152); this.groupBox4.Controls.Add(this.defaultceilheight);
this.splitlinedefsrange.Name = "splitlinedefsrange"; this.groupBox4.Controls.Add(this.label12);
this.splitlinedefsrange.Size = new System.Drawing.Size(59, 24); this.groupBox4.Controls.Add(this.defaultbrightness);
this.splitlinedefsrange.StepValues = null; this.groupBox4.Controls.Add(this.label11);
this.splitlinedefsrange.TabIndex = 19; 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";
// //
// stitchrange // defaultbrightness
// //
this.stitchrange.AllowDecimal = false; this.defaultbrightness.AllowDecimal = false;
this.stitchrange.AllowNegative = false; this.defaultbrightness.AllowNegative = false;
this.stitchrange.AllowRelative = false; this.defaultbrightness.AllowRelative = false;
this.stitchrange.ButtonStep = 5; this.defaultbrightness.ButtonStep = 5;
this.stitchrange.Location = new System.Drawing.Point(156, 112); this.defaultbrightness.ButtonStepFloat = 1F;
this.stitchrange.Name = "stitchrange"; this.defaultbrightness.Location = new System.Drawing.Point(156, 23);
this.stitchrange.Size = new System.Drawing.Size(59, 24); this.defaultbrightness.Name = "defaultbrightness";
this.stitchrange.StepValues = null; this.defaultbrightness.Size = new System.Drawing.Size(59, 24);
this.stitchrange.TabIndex = 18; this.defaultbrightness.StepValues = null;
this.defaultbrightness.TabIndex = 21;
// //
// highlightthingsrange // label11
// //
this.highlightthingsrange.AllowDecimal = false; this.label11.AutoSize = true;
this.highlightthingsrange.AllowNegative = false; this.label11.Location = new System.Drawing.Point(52, 28);
this.highlightthingsrange.AllowRelative = false; this.label11.Name = "label11";
this.highlightthingsrange.ButtonStep = 5; this.label11.Size = new System.Drawing.Size(98, 14);
this.highlightthingsrange.Location = new System.Drawing.Point(156, 72); this.label11.TabIndex = 20;
this.highlightthingsrange.Name = "highlightthingsrange"; this.label11.Text = "Default brightness:";
this.highlightthingsrange.Size = new System.Drawing.Size(59, 24); this.label11.TextAlign = System.Drawing.ContentAlignment.TopRight;
this.highlightthingsrange.StepValues = null;
this.highlightthingsrange.TabIndex = 17;
// //
// highlightrange // defaultceilheight
// //
this.highlightrange.AllowDecimal = false; this.defaultceilheight.AllowDecimal = false;
this.highlightrange.AllowNegative = false; this.defaultceilheight.AllowNegative = false;
this.highlightrange.AllowRelative = false; this.defaultceilheight.AllowRelative = false;
this.highlightrange.ButtonStep = 5; this.defaultceilheight.ButtonStep = 5;
this.highlightrange.Location = new System.Drawing.Point(156, 32); this.defaultceilheight.ButtonStepFloat = 1F;
this.highlightrange.Name = "highlightrange"; this.defaultceilheight.Location = new System.Drawing.Point(156, 53);
this.highlightrange.Size = new System.Drawing.Size(59, 24); this.defaultceilheight.Name = "defaultceilheight";
this.highlightrange.StepValues = null; this.defaultceilheight.Size = new System.Drawing.Size(59, 24);
this.highlightrange.TabIndex = 16; 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 // PreferencesForm
// //
@ -437,6 +556,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.groupBox2.PerformLayout(); this.groupBox2.PerformLayout();
this.groupBox1.ResumeLayout(false); this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout(); this.groupBox1.PerformLayout();
this.groupBox4.ResumeLayout(false);
this.groupBox4.PerformLayout();
this.ResumeLayout(false); this.ResumeLayout(false);
} }
@ -474,5 +595,14 @@ namespace CodeImp.DoomBuilder.BuilderModes
private System.Windows.Forms.CheckBox autoalignDraggedSidedefsOffsetX; private System.Windows.Forms.CheckBox autoalignDraggedSidedefsOffsetX;
private System.Windows.Forms.CheckBox dontMoveGeometryOutsideBounds; private System.Windows.Forms.CheckBox dontMoveGeometryOutsideBounds;
private System.Windows.Forms.CheckBox syncSelection; 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

@ -59,6 +59,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
autoalignDraggedSidedefsOffsetX.Checked = BuilderPlug.Me.AutoAlignTextureOffsetsOnDrag; //mxd autoalignDraggedSidedefsOffsetX.Checked = BuilderPlug.Me.AutoAlignTextureOffsetsOnDrag; //mxd
dontMoveGeometryOutsideBounds.Checked = BuilderPlug.Me.DontMoveGeometryOutsideMapBoundary; //mxd dontMoveGeometryOutsideBounds.Checked = BuilderPlug.Me.DontMoveGeometryOutsideMapBoundary; //mxd
syncSelection.Checked = BuilderPlug.Me.SyncSelection; //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 #endregion
@ -85,6 +88,16 @@ namespace CodeImp.DoomBuilder.BuilderModes
General.Settings.WritePluginSetting("autoaligntextureoffsetsondrag", autoalignDraggedSidedefsOffsetX.Checked);//mxd General.Settings.WritePluginSetting("autoaligntextureoffsetsondrag", autoalignDraggedSidedefsOffsetX.Checked);//mxd
General.Settings.WritePluginSetting("dontmovegeometryoutsidemapboundary", dontMoveGeometryOutsideBounds.Checked);//mxd General.Settings.WritePluginSetting("dontmovegeometryoutsidemapboundary", dontMoveGeometryOutsideBounds.Checked);//mxd
General.Settings.WritePluginSetting("syncselection", syncSelection.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 // When Cancel is pressed on the preferences dialog

View file

@ -1,138 +1,126 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<root> <root>
<!-- <!--
Microsoft ResX Schema Microsoft ResX Schema
Version 2.0 Version 2.0
The primary goals of this format is to allow a simple XML format The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes various data types are done through the TypeConverter classes
associated with the data types. associated with the data types.
Example: Example:
... ado.net/XML headers & schema ... ... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader> <resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader> <resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, 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="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="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value> <value>[base64 mime encoded serialized .NET Framework object]</value>
</data> </data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <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> <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment> <comment>This is a comment</comment>
</data> </data>
There are any number of "resheader" rows that contain simple There are any number of "resheader" rows that contain simple
name/value pairs. name/value pairs.
Each data row contains a name, and value. The row also contains a Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture. text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the Classes that don't support this are serialized and stored with the
mimetype set. mimetype set.
The mimetype is used for serialized objects, and tells the The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly: extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below. read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64 mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64 mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64 mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter : using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding. : 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: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:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true"> <xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType> <xsd:complexType>
<xsd:choice maxOccurs="unbounded"> <xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata"> <xsd:element name="metadata">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" /> <xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" /> <xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" /> <xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" /> <xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" /> <xsd:attribute ref="xml:space" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="assembly"> <xsd:element name="assembly">
<xsd:complexType> <xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" /> <xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" /> <xsd:attribute name="name" type="xsd:string" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="data"> <xsd:element name="data">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <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:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> <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="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" /> <xsd:attribute ref="xml:space" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="resheader"> <xsd:element name="resheader">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" /> <xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
</xsd:choice> </xsd:choice>
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
</xsd:schema> </xsd:schema>
<resheader name="resmimetype"> <resheader name="resmimetype">
<value>text/microsoft-resx</value> <value>text/microsoft-resx</value>
</resheader> </resheader>
<resheader name="version"> <resheader name="version">
<value>2.0</value> <value>2.0</value>
</resheader> </resheader>
<resheader name="reader"> <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>
<resheader name="writer"> <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> </resheader>
<metadata name="tabs.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <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="label2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="label9.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="label5.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="label7.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata> </metadata>
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
</root> </root>