Fixed, Visual mode, Auto-align actions: incorrect texture was used when clamping texture offsets of 3D floor sides.

Fixed, Numeric textbox: incorrect character was treated as decimal separator character was used when using certain Windows regional settings.
Changed, Edit Things window: when applicable, the "Filter" textbox is now focused when opening the window.
Changed, Sector Effects browser window: when applicable, the "Filter" textbox is now focused when opening the window.
Changed, Edit Things window: when the "Filter" textbox is focused, pressing the "Down" key will now switch focus to the Things list.
Changed, Sector Effects Browser window: when the "Filter" textbox is focused, pressing the "Down" key will now switch focus to the Effects list.
Changed, Linedef Action Browser window: when the "Filter" textbox is focused, pressing the "Down" key will now switch focus to the Actions list.
Configurations, Doom map format thing flags: changed "Multiplayer" flag name to "Multiplayer only".
This commit is contained in:
MaxED 2015-09-23 11:04:12 +00:00
parent ff265d87f9
commit c3800fcf9c
16 changed files with 961 additions and 927 deletions

View file

@ -32,7 +32,7 @@ thingflags
2 = "Medium";
4 = "Hard";
8 = "Deaf";
16 = "Multiplayer";
16 = "Multiplayer only";
}

View file

@ -226,8 +226,8 @@ namespace CodeImp.DoomBuilder.Controls
{
if(usemodifierkeys)
{
string tip = "Hold Ctrl to change value by " + stepsizeSmall.ToString(CultureInfo.InvariantCulture) + "." + Environment.NewLine +
"Hold Shift to change value by " + stepsizeBig.ToString(CultureInfo.InvariantCulture) + ".";
string tip = "Hold Ctrl to change value by " + stepsizeSmall.ToString(CultureInfo.CurrentCulture) + "." + Environment.NewLine +
"Hold Shift to change value by " + stepsizeBig.ToString(CultureInfo.CurrentCulture) + ".";
tooltip.SetToolTip(buttons, tip);
textbox.UpdateTextboxStyle(tip);
}

View file

@ -87,11 +87,11 @@ namespace CodeImp.DoomBuilder.Controls
string allowedchars = "0123456789\b";
// Determine allowed chars
if(allownegative) allowedchars += CultureInfo.CurrentUICulture.NumberFormat.NegativeSign;
if(allownegative) allowedchars += CultureInfo.CurrentCulture.NumberFormat.NegativeSign;
if(allowrelative) allowedchars += "+-*/"; //mxd
if(controlpressed) allowedchars += "\u0018\u0003\u0016";
if(allowdecimal || this.Text.StartsWith("*") || this.Text.StartsWith("/")) //mxd
allowedchars += CultureInfo.CurrentUICulture.NumberFormat.NumberDecimalSeparator;
allowedchars += CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
// Check if key is not allowed
if(allowedchars.IndexOf(e.KeyChar) == -1)
@ -189,15 +189,6 @@ namespace CodeImp.DoomBuilder.Controls
// Make the textbox empty
this.Text = "";
}
else if(allowdecimal) //mxd
{
float value;
if(float.TryParse(textpart, NumberStyles.Float, CultureInfo.CurrentCulture, out value))
{
if(value == Math.Round(value))
this.Text = this.Text.Replace(textpart, value.ToString());
}
}
// Call base
base.OnValidating(e);

View file

@ -40,15 +40,15 @@ namespace CodeImp.DoomBuilder.Controls
this.thingimages = new System.Windows.Forms.ImageList(this.components);
this.infopanel = new System.Windows.Forms.Panel();
this.spritepanel = new System.Windows.Forms.Panel();
this.spritetex = new CodeImp.DoomBuilder.Controls.ConfigurablePictureBox();
this.classname = new System.Windows.Forms.LinkLabel();
this.labelclassname = new System.Windows.Forms.Label();
this.typeid = new CodeImp.DoomBuilder.Controls.NumericTextbox();
this.label1 = new System.Windows.Forms.Label();
this.tbFilter = new System.Windows.Forms.TextBox();
this.bClear = new System.Windows.Forms.Button();
this.updatetimer = new System.Windows.Forms.Timer(this.components);
this.typelist = new CodeImp.DoomBuilder.GZBuilder.Controls.MultiSelectTreeview();
this.spritetex = new CodeImp.DoomBuilder.Controls.ConfigurablePictureBox();
this.typeid = new CodeImp.DoomBuilder.Controls.NumericTextbox();
this.infopanel.SuspendLayout();
this.spritepanel.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.spritetex)).BeginInit();
@ -191,22 +191,6 @@ namespace CodeImp.DoomBuilder.Controls
this.spritepanel.Size = new System.Drawing.Size(68, 68);
this.spritepanel.TabIndex = 23;
//
// spritetex
//
this.spritetex.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.Default;
this.spritetex.Dock = System.Windows.Forms.DockStyle.Fill;
this.spritetex.Highlighted = false;
this.spritetex.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
this.spritetex.Location = new System.Drawing.Point(0, 0);
this.spritetex.Name = "spritetex";
this.spritetex.PageUnit = System.Drawing.GraphicsUnit.Pixel;
this.spritetex.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.None;
this.spritetex.Size = new System.Drawing.Size(64, 64);
this.spritetex.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.spritetex.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default;
this.spritetex.TabIndex = 0;
this.spritetex.TabStop = false;
//
// classname
//
this.classname.ActiveLinkColor = System.Drawing.SystemColors.Highlight;
@ -230,19 +214,6 @@ namespace CodeImp.DoomBuilder.Controls
this.labelclassname.Text = "Class:";
this.labelclassname.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// typeid
//
this.typeid.AllowDecimal = false;
this.typeid.AllowNegative = false;
this.typeid.AllowRelative = false;
this.typeid.ForeColor = System.Drawing.SystemColors.WindowText;
this.typeid.ImeMode = System.Windows.Forms.ImeMode.Off;
this.typeid.Location = new System.Drawing.Point(60, 2);
this.typeid.Name = "typeid";
this.typeid.Size = new System.Drawing.Size(68, 20);
this.typeid.TabIndex = 1;
this.typeid.TextChanged += new System.EventHandler(this.typeid_TextChanged);
//
// label1
//
this.label1.AutoSize = true;
@ -261,6 +232,7 @@ namespace CodeImp.DoomBuilder.Controls
this.tbFilter.Size = new System.Drawing.Size(232, 20);
this.tbFilter.TabIndex = 20;
this.tbFilter.TextChanged += new System.EventHandler(this.tbFilter_TextChanged);
this.tbFilter.KeyUp += new System.Windows.Forms.KeyEventHandler(this.tbFilter_KeyUp);
//
// bClear
//
@ -294,6 +266,35 @@ namespace CodeImp.DoomBuilder.Controls
this.typelist.MouseEnter += new System.EventHandler(this.typelist_MouseEnter);
this.typelist.SelectionsChanged += new System.EventHandler(this.typelist_SelectionsChanged);
//
// spritetex
//
this.spritetex.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.Default;
this.spritetex.Dock = System.Windows.Forms.DockStyle.Fill;
this.spritetex.Highlighted = false;
this.spritetex.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
this.spritetex.Location = new System.Drawing.Point(0, 0);
this.spritetex.Name = "spritetex";
this.spritetex.PageUnit = System.Drawing.GraphicsUnit.Pixel;
this.spritetex.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.None;
this.spritetex.Size = new System.Drawing.Size(64, 64);
this.spritetex.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.spritetex.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default;
this.spritetex.TabIndex = 0;
this.spritetex.TabStop = false;
//
// typeid
//
this.typeid.AllowDecimal = false;
this.typeid.AllowNegative = false;
this.typeid.AllowRelative = false;
this.typeid.ForeColor = System.Drawing.SystemColors.WindowText;
this.typeid.ImeMode = System.Windows.Forms.ImeMode.Off;
this.typeid.Location = new System.Drawing.Point(60, 2);
this.typeid.Name = "typeid";
this.typeid.Size = new System.Drawing.Size(68, 20);
this.typeid.TabIndex = 1;
this.typeid.TextChanged += new System.EventHandler(this.typeid_TextChanged);
//
// ThingBrowserControl
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);

View file

@ -151,6 +151,12 @@ namespace CodeImp.DoomBuilder.Controls
return typeid.GetResult(original);
}
//mxd
public void FocusTextbox()
{
tbFilter.Focus();
}
//mxd
private List<TreeNode> GetValidNodes()
{
@ -376,7 +382,7 @@ namespace CodeImp.DoomBuilder.Controls
{
typelist.SuspendLayout();
if(string.IsNullOrEmpty(tbFilter.Text))
if(string.IsNullOrEmpty(tbFilter.Text.Trim()))
{
Setup();
typeid_TextChanged(this, EventArgs.Empty);
@ -404,6 +410,17 @@ namespace CodeImp.DoomBuilder.Controls
typelist.ResumeLayout();
}
//mxd. Switch focus to types list?
private void tbFilter_KeyUp(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Down && typelist.Nodes.Count > 0)
{
typelist.SelectedNodes.Clear();
typelist.SelectedNodes.Add(typelist.Nodes[0]);
typelist.Focus();
}
}
//mxd. Because anchor-based alignment fails when using high-Dpi settings...
private void ThingBrowserControl_Resize(object sender, EventArgs e)
{

File diff suppressed because it is too large Load diff

View file

@ -440,6 +440,7 @@ namespace CodeImp.DoomBuilder.Windows
this.tbFilter.Size = new System.Drawing.Size(135, 20);
this.tbFilter.TabIndex = 28;
this.tbFilter.TextChanged += new System.EventHandler(this.tbFilter_TextChanged);
this.tbFilter.KeyUp += new System.Windows.Forms.KeyEventHandler(this.tbFilter_KeyUp);
//
// btnClearFilter
//

View file

@ -108,8 +108,6 @@ namespace CodeImp.DoomBuilder.Windows
// Remove generalized tab
tabs.TabPages.Remove(tabgeneralized);
}
//tbFilter.Focus(); //mxd
}
// This browses for an action
@ -300,17 +298,27 @@ namespace CodeImp.DoomBuilder.Windows
//mxd
private void tbFilter_TextChanged(object sender, EventArgs e)
{
if (tbFilter.Text.Length > 1)
if(!string.IsNullOrEmpty(tbFilter.Text.Trim()))
{
FilterActions(tbFilter.Text);
}
else if (String.IsNullOrEmpty(tbFilter.Text.ToLowerInvariant()))
else
{
actions.Nodes.Clear();
CreateActionCategories(actions.SelectedNode != null ? ((LinedefActionInfo)actions.SelectedNode.Tag).Index : 0);
}
}
//mxd. Switch focus to actions list?
private void tbFilter_KeyUp(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Down && actions.Nodes.Count > 0)
{
actions.SelectedNode = actions.Nodes[0];
actions.Focus();
}
}
//mxd
private void btnClearFilter_Click(object sender, EventArgs e)
{
@ -320,7 +328,7 @@ namespace CodeImp.DoomBuilder.Windows
//mxd
private void ActionBrowserForm_Shown(object sender, EventArgs e)
{
tbFilter.Focus();
if(tabs.SelectedTab == tabactions) tbFilter.Focus();
}
}
}

View file

@ -322,6 +322,7 @@ namespace CodeImp.DoomBuilder.Windows
this.tbFilter.Size = new System.Drawing.Size(135, 20);
this.tbFilter.TabIndex = 28;
this.tbFilter.TextChanged += new System.EventHandler(this.tbFilter_TextChanged);
this.tbFilter.KeyUp += new System.Windows.Forms.KeyEventHandler(this.tbFilter_KeyUp);
//
// btnClearFilter
//
@ -395,10 +396,12 @@ namespace CodeImp.DoomBuilder.Windows
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "EffectBrowserForm";
this.Opacity = 1;
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Edit Effect";
this.Shown += new System.EventHandler(this.EffectBrowserForm_Shown);
groupBox2.ResumeLayout(false);
this.tabs.ResumeLayout(false);
this.tabeffects.ResumeLayout(false);

View file

@ -43,9 +43,7 @@ namespace CodeImp.DoomBuilder.Windows
public EffectBrowserForm(int effect)
{
GeneralizedOption o;
//ListViewItem n;
bool selected;
// Initialize
InitializeComponent();
@ -55,7 +53,7 @@ namespace CodeImp.DoomBuilder.Windows
option5label, option6label, option7label };
// Go for all predefined effects
selected = CreateEffects(effect); //mxd
bool selected = CreateEffects(effect); //mxd
allItems = new ListViewItem[effects.Items.Count]; //mxd
effects.Items.CopyTo(allItems, 0); //mxd
@ -214,21 +212,38 @@ namespace CodeImp.DoomBuilder.Windows
//mxd
private void tbFilter_TextChanged(object sender, EventArgs e)
{
if (tbFilter.Text.Length > 1)
if(!string.IsNullOrEmpty(tbFilter.Text.Trim()))
{
FilterEffects(tbFilter.Text);
}
else if (String.IsNullOrEmpty(tbFilter.Text.ToLowerInvariant()))
else
{
effects.Items.Clear();
CreateEffects(effects.SelectedItems.Count > 0 ? ((SectorEffectInfo)effects.SelectedItems[0].Tag).Index : 0);
}
}
//mxd. Switch focus to effects list?
private void tbFilter_KeyUp(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Down && effects.Items.Count > 0)
{
effects.Items[0].Selected = true;
effects.Focus();
}
}
//mxd
private void btnClearFilter_Click(object sender, EventArgs e)
{
tbFilter.Clear();
}
//mxd
private void EffectBrowserForm_Shown(object sender, EventArgs e)
{
if(tabs.SelectedTab == tabeffects) tbFilter.Focus();
}
}
}

View file

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

View file

@ -455,6 +455,12 @@ namespace CodeImp.DoomBuilder.Windows
anglecontrol.Enabled = !cbRandomAngle.Checked;
}
//mxd
private void ThingEditForm_Shown(object sender, EventArgs e)
{
thingtype.FocusTextbox();
}
//mxd
private void ThingEditForm_FormClosing(object sender, FormClosingEventArgs e)
{

View file

@ -129,7 +129,4 @@
<metadata name="tooltip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="tooltip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View file

@ -955,6 +955,7 @@
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Edit Thing";
this.Shown += new System.EventHandler(this.ThingEditFormUDMF_Shown);
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ThingEditForm_FormClosing);
this.HelpRequested += new System.Windows.Forms.HelpEventHandler(this.ThingEditForm_HelpRequested);
this.groupBox1.ResumeLayout(false);

View file

@ -578,6 +578,16 @@ namespace CodeImp.DoomBuilder.Windows
fieldslist.Focus();
}
//mxd
private void ThingEditFormUDMF_Shown(object sender, EventArgs e)
{
if(activetab == 0)
{
thingtype.Focus();
thingtype.FocusTextbox();
}
}
//mxd
private void ThingEditForm_FormClosing(object sender, FormClosingEventArgs e)
{

View file

@ -3134,7 +3134,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
return;
}
string rest = copybuffer.Count + " thing" + (copybuffer.Count > 1 ? "s." : ".");
string rest = copybuffer.Count + " thing" + (copybuffer.Count > 1 ? "s" : "");
General.Map.UndoRedo.CreateUndo("Paste " + rest);
General.Interface.DisplayStatus(StatusType.Info, "Pasted " + rest);
@ -3890,7 +3890,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
offset -= j.controlSide.Fields.GetValue("offsetx_mid", 0.0f);
}
j.sidedef.Fields["offsetx_mid"] = new UniValue(UniversalType.Float, (float)Math.Round(offset % General.Map.Data.GetTextureImage(j.sidedef.LongMiddleTexture).Width, General.Map.FormatInterface.VertexDecimals));
j.sidedef.Fields["offsetx_mid"] = new UniValue(UniversalType.Float, (float)Math.Round(offset % General.Map.Data.GetTextureImage(j.controlSide.LongMiddleTexture).Width, General.Map.FormatInterface.VertexDecimals));
}
}
@ -3910,7 +3910,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
{
offset -= j.controlSide.OffsetY;
offset -= j.controlSide.Fields.GetValue("offsety_mid", 0.0f);
j.sidedef.Fields["offsety_mid"] = new UniValue(UniversalType.Float, (float)Math.Round(offset % General.Map.Data.GetTextureImage(j.sidedef.LongMiddleTexture).Height, General.Map.FormatInterface.VertexDecimals));
j.sidedef.Fields["offsety_mid"] = new UniValue(UniversalType.Float, (float)Math.Round(offset % General.Map.Data.GetTextureImage(j.controlSide.LongMiddleTexture).Height, General.Map.FormatInterface.VertexDecimals));
}
else
{
@ -3983,7 +3983,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
offset -= j.controlSide.Fields.GetValue("offsetx_mid", 0.0f);
}
j.sidedef.Fields["offsetx_mid"] = new UniValue(UniversalType.Float, (float)Math.Round(offset % General.Map.Data.GetTextureImage(j.sidedef.LongMiddleTexture).Width, General.Map.FormatInterface.VertexDecimals));
j.sidedef.Fields["offsetx_mid"] = new UniValue(UniversalType.Float, (float)Math.Round(offset % General.Map.Data.GetTextureImage(j.controlSide.LongMiddleTexture).Width, General.Map.FormatInterface.VertexDecimals));
}
}
@ -4003,7 +4003,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
{
offset -= j.controlSide.OffsetY;
offset -= j.controlSide.Fields.GetValue("offsety_mid", 0.0f);
j.sidedef.Fields["offsety_mid"] = new UniValue(UniversalType.Float, (float)Math.Round(offset % General.Map.Data.GetTextureImage(j.sidedef.LongMiddleTexture).Height, General.Map.FormatInterface.VertexDecimals)); //mxd
j.sidedef.Fields["offsety_mid"] = new UniValue(UniversalType.Float, (float)Math.Round(offset % General.Map.Data.GetTextureImage(j.controlSide.LongMiddleTexture).Height, General.Map.FormatInterface.VertexDecimals)); //mxd
}
else
{