mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2025-01-18 22:41:46 +00:00
Sectors, Linedefs, Things, Vertices modes: added "Select Similar" action (available in <Mode name> -> "Select Similar..." menu), which lets you select map elements similar to currently selected ones, based on a set of settings.
Some cosmetic fixes in "Filter Selected Things" and "Paste Properties Options" panels.
This commit is contained in:
parent
ebd2400cde
commit
98aefb2681
21 changed files with 1284 additions and 341 deletions
|
@ -1,4 +1,6 @@
|
||||||
using CodeImp.DoomBuilder.Map;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using CodeImp.DoomBuilder.Map;
|
||||||
using CodeImp.DoomBuilder.Types;
|
using CodeImp.DoomBuilder.Types;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.GZBuilder.Tools
|
namespace CodeImp.DoomBuilder.GZBuilder.Tools
|
||||||
|
@ -84,5 +86,36 @@ namespace CodeImp.DoomBuilder.GZBuilder.Tools
|
||||||
if(fields == null || !fields.ContainsKey(key)) return;
|
if(fields == null || !fields.ContainsKey(key)) return;
|
||||||
fields.Remove(key);
|
fields.Remove(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool FieldsMatch(UniFields fields1, UniFields fields2) {
|
||||||
|
if (fields1.Keys.Count != fields2.Keys.Count) return false;
|
||||||
|
foreach(KeyValuePair<string, UniValue> group in fields1) {
|
||||||
|
if (!fields2.ContainsKey(group.Key)) return false;
|
||||||
|
if (fields2[group.Key].Type != fields1[group.Key].Type) return false;
|
||||||
|
|
||||||
|
if (fields1[group.Key].Value is int)
|
||||||
|
{
|
||||||
|
if ((int)fields1[group.Key].Value != (int)fields2[group.Key].Value) return false;
|
||||||
|
}
|
||||||
|
else if (fields1[group.Key].Value is float)
|
||||||
|
{
|
||||||
|
if((float)fields1[group.Key].Value != (float)fields2[group.Key].Value) return false;
|
||||||
|
}
|
||||||
|
else if(fields1[group.Key].Value is bool)
|
||||||
|
{
|
||||||
|
if((bool)fields1[group.Key].Value != (bool)fields2[group.Key].Value) return false;
|
||||||
|
}
|
||||||
|
else if (fields1[group.Key].Value is string)
|
||||||
|
{
|
||||||
|
if ((string)fields1[group.Key].Value != (string)fields2[group.Key].Value) return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new Exception("Got unknown Custom Field type to compare: " + fields1[group.Key].Value.GetType());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
using System;
|
using System;
|
||||||
using SlimDX.Direct3D9;
|
using SlimDX.Direct3D9;
|
||||||
using SlimDX;
|
using SlimDX;
|
||||||
using CodeImp.DoomBuilder.Geometry;
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
|
@ -330,6 +330,12 @@
|
||||||
<Compile Include="Interface\SectorDrawingOptionsPanel.Designer.cs">
|
<Compile Include="Interface\SectorDrawingOptionsPanel.Designer.cs">
|
||||||
<DependentUpon>SectorDrawingOptionsPanel.cs</DependentUpon>
|
<DependentUpon>SectorDrawingOptionsPanel.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Interface\SelectSimilarElementOptionsPanel.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Interface\SelectSimilarElementOptionsPanel.Designer.cs">
|
||||||
|
<DependentUpon>SelectSimilarElementOptionsPanel.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Interface\WavefrontSettingsForm.cs">
|
<Compile Include="Interface\WavefrontSettingsForm.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -493,6 +499,9 @@
|
||||||
<EmbeddedResource Include="Interface\PastePropertiesOptionsForm.resx">
|
<EmbeddedResource Include="Interface\PastePropertiesOptionsForm.resx">
|
||||||
<DependentUpon>PastePropertiesOptionsForm.cs</DependentUpon>
|
<DependentUpon>PastePropertiesOptionsForm.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Interface\SelectSimilarElementOptionsPanel.resx">
|
||||||
|
<DependentUpon>SelectSimilarElementOptionsPanel.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Resources\DrawRectangleMode.png" />
|
<EmbeddedResource Include="Resources\DrawRectangleMode.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -501,6 +510,9 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="Resources\FilterThings.png" />
|
<None Include="Resources\FilterThings.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\Similar.png" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
Other similar extension points exist, see Microsoft.Common.targets.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
|
|
@ -150,14 +150,14 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
public override void OnUndoEnd() {
|
public override void OnUndoEnd() {
|
||||||
General.Map.Renderer2D.UpdateExtraFloorFlag();
|
General.Map.Renderer2D.UpdateExtraFloorFlag();
|
||||||
base.OnUndoEnd();
|
base.OnUndoEnd();
|
||||||
updateSelectionInfo();
|
UpdateSelectionInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
public override void OnRedoEnd() {
|
public override void OnRedoEnd() {
|
||||||
General.Map.Renderer2D.UpdateExtraFloorFlag();
|
General.Map.Renderer2D.UpdateExtraFloorFlag();
|
||||||
base.OnRedoEnd();
|
base.OnRedoEnd();
|
||||||
updateSelectionInfo();
|
UpdateSelectionInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
|
@ -167,7 +167,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
protected virtual void updateSelectionInfo() {
|
public virtual void UpdateSelectionInfo() {
|
||||||
General.Interface.DisplayStatus(StatusType.Selection, string.Empty);
|
General.Interface.DisplayStatus(StatusType.Selection, string.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -298,7 +298,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
|
|
||||||
// Convert geometry selection to linedefs selection
|
// Convert geometry selection to linedefs selection
|
||||||
General.Map.Map.ConvertSelection(SelectionType.Linedefs);
|
General.Map.Map.ConvertSelection(SelectionType.Linedefs);
|
||||||
updateSelectionInfo(); //mxd
|
UpdateSelectionInfo(); //mxd
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mode disengages
|
// Mode disengages
|
||||||
|
@ -429,7 +429,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
updateSelectionInfo();
|
UpdateSelectionInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
base.OnSelectEnd();
|
base.OnSelectEnd();
|
||||||
|
@ -510,7 +510,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
updateSelectionInfo(); //mxd
|
UpdateSelectionInfo(); //mxd
|
||||||
}
|
}
|
||||||
|
|
||||||
editpressed = false;
|
editpressed = false;
|
||||||
|
@ -549,7 +549,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
l.Selected = !l.Selected;
|
l.Selected = !l.Selected;
|
||||||
highlighted = l;
|
highlighted = l;
|
||||||
|
|
||||||
updateSelectionInfo(); //mxd
|
UpdateSelectionInfo(); //mxd
|
||||||
|
|
||||||
// Update entire display
|
// Update entire display
|
||||||
General.Interface.RedrawDisplay();
|
General.Interface.RedrawDisplay();
|
||||||
|
@ -728,7 +728,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
updateSelectionInfo();
|
UpdateSelectionInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
base.OnEndMultiSelection();
|
base.OnEndMultiSelection();
|
||||||
|
@ -768,7 +768,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
protected override void updateSelectionInfo() {
|
public override void UpdateSelectionInfo() {
|
||||||
if(General.Map.Map.SelectedLinedefsCount > 0)
|
if(General.Map.Map.SelectedLinedefsCount > 0)
|
||||||
General.Interface.DisplayStatus(StatusType.Selection, General.Map.Map.SelectedLinedefsCount + (General.Map.Map.SelectedLinedefsCount == 1 ? " linedef" : " linedefs") + " selected.");
|
General.Interface.DisplayStatus(StatusType.Selection, General.Map.Map.SelectedLinedefsCount + (General.Map.Map.SelectedLinedefsCount == 1 ? " linedef" : " linedefs") + " selected.");
|
||||||
else
|
else
|
||||||
|
@ -1369,6 +1369,20 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
alignTextureToLine(false, false);
|
alignTextureToLine(false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
[BeginAction("selectsimilar")]
|
||||||
|
public void SelectSimilar() {
|
||||||
|
ICollection<Linedef> selection = General.Map.Map.GetSelectedLinedefs(true);
|
||||||
|
|
||||||
|
if(selection.Count == 0) {
|
||||||
|
General.Interface.DisplayStatus(StatusType.Warning, "This action requires a selection!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var form = new SelectSimilarElementOptionsPanel();
|
||||||
|
if(form.Setup(this)) form.ShowDialog();
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -545,7 +545,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
|
|
||||||
// Update overlay
|
// Update overlay
|
||||||
updateOverlaySurfaces();
|
updateOverlaySurfaces();
|
||||||
updateSelectionInfo();
|
UpdateSelectionInfo();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -598,7 +598,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
// Update
|
// Update
|
||||||
UpdateSelectedLabels();
|
UpdateSelectedLabels();
|
||||||
updateOverlaySurfaces();//mxd
|
updateOverlaySurfaces();//mxd
|
||||||
updateSelectionInfo(); //mxd
|
UpdateSelectionInfo(); //mxd
|
||||||
UpdateOverlay();
|
UpdateOverlay();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -757,7 +757,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
General.Interface.RedrawDisplay();
|
General.Interface.RedrawDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
updateSelectionInfo(); //mxd
|
UpdateSelectionInfo(); //mxd
|
||||||
}
|
}
|
||||||
|
|
||||||
base.OnSelectEnd();
|
base.OnSelectEnd();
|
||||||
|
@ -844,7 +844,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
updateSelectionInfo(); //mxd
|
UpdateSelectionInfo(); //mxd
|
||||||
}
|
}
|
||||||
|
|
||||||
editpressed = false;
|
editpressed = false;
|
||||||
|
@ -916,7 +916,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
General.Interface.RedrawDisplay();
|
General.Interface.RedrawDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
updateSelectionInfo(); //mxd
|
UpdateSelectionInfo(); //mxd
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(e.Button == MouseButtons.None) // Not holding any buttons?
|
else if(e.Button == MouseButtons.None) // Not holding any buttons?
|
||||||
|
@ -1141,7 +1141,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateSelectedLabels(); //mxd
|
UpdateSelectedLabels(); //mxd
|
||||||
updateSelectionInfo(); //mxd
|
UpdateSelectionInfo(); //mxd
|
||||||
updateOverlaySurfaces(); //mxd
|
updateOverlaySurfaces(); //mxd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1217,7 +1217,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
protected override void updateSelectionInfo() {
|
public override void UpdateSelectionInfo() {
|
||||||
if(General.Map.Map.SelectedSectorsCount > 0)
|
if(General.Map.Map.SelectedSectorsCount > 0)
|
||||||
General.Interface.DisplayStatus(StatusType.Selection, General.Map.Map.SelectedSectorsCount + (General.Map.Map.SelectedSectorsCount == 1 ? " sector" : " sectors") + " selected.");
|
General.Interface.DisplayStatus(StatusType.Selection, General.Map.Map.SelectedSectorsCount + (General.Map.Map.SelectedSectorsCount == 1 ? " sector" : " sectors") + " selected.");
|
||||||
else
|
else
|
||||||
|
@ -2082,6 +2082,20 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
General.Interface.RedrawDisplay();
|
General.Interface.RedrawDisplay();
|
||||||
General.Interface.RefreshInfo();
|
General.Interface.RefreshInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
[BeginAction("selectsimilar")]
|
||||||
|
public void SelectSimilar() {
|
||||||
|
ICollection<Sector> selection = General.Map.Map.GetSelectedSectors(true);
|
||||||
|
|
||||||
|
if(selection.Count == 0) {
|
||||||
|
General.Interface.DisplayStatus(StatusType.Warning, "This action requires a selection!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var form = new SelectSimilarElementOptionsPanel();
|
||||||
|
if(form.Setup(this)) form.ShowDialog();
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
|
@ -124,7 +124,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
// Convert geometry selection to linedefs selection
|
// Convert geometry selection to linedefs selection
|
||||||
General.Map.Map.ConvertSelection(SelectionType.Linedefs);
|
General.Map.Map.ConvertSelection(SelectionType.Linedefs);
|
||||||
General.Map.Map.SelectionType = SelectionType.Things;
|
General.Map.Map.SelectionType = SelectionType.Things;
|
||||||
updateSelectionInfo(); //mxd
|
UpdateSelectionInfo(); //mxd
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mode disengages
|
// Mode disengages
|
||||||
|
@ -352,7 +352,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
General.Interface.RedrawDisplay();
|
General.Interface.RedrawDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
updateSelectionInfo(); //mxd
|
UpdateSelectionInfo(); //mxd
|
||||||
}
|
}
|
||||||
|
|
||||||
base.OnSelectEnd();
|
base.OnSelectEnd();
|
||||||
|
@ -441,7 +441,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
updateSelectionInfo(); //mxd
|
UpdateSelectionInfo(); //mxd
|
||||||
}
|
}
|
||||||
|
|
||||||
editpressed = false;
|
editpressed = false;
|
||||||
|
@ -489,7 +489,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
t.Selected = !t.Selected;
|
t.Selected = !t.Selected;
|
||||||
highlighted = t;
|
highlighted = t;
|
||||||
|
|
||||||
updateSelectionInfo(); //mxd
|
UpdateSelectionInfo(); //mxd
|
||||||
|
|
||||||
// Update entire display
|
// Update entire display
|
||||||
General.Interface.RedrawDisplay();
|
General.Interface.RedrawDisplay();
|
||||||
|
@ -623,7 +623,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
updateSelectionInfo(); //mxd
|
UpdateSelectionInfo(); //mxd
|
||||||
}
|
}
|
||||||
|
|
||||||
base.OnEndMultiSelection();
|
base.OnEndMultiSelection();
|
||||||
|
@ -663,7 +663,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
protected override void updateSelectionInfo() {
|
public override void UpdateSelectionInfo() {
|
||||||
if(General.Map.Map.SelectedThingsCount > 0)
|
if(General.Map.Map.SelectedThingsCount > 0)
|
||||||
General.Interface.DisplayStatus(StatusType.Selection, General.Map.Map.SelectedThingsCount + (General.Map.Map.SelectedThingsCount == 1 ? " thing" : " things") + " selected.");
|
General.Interface.DisplayStatus(StatusType.Selection, General.Map.Map.SelectedThingsCount + (General.Map.Map.SelectedThingsCount == 1 ? " thing" : " things") + " selected.");
|
||||||
else
|
else
|
||||||
|
@ -1022,7 +1022,21 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
new FilterSelectedThingsForm(selection).ShowDialog();
|
new FilterSelectedThingsForm(selection, this).ShowDialog();
|
||||||
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
[BeginAction("selectsimilar")]
|
||||||
|
public void SelectSimilar() {
|
||||||
|
ICollection<Thing> selection = General.Map.Map.GetSelectedThings(true);
|
||||||
|
|
||||||
|
if(selection.Count == 0) {
|
||||||
|
General.Interface.DisplayStatus(StatusType.Warning, "This action requires a selection!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var form = new SelectSimilarElementOptionsPanel();
|
||||||
|
if (form.Setup(this)) form.ShowDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -98,7 +98,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
|
|
||||||
// Convert geometry selection to vertices only
|
// Convert geometry selection to vertices only
|
||||||
General.Map.Map.ConvertSelection(SelectionType.Vertices);
|
General.Map.Map.ConvertSelection(SelectionType.Vertices);
|
||||||
updateSelectionInfo(); //mxd
|
UpdateSelectionInfo(); //mxd
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mode disengages
|
// Mode disengages
|
||||||
|
@ -240,7 +240,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
updateSelectionInfo();
|
UpdateSelectionInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
base.OnSelectEnd();
|
base.OnSelectEnd();
|
||||||
|
@ -385,7 +385,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
updateSelectionInfo(); //mxd
|
UpdateSelectionInfo(); //mxd
|
||||||
}
|
}
|
||||||
|
|
||||||
editpressed = false;
|
editpressed = false;
|
||||||
|
@ -431,7 +431,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
v.Selected = !v.Selected;
|
v.Selected = !v.Selected;
|
||||||
highlighted = v;
|
highlighted = v;
|
||||||
|
|
||||||
updateSelectionInfo(); //mxd
|
UpdateSelectionInfo(); //mxd
|
||||||
|
|
||||||
// Update entire display
|
// Update entire display
|
||||||
General.Interface.RedrawDisplay();
|
General.Interface.RedrawDisplay();
|
||||||
|
@ -613,7 +613,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
updateSelectionInfo();
|
UpdateSelectionInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
base.OnEndMultiSelection();
|
base.OnEndMultiSelection();
|
||||||
|
@ -653,7 +653,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
protected override void updateSelectionInfo() {
|
public override void UpdateSelectionInfo() {
|
||||||
if(General.Map.Map.SelectedVerticessCount > 0)
|
if(General.Map.Map.SelectedVerticessCount > 0)
|
||||||
General.Interface.DisplayStatus(StatusType.Selection, General.Map.Map.SelectedVerticessCount + (General.Map.Map.SelectedVerticessCount == 1 ? " vertex" : " vertices") + " selected.");
|
General.Interface.DisplayStatus(StatusType.Selection, General.Map.Map.SelectedVerticessCount + (General.Map.Map.SelectedVerticessCount == 1 ? " vertex" : " vertices") + " selected.");
|
||||||
else
|
else
|
||||||
|
@ -979,6 +979,20 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
placeThingsAtPositions(positions);
|
placeThingsAtPositions(positions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
[BeginAction("selectsimilar")]
|
||||||
|
public void SelectSimilar() {
|
||||||
|
ICollection<Vertex> selection = General.Map.Map.GetSelectedVertices(true);
|
||||||
|
|
||||||
|
if(selection.Count == 0) {
|
||||||
|
General.Interface.DisplayStatus(StatusType.Warning, "This action requires a selection!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var form = new SelectSimilarElementOptionsPanel();
|
||||||
|
if(form.Setup(this)) form.ShowDialog();
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Action assist (mxd)
|
#region ================== Action assist (mxd)
|
||||||
|
|
|
@ -16,19 +16,40 @@
|
||||||
|
|
||||||
#region ================== Namespaces
|
#region ================== Namespaces
|
||||||
|
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using CodeImp.DoomBuilder.Map;
|
using CodeImp.DoomBuilder.Map;
|
||||||
|
using CodeImp.DoomBuilder.GZBuilder.Tools;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.BuilderModes
|
namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
{
|
{
|
||||||
|
//mxd
|
||||||
|
public class FieldDescription : Attribute
|
||||||
|
{
|
||||||
|
public string Description { get; private set; }
|
||||||
|
|
||||||
|
public FieldDescription(string description) {
|
||||||
|
this.Description = description;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
public class VertexPropertiesCopySettings
|
||||||
|
{
|
||||||
|
[FieldDescription("Vertex Floor Height")]
|
||||||
|
public bool ZFloor = true;
|
||||||
|
[FieldDescription("Vertex Ceiling Height")]
|
||||||
|
public bool ZCeiling = true;
|
||||||
|
[FieldDescription("Custom Fields")]
|
||||||
|
public bool Fields = true;
|
||||||
|
}
|
||||||
|
|
||||||
// Vertex
|
// Vertex
|
||||||
public class VertexProperties
|
public class VertexProperties
|
||||||
{
|
{
|
||||||
public static bool ZCeiling = true; //mxd
|
public static VertexPropertiesCopySettings CopySettings = new VertexPropertiesCopySettings();
|
||||||
public static bool ZFloor = true; //mxd
|
|
||||||
public static bool Universal_Fields = true; //mxd
|
|
||||||
|
|
||||||
private readonly UniFields fields;
|
private readonly UniFields fields;
|
||||||
private readonly float zceiling; //mxd
|
private readonly float zceiling; //mxd
|
||||||
|
@ -43,9 +64,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
|
|
||||||
public void Apply(Vertex v)
|
public void Apply(Vertex v)
|
||||||
{
|
{
|
||||||
if (ZCeiling) v.ZCeiling = zceiling; //mxd
|
if(CopySettings.ZCeiling) v.ZCeiling = zceiling; //mxd
|
||||||
if (ZFloor) v.ZFloor = zfloor; //mxd
|
if(CopySettings.ZFloor) v.ZFloor = zfloor; //mxd
|
||||||
if (Universal_Fields) {
|
if(CopySettings.Fields) {
|
||||||
v.Fields.BeforeFieldsChange();
|
v.Fields.BeforeFieldsChange();
|
||||||
v.Fields.Clear();
|
v.Fields.Clear();
|
||||||
foreach (KeyValuePair<string, UniValue> uv in fields)
|
foreach (KeyValuePair<string, UniValue> uv in fields)
|
||||||
|
@ -54,18 +75,34 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
public class SectorPropertiesCopySettings
|
||||||
|
{
|
||||||
|
[FieldDescription("Floor Height")]
|
||||||
|
public bool FloorHeight = true;
|
||||||
|
[FieldDescription("Ceiling Height")]
|
||||||
|
public bool CeilingHeight = true;
|
||||||
|
[FieldDescription("Floor Texture")]
|
||||||
|
public bool FloorTexture = true;
|
||||||
|
[FieldDescription("Ceiling Texture")]
|
||||||
|
public bool CeilingTexture = true;
|
||||||
|
[FieldDescription("Brightness")]
|
||||||
|
public bool Brightness = true;
|
||||||
|
[FieldDescription("Tag")]
|
||||||
|
public bool Tag = true;
|
||||||
|
[FieldDescription("Effect")]
|
||||||
|
public bool Special = true;
|
||||||
|
[FieldDescription("Flags")]
|
||||||
|
public bool Flags = true;
|
||||||
|
[FieldDescription("Custom Fields")]
|
||||||
|
public bool Fields = true;
|
||||||
|
}
|
||||||
|
|
||||||
// Sector
|
// Sector
|
||||||
public class SectorProperties
|
public class SectorProperties
|
||||||
{
|
{
|
||||||
public static bool Floor_Height = true; //mxd
|
//mxd
|
||||||
public static bool Ceiling_Height = true; //mxd
|
public static SectorPropertiesCopySettings CopySettings = new SectorPropertiesCopySettings();
|
||||||
public static bool Floor_Texture = true; //mxd
|
|
||||||
public static bool Ceiling_Texture = true; //mxd
|
|
||||||
public static bool Brightness = true; //mxd
|
|
||||||
public static bool Tag = true; //mxd
|
|
||||||
public static bool Special = true; //mxd
|
|
||||||
public static bool Flags = true; //mxd
|
|
||||||
public static bool Universal_Fields = true; //mxd
|
|
||||||
|
|
||||||
private readonly int floorheight;
|
private readonly int floorheight;
|
||||||
private readonly int ceilheight;
|
private readonly int ceilheight;
|
||||||
|
@ -92,19 +129,19 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
|
|
||||||
public void Apply(Sector s)
|
public void Apply(Sector s)
|
||||||
{
|
{
|
||||||
if (Floor_Height) s.FloorHeight = floorheight;
|
if(CopySettings.FloorHeight) s.FloorHeight = floorheight;
|
||||||
if (Ceiling_Height) s.CeilHeight = ceilheight;
|
if(CopySettings.CeilingHeight) s.CeilHeight = ceilheight;
|
||||||
if (Floor_Texture) s.SetFloorTexture(floortexture);
|
if(CopySettings.FloorTexture) s.SetFloorTexture(floortexture);
|
||||||
if (Ceiling_Texture) s.SetCeilTexture(ceilingtexture);
|
if(CopySettings.CeilingTexture) s.SetCeilTexture(ceilingtexture);
|
||||||
if (Brightness) s.Brightness = brightness;
|
if(CopySettings.Brightness) s.Brightness = brightness;
|
||||||
if (Tag) s.Tag = tag;
|
if(CopySettings.Tag) s.Tag = tag;
|
||||||
if (Special) s.Effect = effect;
|
if(CopySettings.Special) s.Effect = effect;
|
||||||
if (Flags) {
|
if(CopySettings.Flags) {
|
||||||
s.ClearFlags(); //mxd
|
s.ClearFlags(); //mxd
|
||||||
foreach (KeyValuePair<string, bool> f in flags) //mxd
|
foreach (KeyValuePair<string, bool> f in flags) //mxd
|
||||||
s.SetFlag(f.Key, f.Value);
|
s.SetFlag(f.Key, f.Value);
|
||||||
}
|
}
|
||||||
if (Universal_Fields) {
|
if(CopySettings.Fields) {
|
||||||
s.Fields.BeforeFieldsChange();
|
s.Fields.BeforeFieldsChange();
|
||||||
s.Fields.Clear();
|
s.Fields.Clear();
|
||||||
foreach (KeyValuePair<string, UniValue> v in fields)
|
foreach (KeyValuePair<string, UniValue> v in fields)
|
||||||
|
@ -113,17 +150,31 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
public class SidedefPropertiesCopySettings
|
||||||
|
{
|
||||||
|
[FieldDescription("Upper Texture")]
|
||||||
|
public bool UpperTexture = true;
|
||||||
|
[FieldDescription("Middle Texture")]
|
||||||
|
public bool MiddleTexture = true;
|
||||||
|
[FieldDescription("Lower Texture")]
|
||||||
|
public bool LowerTexture = true;
|
||||||
|
[FieldDescription("Offset X")]
|
||||||
|
public bool OffsetX = true;
|
||||||
|
[FieldDescription("Offset Y")]
|
||||||
|
public bool OffsetY = true;
|
||||||
|
[FieldDescription("Flags")]
|
||||||
|
public bool Flags = true;
|
||||||
|
[FieldDescription("Custom Fields")]
|
||||||
|
public bool Fields = true;
|
||||||
|
}
|
||||||
|
|
||||||
// Sidedef
|
// Sidedef
|
||||||
public class SidedefProperties
|
public class SidedefProperties
|
||||||
{
|
{
|
||||||
public static bool Upper_Texture = true; //mxd
|
//mxd
|
||||||
public static bool Middle_Texture = true; //mxd
|
public static SidedefPropertiesCopySettings CopySettings = new SidedefPropertiesCopySettings();
|
||||||
public static bool Lower_Texture = true; //mxd
|
|
||||||
public static bool OffsetX = true; //mxd
|
|
||||||
public static bool OffsetY = true; //mxd
|
|
||||||
public static bool Flags = true; //mxd
|
|
||||||
public static bool Universal_Fields = true; //mxd
|
|
||||||
|
|
||||||
private readonly string hightexture;
|
private readonly string hightexture;
|
||||||
private readonly string middletexture;
|
private readonly string middletexture;
|
||||||
private readonly string lowtexture;
|
private readonly string lowtexture;
|
||||||
|
@ -145,17 +196,17 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
|
|
||||||
public void Apply(Sidedef s)
|
public void Apply(Sidedef s)
|
||||||
{
|
{
|
||||||
if (Upper_Texture) s.SetTextureHigh(hightexture);
|
if(CopySettings.UpperTexture) s.SetTextureHigh(hightexture);
|
||||||
if (Middle_Texture) s.SetTextureMid(middletexture);
|
if(CopySettings.MiddleTexture) s.SetTextureMid(middletexture);
|
||||||
if (Lower_Texture) s.SetTextureLow(lowtexture);
|
if(CopySettings.LowerTexture) s.SetTextureLow(lowtexture);
|
||||||
if (OffsetX) s.OffsetX = offsetx;
|
if(CopySettings.OffsetX) s.OffsetX = offsetx;
|
||||||
if (OffsetY) s.OffsetY = offsety;
|
if(CopySettings.OffsetY) s.OffsetY = offsety;
|
||||||
if (Flags) {
|
if(CopySettings.Flags) {
|
||||||
s.ClearFlags(); //mxd
|
s.ClearFlags(); //mxd
|
||||||
foreach (KeyValuePair<string, bool> f in flags) //mxd
|
foreach (KeyValuePair<string, bool> f in flags) //mxd
|
||||||
s.SetFlag(f.Key, f.Value);
|
s.SetFlag(f.Key, f.Value);
|
||||||
}
|
}
|
||||||
if (Universal_Fields) {
|
if(CopySettings.Fields) {
|
||||||
s.Fields.BeforeFieldsChange();
|
s.Fields.BeforeFieldsChange();
|
||||||
s.Fields.Clear();
|
s.Fields.Clear();
|
||||||
foreach (KeyValuePair<string, UniValue> v in fields)
|
foreach (KeyValuePair<string, UniValue> v in fields)
|
||||||
|
@ -164,15 +215,30 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
public class LinedefPropertiesCopySettings
|
||||||
|
{
|
||||||
|
[FieldDescription("Sidedef Properties")]
|
||||||
|
public bool SidedefProperties = true;
|
||||||
|
[FieldDescription("Action")]
|
||||||
|
public bool Action = true;
|
||||||
|
[FieldDescription("Action Arguments")]
|
||||||
|
public bool Arguments = true;
|
||||||
|
[FieldDescription("Activation")]
|
||||||
|
public bool Activation = true;
|
||||||
|
[FieldDescription("Tag")]
|
||||||
|
public bool Tag = true;
|
||||||
|
[FieldDescription("Flags")]
|
||||||
|
public bool Flags = true;
|
||||||
|
[FieldDescription("Custom Fields")]
|
||||||
|
public bool Fields = true;
|
||||||
|
}
|
||||||
|
|
||||||
// Linedef
|
// Linedef
|
||||||
public class LinedefProperties
|
public class LinedefProperties
|
||||||
{
|
{
|
||||||
public static bool Sidedef_Properties = true; //mxd
|
//mxd
|
||||||
public static bool Action = true; //mxd
|
public static LinedefPropertiesCopySettings CopySettings = new LinedefPropertiesCopySettings();
|
||||||
public static bool Activation = true; //mxd
|
|
||||||
public static bool Tag = true; //mxd
|
|
||||||
public static bool Flags = true; //mxd
|
|
||||||
public static bool Universal_Fields = true; //mxd
|
|
||||||
|
|
||||||
private readonly SidedefProperties front;
|
private readonly SidedefProperties front;
|
||||||
private readonly SidedefProperties back;
|
private readonly SidedefProperties back;
|
||||||
|
@ -198,23 +264,23 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
|
|
||||||
public void Apply(Linedef l)
|
public void Apply(Linedef l)
|
||||||
{
|
{
|
||||||
if (Sidedef_Properties) {
|
if(CopySettings.SidedefProperties) {
|
||||||
if ((front != null) && (l.Front != null)) front.Apply(l.Front);
|
if ((front != null) && (l.Front != null)) front.Apply(l.Front);
|
||||||
if ((back != null) && (l.Back != null)) back.Apply(l.Back);
|
if ((back != null) && (l.Back != null)) back.Apply(l.Back);
|
||||||
}
|
}
|
||||||
if (Flags) {
|
if(CopySettings.Flags) {
|
||||||
l.ClearFlags();
|
l.ClearFlags();
|
||||||
foreach (KeyValuePair<string, bool> f in flags)
|
foreach (KeyValuePair<string, bool> f in flags)
|
||||||
l.SetFlag(f.Key, f.Value);
|
l.SetFlag(f.Key, f.Value);
|
||||||
}
|
}
|
||||||
if (Activation) l.Activate = activate;
|
if(CopySettings.Activation) l.Activate = activate;
|
||||||
if (Tag)l.Tag = tag;
|
if(CopySettings.Tag) l.Tag = tag;
|
||||||
if (Action) {
|
if(CopySettings.Action) l.Action = action;
|
||||||
l.Action = action;
|
if(CopySettings.Arguments) {
|
||||||
for (int i = 0; i < l.Args.Length; i++)
|
for(int i = 0; i < l.Args.Length; i++)
|
||||||
l.Args[i] = args[i];
|
l.Args[i] = args[i];
|
||||||
}
|
}
|
||||||
if (Universal_Fields) {
|
if(CopySettings.Fields) {
|
||||||
l.Fields.BeforeFieldsChange();
|
l.Fields.BeforeFieldsChange();
|
||||||
l.Fields.Clear();
|
l.Fields.Clear();
|
||||||
foreach (KeyValuePair<string, UniValue> v in fields)
|
foreach (KeyValuePair<string, UniValue> v in fields)
|
||||||
|
@ -222,19 +288,37 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
public class ThingPropertiesCopySettings
|
||||||
|
{
|
||||||
|
[FieldDescription("Type")]
|
||||||
|
public bool Type = true;
|
||||||
|
[FieldDescription("Angle")]
|
||||||
|
public bool Angle = true;
|
||||||
|
[FieldDescription("Pitch")]
|
||||||
|
public bool Pitch = true;
|
||||||
|
[FieldDescription("Roll")]
|
||||||
|
public bool Roll = true;
|
||||||
|
[FieldDescription("Scale")]
|
||||||
|
public bool Scale = true;
|
||||||
|
[FieldDescription("Action")]
|
||||||
|
public bool Action = true;
|
||||||
|
[FieldDescription("Action Arguments")]
|
||||||
|
public bool Arguments = true;
|
||||||
|
[FieldDescription("Tag")]
|
||||||
|
public bool Tag = true;
|
||||||
|
[FieldDescription("Flags")]
|
||||||
|
public bool Flags = true;
|
||||||
|
[FieldDescription("Custom Fields")]
|
||||||
|
public bool Fields = true;
|
||||||
|
}
|
||||||
|
|
||||||
// Thing
|
// Thing
|
||||||
public class ThingProperties
|
public class ThingProperties
|
||||||
{
|
{
|
||||||
public static bool Type = true; //mxd
|
//mxd
|
||||||
public static bool Angle = true; //mxd
|
public static ThingPropertiesCopySettings CopySettings = new ThingPropertiesCopySettings();
|
||||||
public static bool Pitch = true; //mxd
|
|
||||||
public static bool Roll = true; //mxd
|
|
||||||
public static bool Scale = true; //mxd
|
|
||||||
public static bool Action = true; //mxd
|
|
||||||
public static bool Tag = true; //mxd
|
|
||||||
public static bool Flags = true; //mxd
|
|
||||||
public static bool Universal_Fields = true; //mxd
|
|
||||||
|
|
||||||
private readonly int type;
|
private readonly int type;
|
||||||
private readonly float angle;
|
private readonly float angle;
|
||||||
|
@ -265,23 +349,23 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
|
|
||||||
public void Apply(Thing t)
|
public void Apply(Thing t)
|
||||||
{
|
{
|
||||||
if (Type) t.Type = type;
|
if(CopySettings.Type) t.Type = type;
|
||||||
if (Angle) t.Rotate(angle);
|
if(CopySettings.Angle) t.Rotate(angle);
|
||||||
if (Pitch) t.SetPitch(pitch);
|
if(CopySettings.Pitch) t.SetPitch(pitch);
|
||||||
if (Roll) t.SetRoll(roll);
|
if(CopySettings.Roll) t.SetRoll(roll);
|
||||||
if (Scale) t.SetScale(scalex, scaley);
|
if(CopySettings.Scale) t.SetScale(scalex, scaley);
|
||||||
if (Flags) {
|
if(CopySettings.Flags) {
|
||||||
t.ClearFlags();
|
t.ClearFlags();
|
||||||
foreach (KeyValuePair<string, bool> f in flags)
|
foreach (KeyValuePair<string, bool> f in flags)
|
||||||
t.SetFlag(f.Key, f.Value);
|
t.SetFlag(f.Key, f.Value);
|
||||||
}
|
}
|
||||||
if (Tag) t.Tag = tag;
|
if(CopySettings.Tag) t.Tag = tag;
|
||||||
if (Action) {
|
if(CopySettings.Action) t.Action = action;
|
||||||
t.Action = action;
|
if(CopySettings.Arguments) {
|
||||||
for (int i = 0; i < t.Args.Length; i++)
|
for(int i = 0; i < t.Args.Length; i++)
|
||||||
t.Args[i] = args[i];
|
t.Args[i] = args[i];
|
||||||
}
|
}
|
||||||
if (Universal_Fields) {
|
if(CopySettings.Fields) {
|
||||||
t.Fields.BeforeFieldsChange();
|
t.Fields.BeforeFieldsChange();
|
||||||
t.Fields.Clear();
|
t.Fields.Clear();
|
||||||
foreach (KeyValuePair<string, UniValue> v in fields)
|
foreach (KeyValuePair<string, UniValue> v in fields)
|
||||||
|
@ -289,4 +373,104 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mxd. A class, which checks whether source and target map element's properties match
|
||||||
|
public static class PropertiesComparer
|
||||||
|
{
|
||||||
|
|
||||||
|
#region Vertex
|
||||||
|
|
||||||
|
public static bool PropertiesMatch(VertexPropertiesCopySettings flags, Vertex source, Vertex target) {
|
||||||
|
if(flags.ZCeiling && source.ZCeiling != target.ZCeiling) return false;
|
||||||
|
if(flags.ZFloor && source.ZFloor != target.ZFloor) return false;
|
||||||
|
return !flags.Fields || UDMFTools.FieldsMatch(source.Fields, target.Fields);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Sector
|
||||||
|
|
||||||
|
public static bool PropertiesMatch(SectorPropertiesCopySettings flags, Sector source, Sector target) {
|
||||||
|
if(flags.FloorHeight && source.FloorHeight != target.FloorHeight) return false;
|
||||||
|
if(flags.CeilingHeight && source.CeilHeight != target.CeilHeight) return false;
|
||||||
|
if(flags.FloorTexture && source.FloorTexture != target.FloorTexture) return false;
|
||||||
|
if(flags.CeilingTexture && source.CeilTexture != target.CeilTexture) return false;
|
||||||
|
if(flags.Brightness && source.Brightness != target.Brightness) return false;
|
||||||
|
if(flags.Tag && source.Tag != target.Tag) return false;
|
||||||
|
if(flags.Special && source.Effect != target.Effect) return false;
|
||||||
|
if(flags.Flags && !FlagsMatch(source.GetFlags(), target.GetFlags())) return false;
|
||||||
|
return !flags.Fields || UDMFTools.FieldsMatch(source.Fields, target.Fields);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Linedef
|
||||||
|
|
||||||
|
public static bool PropertiesMatch(LinedefPropertiesCopySettings linedefflags, SidedefPropertiesCopySettings sideflags, Linedef source, Linedef target) {
|
||||||
|
if(linedefflags.Action && source.Action != target.Action) return false;
|
||||||
|
if(linedefflags.Activation && source.Activate != target.Activate) return false;
|
||||||
|
if(linedefflags.Tag && source.Tag != target.Tag) return false;
|
||||||
|
if(linedefflags.Arguments) {
|
||||||
|
for(int i = 0; i < source.Args.Length; i++) {
|
||||||
|
if(source.Args[i] != target.Args[i]) return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(linedefflags.Flags && !FlagsMatch(source.GetFlags(), target.GetFlags())) return false;
|
||||||
|
if(linedefflags.SidedefProperties) {
|
||||||
|
if ((source.Front == null && target.Front != null) || (source.Front != null && target.Front == null) ||
|
||||||
|
(source.Back == null && target.Back != null) || (source.Back != null && target.Back == null))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if(source.Front != null && !PropertiesMatch(sideflags, source.Front, target.Front)) return false;
|
||||||
|
if(source.Back != null && !PropertiesMatch(sideflags, source.Back, target.Back)) return false;
|
||||||
|
}
|
||||||
|
return !linedefflags.Fields || UDMFTools.FieldsMatch(source.Fields, target.Fields);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Sidedef
|
||||||
|
|
||||||
|
public static bool PropertiesMatch(SidedefPropertiesCopySettings flags, Sidedef source, Sidedef target) {
|
||||||
|
if(flags.OffsetX && source.OffsetX != target.OffsetX) return false;
|
||||||
|
if(flags.OffsetY && source.OffsetY != target.OffsetY) return false;
|
||||||
|
if(flags.UpperTexture && source.HighTexture != target.HighTexture) return false;
|
||||||
|
if(flags.MiddleTexture && source.MiddleTexture != target.MiddleTexture) return false;
|
||||||
|
if(flags.LowerTexture && source.LowTexture != target.LowTexture) return false;
|
||||||
|
if(flags.Flags && !FlagsMatch(source.GetFlags(), target.GetFlags())) return false;
|
||||||
|
return !flags.Fields || UDMFTools.FieldsMatch(source.Fields, target.Fields);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Thing
|
||||||
|
|
||||||
|
public static bool PropertiesMatch(ThingPropertiesCopySettings flags, Thing source, Thing target) {
|
||||||
|
if(flags.Type && source.Type != target.Type) return false;
|
||||||
|
if(flags.Angle && source.AngleDoom != target.AngleDoom) return false;
|
||||||
|
if(flags.Action && source.Action != target.Action) return false;
|
||||||
|
if (flags.Arguments) {
|
||||||
|
for(int i = 0; i < source.Args.Length; i++) {
|
||||||
|
if (source.Args[i] != target.Args[i]) return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(flags.Tag && source.Tag != target.Tag) return false;
|
||||||
|
if(flags.Pitch && source.Pitch != target.Pitch) return false;
|
||||||
|
if(flags.Roll && source.Roll != target.Roll) return false;
|
||||||
|
if(flags.Scale && (source.ScaleX != target.ScaleX) || (source.ScaleY != target.ScaleY))
|
||||||
|
return false;
|
||||||
|
if(flags.Flags && !FlagsMatch(source.GetFlags(), target.GetFlags())) return false;
|
||||||
|
return !flags.Fields || UDMFTools.FieldsMatch(source.Fields, target.Fields);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private static bool FlagsMatch(Dictionary<string, bool> flags1, Dictionary<string, bool> flags2) {
|
||||||
|
if (flags1.Count != flags2.Count) return false;
|
||||||
|
foreach (KeyValuePair<string, bool> group in flags1) {
|
||||||
|
if (!flags2.ContainsKey(group.Key) || flags2[group.Key] != flags1[group.Key]) return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,9 +25,9 @@
|
||||||
/// the contents of this method with the code editor.
|
/// the contents of this method with the code editor.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent() {
|
private void InitializeComponent() {
|
||||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
|
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
|
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
|
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||||
this.cancel = new System.Windows.Forms.Button();
|
this.cancel = new System.Windows.Forms.Button();
|
||||||
this.apply = new System.Windows.Forms.Button();
|
this.apply = new System.Windows.Forms.Button();
|
||||||
this.textBox1 = new System.Windows.Forms.TextBox();
|
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||||
|
@ -87,14 +87,14 @@
|
||||||
this.dataGridView.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
this.dataGridView.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||||
this.dataGridView.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None;
|
this.dataGridView.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None;
|
||||||
this.dataGridView.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
|
this.dataGridView.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
|
||||||
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||||
dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control;
|
dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control;
|
||||||
dataGridViewCellStyle4.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
dataGridViewCellStyle1.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText;
|
dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText;
|
||||||
dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
||||||
dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||||
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
|
dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
|
||||||
this.dataGridView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4;
|
this.dataGridView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
|
||||||
this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||||
this.dataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
this.dataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
||||||
this.ThingType,
|
this.ThingType,
|
||||||
|
@ -112,8 +112,8 @@
|
||||||
// ThingType
|
// ThingType
|
||||||
//
|
//
|
||||||
this.ThingType.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.ColumnHeader;
|
this.ThingType.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.ColumnHeader;
|
||||||
dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
|
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
|
||||||
this.ThingType.DefaultCellStyle = dataGridViewCellStyle5;
|
this.ThingType.DefaultCellStyle = dataGridViewCellStyle2;
|
||||||
this.ThingType.HeaderText = "Type";
|
this.ThingType.HeaderText = "Type";
|
||||||
this.ThingType.Name = "ThingType";
|
this.ThingType.Name = "ThingType";
|
||||||
this.ThingType.ReadOnly = true;
|
this.ThingType.ReadOnly = true;
|
||||||
|
@ -122,8 +122,8 @@
|
||||||
// ThingTitle
|
// ThingTitle
|
||||||
//
|
//
|
||||||
this.ThingTitle.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
|
this.ThingTitle.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
|
||||||
dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||||
this.ThingTitle.DefaultCellStyle = dataGridViewCellStyle6;
|
this.ThingTitle.DefaultCellStyle = dataGridViewCellStyle3;
|
||||||
this.ThingTitle.HeaderText = "Title";
|
this.ThingTitle.HeaderText = "Title";
|
||||||
this.ThingTitle.Name = "ThingTitle";
|
this.ThingTitle.Name = "ThingTitle";
|
||||||
this.ThingTitle.ReadOnly = true;
|
this.ThingTitle.ReadOnly = true;
|
||||||
|
@ -148,6 +148,7 @@
|
||||||
this.Controls.Add(this.apply);
|
this.Controls.Add(this.apply);
|
||||||
this.Controls.Add(this.textBox1);
|
this.Controls.Add(this.textBox1);
|
||||||
this.Controls.Add(this.dataGridView);
|
this.Controls.Add(this.dataGridView);
|
||||||
|
this.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
|
||||||
this.Name = "FilterSelectedThingsForm";
|
this.Name = "FilterSelectedThingsForm";
|
||||||
this.ShowInTaskbar = false;
|
this.ShowInTaskbar = false;
|
||||||
|
|
|
@ -5,7 +5,6 @@ using System.Drawing;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using CodeImp.DoomBuilder.Map;
|
using CodeImp.DoomBuilder.Map;
|
||||||
using CodeImp.DoomBuilder.Config;
|
using CodeImp.DoomBuilder.Config;
|
||||||
using CodeImp.DoomBuilder.Windows;
|
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.BuilderModes
|
namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
{
|
{
|
||||||
|
@ -14,9 +13,11 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
private static Size size = Size.Empty;
|
private static Size size = Size.Empty;
|
||||||
private static Point location = Point.Empty;
|
private static Point location = Point.Empty;
|
||||||
private ICollection<Thing> selection;
|
private ICollection<Thing> selection;
|
||||||
|
private ThingsMode mode;
|
||||||
|
|
||||||
public FilterSelectedThingsForm(ICollection<Thing> selection) {
|
public FilterSelectedThingsForm(ICollection<Thing> selection, ThingsMode mode) {
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
this.mode = mode;
|
||||||
|
|
||||||
//apply window size and location
|
//apply window size and location
|
||||||
if(!size.IsEmpty && !location.IsEmpty) {
|
if(!size.IsEmpty && !location.IsEmpty) {
|
||||||
|
@ -75,13 +76,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//update selection info
|
//update display
|
||||||
if(General.Map.Map.SelectedThingsCount > 0)
|
mode.UpdateSelectionInfo();
|
||||||
General.Interface.DisplayStatus(StatusType.Selection, General.Map.Map.SelectedThingsCount + (General.Map.Map.SelectedThingsCount == 1 ? " thing" : " things") + " selected.");
|
|
||||||
else
|
|
||||||
General.Interface.DisplayStatus(StatusType.Selection, string.Empty);
|
|
||||||
|
|
||||||
//redraw display
|
|
||||||
General.Interface.RedrawDisplay();
|
General.Interface.RedrawDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -54,39 +54,46 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.joinsectorsitem = new System.Windows.Forms.ToolStripMenuItem();
|
this.joinsectorsitem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.mergesectorsitem = new System.Windows.Forms.ToolStripMenuItem();
|
this.mergesectorsitem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.makedooritem = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.thingsmenu = new System.Windows.Forms.ToolStripMenuItem();
|
this.thingsmenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.selectInSectorsItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.selectInSectorsItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.filterSelectionItem = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.alignToWallItem = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.pointAtCursorItem = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.vertsmenu = new System.Windows.Forms.ToolStripMenuItem();
|
this.vertsmenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.placethingsv = new System.Windows.Forms.ToolStripMenuItem();
|
this.placethingsv = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.globalstrip = new System.Windows.Forms.ToolStrip();
|
this.globalstrip = new System.Windows.Forms.ToolStrip();
|
||||||
this.manualstrip = new System.Windows.Forms.ToolStrip();
|
this.manualstrip = new System.Windows.Forms.ToolStrip();
|
||||||
|
this.seperatorcopypaste = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.separatorsectors1 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.brightnessGradientMode = new System.Windows.Forms.ToolStripComboBox();
|
||||||
|
this.fileMenuStrip = new System.Windows.Forms.MenuStrip();
|
||||||
|
this.exportStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.buttoncopyproperties = new System.Windows.Forms.ToolStripButton();
|
this.buttoncopyproperties = new System.Windows.Forms.ToolStripButton();
|
||||||
this.buttonpasteproperties = new System.Windows.Forms.ToolStripButton();
|
this.buttonpasteproperties = new System.Windows.Forms.ToolStripButton();
|
||||||
this.buttonpastepropertiesoptions = new System.Windows.Forms.ToolStripButton();
|
this.buttonpastepropertiesoptions = new System.Windows.Forms.ToolStripButton();
|
||||||
this.seperatorcopypaste = new System.Windows.Forms.ToolStripSeparator();
|
|
||||||
this.buttonselectionnumbers = new System.Windows.Forms.ToolStripButton();
|
this.buttonselectionnumbers = new System.Windows.Forms.ToolStripButton();
|
||||||
this.buttonselectioneffects = new System.Windows.Forms.ToolStripButton();
|
this.buttonselectioneffects = new System.Windows.Forms.ToolStripButton();
|
||||||
this.separatorsectors1 = new System.Windows.Forms.ToolStripSeparator();
|
|
||||||
this.buttonbrightnessgradient = new System.Windows.Forms.ToolStripButton();
|
this.buttonbrightnessgradient = new System.Windows.Forms.ToolStripButton();
|
||||||
this.buttonfloorgradient = new System.Windows.Forms.ToolStripButton();
|
this.buttonfloorgradient = new System.Windows.Forms.ToolStripButton();
|
||||||
this.buttonceilinggradient = new System.Windows.Forms.ToolStripButton();
|
this.buttonceilinggradient = new System.Windows.Forms.ToolStripButton();
|
||||||
this.buttonflipselectionh = new System.Windows.Forms.ToolStripButton();
|
this.buttonflipselectionh = new System.Windows.Forms.ToolStripButton();
|
||||||
this.buttonflipselectionv = new System.Windows.Forms.ToolStripButton();
|
this.buttonflipselectionv = new System.Windows.Forms.ToolStripButton();
|
||||||
this.buttoncurvelinedefs = new System.Windows.Forms.ToolStripButton();
|
this.buttoncurvelinedefs = new System.Windows.Forms.ToolStripButton();
|
||||||
this.brightnessGradientMode = new System.Windows.Forms.ToolStripComboBox();
|
|
||||||
this.buttonMarqueSelectTouching = new System.Windows.Forms.ToolStripButton();
|
this.buttonMarqueSelectTouching = new System.Windows.Forms.ToolStripButton();
|
||||||
this.buttonAlignThingsToWall = new System.Windows.Forms.ToolStripButton();
|
this.buttonAlignThingsToWall = new System.Windows.Forms.ToolStripButton();
|
||||||
this.buttonTextureOffsetLock = new System.Windows.Forms.ToolStripButton();
|
this.buttonTextureOffsetLock = new System.Windows.Forms.ToolStripButton();
|
||||||
this.buttonMakeDoor = new System.Windows.Forms.ToolStripButton();
|
this.buttonMakeDoor = new System.Windows.Forms.ToolStripButton();
|
||||||
this.fileMenuStrip = new System.Windows.Forms.MenuStrip();
|
this.selectSimilarLinesItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.exportStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.makedooritem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripMenuItem();
|
this.filterSelectionItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.alignToWallItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.pointAtCursorItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.selectSimilarSectors = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.selectSimilarThingsItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.selectSimilarVertsItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menustrip.SuspendLayout();
|
this.menustrip.SuspendLayout();
|
||||||
this.manualstrip.SuspendLayout();
|
this.manualstrip.SuspendLayout();
|
||||||
this.fileMenuStrip.SuspendLayout();
|
this.fileMenuStrip.SuspendLayout();
|
||||||
|
@ -120,7 +127,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.curvelinedefsitem,
|
this.curvelinedefsitem,
|
||||||
this.toolStripMenuItem3,
|
this.toolStripMenuItem3,
|
||||||
this.splitlinedefsitem,
|
this.splitlinedefsitem,
|
||||||
this.alignLinedefsItem});
|
this.alignLinedefsItem,
|
||||||
|
this.toolStripSeparator5,
|
||||||
|
this.selectSimilarLinesItem});
|
||||||
this.linedefsmenu.Name = "linedefsmenu";
|
this.linedefsmenu.Name = "linedefsmenu";
|
||||||
this.linedefsmenu.Size = new System.Drawing.Size(63, 20);
|
this.linedefsmenu.Size = new System.Drawing.Size(63, 20);
|
||||||
this.linedefsmenu.Text = "&Linedefs";
|
this.linedefsmenu.Text = "&Linedefs";
|
||||||
|
@ -263,7 +272,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.mergesectorsitem,
|
this.mergesectorsitem,
|
||||||
this.toolStripMenuItem2,
|
this.toolStripMenuItem2,
|
||||||
this.makedooritem,
|
this.makedooritem,
|
||||||
this.toolStripSeparator4});
|
this.toolStripSeparator4,
|
||||||
|
this.selectSimilarSectors});
|
||||||
this.sectorsmenu.Name = "sectorsmenu";
|
this.sectorsmenu.Name = "sectorsmenu";
|
||||||
this.sectorsmenu.Size = new System.Drawing.Size(57, 20);
|
this.sectorsmenu.Size = new System.Drawing.Size(57, 20);
|
||||||
this.sectorsmenu.Text = "&Sectors";
|
this.sectorsmenu.Text = "&Sectors";
|
||||||
|
@ -310,15 +320,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
|
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
|
||||||
this.toolStripMenuItem2.Size = new System.Drawing.Size(242, 6);
|
this.toolStripMenuItem2.Size = new System.Drawing.Size(242, 6);
|
||||||
//
|
//
|
||||||
// makedooritem
|
|
||||||
//
|
|
||||||
this.makedooritem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Door;
|
|
||||||
this.makedooritem.Name = "makedooritem";
|
|
||||||
this.makedooritem.Size = new System.Drawing.Size(245, 22);
|
|
||||||
this.makedooritem.Tag = "makedoor";
|
|
||||||
this.makedooritem.Text = "Make &Door";
|
|
||||||
this.makedooritem.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// toolStripSeparator4
|
// toolStripSeparator4
|
||||||
//
|
//
|
||||||
this.toolStripSeparator4.Name = "toolStripSeparator4";
|
this.toolStripSeparator4.Name = "toolStripSeparator4";
|
||||||
|
@ -332,7 +333,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.filterSelectionItem,
|
this.filterSelectionItem,
|
||||||
this.toolStripSeparator3,
|
this.toolStripSeparator3,
|
||||||
this.alignToWallItem,
|
this.alignToWallItem,
|
||||||
this.pointAtCursorItem});
|
this.pointAtCursorItem,
|
||||||
|
this.toolStripSeparator6,
|
||||||
|
this.selectSimilarThingsItem});
|
||||||
this.thingsmenu.Name = "thingsmenu";
|
this.thingsmenu.Name = "thingsmenu";
|
||||||
this.thingsmenu.Size = new System.Drawing.Size(55, 20);
|
this.thingsmenu.Size = new System.Drawing.Size(55, 20);
|
||||||
this.thingsmenu.Text = "Things";
|
this.thingsmenu.Text = "Things";
|
||||||
|
@ -346,42 +349,17 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.selectInSectorsItem.Text = "&Select Things in Selected Sectors";
|
this.selectInSectorsItem.Text = "&Select Things in Selected Sectors";
|
||||||
this.selectInSectorsItem.Click += new System.EventHandler(this.InvokeTaggedAction);
|
this.selectInSectorsItem.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
//
|
//
|
||||||
// filterSelectionItem
|
|
||||||
//
|
|
||||||
this.filterSelectionItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.FilterThings;
|
|
||||||
this.filterSelectionItem.Name = "filterSelectionItem";
|
|
||||||
this.filterSelectionItem.Size = new System.Drawing.Size(245, 22);
|
|
||||||
this.filterSelectionItem.Tag = "filterselectedthings";
|
|
||||||
this.filterSelectionItem.Text = "Filter Selection...";
|
|
||||||
this.filterSelectionItem.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// toolStripSeparator3
|
// toolStripSeparator3
|
||||||
//
|
//
|
||||||
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
||||||
this.toolStripSeparator3.Size = new System.Drawing.Size(242, 6);
|
this.toolStripSeparator3.Size = new System.Drawing.Size(242, 6);
|
||||||
//
|
//
|
||||||
// alignToWallItem
|
|
||||||
//
|
|
||||||
this.alignToWallItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.AlignThings;
|
|
||||||
this.alignToWallItem.Name = "alignToWallItem";
|
|
||||||
this.alignToWallItem.Size = new System.Drawing.Size(245, 22);
|
|
||||||
this.alignToWallItem.Tag = "thingaligntowall";
|
|
||||||
this.alignToWallItem.Text = "&Align To Closest Linedef";
|
|
||||||
this.alignToWallItem.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// pointAtCursorItem
|
|
||||||
//
|
|
||||||
this.pointAtCursorItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.ThingPointAtCursor;
|
|
||||||
this.pointAtCursorItem.Name = "pointAtCursorItem";
|
|
||||||
this.pointAtCursorItem.Size = new System.Drawing.Size(245, 22);
|
|
||||||
this.pointAtCursorItem.Tag = "thinglookatcursor";
|
|
||||||
this.pointAtCursorItem.Text = "&Point at Cursor";
|
|
||||||
this.pointAtCursorItem.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// vertsmenu
|
// vertsmenu
|
||||||
//
|
//
|
||||||
this.vertsmenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.vertsmenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.placethingsv});
|
this.placethingsv,
|
||||||
|
this.toolStripSeparator7,
|
||||||
|
this.selectSimilarVertsItem});
|
||||||
this.vertsmenu.Name = "vertsmenu";
|
this.vertsmenu.Name = "vertsmenu";
|
||||||
this.vertsmenu.Size = new System.Drawing.Size(60, 20);
|
this.vertsmenu.Size = new System.Drawing.Size(60, 20);
|
||||||
this.vertsmenu.Text = "Vertices";
|
this.vertsmenu.Text = "Vertices";
|
||||||
|
@ -390,7 +368,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
// placethingsv
|
// placethingsv
|
||||||
//
|
//
|
||||||
this.placethingsv.Name = "placethingsv";
|
this.placethingsv.Name = "placethingsv";
|
||||||
this.placethingsv.Size = new System.Drawing.Size(150, 22);
|
this.placethingsv.Size = new System.Drawing.Size(153, 22);
|
||||||
this.placethingsv.Tag = "placethings";
|
this.placethingsv.Tag = "placethings";
|
||||||
this.placethingsv.Text = "&Place Things...";
|
this.placethingsv.Text = "&Place Things...";
|
||||||
this.placethingsv.Click += new System.EventHandler(this.InvokeTaggedAction);
|
this.placethingsv.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
@ -430,6 +408,57 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.manualstrip.TabIndex = 2;
|
this.manualstrip.TabIndex = 2;
|
||||||
this.manualstrip.Text = "toolStrip1";
|
this.manualstrip.Text = "toolStrip1";
|
||||||
//
|
//
|
||||||
|
// seperatorcopypaste
|
||||||
|
//
|
||||||
|
this.seperatorcopypaste.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
|
||||||
|
this.seperatorcopypaste.Name = "seperatorcopypaste";
|
||||||
|
this.seperatorcopypaste.Size = new System.Drawing.Size(6, 25);
|
||||||
|
//
|
||||||
|
// separatorsectors1
|
||||||
|
//
|
||||||
|
this.separatorsectors1.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
|
||||||
|
this.separatorsectors1.Name = "separatorsectors1";
|
||||||
|
this.separatorsectors1.Size = new System.Drawing.Size(6, 25);
|
||||||
|
//
|
||||||
|
// brightnessGradientMode
|
||||||
|
//
|
||||||
|
this.brightnessGradientMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.brightnessGradientMode.Name = "brightnessGradientMode";
|
||||||
|
this.brightnessGradientMode.Size = new System.Drawing.Size(75, 25);
|
||||||
|
this.brightnessGradientMode.ToolTipText = "Brightness Gradient affects:";
|
||||||
|
this.brightnessGradientMode.DropDownClosed += new System.EventHandler(this.brightnessGradientMode_DropDownClosed);
|
||||||
|
//
|
||||||
|
// fileMenuStrip
|
||||||
|
//
|
||||||
|
this.fileMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.exportStripMenuItem});
|
||||||
|
this.fileMenuStrip.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.fileMenuStrip.Name = "fileMenuStrip";
|
||||||
|
this.fileMenuStrip.Size = new System.Drawing.Size(588, 24);
|
||||||
|
this.fileMenuStrip.TabIndex = 3;
|
||||||
|
this.fileMenuStrip.Text = "menuStrip1";
|
||||||
|
//
|
||||||
|
// exportStripMenuItem
|
||||||
|
//
|
||||||
|
this.exportStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.toolStripMenuItem5});
|
||||||
|
this.exportStripMenuItem.Name = "exportStripMenuItem";
|
||||||
|
this.exportStripMenuItem.Size = new System.Drawing.Size(52, 20);
|
||||||
|
this.exportStripMenuItem.Text = "Export";
|
||||||
|
//
|
||||||
|
// toolStripMenuItem5
|
||||||
|
//
|
||||||
|
this.toolStripMenuItem5.Name = "toolStripMenuItem5";
|
||||||
|
this.toolStripMenuItem5.Size = new System.Drawing.Size(229, 22);
|
||||||
|
this.toolStripMenuItem5.Tag = "exporttoobj";
|
||||||
|
this.toolStripMenuItem5.Text = "Selection To Wavefront .obj...";
|
||||||
|
this.toolStripMenuItem5.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
|
// toolStripSeparator5
|
||||||
|
//
|
||||||
|
this.toolStripSeparator5.Name = "toolStripSeparator5";
|
||||||
|
this.toolStripSeparator5.Size = new System.Drawing.Size(242, 6);
|
||||||
|
//
|
||||||
// buttoncopyproperties
|
// buttoncopyproperties
|
||||||
//
|
//
|
||||||
this.buttoncopyproperties.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
this.buttoncopyproperties.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
@ -463,12 +492,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.buttonpastepropertiesoptions.Text = "Choose Properties to Paste";
|
this.buttonpastepropertiesoptions.Text = "Choose Properties to Paste";
|
||||||
this.buttonpastepropertiesoptions.Click += new System.EventHandler(this.InvokeTaggedAction);
|
this.buttonpastepropertiesoptions.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
//
|
//
|
||||||
// seperatorcopypaste
|
|
||||||
//
|
|
||||||
this.seperatorcopypaste.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
|
|
||||||
this.seperatorcopypaste.Name = "seperatorcopypaste";
|
|
||||||
this.seperatorcopypaste.Size = new System.Drawing.Size(6, 25);
|
|
||||||
//
|
|
||||||
// buttonselectionnumbers
|
// buttonselectionnumbers
|
||||||
//
|
//
|
||||||
this.buttonselectionnumbers.CheckOnClick = true;
|
this.buttonselectionnumbers.CheckOnClick = true;
|
||||||
|
@ -491,12 +514,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.buttonselectioneffects.Text = "View Tags and Effects";
|
this.buttonselectioneffects.Text = "View Tags and Effects";
|
||||||
this.buttonselectioneffects.Click += new System.EventHandler(this.buttonselectioneffects_Click);
|
this.buttonselectioneffects.Click += new System.EventHandler(this.buttonselectioneffects_Click);
|
||||||
//
|
//
|
||||||
// separatorsectors1
|
|
||||||
//
|
|
||||||
this.separatorsectors1.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
|
|
||||||
this.separatorsectors1.Name = "separatorsectors1";
|
|
||||||
this.separatorsectors1.Size = new System.Drawing.Size(6, 25);
|
|
||||||
//
|
|
||||||
// buttonbrightnessgradient
|
// buttonbrightnessgradient
|
||||||
//
|
//
|
||||||
this.buttonbrightnessgradient.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
this.buttonbrightnessgradient.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
@ -564,14 +581,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.buttoncurvelinedefs.Text = "Curve Linedefs";
|
this.buttoncurvelinedefs.Text = "Curve Linedefs";
|
||||||
this.buttoncurvelinedefs.Click += new System.EventHandler(this.InvokeTaggedAction);
|
this.buttoncurvelinedefs.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
//
|
//
|
||||||
// brightnessGradientMode
|
|
||||||
//
|
|
||||||
this.brightnessGradientMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
this.brightnessGradientMode.Name = "brightnessGradientMode";
|
|
||||||
this.brightnessGradientMode.Size = new System.Drawing.Size(75, 25);
|
|
||||||
this.brightnessGradientMode.ToolTipText = "Brightness Gradient affects:";
|
|
||||||
this.brightnessGradientMode.DropDownClosed += new System.EventHandler(this.brightnessGradientMode_DropDownClosed);
|
|
||||||
//
|
|
||||||
// buttonMarqueSelectTouching
|
// buttonMarqueSelectTouching
|
||||||
//
|
//
|
||||||
this.buttonMarqueSelectTouching.CheckOnClick = true;
|
this.buttonMarqueSelectTouching.CheckOnClick = true;
|
||||||
|
@ -619,31 +628,87 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
this.buttonMakeDoor.Text = "Make Door From Selection";
|
this.buttonMakeDoor.Text = "Make Door From Selection";
|
||||||
this.buttonMakeDoor.Click += new System.EventHandler(this.InvokeTaggedAction);
|
this.buttonMakeDoor.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
//
|
//
|
||||||
// fileMenuStrip
|
// selectSimilarLinesItem
|
||||||
//
|
//
|
||||||
this.fileMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.selectSimilarLinesItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar;
|
||||||
this.exportStripMenuItem});
|
this.selectSimilarLinesItem.Name = "selectSimilarLinesItem";
|
||||||
this.fileMenuStrip.Location = new System.Drawing.Point(0, 0);
|
this.selectSimilarLinesItem.Size = new System.Drawing.Size(245, 22);
|
||||||
this.fileMenuStrip.Name = "fileMenuStrip";
|
this.selectSimilarLinesItem.Tag = "selectsimilar";
|
||||||
this.fileMenuStrip.Size = new System.Drawing.Size(588, 24);
|
this.selectSimilarLinesItem.Text = "Select Similar...";
|
||||||
this.fileMenuStrip.TabIndex = 3;
|
this.selectSimilarLinesItem.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
this.fileMenuStrip.Text = "menuStrip1";
|
|
||||||
//
|
//
|
||||||
// exportStripMenuItem
|
// makedooritem
|
||||||
//
|
//
|
||||||
this.exportStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.makedooritem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Door;
|
||||||
this.toolStripMenuItem5});
|
this.makedooritem.Name = "makedooritem";
|
||||||
this.exportStripMenuItem.Name = "exportStripMenuItem";
|
this.makedooritem.Size = new System.Drawing.Size(245, 22);
|
||||||
this.exportStripMenuItem.Size = new System.Drawing.Size(52, 20);
|
this.makedooritem.Tag = "makedoor";
|
||||||
this.exportStripMenuItem.Text = "Export";
|
this.makedooritem.Text = "Make &Door";
|
||||||
|
this.makedooritem.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
//
|
//
|
||||||
// toolStripMenuItem5
|
// filterSelectionItem
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem5.Name = "toolStripMenuItem5";
|
this.filterSelectionItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.FilterThings;
|
||||||
this.toolStripMenuItem5.Size = new System.Drawing.Size(229, 22);
|
this.filterSelectionItem.Name = "filterSelectionItem";
|
||||||
this.toolStripMenuItem5.Tag = "exporttoobj";
|
this.filterSelectionItem.Size = new System.Drawing.Size(245, 22);
|
||||||
this.toolStripMenuItem5.Text = "Selection To Wavefront .obj...";
|
this.filterSelectionItem.Tag = "filterselectedthings";
|
||||||
this.toolStripMenuItem5.Click += new System.EventHandler(this.InvokeTaggedAction);
|
this.filterSelectionItem.Text = "Filter Selection...";
|
||||||
|
this.filterSelectionItem.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
|
// alignToWallItem
|
||||||
|
//
|
||||||
|
this.alignToWallItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.AlignThings;
|
||||||
|
this.alignToWallItem.Name = "alignToWallItem";
|
||||||
|
this.alignToWallItem.Size = new System.Drawing.Size(245, 22);
|
||||||
|
this.alignToWallItem.Tag = "thingaligntowall";
|
||||||
|
this.alignToWallItem.Text = "&Align To Closest Linedef";
|
||||||
|
this.alignToWallItem.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
|
// pointAtCursorItem
|
||||||
|
//
|
||||||
|
this.pointAtCursorItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.ThingPointAtCursor;
|
||||||
|
this.pointAtCursorItem.Name = "pointAtCursorItem";
|
||||||
|
this.pointAtCursorItem.Size = new System.Drawing.Size(245, 22);
|
||||||
|
this.pointAtCursorItem.Tag = "thinglookatcursor";
|
||||||
|
this.pointAtCursorItem.Text = "&Point at Cursor";
|
||||||
|
this.pointAtCursorItem.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
|
// selectSimilarSectors
|
||||||
|
//
|
||||||
|
this.selectSimilarSectors.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar;
|
||||||
|
this.selectSimilarSectors.Name = "selectSimilarSectors";
|
||||||
|
this.selectSimilarSectors.Size = new System.Drawing.Size(245, 22);
|
||||||
|
this.selectSimilarSectors.Tag = "selectsimilar";
|
||||||
|
this.selectSimilarSectors.Text = "Select Similar...";
|
||||||
|
this.selectSimilarSectors.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
|
// selectSimilarThingsItem
|
||||||
|
//
|
||||||
|
this.selectSimilarThingsItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar;
|
||||||
|
this.selectSimilarThingsItem.Name = "selectSimilarThingsItem";
|
||||||
|
this.selectSimilarThingsItem.Size = new System.Drawing.Size(245, 22);
|
||||||
|
this.selectSimilarThingsItem.Tag = "selectsimilar";
|
||||||
|
this.selectSimilarThingsItem.Text = "Select Similar...";
|
||||||
|
this.selectSimilarThingsItem.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
|
// toolStripSeparator6
|
||||||
|
//
|
||||||
|
this.toolStripSeparator6.Name = "toolStripSeparator6";
|
||||||
|
this.toolStripSeparator6.Size = new System.Drawing.Size(242, 6);
|
||||||
|
//
|
||||||
|
// toolStripSeparator7
|
||||||
|
//
|
||||||
|
this.toolStripSeparator7.Name = "toolStripSeparator7";
|
||||||
|
this.toolStripSeparator7.Size = new System.Drawing.Size(150, 6);
|
||||||
|
//
|
||||||
|
// selectSimilarVertsItem
|
||||||
|
//
|
||||||
|
this.selectSimilarVertsItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar;
|
||||||
|
this.selectSimilarVertsItem.Name = "selectSimilarVertsItem";
|
||||||
|
this.selectSimilarVertsItem.Size = new System.Drawing.Size(153, 22);
|
||||||
|
this.selectSimilarVertsItem.Tag = "selectsimilar";
|
||||||
|
this.selectSimilarVertsItem.Text = "Select Similar...";
|
||||||
|
this.selectSimilarVertsItem.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
//
|
//
|
||||||
// MenusForm
|
// MenusForm
|
||||||
//
|
//
|
||||||
|
@ -735,5 +800,12 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem5;
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem5;
|
||||||
private System.Windows.Forms.ToolStripButton buttonpastepropertiesoptions;
|
private System.Windows.Forms.ToolStripButton buttonpastepropertiesoptions;
|
||||||
private System.Windows.Forms.ToolStripMenuItem filterSelectionItem;
|
private System.Windows.Forms.ToolStripMenuItem filterSelectionItem;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator5;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem selectSimilarLinesItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem selectSimilarSectors;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator6;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem selectSimilarThingsItem;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator7;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem selectSimilarVertsItem;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -49,8 +49,7 @@
|
||||||
//
|
//
|
||||||
// tabControl
|
// tabControl
|
||||||
//
|
//
|
||||||
this.tabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
this.tabControl.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
| System.Windows.Forms.AnchorStyles.Left)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.tabControl.Controls.Add(this.sectors);
|
this.tabControl.Controls.Add(this.sectors);
|
||||||
this.tabControl.Controls.Add(this.linedefs);
|
this.tabControl.Controls.Add(this.linedefs);
|
||||||
|
@ -91,7 +90,7 @@
|
||||||
this.linedefs.Location = new System.Drawing.Point(4, 23);
|
this.linedefs.Location = new System.Drawing.Point(4, 23);
|
||||||
this.linedefs.Name = "linedefs";
|
this.linedefs.Name = "linedefs";
|
||||||
this.linedefs.Padding = new System.Windows.Forms.Padding(3);
|
this.linedefs.Padding = new System.Windows.Forms.Padding(3);
|
||||||
this.linedefs.Size = new System.Drawing.Size(258, 182);
|
this.linedefs.Size = new System.Drawing.Size(258, 100);
|
||||||
this.linedefs.TabIndex = 1;
|
this.linedefs.TabIndex = 1;
|
||||||
this.linedefs.Text = "Linedefs";
|
this.linedefs.Text = "Linedefs";
|
||||||
this.linedefs.UseVisualStyleBackColor = true;
|
this.linedefs.UseVisualStyleBackColor = true;
|
||||||
|
@ -103,7 +102,7 @@
|
||||||
this.lineflags.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.lineflags.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.lineflags.Location = new System.Drawing.Point(3, 3);
|
this.lineflags.Location = new System.Drawing.Point(3, 3);
|
||||||
this.lineflags.Name = "lineflags";
|
this.lineflags.Name = "lineflags";
|
||||||
this.lineflags.Size = new System.Drawing.Size(252, 176);
|
this.lineflags.Size = new System.Drawing.Size(252, 94);
|
||||||
this.lineflags.TabIndex = 3;
|
this.lineflags.TabIndex = 3;
|
||||||
this.lineflags.VerticalSpacing = 1;
|
this.lineflags.VerticalSpacing = 1;
|
||||||
//
|
//
|
||||||
|
@ -113,7 +112,7 @@
|
||||||
this.sidedefs.Location = new System.Drawing.Point(4, 23);
|
this.sidedefs.Location = new System.Drawing.Point(4, 23);
|
||||||
this.sidedefs.Name = "sidedefs";
|
this.sidedefs.Name = "sidedefs";
|
||||||
this.sidedefs.Padding = new System.Windows.Forms.Padding(3);
|
this.sidedefs.Padding = new System.Windows.Forms.Padding(3);
|
||||||
this.sidedefs.Size = new System.Drawing.Size(258, 182);
|
this.sidedefs.Size = new System.Drawing.Size(258, 100);
|
||||||
this.sidedefs.TabIndex = 2;
|
this.sidedefs.TabIndex = 2;
|
||||||
this.sidedefs.Text = "Sidedefs";
|
this.sidedefs.Text = "Sidedefs";
|
||||||
this.sidedefs.UseVisualStyleBackColor = true;
|
this.sidedefs.UseVisualStyleBackColor = true;
|
||||||
|
@ -125,7 +124,7 @@
|
||||||
this.sideflags.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.sideflags.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.sideflags.Location = new System.Drawing.Point(3, 3);
|
this.sideflags.Location = new System.Drawing.Point(3, 3);
|
||||||
this.sideflags.Name = "sideflags";
|
this.sideflags.Name = "sideflags";
|
||||||
this.sideflags.Size = new System.Drawing.Size(252, 176);
|
this.sideflags.Size = new System.Drawing.Size(252, 94);
|
||||||
this.sideflags.TabIndex = 2;
|
this.sideflags.TabIndex = 2;
|
||||||
this.sideflags.VerticalSpacing = 1;
|
this.sideflags.VerticalSpacing = 1;
|
||||||
//
|
//
|
||||||
|
@ -135,7 +134,7 @@
|
||||||
this.things.Location = new System.Drawing.Point(4, 23);
|
this.things.Location = new System.Drawing.Point(4, 23);
|
||||||
this.things.Name = "things";
|
this.things.Name = "things";
|
||||||
this.things.Padding = new System.Windows.Forms.Padding(3);
|
this.things.Padding = new System.Windows.Forms.Padding(3);
|
||||||
this.things.Size = new System.Drawing.Size(258, 182);
|
this.things.Size = new System.Drawing.Size(258, 100);
|
||||||
this.things.TabIndex = 3;
|
this.things.TabIndex = 3;
|
||||||
this.things.Text = "Things";
|
this.things.Text = "Things";
|
||||||
this.things.UseVisualStyleBackColor = true;
|
this.things.UseVisualStyleBackColor = true;
|
||||||
|
@ -147,7 +146,7 @@
|
||||||
this.thingflags.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.thingflags.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.thingflags.Location = new System.Drawing.Point(3, 3);
|
this.thingflags.Location = new System.Drawing.Point(3, 3);
|
||||||
this.thingflags.Name = "thingflags";
|
this.thingflags.Name = "thingflags";
|
||||||
this.thingflags.Size = new System.Drawing.Size(252, 176);
|
this.thingflags.Size = new System.Drawing.Size(252, 94);
|
||||||
this.thingflags.TabIndex = 2;
|
this.thingflags.TabIndex = 2;
|
||||||
this.thingflags.VerticalSpacing = 1;
|
this.thingflags.VerticalSpacing = 1;
|
||||||
//
|
//
|
||||||
|
@ -157,7 +156,7 @@
|
||||||
this.vertices.Location = new System.Drawing.Point(4, 23);
|
this.vertices.Location = new System.Drawing.Point(4, 23);
|
||||||
this.vertices.Name = "vertices";
|
this.vertices.Name = "vertices";
|
||||||
this.vertices.Padding = new System.Windows.Forms.Padding(3);
|
this.vertices.Padding = new System.Windows.Forms.Padding(3);
|
||||||
this.vertices.Size = new System.Drawing.Size(258, 182);
|
this.vertices.Size = new System.Drawing.Size(258, 100);
|
||||||
this.vertices.TabIndex = 4;
|
this.vertices.TabIndex = 4;
|
||||||
this.vertices.Text = "Vertices";
|
this.vertices.Text = "Vertices";
|
||||||
this.vertices.UseVisualStyleBackColor = true;
|
this.vertices.UseVisualStyleBackColor = true;
|
||||||
|
@ -169,7 +168,7 @@
|
||||||
this.vertexflags.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.vertexflags.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.vertexflags.Location = new System.Drawing.Point(3, 3);
|
this.vertexflags.Location = new System.Drawing.Point(3, 3);
|
||||||
this.vertexflags.Name = "vertexflags";
|
this.vertexflags.Name = "vertexflags";
|
||||||
this.vertexflags.Size = new System.Drawing.Size(252, 176);
|
this.vertexflags.Size = new System.Drawing.Size(252, 94);
|
||||||
this.vertexflags.TabIndex = 1;
|
this.vertexflags.TabIndex = 1;
|
||||||
this.vertexflags.VerticalSpacing = 1;
|
this.vertexflags.VerticalSpacing = 1;
|
||||||
//
|
//
|
||||||
|
@ -177,7 +176,7 @@
|
||||||
//
|
//
|
||||||
this.cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
this.cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
this.cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
this.cancel.Location = new System.Drawing.Point(202, 146);
|
this.cancel.Location = new System.Drawing.Point(122, 144);
|
||||||
this.cancel.Name = "cancel";
|
this.cancel.Name = "cancel";
|
||||||
this.cancel.Size = new System.Drawing.Size(75, 23);
|
this.cancel.Size = new System.Drawing.Size(75, 23);
|
||||||
this.cancel.TabIndex = 0;
|
this.cancel.TabIndex = 0;
|
||||||
|
@ -188,7 +187,7 @@
|
||||||
// apply
|
// apply
|
||||||
//
|
//
|
||||||
this.apply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
this.apply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.apply.Location = new System.Drawing.Point(121, 146);
|
this.apply.Location = new System.Drawing.Point(203, 144);
|
||||||
this.apply.Name = "apply";
|
this.apply.Name = "apply";
|
||||||
this.apply.Size = new System.Drawing.Size(75, 23);
|
this.apply.Size = new System.Drawing.Size(75, 23);
|
||||||
this.apply.TabIndex = 1;
|
this.apply.TabIndex = 1;
|
||||||
|
@ -199,11 +198,11 @@
|
||||||
// enableall
|
// enableall
|
||||||
//
|
//
|
||||||
this.enableall.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
this.enableall.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||||
this.enableall.Location = new System.Drawing.Point(10, 146);
|
this.enableall.Location = new System.Drawing.Point(11, 144);
|
||||||
this.enableall.Name = "enableall";
|
this.enableall.Name = "enableall";
|
||||||
this.enableall.Size = new System.Drawing.Size(70, 23);
|
this.enableall.Size = new System.Drawing.Size(70, 23);
|
||||||
this.enableall.TabIndex = 2;
|
this.enableall.TabIndex = 2;
|
||||||
this.enableall.Text = "Enable All";
|
this.enableall.Text = "Toggle All";
|
||||||
this.enableall.UseVisualStyleBackColor = true;
|
this.enableall.UseVisualStyleBackColor = true;
|
||||||
this.enableall.Click += new System.EventHandler(this.enableall_Click);
|
this.enableall.Click += new System.EventHandler(this.enableall_Click);
|
||||||
//
|
//
|
||||||
|
@ -213,7 +212,7 @@
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||||
this.CancelButton = this.cancel;
|
this.CancelButton = this.cancel;
|
||||||
this.ClientSize = new System.Drawing.Size(290, 176);
|
this.ClientSize = new System.Drawing.Size(290, 171);
|
||||||
this.Controls.Add(this.enableall);
|
this.Controls.Add(this.enableall);
|
||||||
this.Controls.Add(this.apply);
|
this.Controls.Add(this.apply);
|
||||||
this.Controls.Add(this.cancel);
|
this.Controls.Add(this.cancel);
|
||||||
|
@ -222,8 +221,8 @@
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
|
||||||
this.Name = "PastePropertiesOptionsForm";
|
this.Name = "PastePropertiesOptionsForm";
|
||||||
this.ShowInTaskbar = false;
|
this.ShowInTaskbar = false;
|
||||||
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
|
|
||||||
this.Text = "Paste Properties Options";
|
this.Text = "Paste Properties Options";
|
||||||
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.PastePropertiesOptionsForm_FormClosing);
|
||||||
this.tabControl.ResumeLayout(false);
|
this.tabControl.ResumeLayout(false);
|
||||||
this.sectors.ResumeLayout(false);
|
this.sectors.ResumeLayout(false);
|
||||||
this.linedefs.ResumeLayout(false);
|
this.linedefs.ResumeLayout(false);
|
||||||
|
|
|
@ -9,30 +9,42 @@ namespace CodeImp.DoomBuilder.BuilderModes.Interface
|
||||||
{
|
{
|
||||||
public partial class PastePropertiesOptionsForm : Form
|
public partial class PastePropertiesOptionsForm : Form
|
||||||
{
|
{
|
||||||
private readonly Dictionary<Type, CheckboxArrayControl> typecontrols;
|
private static Size size = Size.Empty;
|
||||||
|
private static Point location = Point.Empty;
|
||||||
|
private readonly Dictionary<object, CheckboxArrayControl> typecontrols;
|
||||||
|
|
||||||
public PastePropertiesOptionsForm() {
|
public PastePropertiesOptionsForm() {
|
||||||
Point pos = Cursor.Position;
|
|
||||||
pos.Offset(-this.Width / 2, -this.Height / 2);
|
|
||||||
if (pos.Y < 0) pos.Y = 0;
|
|
||||||
this.Location = pos;
|
|
||||||
|
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
|
//apply window size and location
|
||||||
|
if(!size.IsEmpty && !location.IsEmpty) {
|
||||||
|
this.StartPosition = FormStartPosition.Manual;
|
||||||
|
this.Size = size;
|
||||||
|
this.Location = location;
|
||||||
|
}
|
||||||
|
|
||||||
//create a collection
|
//create a collection
|
||||||
typecontrols = new Dictionary<Type, CheckboxArrayControl> {
|
typecontrols = new Dictionary<object, CheckboxArrayControl> {
|
||||||
{typeof (SectorProperties), sectorflags},
|
{SectorProperties.CopySettings, sectorflags},
|
||||||
{typeof (LinedefProperties), lineflags},
|
{LinedefProperties.CopySettings, lineflags},
|
||||||
{typeof (SidedefProperties), sideflags},
|
{SidedefProperties.CopySettings, sideflags},
|
||||||
{typeof (ThingProperties), thingflags},
|
{ThingProperties.CopySettings, thingflags},
|
||||||
{typeof (VertexProperties), vertexflags}
|
{VertexProperties.CopySettings, vertexflags}
|
||||||
};
|
};
|
||||||
|
|
||||||
//fill flags
|
//fill flags
|
||||||
foreach(KeyValuePair<Type, CheckboxArrayControl> group in typecontrols) {
|
foreach(KeyValuePair<object, CheckboxArrayControl> group in typecontrols) {
|
||||||
FieldInfo[] props = group.Key.GetFields(BindingFlags.Static | BindingFlags.Public);
|
FieldInfo[] props = group.Key.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance);
|
||||||
|
string title = "<unknown flag>";
|
||||||
foreach(var prop in props) {
|
foreach(var prop in props) {
|
||||||
group.Value.Add(prop.Name.Replace("_", " "), prop.Name).Checked = (bool)prop.GetValue(group.Key);
|
foreach(Attribute attr in Attribute.GetCustomAttributes(prop)) {
|
||||||
|
if(attr.GetType() == typeof(FieldDescription)) {
|
||||||
|
title = ((FieldDescription)attr).Description;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
group.Value.Add(title, prop.Name).Checked = (bool)prop.GetValue(group.Key);
|
||||||
}
|
}
|
||||||
|
|
||||||
group.Value.PositionCheckboxes();
|
group.Value.PositionCheckboxes();
|
||||||
|
@ -49,8 +61,8 @@ namespace CodeImp.DoomBuilder.BuilderModes.Interface
|
||||||
}
|
}
|
||||||
|
|
||||||
private void apply_Click(object sender, EventArgs e) {
|
private void apply_Click(object sender, EventArgs e) {
|
||||||
foreach (KeyValuePair<Type, CheckboxArrayControl> group in typecontrols) {
|
foreach (KeyValuePair<object, CheckboxArrayControl> group in typecontrols) {
|
||||||
FieldInfo[] props = group.Key.GetFields(BindingFlags.Static | BindingFlags.Public);
|
FieldInfo[] props = group.Key.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance);
|
||||||
var fields = new Dictionary<string, FieldInfo>(props.Length);
|
var fields = new Dictionary<string, FieldInfo>(props.Length);
|
||||||
for(int i = 0; i < props.Length; i++) {
|
for(int i = 0; i < props.Length; i++) {
|
||||||
fields[props[i].Name] = props[i];
|
fields[props[i].Name] = props[i];
|
||||||
|
@ -68,9 +80,15 @@ namespace CodeImp.DoomBuilder.BuilderModes.Interface
|
||||||
}
|
}
|
||||||
|
|
||||||
private void enableall_Click(object sender, EventArgs e) {
|
private void enableall_Click(object sender, EventArgs e) {
|
||||||
foreach (KeyValuePair<Type, CheckboxArrayControl> group in typecontrols) {
|
CheckboxArrayControl curControl = tabControl.SelectedTab.Controls[0] as CheckboxArrayControl;
|
||||||
foreach (var cb in group.Value.Checkboxes) cb.Checked = true;
|
if(curControl == null) return; //just a piece of boilerplate...
|
||||||
}
|
bool enable = !curControl.Checkboxes[0].Checked;
|
||||||
|
foreach(var cb in curControl.Checkboxes) cb.Checked = enable;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PastePropertiesOptionsForm_FormClosing(object sender, FormClosingEventArgs e) {
|
||||||
|
size = this.Size;
|
||||||
|
location = this.Location;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
253
Source/Plugins/BuilderModes/Interface/SelectSimilarElementOptionsPanel.Designer.cs
generated
Normal file
253
Source/Plugins/BuilderModes/Interface/SelectSimilarElementOptionsPanel.Designer.cs
generated
Normal file
|
@ -0,0 +1,253 @@
|
||||||
|
namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
|
{
|
||||||
|
partial class SelectSimilarElementOptionsPanel
|
||||||
|
{
|
||||||
|
/// <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.enableall = new System.Windows.Forms.Button();
|
||||||
|
this.apply = new System.Windows.Forms.Button();
|
||||||
|
this.cancel = new System.Windows.Forms.Button();
|
||||||
|
this.tabControl = new System.Windows.Forms.TabControl();
|
||||||
|
this.sectors = new System.Windows.Forms.TabPage();
|
||||||
|
this.sectorflags = new CodeImp.DoomBuilder.Controls.CheckboxArrayControl();
|
||||||
|
this.linedefs = new System.Windows.Forms.TabPage();
|
||||||
|
this.lineflags = new CodeImp.DoomBuilder.Controls.CheckboxArrayControl();
|
||||||
|
this.sidedefs = new System.Windows.Forms.TabPage();
|
||||||
|
this.sideflags = new CodeImp.DoomBuilder.Controls.CheckboxArrayControl();
|
||||||
|
this.things = new System.Windows.Forms.TabPage();
|
||||||
|
this.thingflags = new CodeImp.DoomBuilder.Controls.CheckboxArrayControl();
|
||||||
|
this.vertices = new System.Windows.Forms.TabPage();
|
||||||
|
this.vertexflags = new CodeImp.DoomBuilder.Controls.CheckboxArrayControl();
|
||||||
|
this.tabControl.SuspendLayout();
|
||||||
|
this.sectors.SuspendLayout();
|
||||||
|
this.linedefs.SuspendLayout();
|
||||||
|
this.sidedefs.SuspendLayout();
|
||||||
|
this.things.SuspendLayout();
|
||||||
|
this.vertices.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// enableall
|
||||||
|
//
|
||||||
|
this.enableall.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||||
|
this.enableall.Location = new System.Drawing.Point(11, 144);
|
||||||
|
this.enableall.Name = "enableall";
|
||||||
|
this.enableall.Size = new System.Drawing.Size(70, 23);
|
||||||
|
this.enableall.TabIndex = 7;
|
||||||
|
this.enableall.Text = "Toggle All";
|
||||||
|
this.enableall.UseVisualStyleBackColor = true;
|
||||||
|
this.enableall.Click += new System.EventHandler(this.enableall_Click);
|
||||||
|
//
|
||||||
|
// apply
|
||||||
|
//
|
||||||
|
this.apply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.apply.Location = new System.Drawing.Point(203, 144);
|
||||||
|
this.apply.Name = "apply";
|
||||||
|
this.apply.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.apply.TabIndex = 6;
|
||||||
|
this.apply.Text = "OK";
|
||||||
|
this.apply.UseVisualStyleBackColor = true;
|
||||||
|
this.apply.Click += new System.EventHandler(this.apply_Click);
|
||||||
|
//
|
||||||
|
// cancel
|
||||||
|
//
|
||||||
|
this.cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
|
this.cancel.Location = new System.Drawing.Point(122, 144);
|
||||||
|
this.cancel.Name = "cancel";
|
||||||
|
this.cancel.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.cancel.TabIndex = 5;
|
||||||
|
this.cancel.Text = "Cancel";
|
||||||
|
this.cancel.UseVisualStyleBackColor = true;
|
||||||
|
this.cancel.Click += new System.EventHandler(this.cancel_Click);
|
||||||
|
//
|
||||||
|
// tabControl
|
||||||
|
//
|
||||||
|
this.tabControl.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.tabControl.Controls.Add(this.sectors);
|
||||||
|
this.tabControl.Controls.Add(this.linedefs);
|
||||||
|
this.tabControl.Controls.Add(this.sidedefs);
|
||||||
|
this.tabControl.Controls.Add(this.things);
|
||||||
|
this.tabControl.Controls.Add(this.vertices);
|
||||||
|
this.tabControl.Location = new System.Drawing.Point(12, 12);
|
||||||
|
this.tabControl.Name = "tabControl";
|
||||||
|
this.tabControl.SelectedIndex = 0;
|
||||||
|
this.tabControl.Size = new System.Drawing.Size(266, 127);
|
||||||
|
this.tabControl.TabIndex = 8;
|
||||||
|
//
|
||||||
|
// sectors
|
||||||
|
//
|
||||||
|
this.sectors.Controls.Add(this.sectorflags);
|
||||||
|
this.sectors.Location = new System.Drawing.Point(4, 23);
|
||||||
|
this.sectors.Name = "sectors";
|
||||||
|
this.sectors.Padding = new System.Windows.Forms.Padding(3);
|
||||||
|
this.sectors.Size = new System.Drawing.Size(258, 100);
|
||||||
|
this.sectors.TabIndex = 0;
|
||||||
|
this.sectors.Text = "Sectors";
|
||||||
|
this.sectors.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// sectorflags
|
||||||
|
//
|
||||||
|
this.sectorflags.AutoScroll = true;
|
||||||
|
this.sectorflags.Columns = 2;
|
||||||
|
this.sectorflags.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.sectorflags.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.sectorflags.Name = "sectorflags";
|
||||||
|
this.sectorflags.Size = new System.Drawing.Size(252, 94);
|
||||||
|
this.sectorflags.TabIndex = 3;
|
||||||
|
this.sectorflags.VerticalSpacing = 1;
|
||||||
|
//
|
||||||
|
// linedefs
|
||||||
|
//
|
||||||
|
this.linedefs.Controls.Add(this.lineflags);
|
||||||
|
this.linedefs.Location = new System.Drawing.Point(4, 23);
|
||||||
|
this.linedefs.Name = "linedefs";
|
||||||
|
this.linedefs.Padding = new System.Windows.Forms.Padding(3);
|
||||||
|
this.linedefs.Size = new System.Drawing.Size(258, 100);
|
||||||
|
this.linedefs.TabIndex = 1;
|
||||||
|
this.linedefs.Text = "Linedefs";
|
||||||
|
this.linedefs.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// lineflags
|
||||||
|
//
|
||||||
|
this.lineflags.AutoScroll = true;
|
||||||
|
this.lineflags.Columns = 2;
|
||||||
|
this.lineflags.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.lineflags.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.lineflags.Name = "lineflags";
|
||||||
|
this.lineflags.Size = new System.Drawing.Size(252, 94);
|
||||||
|
this.lineflags.TabIndex = 3;
|
||||||
|
this.lineflags.VerticalSpacing = 1;
|
||||||
|
//
|
||||||
|
// sidedefs
|
||||||
|
//
|
||||||
|
this.sidedefs.Controls.Add(this.sideflags);
|
||||||
|
this.sidedefs.Location = new System.Drawing.Point(4, 23);
|
||||||
|
this.sidedefs.Name = "sidedefs";
|
||||||
|
this.sidedefs.Padding = new System.Windows.Forms.Padding(3);
|
||||||
|
this.sidedefs.Size = new System.Drawing.Size(258, 100);
|
||||||
|
this.sidedefs.TabIndex = 2;
|
||||||
|
this.sidedefs.Text = "Sidedefs";
|
||||||
|
this.sidedefs.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// sideflags
|
||||||
|
//
|
||||||
|
this.sideflags.AutoScroll = true;
|
||||||
|
this.sideflags.Columns = 2;
|
||||||
|
this.sideflags.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.sideflags.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.sideflags.Name = "sideflags";
|
||||||
|
this.sideflags.Size = new System.Drawing.Size(252, 94);
|
||||||
|
this.sideflags.TabIndex = 2;
|
||||||
|
this.sideflags.VerticalSpacing = 1;
|
||||||
|
//
|
||||||
|
// things
|
||||||
|
//
|
||||||
|
this.things.Controls.Add(this.thingflags);
|
||||||
|
this.things.Location = new System.Drawing.Point(4, 23);
|
||||||
|
this.things.Name = "things";
|
||||||
|
this.things.Padding = new System.Windows.Forms.Padding(3);
|
||||||
|
this.things.Size = new System.Drawing.Size(258, 100);
|
||||||
|
this.things.TabIndex = 3;
|
||||||
|
this.things.Text = "Things";
|
||||||
|
this.things.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// thingflags
|
||||||
|
//
|
||||||
|
this.thingflags.AutoScroll = true;
|
||||||
|
this.thingflags.Columns = 2;
|
||||||
|
this.thingflags.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.thingflags.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.thingflags.Name = "thingflags";
|
||||||
|
this.thingflags.Size = new System.Drawing.Size(252, 94);
|
||||||
|
this.thingflags.TabIndex = 2;
|
||||||
|
this.thingflags.VerticalSpacing = 1;
|
||||||
|
//
|
||||||
|
// vertices
|
||||||
|
//
|
||||||
|
this.vertices.Controls.Add(this.vertexflags);
|
||||||
|
this.vertices.Location = new System.Drawing.Point(4, 23);
|
||||||
|
this.vertices.Name = "vertices";
|
||||||
|
this.vertices.Padding = new System.Windows.Forms.Padding(3);
|
||||||
|
this.vertices.Size = new System.Drawing.Size(258, 100);
|
||||||
|
this.vertices.TabIndex = 4;
|
||||||
|
this.vertices.Text = "Vertices";
|
||||||
|
this.vertices.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// vertexflags
|
||||||
|
//
|
||||||
|
this.vertexflags.AutoScroll = true;
|
||||||
|
this.vertexflags.Columns = 2;
|
||||||
|
this.vertexflags.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.vertexflags.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.vertexflags.Name = "vertexflags";
|
||||||
|
this.vertexflags.Size = new System.Drawing.Size(252, 94);
|
||||||
|
this.vertexflags.TabIndex = 1;
|
||||||
|
this.vertexflags.VerticalSpacing = 1;
|
||||||
|
//
|
||||||
|
// SelectSimilarElementOptionsPanel
|
||||||
|
//
|
||||||
|
this.AcceptButton = this.apply;
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||||
|
this.CancelButton = this.cancel;
|
||||||
|
this.ClientSize = new System.Drawing.Size(290, 171);
|
||||||
|
this.Controls.Add(this.tabControl);
|
||||||
|
this.Controls.Add(this.enableall);
|
||||||
|
this.Controls.Add(this.apply);
|
||||||
|
this.Controls.Add(this.cancel);
|
||||||
|
this.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
|
||||||
|
this.Name = "SelectSimilarElementOptionsPanel";
|
||||||
|
this.ShowInTaskbar = false;
|
||||||
|
this.Text = "Selection Options";
|
||||||
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.SelectSimilarElementOptionsPanel_FormClosing);
|
||||||
|
this.tabControl.ResumeLayout(false);
|
||||||
|
this.sectors.ResumeLayout(false);
|
||||||
|
this.linedefs.ResumeLayout(false);
|
||||||
|
this.sidedefs.ResumeLayout(false);
|
||||||
|
this.things.ResumeLayout(false);
|
||||||
|
this.vertices.ResumeLayout(false);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Button enableall;
|
||||||
|
private System.Windows.Forms.Button apply;
|
||||||
|
private System.Windows.Forms.Button cancel;
|
||||||
|
private System.Windows.Forms.TabControl tabControl;
|
||||||
|
private System.Windows.Forms.TabPage sectors;
|
||||||
|
private CodeImp.DoomBuilder.Controls.CheckboxArrayControl sectorflags;
|
||||||
|
private System.Windows.Forms.TabPage linedefs;
|
||||||
|
private CodeImp.DoomBuilder.Controls.CheckboxArrayControl lineflags;
|
||||||
|
private System.Windows.Forms.TabPage sidedefs;
|
||||||
|
private CodeImp.DoomBuilder.Controls.CheckboxArrayControl sideflags;
|
||||||
|
private System.Windows.Forms.TabPage things;
|
||||||
|
private CodeImp.DoomBuilder.Controls.CheckboxArrayControl thingflags;
|
||||||
|
private System.Windows.Forms.TabPage vertices;
|
||||||
|
private CodeImp.DoomBuilder.Controls.CheckboxArrayControl vertexflags;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,179 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using CodeImp.DoomBuilder.Controls;
|
||||||
|
using CodeImp.DoomBuilder.Map;
|
||||||
|
using CodeImp.DoomBuilder.Windows;
|
||||||
|
|
||||||
|
namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
|
{
|
||||||
|
public partial class SelectSimilarElementOptionsPanel : Form
|
||||||
|
{
|
||||||
|
private static Size size = Size.Empty;
|
||||||
|
private static Point location = Point.Empty;
|
||||||
|
private static readonly object[] flags = {
|
||||||
|
new SectorPropertiesCopySettings(),
|
||||||
|
new LinedefPropertiesCopySettings(),
|
||||||
|
new SidedefPropertiesCopySettings(),
|
||||||
|
new ThingPropertiesCopySettings(),
|
||||||
|
new VertexPropertiesCopySettings()
|
||||||
|
};
|
||||||
|
|
||||||
|
private BaseClassicMode mode;
|
||||||
|
private TabPage[] activeTabs;
|
||||||
|
private readonly Dictionary<CheckboxArrayControl, object> typecontrols;
|
||||||
|
|
||||||
|
public SelectSimilarElementOptionsPanel() {
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
//apply window size and location
|
||||||
|
if(!size.IsEmpty && !location.IsEmpty) {
|
||||||
|
this.StartPosition = FormStartPosition.Manual;
|
||||||
|
this.Size = size;
|
||||||
|
this.Location = location;
|
||||||
|
}
|
||||||
|
|
||||||
|
//create a collection
|
||||||
|
typecontrols = new Dictionary<CheckboxArrayControl, object> {
|
||||||
|
{sectorflags, flags[0]},
|
||||||
|
{lineflags, flags[1]},
|
||||||
|
{sideflags, flags[2]},
|
||||||
|
{thingflags, flags[3]},
|
||||||
|
{vertexflags, flags[4]}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Setup(BaseClassicMode mode) {
|
||||||
|
this.mode = mode;
|
||||||
|
|
||||||
|
//which tabs should we display?
|
||||||
|
if(General.Editing.Mode is ThingsMode) {
|
||||||
|
activeTabs = new[] {things};
|
||||||
|
} else if(General.Editing.Mode is VerticesMode) {
|
||||||
|
activeTabs = new[] { vertices };
|
||||||
|
} else if(General.Editing.Mode is LinedefsMode) {
|
||||||
|
activeTabs = new[] { linedefs, sidedefs };
|
||||||
|
} else if(mode is SectorsMode) {
|
||||||
|
activeTabs = new[] { sectors };
|
||||||
|
} else {
|
||||||
|
General.Interface.DisplayStatus(StatusType.Warning, "This action doesn't support current editing mode...");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//fill flags
|
||||||
|
foreach(TabPage page in activeTabs) {
|
||||||
|
CheckboxArrayControl curControl = page.Controls[0] as CheckboxArrayControl;
|
||||||
|
if(curControl == null) continue; //just a piece of boilerplate...
|
||||||
|
|
||||||
|
FieldInfo[] props = typecontrols[curControl].GetType().GetFields(BindingFlags.Public | BindingFlags.Instance);
|
||||||
|
string title = "<unknown flag>";
|
||||||
|
foreach(var prop in props) {
|
||||||
|
foreach(Attribute attr in Attribute.GetCustomAttributes(prop)) {
|
||||||
|
if(attr.GetType() == typeof(FieldDescription)) {
|
||||||
|
title = ((FieldDescription)attr).Description;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
curControl.Add(title, prop.Name).Checked = (bool)prop.GetValue(typecontrols[curControl]);
|
||||||
|
}
|
||||||
|
|
||||||
|
curControl.PositionCheckboxes();
|
||||||
|
}
|
||||||
|
|
||||||
|
//hide unused tab pages
|
||||||
|
tabControl.SelectTab(activeTabs[0]);
|
||||||
|
tabControl.TabPages.Clear();
|
||||||
|
tabControl.TabPages.AddRange(activeTabs);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SelectSimilarElementOptionsPanel_FormClosing(object sender, FormClosingEventArgs e) {
|
||||||
|
size = this.Size;
|
||||||
|
location = this.Location;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void enableall_Click(object sender, EventArgs e) {
|
||||||
|
CheckboxArrayControl curControl = tabControl.SelectedTab.Controls[0] as CheckboxArrayControl;
|
||||||
|
if(curControl == null) return; //just a piece of boilerplate...
|
||||||
|
bool enable = !curControl.Checkboxes[0].Checked;
|
||||||
|
foreach(var cb in curControl.Checkboxes) cb.Checked = enable;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cancel_Click(object sender, EventArgs e) {
|
||||||
|
this.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void apply_Click(object sender, EventArgs e) {
|
||||||
|
//save flags states
|
||||||
|
foreach (TabPage page in activeTabs) {
|
||||||
|
CheckboxArrayControl curControl = page.Controls[0] as CheckboxArrayControl;
|
||||||
|
if(curControl == null) continue; //just a piece of boilerplate...
|
||||||
|
|
||||||
|
FieldInfo[] props = typecontrols[curControl].GetType().GetFields(BindingFlags.Public | BindingFlags.Instance);
|
||||||
|
var fields = new Dictionary<string, FieldInfo>(props.Length);
|
||||||
|
for(int i = 0; i < props.Length; i++) {
|
||||||
|
fields[props[i].Name] = props[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach(CheckBox cb in curControl.Checkboxes) {
|
||||||
|
fields[cb.Tag.ToString()].SetValue(typecontrols[curControl], cb.Checked);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//perform selection
|
||||||
|
if(mode is ThingsMode) {
|
||||||
|
ICollection<Thing> selected = General.Map.Map.GetSelectedThings(true);
|
||||||
|
ICollection<Thing> unselected = General.Map.Map.GetSelectedThings(false);
|
||||||
|
|
||||||
|
foreach (Thing target in unselected) {
|
||||||
|
foreach (Thing source in selected) {
|
||||||
|
if (PropertiesComparer.PropertiesMatch((ThingPropertiesCopySettings) typecontrols[thingflags], source, target))
|
||||||
|
mode.SelectMapElement(target);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if(mode is LinedefsMode) {
|
||||||
|
ICollection<Linedef> selected = General.Map.Map.GetSelectedLinedefs(true);
|
||||||
|
ICollection<Linedef> unselected = General.Map.Map.GetSelectedLinedefs(false);
|
||||||
|
|
||||||
|
foreach(Linedef target in unselected) {
|
||||||
|
foreach(Linedef source in selected) {
|
||||||
|
if(PropertiesComparer.PropertiesMatch((LinedefPropertiesCopySettings)typecontrols[lineflags], (SidedefPropertiesCopySettings)typecontrols[sideflags], source, target))
|
||||||
|
mode.SelectMapElement(target);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if(mode is SectorsMode) {
|
||||||
|
ICollection<Sector> selected = General.Map.Map.GetSelectedSectors(true);
|
||||||
|
ICollection<Sector> unselected = General.Map.Map.GetSelectedSectors(false);
|
||||||
|
|
||||||
|
foreach(Sector target in unselected) {
|
||||||
|
foreach(Sector source in selected) {
|
||||||
|
if(PropertiesComparer.PropertiesMatch((SectorPropertiesCopySettings)typecontrols[sectorflags], source, target))
|
||||||
|
mode.SelectMapElement(target);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if(mode is VerticesMode) {
|
||||||
|
ICollection<Vertex> selected = General.Map.Map.GetSelectedVertices(true);
|
||||||
|
ICollection<Vertex> unselected = General.Map.Map.GetSelectedVertices(false);
|
||||||
|
|
||||||
|
foreach(Vertex target in unselected) {
|
||||||
|
foreach(Vertex source in selected) {
|
||||||
|
if(PropertiesComparer.PropertiesMatch((VertexPropertiesCopySettings)typecontrols[vertexflags], source, target))
|
||||||
|
mode.SelectMapElement(target);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
mode.UpdateSelectionInfo();
|
||||||
|
General.Interface.RedrawDisplay();
|
||||||
|
this.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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>
|
|
@ -242,6 +242,13 @@ namespace CodeImp.DoomBuilder.BuilderModes.Properties {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static System.Drawing.Bitmap Similar {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Similar", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
internal static System.Drawing.Bitmap SnapVerts {
|
internal static System.Drawing.Bitmap SnapVerts {
|
||||||
get {
|
get {
|
||||||
object obj = ResourceManager.GetObject("SnapVerts", resourceCulture);
|
object obj = ResourceManager.GetObject("SnapVerts", resourceCulture);
|
||||||
|
|
|
@ -118,106 +118,109 @@
|
||||||
<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>
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<data name="ViewSelectionEffects" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="FloorAlign" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\ViewSelectionEffects.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\FloorAlign.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
|
||||||
<data name="AlignThings" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\AlignThings.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="SelectTouching" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\SelectTouching.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="DrawEllipseMode" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="DrawEllipseMode" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\DrawEllipseMode.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\DrawEllipseMode.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PasteProperties" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\PasteProperties.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="FlipSelectionH" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\FlipSelectionH.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="ColorPick" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\ColorPick.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="FlipSelectionV" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\FlipSelectionV.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="Text" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\Text.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="treeview" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\treeview.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="BrightnessGradient" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\BrightnessGradient.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="Gear" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\Gear.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="PastePropertiesOptions" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\PastePropertiesOptions.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="CeilsGradient" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\CeilsGradient.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="ViewSelectionIndex" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\ViewSelectionIndex.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="CeilingAlign" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\CeilingAlign.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="CurveLines" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\CurveLines.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="Angle" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\Angle.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="SnapVerts" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\SnapVerts.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="VisualModeGZ" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="VisualModeGZ" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\VisualModeGZ.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\VisualModeGZ.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TextureLock" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\TextureLock.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="CopyProperties" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\CopyProperties.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="List" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\List.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="List_Images" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\List_Images.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="FloorAlign" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\FloorAlign.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="FloorsGradient" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\FloorsGradient.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="Reset" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\Reset.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="DrawGridMode" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\DrawGridMode.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="Door" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\Door.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="DrawCurveMode" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\DrawCurveMode.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="DrawGeometryMode" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\DrawGeometryMode.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="DrawRectangleMode" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="DrawRectangleMode" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\DrawRectangleMode.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\DrawRectangleMode.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ViewSelectionEffects" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\ViewSelectionEffects.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Gear" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Gear.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="SnapVerts" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\SnapVerts.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="DrawGridMode" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\DrawGridMode.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="PastePropertiesOptions" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\PastePropertiesOptions.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="CurveLines" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\CurveLines.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="AlignThings" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\AlignThings.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="treeview" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\treeview.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="FlipSelectionV" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\FlipSelectionV.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="FloorsGradient" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\FloorsGradient.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="List" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\List.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="CeilsGradient" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\CeilsGradient.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="CopyProperties" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\CopyProperties.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="SelectTouching" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\SelectTouching.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="ThingPointAtCursor" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="ThingPointAtCursor" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\ThingPointAtCursor.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\ThingPointAtCursor.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Text" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Text.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="BrightnessGradient" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\BrightnessGradient.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Door" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Door.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="TextureLock" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\TextureLock.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Reset" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Reset.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="PasteProperties" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\PasteProperties.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="ViewSelectionIndex" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\ViewSelectionIndex.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="DrawCurveMode" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\DrawCurveMode.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="ColorPick" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\ColorPick.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="FlipSelectionH" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\FlipSelectionH.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Angle" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Angle.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="List_Images" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\List_Images.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="DrawGeometryMode" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\DrawGeometryMode.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="CeilingAlign" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\CeilingAlign.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="FilterThings" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="FilterThings" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\FilterThings.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\FilterThings.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Similar" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Similar.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -206,6 +206,17 @@ placethings
|
||||||
allowscroll = false;
|
allowscroll = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mxd
|
||||||
|
selectsimilar
|
||||||
|
{
|
||||||
|
title = "Select Similar Map Elements";
|
||||||
|
category = "edit";
|
||||||
|
description = "Selects map elements, similar to currently selected ones, based on a set of settings.";
|
||||||
|
allowkeys = true;
|
||||||
|
allowmouse = false;
|
||||||
|
allowscroll = false;
|
||||||
|
}
|
||||||
|
|
||||||
//mxd
|
//mxd
|
||||||
filterselectedthings
|
filterselectedthings
|
||||||
{
|
{
|
||||||
|
|
BIN
Source/Plugins/BuilderModes/Resources/Similar.png
Normal file
BIN
Source/Plugins/BuilderModes/Resources/Similar.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 320 B |
Loading…
Reference in a new issue