* (Add) Thumbnail image can now saved to clipboard
* (Add) Setting to allow choose default file extension at load file dialog
* (Add) Double click middle mouse to zoom to fit to image
* (Add) Move mutator to move print volume around the plate
* (Add) Pattern tool
* (Change) Setting window now have tabs to compact the window height
* (Fix) Progress for mutators always show layer count instead of selected range
This commit is contained in:
Tiago Conceição
2020-07-02 04:50:44 +01:00
parent b641c34b95
commit 08fe746dac
32 changed files with 5064 additions and 323 deletions
+10
View File
@@ -1,5 +1,15 @@
# Changelog
## 02/07/2020 - v0.6.1.0
* (Add) Thumbnail image can now saved to clipboard
* (Add) Setting to allow choose default file extension at load file dialog
* (Add) Double click middle mouse to zoom to fit to image
* (Add) Move mutator to move print volume around the plate
* (Add) Pattern tool
* (Change) Setting window now have tabs to compact the window height
* (Fix) Progress for mutators always show layer count instead of selected range
## 01/07/2020 - v0.6.0.2
* (Add) PrusaSlicer Printer "EPAX X10 4K Mono"
+20 -2
View File
@@ -44,6 +44,21 @@ namespace UVtools.Core.Extensions
//return mat.GetPixelSpan<T>().Slice(offset, mat.Step);
}
public static void Transform(this Mat src, double xScale, double yScale, double xTrans = 0, double yTrans = 0, Inter interpolation = Inter.Linear)
{
//var dst = new Mat(src.Size, src.Depth, src.NumberOfChannels);
using (var translateTransform = new Matrix<double>(2, 3)
{
[0, 0] = xScale, // xScale
[1, 1] = yScale, // yScale
[0, 2] = xTrans, //x translation + compensation of x scaling
[1, 2] = yTrans // y translation + compensation of y scaling
})
{
CvInvoke.WarpAffine(src, src, translateTransform, src.Size, interpolation);
}
}
/// <summary>
/// Scale image from it center, preserving src bounds
/// https://stackoverflow.com/a/62543674/933976
@@ -56,7 +71,10 @@ namespace UVtools.Core.Extensions
/// <param name="interpolation">Interpolation mode</param>
public static void TransformFromCenter(this Mat src, double xScale, double yScale, double xTrans = 0, double yTrans = 0, Inter interpolation = Inter.Linear)
{
//var dst = new Mat(src.Size, src.Depth, src.NumberOfChannels);
src.Transform(xScale, yScale,
xTrans + (src.Width - src.Width * xScale) / 2.0,
yTrans + (src.Height - src.Height * yScale) / 2.0, interpolation);
/*//var dst = new Mat(src.Size, src.Depth, src.NumberOfChannels);
using (var translateTransform = new Matrix<double>(2, 3)
{
[0, 0] = xScale, // xScale
@@ -66,7 +84,7 @@ namespace UVtools.Core.Extensions
})
{
CvInvoke.WarpAffine(src, src, translateTransform, src.Size, interpolation);
}
}*/
}
/// <summary>
+12 -9
View File
@@ -12,6 +12,7 @@ using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using Emgu.CV;
@@ -138,19 +139,21 @@ namespace UVtools.Core
new ImageFile(), // images
};
public static string AllSlicerFiles => AvaliableFormats.Aggregate("All slicer files|",
(current, fileFormat) => current.EndsWith("|")
? $"{current}{fileFormat.FileFilterExtensionsOnly}"
: $"{current}; {fileFormat.FileFilterExtensionsOnly}");
/// <summary>
/// Gets all filters for open and save file dialogs
/// </summary>
public static string AllFileFilters =>
AvaliableFormats.Aggregate(string.Empty,
(current, fileFormat) => string.IsNullOrEmpty(current)
? fileFormat.FileFilter
: $"{current}|" + fileFormat.FileFilter)
AllSlicerFiles
+
AvaliableFormats.Aggregate("|All slicer files|",
(current, fileFormat) => current.EndsWith("|")
? $"{current}{fileFormat.FileFilterExtensionsOnly}"
: $"{current};{fileFormat.FileFilterExtensionsOnly}");
AvaliableFormats.Aggregate(string.Empty,
(current, fileFormat) => $"{current}|" + fileFormat.FileFilter);
/// <summary>
/// Gets the count of available file extensions
@@ -224,7 +227,7 @@ namespace UVtools.Core
{
if (!ReferenceEquals(result, string.Empty))
{
result += ';';
result += "; ";
}
result += $"*.{fileExt.Extension}";
}
+113 -14
View File
@@ -683,6 +683,29 @@ namespace UVtools.Core
return result;
}
public void MutateMove(OperationMove move)
{
using (var layer = LayerMat)
{
if (move.ImageWidth == 0) move.ImageWidth = (uint) layer.Width;
if (move.ImageHeight == 0) move.ImageHeight = (uint) layer.Height;
/*layer.Transform(1.0, 1.0, move.MarginLeft - move.MarginRight, move.MarginTop-move.MarginBottom);
LayerMat = layer;*/
using (var layerRoi = new Mat(layer, move.SrcRoi))
{
using (var dstLayer = layer.CloneBlank())
{
using (var dstRoi = new Mat(dstLayer, move.DstRoi))
{
layerRoi.CopyTo(dstRoi);
LayerMat = dstLayer;
}
}
}
}
}
public void MutateResize(double xScale, double yScale)
{
@@ -880,6 +903,31 @@ namespace UVtools.Core
}
}
public void ToolPattern(OperationPattern settings)
{
using (var layer = LayerMat)
{
using (var layerRoi = new Mat(layer, settings.SrcRoi))
{
using (var dstLayer = layer.CloneBlank())
{
for (ushort col = 0; col < settings.Cols; col++)
{
for (ushort row = 0; row < settings.Rows; row++)
{
using (var dstRoi = new Mat(dstLayer, settings.GetRoi(col, row)))
{
layerRoi.CopyTo(dstRoi);
}
}
}
LayerMat = dstLayer;
}
}
}
}
public Layer Clone()
@@ -890,7 +938,6 @@ namespace UVtools.Core
#endregion
}
#endregion
@@ -900,6 +947,7 @@ namespace UVtools.Core
#region Enums
public enum Mutate : byte
{
Move,
Resize,
Flip,
Rotate,
@@ -1112,6 +1160,32 @@ namespace UVtools.Core
return Layers[index];
}
public void MutateMove(uint startLayerIndex, uint endLayerIndex, OperationMove move, OperationProgress progress = null)
{
if (ReferenceEquals(progress, null)) progress = new OperationProgress();
progress.Reset("Moving", endLayerIndex - startLayerIndex + 1);
if (move.SrcRoi == Rectangle.Empty) move.SrcRoi = GetBoundingRectangle(progress);
Parallel.For(startLayerIndex, endLayerIndex + 1, layerIndex =>
{
if (progress.Token.IsCancellationRequested) return;
this[layerIndex].MutateMove(move);
lock (progress.Mutex)
{
progress++;
}
});
_boundingRectangle = Rectangle.Empty;
progress.Token.ThrowIfCancellationRequested();
}
/// <summary>
/// Resizes layer images in x and y factor, starting at 1 = 100%
/// </summary>
@@ -1125,7 +1199,7 @@ namespace UVtools.Core
if (x == 1.0 && y == 1.0) return;
if(ReferenceEquals(progress, null)) progress = new OperationProgress();
progress.Reset("Resizing", Count);
progress.Reset("Resizing", endLayerIndex - startLayerIndex + 1);
double xSteps = Math.Abs(x - 1.0) / (endLayerIndex - startLayerIndex);
double ySteps = Math.Abs(y - 1.0) / (endLayerIndex - startLayerIndex);
@@ -1179,7 +1253,7 @@ namespace UVtools.Core
public void MutateFlip(uint startLayerIndex, uint endLayerIndex, FlipType flipType, bool makeCopy = false, OperationProgress progress = null)
{
if (ReferenceEquals(progress, null)) progress = new OperationProgress();
progress.Reset("Fliping", Count);
progress.Reset("Fliping", endLayerIndex - startLayerIndex + 1);
Parallel.For(startLayerIndex, endLayerIndex + 1, layerIndex =>
{
if (progress.Token.IsCancellationRequested) return;
@@ -1195,7 +1269,7 @@ namespace UVtools.Core
public void MutateRotate(uint startLayerIndex, uint endLayerIndex, double angle, Inter interpolation = Inter.Linear, OperationProgress progress = null)
{
if (ReferenceEquals(progress, null)) progress = new OperationProgress();
progress.Reset("Rotating", Count);
progress.Reset("Rotating", endLayerIndex - startLayerIndex+1);
Parallel.For(startLayerIndex, endLayerIndex + 1, layerIndex =>
{
if (progress.Token.IsCancellationRequested) return;
@@ -1211,7 +1285,7 @@ namespace UVtools.Core
public void MutateSolidify(uint startLayerIndex, uint endLayerIndex, OperationProgress progress = null)
{
if (ReferenceEquals(progress, null)) progress = new OperationProgress();
progress.Reset("Solidifing", Count);
progress.Reset("Solidifing", endLayerIndex - startLayerIndex+1);
Parallel.For(startLayerIndex, endLayerIndex + 1, layerIndex =>
{
if (progress.Token.IsCancellationRequested) return;
@@ -1261,7 +1335,7 @@ namespace UVtools.Core
);
if (ReferenceEquals(progress, null)) progress = new OperationProgress();
progress.Reset("Eroding", Count);
progress.Reset("Eroding", endLayerIndex - startLayerIndex+1);
Parallel.For(startLayerIndex, endLayerIndex + 1, layerIndex =>
{
@@ -1291,7 +1365,7 @@ namespace UVtools.Core
);
if (ReferenceEquals(progress, null)) progress = new OperationProgress();
progress.Reset("Dilating", Count);
progress.Reset("Dilating", endLayerIndex - startLayerIndex+1);
Parallel.For(startLayerIndex, endLayerIndex + 1, layerIndex =>
{
@@ -1321,7 +1395,7 @@ namespace UVtools.Core
);
if (ReferenceEquals(progress, null)) progress = new OperationProgress();
progress.Reset("Removing Noise", Count);
progress.Reset("Removing Noise", endLayerIndex - startLayerIndex+1);
Parallel.For(startLayerIndex, endLayerIndex + 1, layerIndex =>
{
@@ -1351,7 +1425,7 @@ namespace UVtools.Core
);
if (ReferenceEquals(progress, null)) progress = new OperationProgress();
progress.Reset("Gap Closing", Count);
progress.Reset("Gap Closing", endLayerIndex - startLayerIndex+1);
Parallel.For(startLayerIndex, endLayerIndex + 1, layerIndex =>
{
@@ -1381,7 +1455,7 @@ namespace UVtools.Core
);
if (ReferenceEquals(progress, null)) progress = new OperationProgress();
progress.Reset("Gradient", Count);
progress.Reset("Gradient", endLayerIndex - startLayerIndex+1);
Parallel.For(startLayerIndex, endLayerIndex + 1, layerIndex =>
{
@@ -1399,7 +1473,7 @@ namespace UVtools.Core
public void MutatePyrDownUp(uint startLayerIndex, uint endLayerIndex, BorderType borderType = BorderType.Default, OperationProgress progress = null)
{
if (ReferenceEquals(progress, null)) progress = new OperationProgress();
progress.Reset("PryDownUp", Count);
progress.Reset("PryDownUp", endLayerIndex - startLayerIndex+1);
Parallel.For(startLayerIndex, endLayerIndex + 1, layerIndex =>
{
if (progress.Token.IsCancellationRequested) return;
@@ -1415,7 +1489,7 @@ namespace UVtools.Core
public void MutateMedianBlur(uint startLayerIndex, uint endLayerIndex, int aperture = 1, OperationProgress progress = null)
{
if (ReferenceEquals(progress, null)) progress = new OperationProgress();
progress.Reset("Bluring", Count);
progress.Reset("Bluring", endLayerIndex - startLayerIndex+1);
Parallel.For(startLayerIndex, endLayerIndex + 1, layerIndex =>
{
if (progress.Token.IsCancellationRequested) return;
@@ -1431,7 +1505,7 @@ namespace UVtools.Core
public void MutateGaussianBlur(uint startLayerIndex, uint endLayerIndex, Size size = default, int sigmaX = 0, int sigmaY = 0, BorderType borderType = BorderType.Reflect101, OperationProgress progress = null)
{
if (ReferenceEquals(progress, null)) progress = new OperationProgress();
progress.Reset("Bluring", Count);
progress.Reset("Bluring", endLayerIndex - startLayerIndex+1);
Parallel.For(startLayerIndex, endLayerIndex + 1, layerIndex =>
{
if (progress.Token.IsCancellationRequested) return;
@@ -1948,6 +2022,32 @@ namespace UVtools.Core
progress.Token.ThrowIfCancellationRequested();
}
public void ToolPattern(uint startLayerIndex, uint endLayerIndex, OperationPattern settings, OperationProgress progress = null)
{
if (ReferenceEquals(progress, null)) progress = new OperationProgress();
progress.Reset("Pattern", endLayerIndex - startLayerIndex + 1);
Parallel.For(startLayerIndex, endLayerIndex + 1, layerIndex =>
{
if (progress.Token.IsCancellationRequested) return;
this[layerIndex].ToolPattern(settings);
lock (progress.Mutex)
{
progress++;
}
});
_boundingRectangle = Rectangle.Empty;
progress.Token.ThrowIfCancellationRequested();
if (settings.Anchor == Anchor.None) return;
MutateMove(startLayerIndex, endLayerIndex, new OperationMove(BoundingRectangle, 0, 0, settings.Anchor), progress);
}
/// <summary>
/// Desmodify all layers
/// </summary>
@@ -1976,7 +2076,6 @@ namespace UVtools.Core
#endregion
}
#endregion
}
+94
View File
@@ -0,0 +1,94 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
namespace UVtools.Core
{
public enum Anchor : byte
{
TopLeft, TopCenter, TopRight,
MiddleLeft, MiddleCenter, MiddleRight,
BottomLeft, BottomCenter, BottomRight,
None
}
public class OperationMove
{
public Rectangle SrcRoi { get; set; }
private Rectangle _dstRoi = Rectangle.Empty;
public Rectangle DstRoi
{
get
{
if(!_dstRoi.IsEmpty) return _dstRoi;
CalculateDstRoi();
return _dstRoi;
}
}
public void CalculateDstRoi()
{
_dstRoi.Size = SrcRoi.Size;
switch (Anchor)
{
case Anchor.TopLeft:
_dstRoi.Location = new Point(0, 0);
break;
case Anchor.TopCenter:
_dstRoi.Location = new Point((int)(ImageWidth / 2 - SrcRoi.Width / 2), 0);
break;
case Anchor.TopRight:
_dstRoi.Location = new Point((int)(ImageWidth - SrcRoi.Width), 0);
break;
case Anchor.MiddleLeft:
_dstRoi.Location = new Point(0, (int)(ImageHeight / 2 - SrcRoi.Height / 2));
break;
case Anchor.MiddleCenter:
_dstRoi.Location = new Point((int)(ImageWidth / 2 - SrcRoi.Width / 2), (int)(ImageHeight / 2 - SrcRoi.Height / 2));
break;
case Anchor.MiddleRight:
_dstRoi.Location = new Point((int)(ImageWidth - SrcRoi.Width), (int)(ImageHeight / 2 - SrcRoi.Height / 2));
break;
case Anchor.BottomLeft:
_dstRoi.Location = new Point(0, (int)(ImageHeight - SrcRoi.Height));
break;
case Anchor.BottomCenter:
_dstRoi.Location = new Point((int)(ImageWidth / 2 - SrcRoi.Width / 2), (int)(ImageHeight - SrcRoi.Height));
break;
case Anchor.BottomRight:
_dstRoi.Location = new Point((int)(ImageWidth - SrcRoi.Width), (int)(ImageHeight - SrcRoi.Height));
break;
default:
throw new ArgumentOutOfRangeException();
}
_dstRoi.X += MarginLeft;
_dstRoi.X -= MarginRight;
_dstRoi.Y += MarginTop;
_dstRoi.Y -= MarginBottom;
}
public uint ImageWidth { get; set; }
public uint ImageHeight { get; set; }
public Anchor Anchor { get; set; }
public int MarginLeft { get; set; } = 0;
public int MarginTop { get; set; } = 0;
public int MarginRight { get; set; } = 0;
public int MarginBottom { get; set; } = 0;
public OperationMove(Rectangle srcRoi, uint imageWidth = 0, uint imageHeight = 0, Anchor anchor = Anchor.MiddleCenter)
{
SrcRoi = srcRoi;
ImageWidth = imageWidth;
ImageHeight = imageHeight;
Anchor = anchor;
}
}
}
+116
View File
@@ -0,0 +1,116 @@
using System.Drawing;
namespace UVtools.Core
{
public class OperationPattern
{
public Anchor Anchor { get; set; }
public Rectangle SrcRoi { get; }
public uint ImageWidth { get; }
public uint ImageHeight { get; }
public ushort MarginCol { get; set; } = 0;
public ushort MarginRow { get; set; } = 0;
public ushort MaxMarginCol => CalculateMarginCol(MaxCols);
public ushort MaxMarginRow => CalculateMarginRow(MaxRows);
public ushort Cols { get; set; } = 1;
public ushort Rows { get; set; } = 1;
public ushort MaxCols { get; }
public ushort MaxRows { get; }
public OperationPattern(Rectangle srcRoi, uint imageWidth, uint imageHeight)
{
SrcRoi = srcRoi;
ImageWidth = imageWidth;
ImageHeight = imageHeight;
MaxCols = (ushort) (imageWidth / srcRoi.Width);
MaxRows = (ushort) (imageHeight / srcRoi.Height);
}
/*public void CalculateDstRoi()
{
_dstRoi.Size = SrcRoi.Size;
switch (Anchor)
{
case Anchor.TopLeft:
_dstRoi.Location = new Point(0, 0);
break;
case Anchor.TopCenter:
_dstRoi.Location = new Point((int)(ImageWidth / 2 - SrcRoi.Width / 2), 0);
break;
case Anchor.TopRight:
_dstRoi.Location = new Point((int)(ImageWidth - SrcRoi.Width), 0);
break;
case Anchor.MiddleLeft:
_dstRoi.Location = new Point(0, (int)(ImageHeight / 2 - SrcRoi.Height / 2));
break;
case Anchor.MiddleCenter:
_dstRoi.Location = new Point((int)(ImageWidth / 2 - SrcRoi.Width / 2), (int)(ImageHeight / 2 - SrcRoi.Height / 2));
break;
case Anchor.MiddleRight:
_dstRoi.Location = new Point((int)(ImageWidth - SrcRoi.Width), (int)(ImageHeight / 2 - SrcRoi.Height / 2));
break;
case Anchor.BottomLeft:
_dstRoi.Location = new Point(0, (int)(ImageHeight - SrcRoi.Height));
break;
case Anchor.BottomCenter:
_dstRoi.Location = new Point((int)(ImageWidth / 2 - SrcRoi.Width / 2), (int)(ImageHeight - SrcRoi.Height));
break;
case Anchor.BottomRight:
_dstRoi.Location = new Point((int)(ImageWidth - SrcRoi.Width), (int)(ImageHeight - SrcRoi.Height));
break;
default:
throw new ArgumentOutOfRangeException();
}
_dstRoi.X += MarginLeft;
_dstRoi.X -= MarginRight;
_dstRoi.Y += MarginTop;
_dstRoi.Y -= MarginBottom;
}*/
/// <summary>
/// Fills the plate with maximum cols and rows
/// </summary>
public void Fill()
{
Cols = MaxCols;
MarginCol = MaxMarginCol;
Rows = MaxRows;
MarginRow = MaxMarginRow;
}
public ushort CalculateMarginCol(ushort cols)
{
return (ushort)((ImageWidth - SrcRoi.Width * cols) / cols);
}
public ushort CalculateMarginRow(ushort rows)
{
return (ushort)((ImageHeight - SrcRoi.Height * rows) / rows);
}
public Size CalculatePatternVolume => new Size(Cols * SrcRoi.Width + Cols * MarginCol, Rows * SrcRoi.Height + Rows * MarginRow);
public Rectangle GetRoi(ushort col, ushort row)
{
var patternVolume = CalculatePatternVolume;
return new Rectangle(new Point(
(int) (col * SrcRoi.Width + col * MarginCol + (ImageWidth - patternVolume.Width) / 2),
(int) (row * SrcRoi.Height + row * MarginRow + (ImageHeight - patternVolume.Height) / 2)), SrcRoi.Size);
}
}
}
+1 -1
View File
@@ -10,7 +10,7 @@
<RepositoryUrl>https://github.com/sn4k3/UVtools</RepositoryUrl>
<PackageProjectUrl>https://github.com/sn4k3/UVtools</PackageProjectUrl>
<Description>MSLA/DLP, file analysis, repair, conversion and manipulation</Description>
<Version>0.6.0.2</Version>
<Version>0.6.1.0</Version>
<Copyright>Copyright © 2020 PTRTECH</Copyright>
<PackageIcon>UVtools.png</PackageIcon>
</PropertyGroup>
+3
View File
@@ -135,6 +135,9 @@
<setting name="IslandBinaryThreshold" serializeAs="String">
<value>0</value>
</setting>
<setting name="DefaultOpenFileExtension" serializeAs="String">
<value>0</value>
</setting>
</UVtools.GUI.Properties.Settings>
</userSettings>
</configuration>
+1
View File
@@ -343,6 +343,7 @@ namespace UVtools.GUI.Forms
this.MinimizeBox = false;
this.Name = "FrmMutation";
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Form1";
this.TopMost = true;
((System.ComponentModel.ISupportInitialize)(this.numIterationsStart)).EndInit();
+641
View File
@@ -0,0 +1,641 @@
using UVtools.GUI.Controls;
namespace UVtools.GUI.Forms
{
partial class FrmMutationMove
{
/// <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.components = new System.ComponentModel.Container();
this.lbDescription = new System.Windows.Forms.Label();
this.lbLayerRange = new System.Windows.Forms.Label();
this.nmLayerRangeStart = new System.Windows.Forms.NumericUpDown();
this.nmLayerRangeEnd = new System.Windows.Forms.NumericUpDown();
this.lbLayerRangeTo = new System.Windows.Forms.Label();
this.cmLayerRange = new System.Windows.Forms.ContextMenuStrip(this.components);
this.btnLayerRangeAllLayers = new System.Windows.Forms.ToolStripMenuItem();
this.btnLayerRangeCurrentLayer = new System.Windows.Forms.ToolStripMenuItem();
this.btnLayerRangeBottomLayers = new System.Windows.Forms.ToolStripMenuItem();
this.btnLayerRangeNormalLayers = new System.Windows.Forms.ToolStripMenuItem();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.btnCancel = new System.Windows.Forms.Button();
this.btnMutate = new System.Windows.Forms.Button();
this.tableAnchor = new System.Windows.Forms.TableLayoutPanel();
this.rbAnchorBottomLeft = new System.Windows.Forms.RadioButton();
this.rbAnchorBottomCenter = new System.Windows.Forms.RadioButton();
this.rbAnchorBottomRight = new System.Windows.Forms.RadioButton();
this.rbAnchorMiddleRight = new System.Windows.Forms.RadioButton();
this.rbAnchorMiddleCenter = new System.Windows.Forms.RadioButton();
this.rbAnchorMiddleLeft = new System.Windows.Forms.RadioButton();
this.rbAnchorTopCenter = new System.Windows.Forms.RadioButton();
this.rbAnchorTopLeft = new System.Windows.Forms.RadioButton();
this.rbAnchorTopRight = new System.Windows.Forms.RadioButton();
this.nmMarginTop = new System.Windows.Forms.NumericUpDown();
this.nmMarginBottom = new System.Windows.Forms.NumericUpDown();
this.nmMarginRight = new System.Windows.Forms.NumericUpDown();
this.nmMarginLeft = new System.Windows.Forms.NumericUpDown();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.lbInsideBounds = new System.Windows.Forms.Label();
this.lbPlacementY = new System.Windows.Forms.Label();
this.lbPlacementX = new System.Windows.Forms.Label();
this.lbVolumeHeight = new System.Windows.Forms.Label();
this.lbVolumeWidth = new System.Windows.Forms.Label();
this.btnResetDefaults = new System.Windows.Forms.Button();
this.btnLayerRangeSelect = new UVtools.GUI.Controls.SplitButton();
((System.ComponentModel.ISupportInitialize)(this.nmLayerRangeStart)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nmLayerRangeEnd)).BeginInit();
this.cmLayerRange.SuspendLayout();
this.tableAnchor.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.nmMarginTop)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nmMarginBottom)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nmMarginRight)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nmMarginLeft)).BeginInit();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// lbDescription
//
this.lbDescription.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lbDescription.Location = new System.Drawing.Point(13, 14);
this.lbDescription.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lbDescription.Name = "lbDescription";
this.lbDescription.Size = new System.Drawing.Size(584, 128);
this.lbDescription.TabIndex = 0;
this.lbDescription.Text = "Description";
//
// lbLayerRange
//
this.lbLayerRange.AutoSize = true;
this.lbLayerRange.Location = new System.Drawing.Point(13, 150);
this.lbLayerRange.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lbLayerRange.Name = "lbLayerRange";
this.lbLayerRange.Size = new System.Drawing.Size(97, 20);
this.lbLayerRange.TabIndex = 9;
this.lbLayerRange.Text = "Layer range:";
//
// nmLayerRangeStart
//
this.nmLayerRangeStart.Location = new System.Drawing.Point(118, 147);
this.nmLayerRangeStart.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.nmLayerRangeStart.Maximum = new decimal(new int[] {
100000,
0,
0,
0});
this.nmLayerRangeStart.Name = "nmLayerRangeStart";
this.nmLayerRangeStart.Size = new System.Drawing.Size(120, 26);
this.nmLayerRangeStart.TabIndex = 0;
//
// nmLayerRangeEnd
//
this.nmLayerRangeEnd.Location = new System.Drawing.Point(314, 147);
this.nmLayerRangeEnd.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.nmLayerRangeEnd.Maximum = new decimal(new int[] {
100000,
0,
0,
0});
this.nmLayerRangeEnd.Name = "nmLayerRangeEnd";
this.nmLayerRangeEnd.Size = new System.Drawing.Size(120, 26);
this.nmLayerRangeEnd.TabIndex = 1;
//
// lbLayerRangeTo
//
this.lbLayerRangeTo.AutoSize = true;
this.lbLayerRangeTo.Location = new System.Drawing.Point(275, 150);
this.lbLayerRangeTo.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lbLayerRangeTo.Name = "lbLayerRangeTo";
this.lbLayerRangeTo.Size = new System.Drawing.Size(31, 20);
this.lbLayerRangeTo.TabIndex = 12;
this.lbLayerRangeTo.Text = "To:";
//
// cmLayerRange
//
this.cmLayerRange.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.btnLayerRangeAllLayers,
this.btnLayerRangeCurrentLayer,
this.btnLayerRangeBottomLayers,
this.btnLayerRangeNormalLayers});
this.cmLayerRange.Name = "cmLayerRange";
this.cmLayerRange.Size = new System.Drawing.Size(226, 92);
//
// btnLayerRangeAllLayers
//
this.btnLayerRangeAllLayers.Name = "btnLayerRangeAllLayers";
this.btnLayerRangeAllLayers.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
| System.Windows.Forms.Keys.A)));
this.btnLayerRangeAllLayers.Size = new System.Drawing.Size(225, 22);
this.btnLayerRangeAllLayers.Text = "&All Layers";
this.btnLayerRangeAllLayers.Click += new System.EventHandler(this.EventClick);
//
// btnLayerRangeCurrentLayer
//
this.btnLayerRangeCurrentLayer.Name = "btnLayerRangeCurrentLayer";
this.btnLayerRangeCurrentLayer.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
| System.Windows.Forms.Keys.C)));
this.btnLayerRangeCurrentLayer.Size = new System.Drawing.Size(225, 22);
this.btnLayerRangeCurrentLayer.Text = "&Current Layer";
this.btnLayerRangeCurrentLayer.Click += new System.EventHandler(this.EventClick);
//
// btnLayerRangeBottomLayers
//
this.btnLayerRangeBottomLayers.Name = "btnLayerRangeBottomLayers";
this.btnLayerRangeBottomLayers.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
| System.Windows.Forms.Keys.B)));
this.btnLayerRangeBottomLayers.Size = new System.Drawing.Size(225, 22);
this.btnLayerRangeBottomLayers.Text = "&Bottom Layers";
this.btnLayerRangeBottomLayers.Click += new System.EventHandler(this.EventClick);
//
// btnLayerRangeNormalLayers
//
this.btnLayerRangeNormalLayers.Name = "btnLayerRangeNormalLayers";
this.btnLayerRangeNormalLayers.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
| System.Windows.Forms.Keys.N)));
this.btnLayerRangeNormalLayers.Size = new System.Drawing.Size(225, 22);
this.btnLayerRangeNormalLayers.Text = "&Normal Layers";
this.btnLayerRangeNormalLayers.Click += new System.EventHandler(this.EventClick);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(366, 21);
this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(36, 20);
this.label2.TabIndex = 16;
this.label2.Text = "Top";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(355, 168);
this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(61, 20);
this.label3.TabIndex = 18;
this.label3.Text = "Bottom";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(516, 94);
this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(47, 20);
this.label4.TabIndex = 21;
this.label4.Text = "Right";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(223, 95);
this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(37, 20);
this.label5.TabIndex = 22;
this.label5.Text = "Left";
//
// btnCancel
//
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btnCancel.Image = global::UVtools.GUI.Properties.Resources.Cancel_24x24;
this.btnCancel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnCancel.Location = new System.Drawing.Point(434, 404);
this.btnCancel.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(150, 48);
this.btnCancel.TabIndex = 6;
this.btnCancel.Text = "&Cancel";
this.btnCancel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.EventClick);
//
// btnMutate
//
this.btnMutate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnMutate.Image = global::UVtools.GUI.Properties.Resources.Ok_24x24;
this.btnMutate.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnMutate.Location = new System.Drawing.Point(276, 404);
this.btnMutate.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.btnMutate.Name = "btnMutate";
this.btnMutate.Size = new System.Drawing.Size(150, 48);
this.btnMutate.TabIndex = 5;
this.btnMutate.Text = "&Move";
this.btnMutate.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.btnMutate.UseVisualStyleBackColor = true;
this.btnMutate.Click += new System.EventHandler(this.EventClick);
//
// tableAnchor
//
this.tableAnchor.AutoSize = true;
this.tableAnchor.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.tableAnchor.ColumnCount = 3;
this.tableAnchor.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableAnchor.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableAnchor.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableAnchor.Controls.Add(this.rbAnchorBottomLeft, 0, 2);
this.tableAnchor.Controls.Add(this.rbAnchorBottomCenter, 0, 2);
this.tableAnchor.Controls.Add(this.rbAnchorBottomRight, 0, 2);
this.tableAnchor.Controls.Add(this.rbAnchorMiddleRight, 2, 1);
this.tableAnchor.Controls.Add(this.rbAnchorMiddleCenter, 1, 1);
this.tableAnchor.Controls.Add(this.rbAnchorMiddleLeft, 0, 1);
this.tableAnchor.Controls.Add(this.rbAnchorTopCenter, 1, 0);
this.tableAnchor.Controls.Add(this.rbAnchorTopLeft, 0, 0);
this.tableAnchor.Controls.Add(this.rbAnchorTopRight, 2, 0);
this.tableAnchor.Location = new System.Drawing.Point(358, 76);
this.tableAnchor.Name = "tableAnchor";
this.tableAnchor.RowCount = 3;
this.tableAnchor.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableAnchor.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableAnchor.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableAnchor.Size = new System.Drawing.Size(60, 57);
this.tableAnchor.TabIndex = 13;
//
// rbAnchorBottomLeft
//
this.rbAnchorBottomLeft.AutoSize = true;
this.rbAnchorBottomLeft.Dock = System.Windows.Forms.DockStyle.Fill;
this.rbAnchorBottomLeft.Location = new System.Drawing.Point(3, 41);
this.rbAnchorBottomLeft.Name = "rbAnchorBottomLeft";
this.rbAnchorBottomLeft.Size = new System.Drawing.Size(14, 13);
this.rbAnchorBottomLeft.TabIndex = 8;
this.rbAnchorBottomLeft.UseVisualStyleBackColor = true;
this.rbAnchorBottomLeft.CheckedChanged += new System.EventHandler(this.EventValueChanged);
//
// rbAnchorBottomCenter
//
this.rbAnchorBottomCenter.AutoSize = true;
this.rbAnchorBottomCenter.Dock = System.Windows.Forms.DockStyle.Fill;
this.rbAnchorBottomCenter.Location = new System.Drawing.Point(23, 41);
this.rbAnchorBottomCenter.Name = "rbAnchorBottomCenter";
this.rbAnchorBottomCenter.Size = new System.Drawing.Size(14, 13);
this.rbAnchorBottomCenter.TabIndex = 7;
this.rbAnchorBottomCenter.UseVisualStyleBackColor = true;
this.rbAnchorBottomCenter.CheckedChanged += new System.EventHandler(this.EventValueChanged);
//
// rbAnchorBottomRight
//
this.rbAnchorBottomRight.AutoSize = true;
this.rbAnchorBottomRight.Dock = System.Windows.Forms.DockStyle.Fill;
this.rbAnchorBottomRight.Location = new System.Drawing.Point(43, 41);
this.rbAnchorBottomRight.Name = "rbAnchorBottomRight";
this.rbAnchorBottomRight.Size = new System.Drawing.Size(14, 13);
this.rbAnchorBottomRight.TabIndex = 6;
this.rbAnchorBottomRight.UseVisualStyleBackColor = true;
this.rbAnchorBottomRight.CheckedChanged += new System.EventHandler(this.EventValueChanged);
//
// rbAnchorMiddleRight
//
this.rbAnchorMiddleRight.AutoSize = true;
this.rbAnchorMiddleRight.Dock = System.Windows.Forms.DockStyle.Fill;
this.rbAnchorMiddleRight.Location = new System.Drawing.Point(43, 22);
this.rbAnchorMiddleRight.Name = "rbAnchorMiddleRight";
this.rbAnchorMiddleRight.Size = new System.Drawing.Size(14, 13);
this.rbAnchorMiddleRight.TabIndex = 5;
this.rbAnchorMiddleRight.UseVisualStyleBackColor = true;
this.rbAnchorMiddleRight.CheckedChanged += new System.EventHandler(this.EventValueChanged);
//
// rbAnchorMiddleCenter
//
this.rbAnchorMiddleCenter.AutoSize = true;
this.rbAnchorMiddleCenter.Checked = true;
this.rbAnchorMiddleCenter.Dock = System.Windows.Forms.DockStyle.Fill;
this.rbAnchorMiddleCenter.Location = new System.Drawing.Point(23, 22);
this.rbAnchorMiddleCenter.Name = "rbAnchorMiddleCenter";
this.rbAnchorMiddleCenter.Size = new System.Drawing.Size(14, 13);
this.rbAnchorMiddleCenter.TabIndex = 4;
this.rbAnchorMiddleCenter.TabStop = true;
this.rbAnchorMiddleCenter.UseVisualStyleBackColor = true;
this.rbAnchorMiddleCenter.CheckedChanged += new System.EventHandler(this.EventValueChanged);
//
// rbAnchorMiddleLeft
//
this.rbAnchorMiddleLeft.AutoSize = true;
this.rbAnchorMiddleLeft.Dock = System.Windows.Forms.DockStyle.Fill;
this.rbAnchorMiddleLeft.Location = new System.Drawing.Point(3, 22);
this.rbAnchorMiddleLeft.Name = "rbAnchorMiddleLeft";
this.rbAnchorMiddleLeft.Size = new System.Drawing.Size(14, 13);
this.rbAnchorMiddleLeft.TabIndex = 3;
this.rbAnchorMiddleLeft.UseVisualStyleBackColor = true;
this.rbAnchorMiddleLeft.CheckedChanged += new System.EventHandler(this.EventValueChanged);
//
// rbAnchorTopCenter
//
this.rbAnchorTopCenter.AutoSize = true;
this.rbAnchorTopCenter.Dock = System.Windows.Forms.DockStyle.Fill;
this.rbAnchorTopCenter.Location = new System.Drawing.Point(23, 3);
this.rbAnchorTopCenter.Name = "rbAnchorTopCenter";
this.rbAnchorTopCenter.Size = new System.Drawing.Size(14, 13);
this.rbAnchorTopCenter.TabIndex = 2;
this.rbAnchorTopCenter.UseVisualStyleBackColor = true;
this.rbAnchorTopCenter.CheckedChanged += new System.EventHandler(this.EventValueChanged);
//
// rbAnchorTopLeft
//
this.rbAnchorTopLeft.AutoSize = true;
this.rbAnchorTopLeft.Dock = System.Windows.Forms.DockStyle.Fill;
this.rbAnchorTopLeft.Location = new System.Drawing.Point(3, 3);
this.rbAnchorTopLeft.Name = "rbAnchorTopLeft";
this.rbAnchorTopLeft.Size = new System.Drawing.Size(14, 13);
this.rbAnchorTopLeft.TabIndex = 1;
this.rbAnchorTopLeft.UseVisualStyleBackColor = true;
this.rbAnchorTopLeft.CheckedChanged += new System.EventHandler(this.EventValueChanged);
//
// rbAnchorTopRight
//
this.rbAnchorTopRight.AutoSize = true;
this.rbAnchorTopRight.Dock = System.Windows.Forms.DockStyle.Fill;
this.rbAnchorTopRight.Location = new System.Drawing.Point(43, 3);
this.rbAnchorTopRight.Name = "rbAnchorTopRight";
this.rbAnchorTopRight.Size = new System.Drawing.Size(14, 13);
this.rbAnchorTopRight.TabIndex = 0;
this.rbAnchorTopRight.UseVisualStyleBackColor = true;
this.rbAnchorTopRight.CheckedChanged += new System.EventHandler(this.EventValueChanged);
//
// nmMarginTop
//
this.nmMarginTop.Location = new System.Drawing.Point(346, 44);
this.nmMarginTop.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.nmMarginTop.Minimum = new decimal(new int[] {
10000,
0,
0,
-2147483648});
this.nmMarginTop.Name = "nmMarginTop";
this.nmMarginTop.Size = new System.Drawing.Size(85, 26);
this.nmMarginTop.TabIndex = 15;
this.nmMarginTop.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.nmMarginTop.ValueChanged += new System.EventHandler(this.EventValueChanged);
//
// nmMarginBottom
//
this.nmMarginBottom.Location = new System.Drawing.Point(346, 139);
this.nmMarginBottom.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.nmMarginBottom.Minimum = new decimal(new int[] {
10000,
0,
0,
-2147483648});
this.nmMarginBottom.Name = "nmMarginBottom";
this.nmMarginBottom.Size = new System.Drawing.Size(85, 26);
this.nmMarginBottom.TabIndex = 17;
this.nmMarginBottom.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.nmMarginBottom.ValueChanged += new System.EventHandler(this.EventValueChanged);
//
// nmMarginRight
//
this.nmMarginRight.Location = new System.Drawing.Point(424, 92);
this.nmMarginRight.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.nmMarginRight.Minimum = new decimal(new int[] {
10000,
0,
0,
-2147483648});
this.nmMarginRight.Name = "nmMarginRight";
this.nmMarginRight.Size = new System.Drawing.Size(85, 26);
this.nmMarginRight.TabIndex = 19;
this.nmMarginRight.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
this.nmMarginRight.ValueChanged += new System.EventHandler(this.EventValueChanged);
//
// nmMarginLeft
//
this.nmMarginLeft.Location = new System.Drawing.Point(267, 92);
this.nmMarginLeft.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.nmMarginLeft.Minimum = new decimal(new int[] {
10000,
0,
0,
-2147483648});
this.nmMarginLeft.Name = "nmMarginLeft";
this.nmMarginLeft.Size = new System.Drawing.Size(85, 26);
this.nmMarginLeft.TabIndex = 20;
this.nmMarginLeft.UpDownAlign = System.Windows.Forms.LeftRightAlignment.Left;
this.nmMarginLeft.ValueChanged += new System.EventHandler(this.EventValueChanged);
//
// groupBox1
//
this.groupBox1.Controls.Add(this.lbInsideBounds);
this.groupBox1.Controls.Add(this.lbPlacementY);
this.groupBox1.Controls.Add(this.lbPlacementX);
this.groupBox1.Controls.Add(this.lbVolumeHeight);
this.groupBox1.Controls.Add(this.lbVolumeWidth);
this.groupBox1.Controls.Add(this.label5);
this.groupBox1.Controls.Add(this.tableAnchor);
this.groupBox1.Controls.Add(this.nmMarginTop);
this.groupBox1.Controls.Add(this.nmMarginBottom);
this.groupBox1.Controls.Add(this.label3);
this.groupBox1.Controls.Add(this.label2);
this.groupBox1.Controls.Add(this.label4);
this.groupBox1.Controls.Add(this.nmMarginRight);
this.groupBox1.Controls.Add(this.nmMarginLeft);
this.groupBox1.Location = new System.Drawing.Point(17, 181);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(570, 199);
this.groupBox1.TabIndex = 23;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Margins and Anchor";
//
// lbInsideBounds
//
this.lbInsideBounds.AutoSize = true;
this.lbInsideBounds.Location = new System.Drawing.Point(7, 168);
this.lbInsideBounds.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lbInsideBounds.Name = "lbInsideBounds";
this.lbInsideBounds.Size = new System.Drawing.Size(147, 20);
this.lbInsideBounds.TabIndex = 27;
this.lbInsideBounds.Text = "Inside Bounds: Yes";
//
// lbPlacementY
//
this.lbPlacementY.AutoSize = true;
this.lbPlacementY.Location = new System.Drawing.Point(7, 138);
this.lbPlacementY.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lbPlacementY.Name = "lbPlacementY";
this.lbPlacementY.Size = new System.Drawing.Size(103, 20);
this.lbPlacementY.TabIndex = 26;
this.lbPlacementY.Text = "Placement Y:";
//
// lbPlacementX
//
this.lbPlacementX.AutoSize = true;
this.lbPlacementX.Location = new System.Drawing.Point(7, 107);
this.lbPlacementX.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lbPlacementX.Name = "lbPlacementX";
this.lbPlacementX.Size = new System.Drawing.Size(103, 20);
this.lbPlacementX.TabIndex = 25;
this.lbPlacementX.Text = "Placement X:";
//
// lbVolumeHeight
//
this.lbVolumeHeight.AutoSize = true;
this.lbVolumeHeight.Location = new System.Drawing.Point(7, 56);
this.lbVolumeHeight.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lbVolumeHeight.Name = "lbVolumeHeight";
this.lbVolumeHeight.Size = new System.Drawing.Size(118, 20);
this.lbVolumeHeight.TabIndex = 24;
this.lbVolumeHeight.Text = "Volume Height:";
//
// lbVolumeWidth
//
this.lbVolumeWidth.AutoSize = true;
this.lbVolumeWidth.Location = new System.Drawing.Point(7, 27);
this.lbVolumeWidth.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lbVolumeWidth.Name = "lbVolumeWidth";
this.lbVolumeWidth.Size = new System.Drawing.Size(112, 20);
this.lbVolumeWidth.TabIndex = 23;
this.lbVolumeWidth.Text = "Volume Width:";
//
// btnResetDefaults
//
this.btnResetDefaults.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnResetDefaults.Image = global::UVtools.GUI.Properties.Resources.Rotate_16x16;
this.btnResetDefaults.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnResetDefaults.Location = new System.Drawing.Point(13, 404);
this.btnResetDefaults.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.btnResetDefaults.Name = "btnResetDefaults";
this.btnResetDefaults.Size = new System.Drawing.Size(150, 48);
this.btnResetDefaults.TabIndex = 24;
this.btnResetDefaults.Text = "&Reset defaults";
this.btnResetDefaults.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.btnResetDefaults.UseVisualStyleBackColor = true;
this.btnResetDefaults.Click += new System.EventHandler(this.EventClick);
//
// btnLayerRangeSelect
//
this.btnLayerRangeSelect.Location = new System.Drawing.Point(446, 146);
this.btnLayerRangeSelect.Menu = this.cmLayerRange;
this.btnLayerRangeSelect.Name = "btnLayerRangeSelect";
this.btnLayerRangeSelect.Size = new System.Drawing.Size(138, 26);
this.btnLayerRangeSelect.TabIndex = 2;
this.btnLayerRangeSelect.Text = "Select";
this.btnLayerRangeSelect.UseVisualStyleBackColor = true;
//
// FrmMutationMove
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.btnCancel;
this.ClientSize = new System.Drawing.Size(599, 466);
this.Controls.Add(this.btnResetDefaults);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.btnLayerRangeSelect);
this.Controls.Add(this.lbLayerRangeTo);
this.Controls.Add(this.nmLayerRangeEnd);
this.Controls.Add(this.nmLayerRangeStart);
this.Controls.Add(this.lbLayerRange);
this.Controls.Add(this.btnMutate);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.lbDescription);
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.KeyPreview = true;
this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "FrmMutationMove";
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Form1";
this.TopMost = true;
((System.ComponentModel.ISupportInitialize)(this.nmLayerRangeStart)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nmLayerRangeEnd)).EndInit();
this.cmLayerRange.ResumeLayout(false);
this.tableAnchor.ResumeLayout(false);
this.tableAnchor.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.nmMarginTop)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nmMarginBottom)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nmMarginRight)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nmMarginLeft)).EndInit();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label lbDescription;
private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.Button btnMutate;
private System.Windows.Forms.Label lbLayerRange;
private System.Windows.Forms.NumericUpDown nmLayerRangeStart;
private System.Windows.Forms.NumericUpDown nmLayerRangeEnd;
private System.Windows.Forms.Label lbLayerRangeTo;
private Controls.SplitButton btnLayerRangeSelect;
private System.Windows.Forms.ContextMenuStrip cmLayerRange;
private System.Windows.Forms.ToolStripMenuItem btnLayerRangeAllLayers;
private System.Windows.Forms.ToolStripMenuItem btnLayerRangeCurrentLayer;
private System.Windows.Forms.ToolStripMenuItem btnLayerRangeBottomLayers;
private System.Windows.Forms.ToolStripMenuItem btnLayerRangeNormalLayers;
private System.Windows.Forms.TableLayoutPanel tableAnchor;
private System.Windows.Forms.RadioButton rbAnchorTopRight;
private System.Windows.Forms.RadioButton rbAnchorBottomLeft;
private System.Windows.Forms.RadioButton rbAnchorBottomCenter;
private System.Windows.Forms.RadioButton rbAnchorBottomRight;
private System.Windows.Forms.RadioButton rbAnchorMiddleRight;
private System.Windows.Forms.RadioButton rbAnchorMiddleCenter;
private System.Windows.Forms.RadioButton rbAnchorMiddleLeft;
private System.Windows.Forms.RadioButton rbAnchorTopCenter;
private System.Windows.Forms.RadioButton rbAnchorTopLeft;
private System.Windows.Forms.NumericUpDown nmMarginTop;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.NumericUpDown nmMarginBottom;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.NumericUpDown nmMarginRight;
private System.Windows.Forms.NumericUpDown nmMarginLeft;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Button btnResetDefaults;
private System.Windows.Forms.Label lbVolumeHeight;
private System.Windows.Forms.Label lbVolumeWidth;
private System.Windows.Forms.Label lbPlacementX;
private System.Windows.Forms.Label lbPlacementY;
private System.Windows.Forms.Label lbInsideBounds;
}
}
+238
View File
@@ -0,0 +1,238 @@
/*
* GNU AFFERO GENERAL PUBLIC LICENSE
* Version 3, 19 November 2007
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
* Everyone is permitted to copy and distribute verbatim copies
* of this license document, but changing it is not allowed.
*/
using System;
using System.Drawing;
using System.Windows.Forms;
using UVtools.Core;
namespace UVtools.GUI.Forms
{
public partial class FrmMutationMove : Form
{
#region Properties
private Mutation Mutation { get; }
public uint LayerRangeStart
{
get => (uint) nmLayerRangeStart.Value;
set => nmLayerRangeStart.Value = value;
}
public uint LayerRangeEnd
{
get => (uint)Math.Min(nmLayerRangeEnd.Value, Program.SlicerFile.LayerCount-1);
set => nmLayerRangeEnd.Value = value;
}
private readonly OperationMove _operationMove;
public OperationMove OperationMove
{
get
{
byte i = 0;
foreach (var radioButton in new[]
{
rbAnchorTopLeft, rbAnchorTopCenter, rbAnchorTopRight,
rbAnchorMiddleLeft, rbAnchorMiddleCenter, rbAnchorMiddleRight,
rbAnchorBottomLeft, rbAnchorBottomCenter, rbAnchorBottomRight
})
{
if (radioButton.Checked)
{
_operationMove.Anchor = (Anchor) i;
break;
}
i++;
}
_operationMove.MarginLeft = (int) nmMarginLeft.Value;
_operationMove.MarginTop = (int)nmMarginTop.Value;
_operationMove.MarginRight = (int)nmMarginRight.Value;
_operationMove.MarginBottom = (int)nmMarginBottom.Value;
return _operationMove;
}
}
#endregion
#region Constructors
public FrmMutationMove(Mutation mutation, Rectangle srcRoi, uint imageWidth = 0, uint imageHeight = 0)
{
InitializeComponent();
_operationMove = new OperationMove(srcRoi, imageWidth, imageHeight);
Mutation = mutation;
DialogResult = DialogResult.Cancel;
Text = $"Mutate: {mutation.MenuName}";
lbDescription.Text = Mutation.Description;
nmLayerRangeEnd.Value = Program.SlicerFile.LayerCount-1;
OperationMove.SrcRoi = srcRoi;
OperationMove.ImageWidth = imageWidth;
OperationMove.ImageHeight = imageHeight;
lbVolumeWidth.Text = $"Volume Width: {srcRoi.Width} / {imageWidth}";
lbVolumeHeight.Text = $"Volume Height: {srcRoi.Height} / {imageHeight}";
EventValueChanged(this, null);
}
#endregion
#region Overrides
protected override void OnKeyUp(KeyEventArgs e)
{
base.OnKeyUp(e);
if (e.KeyCode == Keys.Enter)
{
btnMutate.PerformClick();
e.Handled = true;
return;
}
if ((ModifierKeys & Keys.Shift) == Keys.Shift && (ModifierKeys & Keys.Control) == Keys.Control)
{
if (e.KeyCode == Keys.A)
{
btnLayerRangeAllLayers.PerformClick();
e.Handled = true;
return;
}
if (e.KeyCode == Keys.C)
{
btnLayerRangeCurrentLayer.PerformClick();
e.Handled = true;
return;
}
if (e.KeyCode == Keys.B)
{
btnLayerRangeBottomLayers.PerformClick();
e.Handled = true;
return;
}
if (e.KeyCode == Keys.N)
{
btnLayerRangeNormalLayers.PerformClick();
e.Handled = true;
return;
}
}
}
#endregion
#region Events
private void EventClick(object sender, EventArgs e)
{
if (ReferenceEquals(sender, btnLayerRangeAllLayers))
{
nmLayerRangeStart.Value = 0;
nmLayerRangeEnd.Value = Program.SlicerFile.LayerCount-1;
return;
}
if (ReferenceEquals(sender, btnLayerRangeCurrentLayer))
{
nmLayerRangeStart.Value = Program.FrmMain.ActualLayer;
nmLayerRangeEnd.Value = Program.FrmMain.ActualLayer;
return;
}
if (ReferenceEquals(sender, btnLayerRangeBottomLayers))
{
nmLayerRangeStart.Value = 0;
nmLayerRangeEnd.Value = Program.SlicerFile.InitialLayerCount-1;
return;
}
if (ReferenceEquals(sender, btnLayerRangeNormalLayers))
{
nmLayerRangeStart.Value = Program.SlicerFile.InitialLayerCount - 1;
nmLayerRangeEnd.Value = Program.SlicerFile.LayerCount - 1;
return;
}
if (ReferenceEquals(sender, btnResetDefaults))
{
nmMarginLeft.Value = 0;
nmMarginTop.Value = 0;
nmMarginRight.Value = 0;
nmMarginBottom.Value = 0;
rbAnchorMiddleCenter.Checked = true;
return;
}
if (ReferenceEquals(sender, btnMutate))
{
if (!btnMutate.Enabled) return;
if (LayerRangeStart > LayerRangeEnd)
{
MessageBox.Show("Layer range start can't be higher than layer end.\nPlease fix and try again.", Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
nmLayerRangeStart.Select();
return;
}
if (!ValidateBounds())
{
MessageBox.Show("Your parameters will put the object out of build plate, please adjust the margins", Text, MessageBoxButtons.OK,
MessageBoxIcon.Error);
return;
}
if (MessageBox.Show($"Are you sure you want to {Mutation.Mutate}?", Text, MessageBoxButtons.YesNo,
MessageBoxIcon.Question) == DialogResult.Yes)
{
DialogResult = DialogResult.OK;
Close();
}
return;
}
if (ReferenceEquals(sender, btnCancel))
{
DialogResult = DialogResult.Cancel;
return;
}
}
private void EventValueChanged(object sender, EventArgs e)
{
var insideBounds = btnMutate.Enabled = ValidateBounds();
lbInsideBounds.Text = "Inside Bounds: "+(insideBounds ? "Yes" : "No");
lbPlacementX.Text = $"Placement X: {OperationMove.DstRoi.X} / {OperationMove.ImageWidth - OperationMove.SrcRoi.Width}";
lbPlacementY.Text = $"Placement Y: {OperationMove.DstRoi.Y} / {OperationMove.ImageHeight - OperationMove.SrcRoi.Height}";
}
#endregion
#region Methods
public bool ValidateBounds()
{
OperationMove.CalculateDstRoi();
if (OperationMove.DstRoi.X < 0) return false;
if (OperationMove.DstRoi.Y < 0) return false;
if (OperationMove.DstRoi.Right > OperationMove.ImageWidth) return false;
if (OperationMove.DstRoi.Bottom > OperationMove.ImageHeight) return false;
return true;
}
#endregion
}
}
+123
View File
@@ -0,0 +1,123 @@
<?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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="cmLayerRange.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>
+1
View File
@@ -263,6 +263,7 @@ namespace UVtools.GUI.Forms
this.MinimizeBox = false;
this.Name = "FrmMutationOneComboBox";
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Form1";
this.TopMost = true;
((System.ComponentModel.ISupportInitialize)(this.nmLayerRangeStart)).EndInit();
@@ -256,6 +256,7 @@ namespace UVtools.GUI.Forms
this.MinimizeBox = false;
this.Name = "FrmMutationOneNumericalInput";
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Form1";
this.TopMost = true;
((System.ComponentModel.ISupportInitialize)(this.nmLayerRangeStart)).EndInit();
+25 -24
View File
@@ -44,14 +44,14 @@ namespace UVtools.GUI.Forms
this.btnLayerRangeBottomLayers = new System.Windows.Forms.ToolStripMenuItem();
this.btnLayerRangeNormalLayers = new System.Windows.Forms.ToolStripMenuItem();
this.toolTip = new System.Windows.Forms.ToolTip(this.components);
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.btnLayerRangeSelect = new UVtools.GUI.Controls.SplitButton();
this.btnCancel = new System.Windows.Forms.Button();
this.btnMutate = new System.Windows.Forms.Button();
this.nmX = new System.Windows.Forms.NumericUpDown();
this.label1 = new System.Windows.Forms.Label();
this.lbY = new System.Windows.Forms.Label();
this.nmY = new System.Windows.Forms.NumericUpDown();
this.label2 = new System.Windows.Forms.Label();
this.cbConstrainXY = new System.Windows.Forms.CheckBox();
this.cbFade = new System.Windows.Forms.CheckBox();
((System.ComponentModel.ISupportInitialize)(this.nmLayerRangeStart)).BeginInit();
@@ -186,6 +186,28 @@ namespace UVtools.GUI.Forms
this.toolTip.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Info;
this.toolTip.ToolTipTitle = "Information";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(246, 190);
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(23, 20);
this.label1.TabIndex = 16;
this.label1.Text = "%";
this.toolTip.SetToolTip(this.label1, resources.GetString("label1.ToolTip"));
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(442, 190);
this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(23, 20);
this.label2.TabIndex = 17;
this.label2.Text = "%";
this.toolTip.SetToolTip(this.label2, resources.GetString("label2.ToolTip"));
//
// btnLayerRangeSelect
//
this.btnLayerRangeSelect.Location = new System.Drawing.Point(446, 146);
@@ -252,17 +274,6 @@ namespace UVtools.GUI.Forms
0});
this.nmX.ValueChanged += new System.EventHandler(this.EventValueChanged);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(246, 190);
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(23, 20);
this.label1.TabIndex = 16;
this.label1.Text = "%";
this.toolTip.SetToolTip(this.label1, resources.GetString("label1.ToolTip"));
//
// lbY
//
this.lbY.AutoSize = true;
@@ -299,17 +310,6 @@ namespace UVtools.GUI.Forms
0,
0});
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(442, 190);
this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(23, 20);
this.label2.TabIndex = 17;
this.label2.Text = "%";
this.toolTip.SetToolTip(this.label2, resources.GetString("label2.ToolTip"));
//
// cbConstrainXY
//
this.cbConstrainXY.AutoSize = true;
@@ -362,6 +362,7 @@ namespace UVtools.GUI.Forms
this.MinimizeBox = false;
this.Name = "FrmMutationResize";
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Form1";
this.TopMost = true;
((System.ComponentModel.ISupportInitialize)(this.nmLayerRangeStart)).EndInit();
+1
View File
@@ -313,6 +313,7 @@ namespace UVtools.GUI.Forms
this.MinimizeBox = false;
this.Name = "FrmRepairLayers";
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Repair Layers";
this.TopMost = true;
((System.ComponentModel.ISupportInitialize)(this.numClosingIterations)).EndInit();
+238 -183
View File
@@ -44,10 +44,8 @@
this.btnIslandColor = new System.Windows.Forms.Button();
this.btnSave = new System.Windows.Forms.Button();
this.btnCancel = new System.Windows.Forms.Button();
this.groupGeneral = new System.Windows.Forms.GroupBox();
this.cbCheckForUpdatesOnStartup = new System.Windows.Forms.CheckBox();
this.cbStartMaximized = new System.Windows.Forms.CheckBox();
this.groupLayerPreview = new System.Windows.Forms.GroupBox();
this.cbZoomToFitPrintVolumeBounds = new System.Windows.Forms.CheckBox();
this.cbOutlineHollowAreas = new System.Windows.Forms.CheckBox();
this.label18 = new System.Windows.Forms.Label();
@@ -71,8 +69,9 @@
this.btnReset = new System.Windows.Forms.Button();
this.cbComputeIslands = new System.Windows.Forms.CheckBox();
this.cbComputeResinTraps = new System.Windows.Forms.CheckBox();
this.gbIssues = new System.Windows.Forms.GroupBox();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.nmResinTrapBinaryThreshold = new System.Windows.Forms.NumericUpDown();
this.label20 = new System.Windows.Forms.Label();
this.nmResinTrapMaximumPixelBrightnessToDrain = new System.Windows.Forms.NumericUpDown();
this.label13 = new System.Windows.Forms.Label();
this.nmResinTrapRequiredBlackPixelsToDrain = new System.Windows.Forms.NumericUpDown();
@@ -80,6 +79,8 @@
this.nmResinTrapRequiredAreaToProcessCheck = new System.Windows.Forms.NumericUpDown();
this.label11 = new System.Windows.Forms.Label();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.nmIslandBinaryThreshold = new System.Windows.Forms.NumericUpDown();
this.label21 = new System.Windows.Forms.Label();
this.label10 = new System.Windows.Forms.Label();
this.nmIslandRequiredPixelBrightnessToSupport = new System.Windows.Forms.NumericUpDown();
this.label9 = new System.Windows.Forms.Label();
@@ -90,34 +91,39 @@
this.nmIslandRequiredPixelBrightnessToProcessCheck = new System.Windows.Forms.NumericUpDown();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.cbAutoComputeIssuesClickOnTab = new System.Windows.Forms.CheckBox();
this.nmResinTrapBinaryThreshold = new System.Windows.Forms.NumericUpDown();
this.label20 = new System.Windows.Forms.Label();
this.nmIslandBinaryThreshold = new System.Windows.Forms.NumericUpDown();
this.label21 = new System.Windows.Forms.Label();
this.groupGeneral.SuspendLayout();
this.groupLayerPreview.SuspendLayout();
this.tabSettings = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.panel1 = new System.Windows.Forms.Panel();
this.tabPage3 = new System.Windows.Forms.TabPage();
this.cbDefaultOpenFileExtension = new System.Windows.Forms.ComboBox();
this.label22 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.nmOutlineHollowAreasLineThickness)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nmOutlineLayerBoundsLineThickness)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nmOutlinePrintVolumeBoundsLineThickness)).BeginInit();
this.gbIssues.SuspendLayout();
this.groupBox3.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.nmResinTrapBinaryThreshold)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nmResinTrapMaximumPixelBrightnessToDrain)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nmResinTrapRequiredBlackPixelsToDrain)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nmResinTrapRequiredAreaToProcessCheck)).BeginInit();
this.groupBox2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.nmIslandBinaryThreshold)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nmIslandRequiredPixelBrightnessToSupport)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nmIslandRequiredPixelsToSupport)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nmIslandRequiredAreaToProcessCheck)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nmIslandRequiredPixelBrightnessToProcessCheck)).BeginInit();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.nmResinTrapBinaryThreshold)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nmIslandBinaryThreshold)).BeginInit();
this.tabSettings.SuspendLayout();
this.tabPage1.SuspendLayout();
this.tabPage2.SuspendLayout();
this.panel1.SuspendLayout();
this.tabPage3.SuspendLayout();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(7, 30);
this.label1.Location = new System.Drawing.Point(9, 15);
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(202, 18);
@@ -130,7 +136,7 @@
this.btnPreviousNextLayerColor.FlatAppearance.BorderColor = System.Drawing.Color.Black;
this.btnPreviousNextLayerColor.FlatAppearance.BorderSize = 2;
this.btnPreviousNextLayerColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnPreviousNextLayerColor.Location = new System.Drawing.Point(217, 23);
this.btnPreviousNextLayerColor.Location = new System.Drawing.Point(219, 8);
this.btnPreviousNextLayerColor.Margin = new System.Windows.Forms.Padding(4);
this.btnPreviousNextLayerColor.Name = "btnPreviousNextLayerColor";
this.btnPreviousNextLayerColor.Size = new System.Drawing.Size(32, 32);
@@ -149,7 +155,7 @@
this.btnPreviousLayerColor.FlatAppearance.BorderColor = System.Drawing.Color.Black;
this.btnPreviousLayerColor.FlatAppearance.BorderSize = 2;
this.btnPreviousLayerColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnPreviousLayerColor.Location = new System.Drawing.Point(217, 63);
this.btnPreviousLayerColor.Location = new System.Drawing.Point(219, 48);
this.btnPreviousLayerColor.Margin = new System.Windows.Forms.Padding(4);
this.btnPreviousLayerColor.Name = "btnPreviousLayerColor";
this.btnPreviousLayerColor.Size = new System.Drawing.Size(32, 32);
@@ -160,7 +166,7 @@
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(7, 70);
this.label2.Location = new System.Drawing.Point(9, 55);
this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(139, 18);
@@ -173,7 +179,7 @@
this.btnNextLayerColor.FlatAppearance.BorderColor = System.Drawing.Color.Black;
this.btnNextLayerColor.FlatAppearance.BorderSize = 2;
this.btnNextLayerColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnNextLayerColor.Location = new System.Drawing.Point(217, 103);
this.btnNextLayerColor.Location = new System.Drawing.Point(219, 88);
this.btnNextLayerColor.Margin = new System.Windows.Forms.Padding(4);
this.btnNextLayerColor.Name = "btnNextLayerColor";
this.btnNextLayerColor.Size = new System.Drawing.Size(32, 32);
@@ -184,7 +190,7 @@
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(7, 110);
this.label3.Location = new System.Drawing.Point(9, 95);
this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(111, 18);
@@ -198,7 +204,7 @@
this.btnTouchingBoundsColor.FlatAppearance.BorderColor = System.Drawing.Color.Black;
this.btnTouchingBoundsColor.FlatAppearance.BorderSize = 2;
this.btnTouchingBoundsColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnTouchingBoundsColor.Location = new System.Drawing.Point(566, 103);
this.btnTouchingBoundsColor.Location = new System.Drawing.Point(575, 88);
this.btnTouchingBoundsColor.Margin = new System.Windows.Forms.Padding(4);
this.btnTouchingBoundsColor.Name = "btnTouchingBoundsColor";
this.btnTouchingBoundsColor.Size = new System.Drawing.Size(32, 32);
@@ -210,7 +216,7 @@
//
this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(402, 30);
this.label4.Location = new System.Drawing.Point(479, 15);
this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(88, 18);
@@ -221,7 +227,7 @@
//
this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(402, 70);
this.label5.Location = new System.Drawing.Point(450, 55);
this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(117, 18);
@@ -232,7 +238,7 @@
//
this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(402, 110);
this.label6.Location = new System.Drawing.Point(411, 95);
this.label6.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(156, 18);
@@ -246,7 +252,7 @@
this.btnResinTrapColor.FlatAppearance.BorderColor = System.Drawing.Color.Black;
this.btnResinTrapColor.FlatAppearance.BorderSize = 2;
this.btnResinTrapColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnResinTrapColor.Location = new System.Drawing.Point(566, 63);
this.btnResinTrapColor.Location = new System.Drawing.Point(575, 48);
this.btnResinTrapColor.Margin = new System.Windows.Forms.Padding(4);
this.btnResinTrapColor.Name = "btnResinTrapColor";
this.btnResinTrapColor.Size = new System.Drawing.Size(32, 32);
@@ -261,7 +267,7 @@
this.btnIslandColor.FlatAppearance.BorderColor = System.Drawing.Color.Black;
this.btnIslandColor.FlatAppearance.BorderSize = 2;
this.btnIslandColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnIslandColor.Location = new System.Drawing.Point(566, 23);
this.btnIslandColor.Location = new System.Drawing.Point(575, 8);
this.btnIslandColor.Margin = new System.Windows.Forms.Padding(4);
this.btnIslandColor.Name = "btnIslandColor";
this.btnIslandColor.Size = new System.Drawing.Size(32, 32);
@@ -274,7 +280,7 @@
this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnSave.Image = global::UVtools.GUI.Properties.Resources.Ok_24x24;
this.btnSave.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnSave.Location = new System.Drawing.Point(290, 891);
this.btnSave.Location = new System.Drawing.Point(303, 15);
this.btnSave.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.btnSave.Name = "btnSave";
this.btnSave.Size = new System.Drawing.Size(150, 48);
@@ -290,7 +296,7 @@
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btnCancel.Image = global::UVtools.GUI.Properties.Resources.Cancel_24x24;
this.btnCancel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnCancel.Location = new System.Drawing.Point(448, 891);
this.btnCancel.Location = new System.Drawing.Point(461, 15);
this.btnCancel.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(150, 48);
@@ -299,22 +305,10 @@
this.btnCancel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.btnCancel.UseVisualStyleBackColor = true;
//
// groupGeneral
//
this.groupGeneral.Controls.Add(this.cbCheckForUpdatesOnStartup);
this.groupGeneral.Controls.Add(this.cbStartMaximized);
this.groupGeneral.Dock = System.Windows.Forms.DockStyle.Top;
this.groupGeneral.Location = new System.Drawing.Point(0, 0);
this.groupGeneral.Name = "groupGeneral";
this.groupGeneral.Size = new System.Drawing.Size(611, 88);
this.groupGeneral.TabIndex = 14;
this.groupGeneral.TabStop = false;
this.groupGeneral.Text = "General";
//
// cbCheckForUpdatesOnStartup
//
this.cbCheckForUpdatesOnStartup.AutoSize = true;
this.cbCheckForUpdatesOnStartup.Location = new System.Drawing.Point(6, 51);
this.cbCheckForUpdatesOnStartup.Location = new System.Drawing.Point(9, 34);
this.cbCheckForUpdatesOnStartup.Name = "cbCheckForUpdatesOnStartup";
this.cbCheckForUpdatesOnStartup.Size = new System.Drawing.Size(218, 22);
this.cbCheckForUpdatesOnStartup.TabIndex = 7;
@@ -324,58 +318,17 @@
// cbStartMaximized
//
this.cbStartMaximized.AutoSize = true;
this.cbStartMaximized.Location = new System.Drawing.Point(6, 23);
this.cbStartMaximized.Location = new System.Drawing.Point(9, 6);
this.cbStartMaximized.Name = "cbStartMaximized";
this.cbStartMaximized.Size = new System.Drawing.Size(133, 22);
this.cbStartMaximized.TabIndex = 6;
this.cbStartMaximized.Text = "Start maximized";
this.cbStartMaximized.UseVisualStyleBackColor = true;
//
// groupLayerPreview
//
this.groupLayerPreview.Controls.Add(this.cbZoomToFitPrintVolumeBounds);
this.groupLayerPreview.Controls.Add(this.cbOutlineHollowAreas);
this.groupLayerPreview.Controls.Add(this.label18);
this.groupLayerPreview.Controls.Add(this.nmOutlineHollowAreasLineThickness);
this.groupLayerPreview.Controls.Add(this.label19);
this.groupLayerPreview.Controls.Add(this.btnOutlineHollowAreasColor);
this.groupLayerPreview.Controls.Add(this.cbOutlineLayerBounds);
this.groupLayerPreview.Controls.Add(this.label16);
this.groupLayerPreview.Controls.Add(this.nmOutlineLayerBoundsLineThickness);
this.groupLayerPreview.Controls.Add(this.label17);
this.groupLayerPreview.Controls.Add(this.btnOutlineLayerBoundsColor);
this.groupLayerPreview.Controls.Add(this.cbOutlinePrintVolumeBounds);
this.groupLayerPreview.Controls.Add(this.label15);
this.groupLayerPreview.Controls.Add(this.nmOutlinePrintVolumeBoundsLineThickness);
this.groupLayerPreview.Controls.Add(this.label14);
this.groupLayerPreview.Controls.Add(this.btnOutlinePrintVolumeBoundsColor);
this.groupLayerPreview.Controls.Add(this.cbLayerZoomToFit);
this.groupLayerPreview.Controls.Add(this.cbLayerDifferenceDefault);
this.groupLayerPreview.Controls.Add(this.cbLayerAutoRotateBestView);
this.groupLayerPreview.Controls.Add(this.label1);
this.groupLayerPreview.Controls.Add(this.btnPreviousNextLayerColor);
this.groupLayerPreview.Controls.Add(this.label2);
this.groupLayerPreview.Controls.Add(this.btnPreviousLayerColor);
this.groupLayerPreview.Controls.Add(this.btnIslandColor);
this.groupLayerPreview.Controls.Add(this.label3);
this.groupLayerPreview.Controls.Add(this.btnResinTrapColor);
this.groupLayerPreview.Controls.Add(this.btnNextLayerColor);
this.groupLayerPreview.Controls.Add(this.label6);
this.groupLayerPreview.Controls.Add(this.label4);
this.groupLayerPreview.Controls.Add(this.label5);
this.groupLayerPreview.Controls.Add(this.btnTouchingBoundsColor);
this.groupLayerPreview.Dock = System.Windows.Forms.DockStyle.Top;
this.groupLayerPreview.Location = new System.Drawing.Point(0, 88);
this.groupLayerPreview.Name = "groupLayerPreview";
this.groupLayerPreview.Size = new System.Drawing.Size(611, 348);
this.groupLayerPreview.TabIndex = 15;
this.groupLayerPreview.TabStop = false;
this.groupLayerPreview.Text = "Layer Preview";
//
// cbZoomToFitPrintVolumeBounds
//
this.cbZoomToFitPrintVolumeBounds.AutoSize = true;
this.cbZoomToFitPrintVolumeBounds.Location = new System.Drawing.Point(325, 292);
this.cbZoomToFitPrintVolumeBounds.Location = new System.Drawing.Point(327, 277);
this.cbZoomToFitPrintVolumeBounds.Name = "cbZoomToFitPrintVolumeBounds";
this.cbZoomToFitPrintVolumeBounds.Size = new System.Drawing.Size(276, 22);
this.cbZoomToFitPrintVolumeBounds.TabIndex = 34;
@@ -384,8 +337,9 @@
//
// cbOutlineHollowAreas
//
this.cbOutlineHollowAreas.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.cbOutlineHollowAreas.AutoSize = true;
this.cbOutlineHollowAreas.Location = new System.Drawing.Point(470, 228);
this.cbOutlineHollowAreas.Location = new System.Drawing.Point(479, 213);
this.cbOutlineHollowAreas.Name = "cbOutlineHollowAreas";
this.cbOutlineHollowAreas.Size = new System.Drawing.Size(131, 22);
this.cbOutlineHollowAreas.TabIndex = 33;
@@ -395,7 +349,7 @@
// label18
//
this.label18.AutoSize = true;
this.label18.Location = new System.Drawing.Point(319, 230);
this.label18.Location = new System.Drawing.Point(321, 215);
this.label18.Name = "label18";
this.label18.Size = new System.Drawing.Size(150, 18);
this.label18.TabIndex = 32;
@@ -403,7 +357,7 @@
//
// nmOutlineHollowAreasLineThickness
//
this.nmOutlineHollowAreasLineThickness.Location = new System.Drawing.Point(256, 227);
this.nmOutlineHollowAreasLineThickness.Location = new System.Drawing.Point(258, 212);
this.nmOutlineHollowAreasLineThickness.Maximum = new decimal(new int[] {
50,
0,
@@ -426,7 +380,7 @@
// label19
//
this.label19.AutoSize = true;
this.label19.Location = new System.Drawing.Point(7, 230);
this.label19.Location = new System.Drawing.Point(9, 215);
this.label19.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label19.Name = "label19";
this.label19.Size = new System.Drawing.Size(183, 18);
@@ -439,7 +393,7 @@
this.btnOutlineHollowAreasColor.FlatAppearance.BorderColor = System.Drawing.Color.Black;
this.btnOutlineHollowAreasColor.FlatAppearance.BorderSize = 2;
this.btnOutlineHollowAreasColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnOutlineHollowAreasColor.Location = new System.Drawing.Point(217, 223);
this.btnOutlineHollowAreasColor.Location = new System.Drawing.Point(219, 208);
this.btnOutlineHollowAreasColor.Margin = new System.Windows.Forms.Padding(4);
this.btnOutlineHollowAreasColor.Name = "btnOutlineHollowAreasColor";
this.btnOutlineHollowAreasColor.Size = new System.Drawing.Size(32, 32);
@@ -449,8 +403,9 @@
//
// cbOutlineLayerBounds
//
this.cbOutlineLayerBounds.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.cbOutlineLayerBounds.AutoSize = true;
this.cbOutlineLayerBounds.Location = new System.Drawing.Point(470, 188);
this.cbOutlineLayerBounds.Location = new System.Drawing.Point(479, 173);
this.cbOutlineLayerBounds.Name = "cbOutlineLayerBounds";
this.cbOutlineLayerBounds.Size = new System.Drawing.Size(131, 22);
this.cbOutlineLayerBounds.TabIndex = 28;
@@ -460,7 +415,7 @@
// label16
//
this.label16.AutoSize = true;
this.label16.Location = new System.Drawing.Point(319, 190);
this.label16.Location = new System.Drawing.Point(321, 175);
this.label16.Name = "label16";
this.label16.Size = new System.Drawing.Size(145, 18);
this.label16.TabIndex = 27;
@@ -468,7 +423,7 @@
//
// nmOutlineLayerBoundsLineThickness
//
this.nmOutlineLayerBoundsLineThickness.Location = new System.Drawing.Point(256, 187);
this.nmOutlineLayerBoundsLineThickness.Location = new System.Drawing.Point(258, 172);
this.nmOutlineLayerBoundsLineThickness.Maximum = new decimal(new int[] {
50,
0,
@@ -491,7 +446,7 @@
// label17
//
this.label17.AutoSize = true;
this.label17.Location = new System.Drawing.Point(7, 190);
this.label17.Location = new System.Drawing.Point(9, 175);
this.label17.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label17.Name = "label17";
this.label17.Size = new System.Drawing.Size(185, 18);
@@ -504,7 +459,7 @@
this.btnOutlineLayerBoundsColor.FlatAppearance.BorderColor = System.Drawing.Color.Black;
this.btnOutlineLayerBoundsColor.FlatAppearance.BorderSize = 2;
this.btnOutlineLayerBoundsColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnOutlineLayerBoundsColor.Location = new System.Drawing.Point(217, 183);
this.btnOutlineLayerBoundsColor.Location = new System.Drawing.Point(219, 168);
this.btnOutlineLayerBoundsColor.Margin = new System.Windows.Forms.Padding(4);
this.btnOutlineLayerBoundsColor.Name = "btnOutlineLayerBoundsColor";
this.btnOutlineLayerBoundsColor.Size = new System.Drawing.Size(32, 32);
@@ -514,8 +469,9 @@
//
// cbOutlinePrintVolumeBounds
//
this.cbOutlinePrintVolumeBounds.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.cbOutlinePrintVolumeBounds.AutoSize = true;
this.cbOutlinePrintVolumeBounds.Location = new System.Drawing.Point(470, 148);
this.cbOutlinePrintVolumeBounds.Location = new System.Drawing.Point(479, 133);
this.cbOutlinePrintVolumeBounds.Name = "cbOutlinePrintVolumeBounds";
this.cbOutlinePrintVolumeBounds.Size = new System.Drawing.Size(131, 22);
this.cbOutlinePrintVolumeBounds.TabIndex = 23;
@@ -525,7 +481,7 @@
// label15
//
this.label15.AutoSize = true;
this.label15.Location = new System.Drawing.Point(319, 150);
this.label15.Location = new System.Drawing.Point(321, 135);
this.label15.Name = "label15";
this.label15.Size = new System.Drawing.Size(145, 18);
this.label15.TabIndex = 22;
@@ -533,7 +489,7 @@
//
// nmOutlinePrintVolumeBoundsLineThickness
//
this.nmOutlinePrintVolumeBoundsLineThickness.Location = new System.Drawing.Point(256, 147);
this.nmOutlinePrintVolumeBoundsLineThickness.Location = new System.Drawing.Point(258, 132);
this.nmOutlinePrintVolumeBoundsLineThickness.Maximum = new decimal(new int[] {
50,
0,
@@ -556,7 +512,7 @@
// label14
//
this.label14.AutoSize = true;
this.label14.Location = new System.Drawing.Point(7, 150);
this.label14.Location = new System.Drawing.Point(9, 135);
this.label14.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(181, 18);
@@ -569,7 +525,7 @@
this.btnOutlinePrintVolumeBoundsColor.FlatAppearance.BorderColor = System.Drawing.Color.Black;
this.btnOutlinePrintVolumeBoundsColor.FlatAppearance.BorderSize = 2;
this.btnOutlinePrintVolumeBoundsColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnOutlinePrintVolumeBoundsColor.Location = new System.Drawing.Point(217, 143);
this.btnOutlinePrintVolumeBoundsColor.Location = new System.Drawing.Point(219, 128);
this.btnOutlinePrintVolumeBoundsColor.Margin = new System.Windows.Forms.Padding(4);
this.btnOutlinePrintVolumeBoundsColor.Name = "btnOutlinePrintVolumeBoundsColor";
this.btnOutlinePrintVolumeBoundsColor.Size = new System.Drawing.Size(32, 32);
@@ -580,7 +536,7 @@
// cbLayerZoomToFit
//
this.cbLayerZoomToFit.AutoSize = true;
this.cbLayerZoomToFit.Location = new System.Drawing.Point(9, 292);
this.cbLayerZoomToFit.Location = new System.Drawing.Point(11, 277);
this.cbLayerZoomToFit.Name = "cbLayerZoomToFit";
this.cbLayerZoomToFit.Size = new System.Drawing.Size(313, 22);
this.cbLayerZoomToFit.TabIndex = 15;
@@ -590,7 +546,7 @@
// cbLayerDifferenceDefault
//
this.cbLayerDifferenceDefault.AutoSize = true;
this.cbLayerDifferenceDefault.Location = new System.Drawing.Point(9, 320);
this.cbLayerDifferenceDefault.Location = new System.Drawing.Point(11, 305);
this.cbLayerDifferenceDefault.Name = "cbLayerDifferenceDefault";
this.cbLayerDifferenceDefault.Size = new System.Drawing.Size(234, 22);
this.cbLayerDifferenceDefault.TabIndex = 13;
@@ -600,7 +556,7 @@
// cbLayerAutoRotateBestView
//
this.cbLayerAutoRotateBestView.AutoSize = true;
this.cbLayerAutoRotateBestView.Location = new System.Drawing.Point(9, 264);
this.cbLayerAutoRotateBestView.Location = new System.Drawing.Point(11, 249);
this.cbLayerAutoRotateBestView.Name = "cbLayerAutoRotateBestView";
this.cbLayerAutoRotateBestView.Size = new System.Drawing.Size(327, 22);
this.cbLayerAutoRotateBestView.TabIndex = 12;
@@ -622,7 +578,7 @@
this.btnReset.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnReset.Image = global::UVtools.GUI.Properties.Resources.Rotate_16x16;
this.btnReset.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnReset.Location = new System.Drawing.Point(13, 891);
this.btnReset.Location = new System.Drawing.Point(13, 15);
this.btnReset.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.btnReset.Name = "btnReset";
this.btnReset.Size = new System.Drawing.Size(158, 48);
@@ -652,19 +608,6 @@
this.cbComputeResinTraps.Text = "Compute Resin Traps";
this.cbComputeResinTraps.UseVisualStyleBackColor = true;
//
// gbIssues
//
this.gbIssues.Controls.Add(this.groupBox3);
this.gbIssues.Controls.Add(this.groupBox2);
this.gbIssues.Controls.Add(this.groupBox1);
this.gbIssues.Dock = System.Windows.Forms.DockStyle.Top;
this.gbIssues.Location = new System.Drawing.Point(0, 436);
this.gbIssues.Name = "gbIssues";
this.gbIssues.Size = new System.Drawing.Size(611, 442);
this.gbIssues.TabIndex = 17;
this.gbIssues.TabStop = false;
this.gbIssues.Text = "Issues";
//
// groupBox3
//
this.groupBox3.Controls.Add(this.nmResinTrapBinaryThreshold);
@@ -676,12 +619,39 @@
this.groupBox3.Controls.Add(this.nmResinTrapRequiredAreaToProcessCheck);
this.groupBox3.Controls.Add(this.label11);
this.groupBox3.Dock = System.Windows.Forms.DockStyle.Top;
this.groupBox3.Location = new System.Drawing.Point(3, 279);
this.groupBox3.Location = new System.Drawing.Point(3, 262);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(605, 152);
this.groupBox3.Size = new System.Drawing.Size(610, 152);
this.groupBox3.TabIndex = 24;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "Resin Traps";
//
// nmResinTrapBinaryThreshold
//
this.nmResinTrapBinaryThreshold.Location = new System.Drawing.Point(10, 23);
this.nmResinTrapBinaryThreshold.Maximum = new decimal(new int[] {
254,
0,
0,
0});
this.nmResinTrapBinaryThreshold.Name = "nmResinTrapBinaryThreshold";
this.nmResinTrapBinaryThreshold.Size = new System.Drawing.Size(57, 24);
this.nmResinTrapBinaryThreshold.TabIndex = 26;
this.nmResinTrapBinaryThreshold.Value = new decimal(new int[] {
1,
0,
0,
0});
//
// label20
//
this.label20.AutoSize = true;
this.label20.Location = new System.Drawing.Point(73, 26);
this.label20.Name = "label20";
this.label20.Size = new System.Drawing.Size(512, 18);
this.label20.TabIndex = 27;
this.label20.Text = "Pixels below this value will turn black, otherwise white. Value=0 to disable this" +
"";
//
// nmResinTrapMaximumPixelBrightnessToDrain
//
@@ -784,12 +754,39 @@
this.groupBox2.Controls.Add(this.label8);
this.groupBox2.Controls.Add(this.nmIslandRequiredPixelBrightnessToProcessCheck);
this.groupBox2.Dock = System.Windows.Forms.DockStyle.Top;
this.groupBox2.Location = new System.Drawing.Point(3, 103);
this.groupBox2.Location = new System.Drawing.Point(3, 86);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(605, 176);
this.groupBox2.Size = new System.Drawing.Size(610, 176);
this.groupBox2.TabIndex = 23;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "Islands";
//
// nmIslandBinaryThreshold
//
this.nmIslandBinaryThreshold.Location = new System.Drawing.Point(10, 23);
this.nmIslandBinaryThreshold.Maximum = new decimal(new int[] {
254,
0,
0,
0});
this.nmIslandBinaryThreshold.Name = "nmIslandBinaryThreshold";
this.nmIslandBinaryThreshold.Size = new System.Drawing.Size(57, 24);
this.nmIslandBinaryThreshold.TabIndex = 28;
this.nmIslandBinaryThreshold.Value = new decimal(new int[] {
1,
0,
0,
0});
//
// label21
//
this.label21.AutoSize = true;
this.label21.Location = new System.Drawing.Point(73, 26);
this.label21.Name = "label21";
this.label21.Size = new System.Drawing.Size(512, 18);
this.label21.TabIndex = 29;
this.label21.Text = "Pixels below this value will turn black, otherwise white. Value=0 to disable this" +
"";
//
// label10
//
@@ -922,9 +919,9 @@
this.groupBox1.Controls.Add(this.cbComputeIslands);
this.groupBox1.Controls.Add(this.cbComputeResinTraps);
this.groupBox1.Dock = System.Windows.Forms.DockStyle.Top;
this.groupBox1.Location = new System.Drawing.Point(3, 20);
this.groupBox1.Location = new System.Drawing.Point(3, 3);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(605, 83);
this.groupBox1.Size = new System.Drawing.Size(610, 83);
this.groupBox1.TabIndex = 22;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Commun";
@@ -939,71 +936,123 @@
this.cbAutoComputeIssuesClickOnTab.Text = "Auto compute issues when click Issues tab for the first time";
this.cbAutoComputeIssuesClickOnTab.UseVisualStyleBackColor = true;
//
// nmResinTrapBinaryThreshold
// tabSettings
//
this.nmResinTrapBinaryThreshold.Location = new System.Drawing.Point(10, 23);
this.nmResinTrapBinaryThreshold.Maximum = new decimal(new int[] {
254,
0,
0,
0});
this.nmResinTrapBinaryThreshold.Name = "nmResinTrapBinaryThreshold";
this.nmResinTrapBinaryThreshold.Size = new System.Drawing.Size(57, 24);
this.nmResinTrapBinaryThreshold.TabIndex = 26;
this.nmResinTrapBinaryThreshold.Value = new decimal(new int[] {
1,
0,
0,
0});
this.tabSettings.Controls.Add(this.tabPage1);
this.tabSettings.Controls.Add(this.tabPage2);
this.tabSettings.Controls.Add(this.tabPage3);
this.tabSettings.Dock = System.Windows.Forms.DockStyle.Fill;
this.tabSettings.Location = new System.Drawing.Point(0, 0);
this.tabSettings.Name = "tabSettings";
this.tabSettings.SelectedIndex = 0;
this.tabSettings.Size = new System.Drawing.Size(624, 529);
this.tabSettings.TabIndex = 18;
//
// label20
// tabPage1
//
this.label20.AutoSize = true;
this.label20.Location = new System.Drawing.Point(73, 26);
this.label20.Name = "label20";
this.label20.Size = new System.Drawing.Size(512, 18);
this.label20.TabIndex = 27;
this.label20.Text = "Pixels below this value will turn black, otherwise white. Value=0 to disable this" +
"";
this.tabPage1.Controls.Add(this.label22);
this.tabPage1.Controls.Add(this.cbDefaultOpenFileExtension);
this.tabPage1.Controls.Add(this.cbCheckForUpdatesOnStartup);
this.tabPage1.Controls.Add(this.cbStartMaximized);
this.tabPage1.Location = new System.Drawing.Point(4, 27);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
this.tabPage1.Size = new System.Drawing.Size(616, 498);
this.tabPage1.TabIndex = 0;
this.tabPage1.Text = "General";
this.tabPage1.UseVisualStyleBackColor = true;
//
// nmIslandBinaryThreshold
// tabPage2
//
this.nmIslandBinaryThreshold.Location = new System.Drawing.Point(10, 23);
this.nmIslandBinaryThreshold.Maximum = new decimal(new int[] {
254,
0,
0,
0});
this.nmIslandBinaryThreshold.Name = "nmIslandBinaryThreshold";
this.nmIslandBinaryThreshold.Size = new System.Drawing.Size(57, 24);
this.nmIslandBinaryThreshold.TabIndex = 28;
this.nmIslandBinaryThreshold.Value = new decimal(new int[] {
1,
0,
0,
0});
this.tabPage2.Controls.Add(this.cbZoomToFitPrintVolumeBounds);
this.tabPage2.Controls.Add(this.label1);
this.tabPage2.Controls.Add(this.label2);
this.tabPage2.Controls.Add(this.cbOutlineHollowAreas);
this.tabPage2.Controls.Add(this.btnPreviousNextLayerColor);
this.tabPage2.Controls.Add(this.btnPreviousLayerColor);
this.tabPage2.Controls.Add(this.label18);
this.tabPage2.Controls.Add(this.btnIslandColor);
this.tabPage2.Controls.Add(this.cbLayerAutoRotateBestView);
this.tabPage2.Controls.Add(this.nmOutlineHollowAreasLineThickness);
this.tabPage2.Controls.Add(this.label3);
this.tabPage2.Controls.Add(this.cbLayerDifferenceDefault);
this.tabPage2.Controls.Add(this.label19);
this.tabPage2.Controls.Add(this.btnResinTrapColor);
this.tabPage2.Controls.Add(this.cbLayerZoomToFit);
this.tabPage2.Controls.Add(this.btnOutlineHollowAreasColor);
this.tabPage2.Controls.Add(this.btnNextLayerColor);
this.tabPage2.Controls.Add(this.btnOutlinePrintVolumeBoundsColor);
this.tabPage2.Controls.Add(this.cbOutlineLayerBounds);
this.tabPage2.Controls.Add(this.label6);
this.tabPage2.Controls.Add(this.label14);
this.tabPage2.Controls.Add(this.label16);
this.tabPage2.Controls.Add(this.label4);
this.tabPage2.Controls.Add(this.nmOutlinePrintVolumeBoundsLineThickness);
this.tabPage2.Controls.Add(this.nmOutlineLayerBoundsLineThickness);
this.tabPage2.Controls.Add(this.label5);
this.tabPage2.Controls.Add(this.label15);
this.tabPage2.Controls.Add(this.label17);
this.tabPage2.Controls.Add(this.btnTouchingBoundsColor);
this.tabPage2.Controls.Add(this.cbOutlinePrintVolumeBounds);
this.tabPage2.Controls.Add(this.btnOutlineLayerBoundsColor);
this.tabPage2.Location = new System.Drawing.Point(4, 27);
this.tabPage2.Name = "tabPage2";
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
this.tabPage2.Size = new System.Drawing.Size(616, 498);
this.tabPage2.TabIndex = 1;
this.tabPage2.Text = "Layer Preview";
this.tabPage2.UseVisualStyleBackColor = true;
//
// label21
// panel1
//
this.label21.AutoSize = true;
this.label21.Location = new System.Drawing.Point(73, 26);
this.label21.Name = "label21";
this.label21.Size = new System.Drawing.Size(512, 18);
this.label21.TabIndex = 29;
this.label21.Text = "Pixels below this value will turn black, otherwise white. Value=0 to disable this" +
"";
this.panel1.Controls.Add(this.btnCancel);
this.panel1.Controls.Add(this.btnSave);
this.panel1.Controls.Add(this.btnReset);
this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.panel1.Location = new System.Drawing.Point(0, 452);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(624, 77);
this.panel1.TabIndex = 19;
//
// tabPage3
//
this.tabPage3.Controls.Add(this.groupBox3);
this.tabPage3.Controls.Add(this.groupBox2);
this.tabPage3.Controls.Add(this.groupBox1);
this.tabPage3.Location = new System.Drawing.Point(4, 27);
this.tabPage3.Name = "tabPage3";
this.tabPage3.Padding = new System.Windows.Forms.Padding(3);
this.tabPage3.Size = new System.Drawing.Size(616, 498);
this.tabPage3.TabIndex = 2;
this.tabPage3.Text = "Issues";
this.tabPage3.UseVisualStyleBackColor = true;
//
// cbDefaultOpenFileExtension
//
this.cbDefaultOpenFileExtension.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.cbDefaultOpenFileExtension.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cbDefaultOpenFileExtension.FormattingEnabled = true;
this.cbDefaultOpenFileExtension.Location = new System.Drawing.Point(225, 62);
this.cbDefaultOpenFileExtension.Name = "cbDefaultOpenFileExtension";
this.cbDefaultOpenFileExtension.Size = new System.Drawing.Size(382, 26);
this.cbDefaultOpenFileExtension.TabIndex = 8;
//
// label22
//
this.label22.AutoSize = true;
this.label22.Location = new System.Drawing.Point(6, 66);
this.label22.Name = "label22";
this.label22.Size = new System.Drawing.Size(213, 18);
this.label22.TabIndex = 9;
this.label22.Text = "Default file extension at file load";
//
// FrmSettings
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 18F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(611, 953);
this.Controls.Add(this.gbIssues);
this.Controls.Add(this.btnReset);
this.Controls.Add(this.groupLayerPreview);
this.Controls.Add(this.groupGeneral);
this.Controls.Add(this.btnSave);
this.Controls.Add(this.btnCancel);
this.ClientSize = new System.Drawing.Size(624, 529);
this.Controls.Add(this.panel1);
this.Controls.Add(this.tabSettings);
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
@@ -1014,29 +1063,31 @@
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Settings";
this.groupGeneral.ResumeLayout(false);
this.groupGeneral.PerformLayout();
this.groupLayerPreview.ResumeLayout(false);
this.groupLayerPreview.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.nmOutlineHollowAreasLineThickness)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nmOutlineLayerBoundsLineThickness)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nmOutlinePrintVolumeBoundsLineThickness)).EndInit();
this.gbIssues.ResumeLayout(false);
this.groupBox3.ResumeLayout(false);
this.groupBox3.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.nmResinTrapBinaryThreshold)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nmResinTrapMaximumPixelBrightnessToDrain)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nmResinTrapRequiredBlackPixelsToDrain)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nmResinTrapRequiredAreaToProcessCheck)).EndInit();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.nmIslandBinaryThreshold)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nmIslandRequiredPixelBrightnessToSupport)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nmIslandRequiredPixelsToSupport)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nmIslandRequiredAreaToProcessCheck)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nmIslandRequiredPixelBrightnessToProcessCheck)).EndInit();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.nmResinTrapBinaryThreshold)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nmIslandBinaryThreshold)).EndInit();
this.tabSettings.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
this.tabPage1.PerformLayout();
this.tabPage2.ResumeLayout(false);
this.tabPage2.PerformLayout();
this.panel1.ResumeLayout(false);
this.tabPage3.ResumeLayout(false);
this.ResumeLayout(false);
}
@@ -1058,10 +1109,8 @@
private System.Windows.Forms.Button btnIslandColor;
private System.Windows.Forms.Button btnSave;
private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.GroupBox groupGeneral;
private System.Windows.Forms.CheckBox cbStartMaximized;
private System.Windows.Forms.CheckBox cbCheckForUpdatesOnStartup;
private System.Windows.Forms.GroupBox groupLayerPreview;
private System.Windows.Forms.CheckBox cbLayerAutoRotateBestView;
private System.Windows.Forms.Button btnReset;
private System.Windows.Forms.CheckBox cbLayerDifferenceDefault;
@@ -1069,7 +1118,6 @@
private System.Windows.Forms.CheckBox cbLayerZoomToFit;
private System.Windows.Forms.CheckBox cbComputeResinTraps;
private System.Windows.Forms.CheckBox cbComputeIslands;
private System.Windows.Forms.GroupBox gbIssues;
private System.Windows.Forms.NumericUpDown nmIslandRequiredAreaToProcessCheck;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label8;
@@ -1108,5 +1156,12 @@
private System.Windows.Forms.Label label20;
private System.Windows.Forms.NumericUpDown nmIslandBinaryThreshold;
private System.Windows.Forms.Label label21;
private System.Windows.Forms.TabControl tabSettings;
private System.Windows.Forms.TabPage tabPage1;
private System.Windows.Forms.TabPage tabPage2;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.TabPage tabPage3;
private System.Windows.Forms.Label label22;
private System.Windows.Forms.ComboBox cbDefaultOpenFileExtension;
}
}
+13
View File
@@ -1,5 +1,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using UVtools.Core;
using UVtools.GUI.Properties;
namespace UVtools.GUI.Forms
@@ -9,6 +12,14 @@ namespace UVtools.GUI.Forms
public FrmSettings()
{
InitializeComponent();
var fileFormats = new List<string>
{
FileFormat.AllSlicerFiles.Replace("*", string.Empty)
};
fileFormats.AddRange(from format in FileFormat.AvaliableFormats from extension in format.FileExtensions select $"{extension.Description} (.{extension.Extension})");
cbDefaultOpenFileExtension.Items.AddRange(fileFormats.ToArray());
Init();
}
@@ -18,6 +29,7 @@ namespace UVtools.GUI.Forms
{
cbCheckForUpdatesOnStartup.Checked = Settings.Default.CheckForUpdatesOnStartup;
cbStartMaximized.Checked = Settings.Default.StartMaximized;
cbDefaultOpenFileExtension.SelectedIndex = Settings.Default.DefaultOpenFileExtension;
btnPreviousNextLayerColor.BackColor = Settings.Default.PreviousNextLayerColor;
btnPreviousLayerColor.BackColor = Settings.Default.PreviousLayerColor;
@@ -108,6 +120,7 @@ namespace UVtools.GUI.Forms
{
Settings.Default.CheckForUpdatesOnStartup = cbCheckForUpdatesOnStartup.Checked;
Settings.Default.StartMaximized = cbStartMaximized.Checked;
Settings.Default.DefaultOpenFileExtension = (byte) cbDefaultOpenFileExtension.SelectedIndex;
Settings.Default.PreviousNextLayerColor = btnPreviousNextLayerColor.BackColor;
Settings.Default.PreviousLayerColor = btnPreviousLayerColor.BackColor;
+678
View File
@@ -0,0 +1,678 @@
using UVtools.GUI.Controls;
namespace UVtools.GUI.Forms
{
partial class FrmToolPattern
{
/// <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.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmToolPattern));
this.lbDescription = new System.Windows.Forms.Label();
this.lbLayerRange = new System.Windows.Forms.Label();
this.nmLayerRangeStart = new System.Windows.Forms.NumericUpDown();
this.nmLayerRangeEnd = new System.Windows.Forms.NumericUpDown();
this.lbLayerRangeTo = new System.Windows.Forms.Label();
this.cmLayerRange = new System.Windows.Forms.ContextMenuStrip(this.components);
this.btnLayerRangeAllLayers = new System.Windows.Forms.ToolStripMenuItem();
this.btnLayerRangeCurrentLayer = new System.Windows.Forms.ToolStripMenuItem();
this.btnLayerRangeBottomLayers = new System.Windows.Forms.ToolStripMenuItem();
this.btnLayerRangeNormalLayers = new System.Windows.Forms.ToolStripMenuItem();
this.label4 = new System.Windows.Forms.Label();
this.nmCols = new System.Windows.Forms.NumericUpDown();
this.lbInsideBounds = new System.Windows.Forms.Label();
this.lbRows = new System.Windows.Forms.Label();
this.lbCols = new System.Windows.Forms.Label();
this.lbVolumeHeight = new System.Windows.Forms.Label();
this.lbVolumeWidth = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.nmRows = new System.Windows.Forms.NumericUpDown();
this.label2 = new System.Windows.Forms.Label();
this.nmMarginRow = new System.Windows.Forms.NumericUpDown();
this.label3 = new System.Windows.Forms.Label();
this.nmMarginCol = new System.Windows.Forms.NumericUpDown();
this.btnCancel = new System.Windows.Forms.Button();
this.btnAutoMarginCol = new System.Windows.Forms.Button();
this.btnResetDefaults = new System.Windows.Forms.Button();
this.btnPattern = new System.Windows.Forms.Button();
this.btnAutoMarginRow = new System.Windows.Forms.Button();
this.tableAnchor = new System.Windows.Forms.TableLayoutPanel();
this.rbAnchorBottomLeft = new System.Windows.Forms.RadioButton();
this.rbAnchorBottomCenter = new System.Windows.Forms.RadioButton();
this.rbAnchorBottomRight = new System.Windows.Forms.RadioButton();
this.rbAnchorMiddleRight = new System.Windows.Forms.RadioButton();
this.rbAnchorMiddleCenter = new System.Windows.Forms.RadioButton();
this.rbAnchorMiddleLeft = new System.Windows.Forms.RadioButton();
this.rbAnchorTopCenter = new System.Windows.Forms.RadioButton();
this.rbAnchorTopLeft = new System.Windows.Forms.RadioButton();
this.rbAnchorTopRight = new System.Windows.Forms.RadioButton();
this.rbAnchorNone = new System.Windows.Forms.RadioButton();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.btnLayerRangeSelect = new UVtools.GUI.Controls.SplitButton();
((System.ComponentModel.ISupportInitialize)(this.nmLayerRangeStart)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nmLayerRangeEnd)).BeginInit();
this.cmLayerRange.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.nmCols)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nmRows)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nmMarginRow)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nmMarginCol)).BeginInit();
this.tableAnchor.SuspendLayout();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// lbDescription
//
this.lbDescription.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lbDescription.Location = new System.Drawing.Point(13, 14);
this.lbDescription.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lbDescription.Name = "lbDescription";
this.lbDescription.Size = new System.Drawing.Size(584, 39);
this.lbDescription.TabIndex = 0;
this.lbDescription.Text = "Rectangular pattern the print arround the plate.";
//
// lbLayerRange
//
this.lbLayerRange.AutoSize = true;
this.lbLayerRange.Location = new System.Drawing.Point(13, 62);
this.lbLayerRange.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lbLayerRange.Name = "lbLayerRange";
this.lbLayerRange.Size = new System.Drawing.Size(97, 20);
this.lbLayerRange.TabIndex = 9;
this.lbLayerRange.Text = "Layer range:";
//
// nmLayerRangeStart
//
this.nmLayerRangeStart.Location = new System.Drawing.Point(118, 59);
this.nmLayerRangeStart.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.nmLayerRangeStart.Maximum = new decimal(new int[] {
100000,
0,
0,
0});
this.nmLayerRangeStart.Name = "nmLayerRangeStart";
this.nmLayerRangeStart.Size = new System.Drawing.Size(120, 26);
this.nmLayerRangeStart.TabIndex = 0;
//
// nmLayerRangeEnd
//
this.nmLayerRangeEnd.Location = new System.Drawing.Point(314, 59);
this.nmLayerRangeEnd.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.nmLayerRangeEnd.Maximum = new decimal(new int[] {
100000,
0,
0,
0});
this.nmLayerRangeEnd.Name = "nmLayerRangeEnd";
this.nmLayerRangeEnd.Size = new System.Drawing.Size(120, 26);
this.nmLayerRangeEnd.TabIndex = 1;
//
// lbLayerRangeTo
//
this.lbLayerRangeTo.AutoSize = true;
this.lbLayerRangeTo.Location = new System.Drawing.Point(275, 62);
this.lbLayerRangeTo.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lbLayerRangeTo.Name = "lbLayerRangeTo";
this.lbLayerRangeTo.Size = new System.Drawing.Size(31, 20);
this.lbLayerRangeTo.TabIndex = 12;
this.lbLayerRangeTo.Text = "To:";
//
// cmLayerRange
//
this.cmLayerRange.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.btnLayerRangeAllLayers,
this.btnLayerRangeCurrentLayer,
this.btnLayerRangeBottomLayers,
this.btnLayerRangeNormalLayers});
this.cmLayerRange.Name = "cmLayerRange";
this.cmLayerRange.Size = new System.Drawing.Size(226, 92);
//
// btnLayerRangeAllLayers
//
this.btnLayerRangeAllLayers.Name = "btnLayerRangeAllLayers";
this.btnLayerRangeAllLayers.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
| System.Windows.Forms.Keys.A)));
this.btnLayerRangeAllLayers.Size = new System.Drawing.Size(225, 22);
this.btnLayerRangeAllLayers.Text = "&All Layers";
this.btnLayerRangeAllLayers.Click += new System.EventHandler(this.EventClick);
//
// btnLayerRangeCurrentLayer
//
this.btnLayerRangeCurrentLayer.Name = "btnLayerRangeCurrentLayer";
this.btnLayerRangeCurrentLayer.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
| System.Windows.Forms.Keys.C)));
this.btnLayerRangeCurrentLayer.Size = new System.Drawing.Size(225, 22);
this.btnLayerRangeCurrentLayer.Text = "&Current Layer";
this.btnLayerRangeCurrentLayer.Click += new System.EventHandler(this.EventClick);
//
// btnLayerRangeBottomLayers
//
this.btnLayerRangeBottomLayers.Name = "btnLayerRangeBottomLayers";
this.btnLayerRangeBottomLayers.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
| System.Windows.Forms.Keys.B)));
this.btnLayerRangeBottomLayers.Size = new System.Drawing.Size(225, 22);
this.btnLayerRangeBottomLayers.Text = "&Bottom Layers";
this.btnLayerRangeBottomLayers.Click += new System.EventHandler(this.EventClick);
//
// btnLayerRangeNormalLayers
//
this.btnLayerRangeNormalLayers.Name = "btnLayerRangeNormalLayers";
this.btnLayerRangeNormalLayers.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
| System.Windows.Forms.Keys.N)));
this.btnLayerRangeNormalLayers.Size = new System.Drawing.Size(225, 22);
this.btnLayerRangeNormalLayers.Text = "&Normal Layers";
this.btnLayerRangeNormalLayers.Click += new System.EventHandler(this.EventClick);
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(36, 95);
this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(75, 20);
this.label4.TabIndex = 21;
this.label4.Text = "Columns:";
//
// nmCols
//
this.nmCols.Location = new System.Drawing.Point(118, 93);
this.nmCols.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.nmCols.Minimum = new decimal(new int[] {
1,
0,
0,
0});
this.nmCols.Name = "nmCols";
this.nmCols.Size = new System.Drawing.Size(121, 26);
this.nmCols.TabIndex = 19;
this.nmCols.Value = new decimal(new int[] {
1,
0,
0,
0});
this.nmCols.ValueChanged += new System.EventHandler(this.EventValueChanged);
//
// lbInsideBounds
//
this.lbInsideBounds.AutoSize = true;
this.lbInsideBounds.Location = new System.Drawing.Point(16, 222);
this.lbInsideBounds.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lbInsideBounds.Name = "lbInsideBounds";
this.lbInsideBounds.Size = new System.Drawing.Size(147, 20);
this.lbInsideBounds.TabIndex = 27;
this.lbInsideBounds.Text = "Inside Bounds: Yes";
//
// lbRows
//
this.lbRows.AutoSize = true;
this.lbRows.Location = new System.Drawing.Point(442, 127);
this.lbRows.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lbRows.Name = "lbRows";
this.lbRows.Size = new System.Drawing.Size(53, 20);
this.lbRows.TabIndex = 26;
this.lbRows.Text = "Rows:";
//
// lbCols
//
this.lbCols.AutoSize = true;
this.lbCols.Location = new System.Drawing.Point(442, 96);
this.lbCols.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lbCols.Name = "lbCols";
this.lbCols.Size = new System.Drawing.Size(79, 20);
this.lbCols.TabIndex = 25;
this.lbCols.Text = "Columns: ";
//
// lbVolumeHeight
//
this.lbVolumeHeight.AutoSize = true;
this.lbVolumeHeight.Location = new System.Drawing.Point(13, 193);
this.lbVolumeHeight.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lbVolumeHeight.Name = "lbVolumeHeight";
this.lbVolumeHeight.Size = new System.Drawing.Size(174, 20);
this.lbVolumeHeight.TabIndex = 24;
this.lbVolumeHeight.Text = "Volume/Pattern Height:";
//
// lbVolumeWidth
//
this.lbVolumeWidth.AutoSize = true;
this.lbVolumeWidth.Location = new System.Drawing.Point(13, 164);
this.lbVolumeWidth.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lbVolumeWidth.Name = "lbVolumeWidth";
this.lbVolumeWidth.Size = new System.Drawing.Size(168, 20);
this.lbVolumeWidth.TabIndex = 23;
this.lbVolumeWidth.Text = "Volume/Pattern Width:";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(58, 127);
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(53, 20);
this.label1.TabIndex = 29;
this.label1.Text = "Rows:";
//
// nmRows
//
this.nmRows.Location = new System.Drawing.Point(118, 125);
this.nmRows.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.nmRows.Minimum = new decimal(new int[] {
1,
0,
0,
0});
this.nmRows.Name = "nmRows";
this.nmRows.Size = new System.Drawing.Size(121, 26);
this.nmRows.TabIndex = 28;
this.nmRows.Value = new decimal(new int[] {
1,
0,
0,
0});
this.nmRows.ValueChanged += new System.EventHandler(this.EventValueChanged);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(246, 128);
this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(61, 20);
this.label2.TabIndex = 31;
this.label2.Text = "Margin:";
//
// nmMarginRow
//
this.nmMarginRow.Location = new System.Drawing.Point(314, 125);
this.nmMarginRow.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.nmMarginRow.Name = "nmMarginRow";
this.nmMarginRow.Size = new System.Drawing.Size(81, 26);
this.nmMarginRow.TabIndex = 30;
this.nmMarginRow.Value = new decimal(new int[] {
20,
0,
0,
0});
this.nmMarginRow.ValueChanged += new System.EventHandler(this.EventValueChanged);
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(246, 96);
this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(61, 20);
this.label3.TabIndex = 33;
this.label3.Text = "Margin:";
//
// nmMarginCol
//
this.nmMarginCol.Location = new System.Drawing.Point(314, 93);
this.nmMarginCol.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.nmMarginCol.Name = "nmMarginCol";
this.nmMarginCol.Size = new System.Drawing.Size(81, 26);
this.nmMarginCol.TabIndex = 32;
this.nmMarginCol.Value = new decimal(new int[] {
20,
0,
0,
0});
this.nmMarginCol.ValueChanged += new System.EventHandler(this.EventValueChanged);
//
// btnCancel
//
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btnCancel.Image = global::UVtools.GUI.Properties.Resources.Cancel_24x24;
this.btnCancel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnCancel.Location = new System.Drawing.Point(434, 277);
this.btnCancel.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(150, 48);
this.btnCancel.TabIndex = 6;
this.btnCancel.Text = "&Cancel";
this.btnCancel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.EventClick);
//
// btnAutoMarginCol
//
this.btnAutoMarginCol.Image = global::UVtools.GUI.Properties.Resources.resize_16x16;
this.btnAutoMarginCol.Location = new System.Drawing.Point(401, 93);
this.btnAutoMarginCol.Name = "btnAutoMarginCol";
this.btnAutoMarginCol.Size = new System.Drawing.Size(33, 26);
this.btnAutoMarginCol.TabIndex = 35;
this.btnAutoMarginCol.Click += new System.EventHandler(this.EventClick);
//
// btnResetDefaults
//
this.btnResetDefaults.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnResetDefaults.Image = global::UVtools.GUI.Properties.Resources.Rotate_16x16;
this.btnResetDefaults.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnResetDefaults.Location = new System.Drawing.Point(13, 277);
this.btnResetDefaults.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.btnResetDefaults.Name = "btnResetDefaults";
this.btnResetDefaults.Size = new System.Drawing.Size(150, 48);
this.btnResetDefaults.TabIndex = 24;
this.btnResetDefaults.Text = "&Reset defaults";
this.btnResetDefaults.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.btnResetDefaults.UseVisualStyleBackColor = true;
this.btnResetDefaults.Click += new System.EventHandler(this.EventClick);
//
// btnPattern
//
this.btnPattern.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnPattern.Image = global::UVtools.GUI.Properties.Resources.Ok_24x24;
this.btnPattern.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnPattern.Location = new System.Drawing.Point(276, 277);
this.btnPattern.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.btnPattern.Name = "btnPattern";
this.btnPattern.Size = new System.Drawing.Size(150, 48);
this.btnPattern.TabIndex = 5;
this.btnPattern.Text = "&Pattern";
this.btnPattern.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.btnPattern.UseVisualStyleBackColor = true;
this.btnPattern.Click += new System.EventHandler(this.EventClick);
//
// btnAutoMarginRow
//
this.btnAutoMarginRow.Image = global::UVtools.GUI.Properties.Resources.resize_16x16;
this.btnAutoMarginRow.Location = new System.Drawing.Point(401, 125);
this.btnAutoMarginRow.Name = "btnAutoMarginRow";
this.btnAutoMarginRow.Size = new System.Drawing.Size(33, 26);
this.btnAutoMarginRow.TabIndex = 36;
this.btnAutoMarginRow.Click += new System.EventHandler(this.EventClick);
//
// tableAnchor
//
this.tableAnchor.AutoSize = true;
this.tableAnchor.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.tableAnchor.ColumnCount = 4;
this.tableAnchor.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableAnchor.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableAnchor.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableAnchor.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableAnchor.Controls.Add(this.rbAnchorNone, 3, 1);
this.tableAnchor.Controls.Add(this.rbAnchorBottomLeft, 0, 2);
this.tableAnchor.Controls.Add(this.rbAnchorBottomCenter, 0, 2);
this.tableAnchor.Controls.Add(this.rbAnchorBottomRight, 0, 2);
this.tableAnchor.Controls.Add(this.rbAnchorMiddleRight, 2, 1);
this.tableAnchor.Controls.Add(this.rbAnchorMiddleCenter, 1, 1);
this.tableAnchor.Controls.Add(this.rbAnchorMiddleLeft, 0, 1);
this.tableAnchor.Controls.Add(this.rbAnchorTopCenter, 1, 0);
this.tableAnchor.Controls.Add(this.rbAnchorTopLeft, 0, 0);
this.tableAnchor.Controls.Add(this.rbAnchorTopRight, 2, 0);
this.tableAnchor.Location = new System.Drawing.Point(6, 25);
this.tableAnchor.Name = "tableAnchor";
this.tableAnchor.RowCount = 3;
this.tableAnchor.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableAnchor.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableAnchor.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableAnchor.Size = new System.Drawing.Size(131, 68);
this.tableAnchor.TabIndex = 38;
//
// rbAnchorBottomLeft
//
this.rbAnchorBottomLeft.AutoSize = true;
this.rbAnchorBottomLeft.Dock = System.Windows.Forms.DockStyle.Fill;
this.rbAnchorBottomLeft.Location = new System.Drawing.Point(23, 52);
this.rbAnchorBottomLeft.Name = "rbAnchorBottomLeft";
this.rbAnchorBottomLeft.Size = new System.Drawing.Size(14, 13);
this.rbAnchorBottomLeft.TabIndex = 8;
this.rbAnchorBottomLeft.UseVisualStyleBackColor = true;
//
// rbAnchorBottomCenter
//
this.rbAnchorBottomCenter.AutoSize = true;
this.rbAnchorBottomCenter.Dock = System.Windows.Forms.DockStyle.Fill;
this.rbAnchorBottomCenter.Location = new System.Drawing.Point(3, 52);
this.rbAnchorBottomCenter.Name = "rbAnchorBottomCenter";
this.rbAnchorBottomCenter.Size = new System.Drawing.Size(14, 13);
this.rbAnchorBottomCenter.TabIndex = 7;
this.rbAnchorBottomCenter.UseVisualStyleBackColor = true;
//
// rbAnchorBottomRight
//
this.rbAnchorBottomRight.AutoSize = true;
this.rbAnchorBottomRight.Dock = System.Windows.Forms.DockStyle.Fill;
this.rbAnchorBottomRight.Location = new System.Drawing.Point(43, 52);
this.rbAnchorBottomRight.Name = "rbAnchorBottomRight";
this.rbAnchorBottomRight.Size = new System.Drawing.Size(14, 13);
this.rbAnchorBottomRight.TabIndex = 6;
this.rbAnchorBottomRight.UseVisualStyleBackColor = true;
//
// rbAnchorMiddleRight
//
this.rbAnchorMiddleRight.AutoSize = true;
this.rbAnchorMiddleRight.Dock = System.Windows.Forms.DockStyle.Fill;
this.rbAnchorMiddleRight.Location = new System.Drawing.Point(43, 22);
this.rbAnchorMiddleRight.Name = "rbAnchorMiddleRight";
this.rbAnchorMiddleRight.Size = new System.Drawing.Size(14, 24);
this.rbAnchorMiddleRight.TabIndex = 5;
this.rbAnchorMiddleRight.UseVisualStyleBackColor = true;
//
// rbAnchorMiddleCenter
//
this.rbAnchorMiddleCenter.AutoSize = true;
this.rbAnchorMiddleCenter.Dock = System.Windows.Forms.DockStyle.Fill;
this.rbAnchorMiddleCenter.Location = new System.Drawing.Point(23, 22);
this.rbAnchorMiddleCenter.Name = "rbAnchorMiddleCenter";
this.rbAnchorMiddleCenter.Size = new System.Drawing.Size(14, 24);
this.rbAnchorMiddleCenter.TabIndex = 4;
this.rbAnchorMiddleCenter.UseVisualStyleBackColor = true;
//
// rbAnchorMiddleLeft
//
this.rbAnchorMiddleLeft.AutoSize = true;
this.rbAnchorMiddleLeft.Dock = System.Windows.Forms.DockStyle.Fill;
this.rbAnchorMiddleLeft.Location = new System.Drawing.Point(3, 22);
this.rbAnchorMiddleLeft.Name = "rbAnchorMiddleLeft";
this.rbAnchorMiddleLeft.Size = new System.Drawing.Size(14, 24);
this.rbAnchorMiddleLeft.TabIndex = 3;
this.rbAnchorMiddleLeft.UseVisualStyleBackColor = true;
//
// rbAnchorTopCenter
//
this.rbAnchorTopCenter.AutoSize = true;
this.rbAnchorTopCenter.Dock = System.Windows.Forms.DockStyle.Fill;
this.rbAnchorTopCenter.Location = new System.Drawing.Point(23, 3);
this.rbAnchorTopCenter.Name = "rbAnchorTopCenter";
this.rbAnchorTopCenter.Size = new System.Drawing.Size(14, 13);
this.rbAnchorTopCenter.TabIndex = 2;
this.rbAnchorTopCenter.UseVisualStyleBackColor = true;
//
// rbAnchorTopLeft
//
this.rbAnchorTopLeft.AutoSize = true;
this.rbAnchorTopLeft.Dock = System.Windows.Forms.DockStyle.Fill;
this.rbAnchorTopLeft.Location = new System.Drawing.Point(3, 3);
this.rbAnchorTopLeft.Name = "rbAnchorTopLeft";
this.rbAnchorTopLeft.Size = new System.Drawing.Size(14, 13);
this.rbAnchorTopLeft.TabIndex = 1;
this.rbAnchorTopLeft.UseVisualStyleBackColor = true;
//
// rbAnchorTopRight
//
this.rbAnchorTopRight.AutoSize = true;
this.rbAnchorTopRight.Dock = System.Windows.Forms.DockStyle.Fill;
this.rbAnchorTopRight.Location = new System.Drawing.Point(43, 3);
this.rbAnchorTopRight.Name = "rbAnchorTopRight";
this.rbAnchorTopRight.Size = new System.Drawing.Size(14, 13);
this.rbAnchorTopRight.TabIndex = 0;
this.rbAnchorTopRight.UseVisualStyleBackColor = true;
//
// rbAnchorNone
//
this.rbAnchorNone.AutoSize = true;
this.rbAnchorNone.Checked = true;
this.rbAnchorNone.Location = new System.Drawing.Point(63, 22);
this.rbAnchorNone.Name = "rbAnchorNone";
this.rbAnchorNone.Size = new System.Drawing.Size(65, 24);
this.rbAnchorNone.TabIndex = 39;
this.rbAnchorNone.TabStop = true;
this.rbAnchorNone.Text = "None";
this.rbAnchorNone.UseVisualStyleBackColor = true;
//
// groupBox1
//
this.groupBox1.Controls.Add(this.tableAnchor);
this.groupBox1.Location = new System.Drawing.Point(441, 164);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(143, 105);
this.groupBox1.TabIndex = 39;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Anchor";
//
// btnLayerRangeSelect
//
this.btnLayerRangeSelect.Location = new System.Drawing.Point(446, 58);
this.btnLayerRangeSelect.Menu = this.cmLayerRange;
this.btnLayerRangeSelect.Name = "btnLayerRangeSelect";
this.btnLayerRangeSelect.Size = new System.Drawing.Size(138, 26);
this.btnLayerRangeSelect.TabIndex = 2;
this.btnLayerRangeSelect.Text = "Select";
this.btnLayerRangeSelect.UseVisualStyleBackColor = true;
//
// FrmToolPattern
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.btnCancel;
this.ClientSize = new System.Drawing.Size(599, 339);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.btnAutoMarginRow);
this.Controls.Add(this.btnAutoMarginCol);
this.Controls.Add(this.label3);
this.Controls.Add(this.nmMarginCol);
this.Controls.Add(this.btnResetDefaults);
this.Controls.Add(this.label2);
this.Controls.Add(this.nmMarginRow);
this.Controls.Add(this.btnLayerRangeSelect);
this.Controls.Add(this.label1);
this.Controls.Add(this.lbLayerRangeTo);
this.Controls.Add(this.nmRows);
this.Controls.Add(this.nmLayerRangeEnd);
this.Controls.Add(this.lbInsideBounds);
this.Controls.Add(this.nmLayerRangeStart);
this.Controls.Add(this.lbRows);
this.Controls.Add(this.lbLayerRange);
this.Controls.Add(this.lbCols);
this.Controls.Add(this.btnPattern);
this.Controls.Add(this.lbVolumeHeight);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.lbVolumeWidth);
this.Controls.Add(this.label4);
this.Controls.Add(this.lbDescription);
this.Controls.Add(this.nmCols);
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.KeyPreview = true;
this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "FrmToolPattern";
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Pattern";
this.TopMost = true;
((System.ComponentModel.ISupportInitialize)(this.nmLayerRangeStart)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nmLayerRangeEnd)).EndInit();
this.cmLayerRange.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.nmCols)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nmRows)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nmMarginRow)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nmMarginCol)).EndInit();
this.tableAnchor.ResumeLayout(false);
this.tableAnchor.PerformLayout();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label lbDescription;
private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.Button btnPattern;
private System.Windows.Forms.Label lbLayerRange;
private System.Windows.Forms.NumericUpDown nmLayerRangeStart;
private System.Windows.Forms.NumericUpDown nmLayerRangeEnd;
private System.Windows.Forms.Label lbLayerRangeTo;
private Controls.SplitButton btnLayerRangeSelect;
private System.Windows.Forms.ContextMenuStrip cmLayerRange;
private System.Windows.Forms.ToolStripMenuItem btnLayerRangeAllLayers;
private System.Windows.Forms.ToolStripMenuItem btnLayerRangeCurrentLayer;
private System.Windows.Forms.ToolStripMenuItem btnLayerRangeBottomLayers;
private System.Windows.Forms.ToolStripMenuItem btnLayerRangeNormalLayers;
private System.Windows.Forms.NumericUpDown nmCols;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Button btnResetDefaults;
private System.Windows.Forms.Label lbVolumeHeight;
private System.Windows.Forms.Label lbVolumeWidth;
private System.Windows.Forms.Label lbCols;
private System.Windows.Forms.Label lbRows;
private System.Windows.Forms.Label lbInsideBounds;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.NumericUpDown nmRows;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.NumericUpDown nmMarginCol;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.NumericUpDown nmMarginRow;
private System.Windows.Forms.Button btnAutoMarginCol;
private System.Windows.Forms.Button btnAutoMarginRow;
private System.Windows.Forms.TableLayoutPanel tableAnchor;
private System.Windows.Forms.RadioButton rbAnchorBottomLeft;
private System.Windows.Forms.RadioButton rbAnchorBottomCenter;
private System.Windows.Forms.RadioButton rbAnchorBottomRight;
private System.Windows.Forms.RadioButton rbAnchorMiddleRight;
private System.Windows.Forms.RadioButton rbAnchorMiddleCenter;
private System.Windows.Forms.RadioButton rbAnchorMiddleLeft;
private System.Windows.Forms.RadioButton rbAnchorTopCenter;
private System.Windows.Forms.RadioButton rbAnchorTopLeft;
private System.Windows.Forms.RadioButton rbAnchorTopRight;
private System.Windows.Forms.RadioButton rbAnchorNone;
private System.Windows.Forms.GroupBox groupBox1;
}
}
+253
View File
@@ -0,0 +1,253 @@
/*
* GNU AFFERO GENERAL PUBLIC LICENSE
* Version 3, 19 November 2007
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
* Everyone is permitted to copy and distribute verbatim copies
* of this license document, but changing it is not allowed.
*/
using System;
using System.Drawing;
using System.Windows.Forms;
using UVtools.Core;
namespace UVtools.GUI.Forms
{
public partial class FrmToolPattern : Form
{
#region Properties
public uint LayerRangeStart
{
get => (uint) nmLayerRangeStart.Value;
set => nmLayerRangeStart.Value = value;
}
public uint LayerRangeEnd
{
get => (uint)Math.Min(nmLayerRangeEnd.Value, Program.SlicerFile.LayerCount-1);
set => nmLayerRangeEnd.Value = value;
}
private readonly OperationPattern _operation;
public OperationPattern OperationPattern
{
get
{
byte i = 0;
foreach (var radioButton in new[]
{
rbAnchorTopLeft, rbAnchorTopCenter, rbAnchorTopRight,
rbAnchorMiddleLeft, rbAnchorMiddleCenter, rbAnchorMiddleRight,
rbAnchorBottomLeft, rbAnchorBottomCenter, rbAnchorBottomRight,
rbAnchorNone
})
{
if (radioButton.Checked)
{
_operation.Anchor = (Anchor)i;
break;
}
i++;
}
_operation.MarginCol = (ushort)nmMarginCol.Value;
_operation.MarginRow = (ushort)nmMarginRow.Value;
_operation.Cols = (ushort) nmCols.Value;
_operation.Rows = (ushort) nmRows.Value;
return _operation;
}
}
#endregion
#region Constructors
public FrmToolPattern(Rectangle srcRoi, uint imageWidth, uint imageHeight)
{
InitializeComponent();
_operation = new OperationPattern(srcRoi, imageWidth, imageHeight);
DialogResult = DialogResult.Cancel;
nmLayerRangeEnd.Value = Program.SlicerFile.LayerCount-1;
EventClick(btnResetDefaults, null);
//EventValueChanged(this, null);
nmCols.Maximum = _operation.MaxCols;
nmRows.Maximum = _operation.MaxRows;
}
#endregion
#region Overrides
protected override void OnKeyUp(KeyEventArgs e)
{
base.OnKeyUp(e);
if (e.KeyCode == Keys.Enter)
{
btnPattern.PerformClick();
e.Handled = true;
return;
}
if ((ModifierKeys & Keys.Shift) == Keys.Shift && (ModifierKeys & Keys.Control) == Keys.Control)
{
if (e.KeyCode == Keys.A)
{
btnLayerRangeAllLayers.PerformClick();
e.Handled = true;
return;
}
if (e.KeyCode == Keys.C)
{
btnLayerRangeCurrentLayer.PerformClick();
e.Handled = true;
return;
}
if (e.KeyCode == Keys.B)
{
btnLayerRangeBottomLayers.PerformClick();
e.Handled = true;
return;
}
if (e.KeyCode == Keys.N)
{
btnLayerRangeNormalLayers.PerformClick();
e.Handled = true;
return;
}
}
}
#endregion
#region Events
private void EventClick(object sender, EventArgs e)
{
if (ReferenceEquals(sender, btnLayerRangeAllLayers))
{
nmLayerRangeStart.Value = 0;
nmLayerRangeEnd.Value = Program.SlicerFile.LayerCount-1;
return;
}
if (ReferenceEquals(sender, btnLayerRangeCurrentLayer))
{
nmLayerRangeStart.Value = Program.FrmMain.ActualLayer;
nmLayerRangeEnd.Value = Program.FrmMain.ActualLayer;
return;
}
if (ReferenceEquals(sender, btnLayerRangeBottomLayers))
{
nmLayerRangeStart.Value = 0;
nmLayerRangeEnd.Value = Program.SlicerFile.InitialLayerCount-1;
return;
}
if (ReferenceEquals(sender, btnLayerRangeNormalLayers))
{
nmLayerRangeStart.Value = Program.SlicerFile.InitialLayerCount - 1;
nmLayerRangeEnd.Value = Program.SlicerFile.LayerCount - 1;
return;
}
if (ReferenceEquals(sender, btnAutoMarginCol))
{
nmMarginCol.Value = _operation.CalculateMarginCol((ushort) nmCols.Value);
return;
}
if (ReferenceEquals(sender, btnAutoMarginRow))
{
nmMarginRow.Value = _operation.CalculateMarginRow((ushort)nmRows.Value);
return;
}
if (ReferenceEquals(sender, btnResetDefaults))
{
nmMarginCol.Value = _operation.MaxMarginCol;
nmMarginRow.Value = _operation.MaxMarginRow;
nmCols.Value = _operation.MaxCols;
nmRows.Value = _operation.MaxRows;
_operation.Fill();
return;
}
if (ReferenceEquals(sender, btnPattern))
{
if (!btnPattern.Enabled) return;
if (LayerRangeStart > LayerRangeEnd)
{
MessageBox.Show("Layer range start can't be higher than layer end.\nPlease fix and try again.", Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
nmLayerRangeStart.Select();
return;
}
if (nmCols.Value == 1 && nmRows.Value == 1)
{
MessageBox.Show("Either columns or rows must be greater than 1 to be able to run this tool", Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
nmLayerRangeStart.Select();
return;
}
if (!ValidateBounds())
{
MessageBox.Show("Your parameters will put the object out of build plate, please adjust the margins", Text, MessageBoxButtons.OK,
MessageBoxIcon.Error);
return;
}
if (MessageBox.Show($"Are you sure you want to Pattern?", Text, MessageBoxButtons.YesNo,
MessageBoxIcon.Question) == DialogResult.Yes)
{
DialogResult = DialogResult.OK;
Close();
}
return;
}
if (ReferenceEquals(sender, btnCancel))
{
DialogResult = DialogResult.Cancel;
return;
}
}
private void EventValueChanged(object sender, EventArgs e)
{
var insideBounds = btnPattern.Enabled = ValidateBounds();
lbInsideBounds.Text = "Inside Bounds: " + (insideBounds ? "Yes" : "No");
lbVolumeWidth.Text = $"Volume/Pattern Width: {_operation.SrcRoi.Width} / {_operation.CalculatePatternVolume.Width} / {_operation.ImageWidth}";
lbVolumeHeight.Text = $"Volume/Pattern Height: {_operation.SrcRoi.Height} / {_operation.CalculatePatternVolume.Height} / {_operation.ImageHeight}";
lbCols.Text = $"Columns: {nmCols.Value} / {_operation.MaxCols}";
lbRows.Text = $"Rows: {nmRows.Value} / {_operation.MaxRows}";
}
#endregion
#region Methods
public bool ValidateBounds()
{
var volume = OperationPattern.CalculatePatternVolume;
if (volume.Width > _operation.ImageWidth) return false;
if (volume.Height > _operation.ImageHeight) return false;
return true;
}
#endregion
}
}
File diff suppressed because it is too large Load Diff
+44 -7
View File
@@ -49,6 +49,7 @@
this.menuMutate = new System.Windows.Forms.ToolStripMenuItem();
this.menuTools = new System.Windows.Forms.ToolStripMenuItem();
this.menuToolsRepairLayers = new System.Windows.Forms.ToolStripMenuItem();
this.menuToolsPattern = new System.Windows.Forms.ToolStripMenuItem();
this.viewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.menuHelpWebsite = new System.Windows.Forms.ToolStripMenuItem();
@@ -94,7 +95,9 @@
this.tsThumbnailsPrevious = new System.Windows.Forms.ToolStripButton();
this.tsThumbnailsCount = new System.Windows.Forms.ToolStripLabel();
this.tsThumbnailsNext = new System.Windows.Forms.ToolStripButton();
this.tsThumbnailsExport = new System.Windows.Forms.ToolStripButton();
this.tsThumbnailsExport = new System.Windows.Forms.ToolStripSplitButton();
this.tsThumbnailsExportFile = new System.Windows.Forms.ToolStripMenuItem();
this.tsThumbnailsExportClipboard = new System.Windows.Forms.ToolStripMenuItem();
this.tsThumbnailsResolution = new System.Windows.Forms.ToolStripLabel();
this.lvProperties = new System.Windows.Forms.ListView();
this.lvChKey = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
@@ -333,7 +336,8 @@
// menuTools
//
this.menuTools.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.menuToolsRepairLayers});
this.menuToolsRepairLayers,
this.menuToolsPattern});
this.menuTools.Enabled = false;
this.menuTools.Name = "menuTools";
this.menuTools.Size = new System.Drawing.Size(46, 20);
@@ -350,6 +354,17 @@
this.menuToolsRepairLayers.Text = "&Repair layers and Issues";
this.menuToolsRepairLayers.Click += new System.EventHandler(this.EventClick);
//
// menuToolsPattern
//
this.menuToolsPattern.Enabled = false;
this.menuToolsPattern.Image = global::UVtools.GUI.Properties.Resources.pattern_16x16;
this.menuToolsPattern.Name = "menuToolsPattern";
this.menuToolsPattern.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Alt)
| System.Windows.Forms.Keys.P)));
this.menuToolsPattern.Size = new System.Drawing.Size(261, 22);
this.menuToolsPattern.Text = "&Pattern";
this.menuToolsPattern.Click += new System.EventHandler(this.EventClick);
//
// viewToolStripMenuItem
//
this.viewToolStripMenuItem.Name = "viewToolStripMenuItem";
@@ -825,14 +840,33 @@
//
this.tsThumbnailsExport.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.tsThumbnailsExport.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.tsThumbnailsExport.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsThumbnailsExportFile,
this.tsThumbnailsExportClipboard});
this.tsThumbnailsExport.Enabled = false;
this.tsThumbnailsExport.Image = global::UVtools.GUI.Properties.Resources.Save_16x16;
this.tsThumbnailsExport.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsThumbnailsExport.Name = "tsThumbnailsExport";
this.tsThumbnailsExport.Size = new System.Drawing.Size(23, 22);
this.tsThumbnailsExport.Text = "Save Thumbnail";
this.tsThumbnailsExport.ToolTipText = "Save thumbnail to file";
this.tsThumbnailsExport.Click += new System.EventHandler(this.EventClick);
this.tsThumbnailsExport.Size = new System.Drawing.Size(32, 22);
this.tsThumbnailsExport.Text = "Save to";
this.tsThumbnailsExport.ToolTipText = "Save thumbnail image to a file or clipboard";
this.tsThumbnailsExport.ButtonClick += new System.EventHandler(this.EventClick);
//
// tsThumbnailsExportFile
//
this.tsThumbnailsExportFile.Image = global::UVtools.GUI.Properties.Resources.file_image_16x16;
this.tsThumbnailsExportFile.Name = "tsThumbnailsExportFile";
this.tsThumbnailsExportFile.Size = new System.Drawing.Size(180, 22);
this.tsThumbnailsExportFile.Text = "To &File";
this.tsThumbnailsExportFile.Click += new System.EventHandler(this.EventClick);
//
// tsThumbnailsExportClipboard
//
this.tsThumbnailsExportClipboard.Image = global::UVtools.GUI.Properties.Resources.clipboard_16x16;
this.tsThumbnailsExportClipboard.Name = "tsThumbnailsExportClipboard";
this.tsThumbnailsExportClipboard.Size = new System.Drawing.Size(180, 22);
this.tsThumbnailsExportClipboard.Text = "To &Clipboard";
this.tsThumbnailsExportClipboard.Click += new System.EventHandler(this.EventClick);
//
// tsThumbnailsResolution
//
@@ -1427,7 +1461,6 @@
private System.Windows.Forms.ToolStripButton tsThumbnailsPrevious;
private System.Windows.Forms.ToolStripLabel tsThumbnailsCount;
private System.Windows.Forms.ToolStripButton tsThumbnailsNext;
private System.Windows.Forms.ToolStripButton tsThumbnailsExport;
private System.Windows.Forms.ToolStripLabel tsThumbnailsResolution;
private System.Windows.Forms.TabPage tabPageGCode;
private System.Windows.Forms.ImageList imageList16x16;
@@ -1509,6 +1542,10 @@
private System.Windows.Forms.ToolStripMenuItem tsLayerImageLayerOutlinePrintVolumeBounds;
private System.Windows.Forms.ToolStripMenuItem tsLayerImageLayerOutlineLayerBounds;
private System.Windows.Forms.ToolStripMenuItem tsLayerImageLayerOutlineHollowAreas;
private System.Windows.Forms.ToolStripMenuItem menuToolsPattern;
private System.Windows.Forms.ToolStripSplitButton tsThumbnailsExport;
private System.Windows.Forms.ToolStripMenuItem tsThumbnailsExportFile;
private System.Windows.Forms.ToolStripMenuItem tsThumbnailsExportClipboard;
}
}
+87 -6
View File
@@ -37,6 +37,10 @@ namespace UVtools.GUI
public static readonly Dictionary<LayerManager.Mutate, Mutation> Mutations =
new Dictionary<LayerManager.Mutate, Mutation>
{
{LayerManager.Mutate.Move, new Mutation(LayerManager.Mutate.Move, null,
"Moves the entire print volume around the plate.\n" +
"Note: Margins are in pixel values"
)},
{LayerManager.Mutate.Resize, new Mutation(LayerManager.Mutate.Resize, null,
"Resizes layer images in a X and/or Y factor, starting from 100% value\n" +
"NOTE 1: Build volume bounds are not validated after operation, please ensure scaling stays inside your limits.\n" +
@@ -55,11 +59,11 @@ namespace UVtools.GUI
)},
{LayerManager.Mutate.Erode, new Mutation(LayerManager.Mutate.Erode, null,
"The basic idea of erosion is just like soil erosion only, it erodes away the boundaries of foreground object (Always try to keep foreground in white). " +
"So what happends is that, all the pixels near boundary will be discarded depending upon the size of kernel. So the thickness or size of the foreground object decreases or simply white region decreases in the image. It is useful for removing small white noises, detach two connected objects, etc.",
"So what happens is that, all the pixels near boundary will be discarded depending upon the size of kernel. So the thickness or size of the foreground object decreases or simply white region decreases in the image. It is useful for removing small white noises, detach two connected objects, etc.",
Properties.Resources.mutation_erosion
)},
{LayerManager.Mutate.Dilate, new Mutation(LayerManager.Mutate.Dilate, null,
"It is just opposite of erosion. Here, a pixel element is '1' if atleast one pixel under the kernel is '1'. So it increases the white region in the image or size of foreground object increases. Normally, in cases like noise removal, erosion is followed by dilation. Because, erosion removes white noises, but it also shrinks our object. So we dilate it. Since noise is gone, they won't come back, but our object area increases. It is also useful in joining broken parts of an object.",
"It is just opposite of erosion. Here, a pixel element is '1' if at least one pixel under the kernel is '1'. So it increases the white region in the image or size of foreground object increases. Normally, in cases like noise removal, erosion is followed by dilation. Because, erosion removes white noises, but it also shrinks our object. So we dilate it. Since noise is gone, they won't come back, but our object area increases. It is also useful in joining broken parts of an object.",
Resources.mutation_dilation
)},
{LayerManager.Mutate.Opening, new Mutation(LayerManager.Mutate.Opening, "Noise Removal",
@@ -354,8 +358,9 @@ namespace UVtools.GUI
using (OpenFileDialog openFile = new OpenFileDialog())
{
openFile.CheckFileExists = true;
openFile.Filter = FileFormat.AllFileFilters;
openFile.FilterIndex = 0;
openFile.FilterIndex = Settings.Default.DefaultOpenFileExtension+1;
if (openFile.ShowDialog() == DialogResult.OK)
{
try
@@ -379,7 +384,7 @@ namespace UVtools.GUI
{
openFile.CheckFileExists = true;
openFile.Filter = FileFormat.AllFileFilters;
openFile.FilterIndex = 0;
openFile.FilterIndex = Settings.Default.DefaultOpenFileExtension + 1;
if (openFile.ShowDialog() == DialogResult.OK)
{
Program.NewInstance(openFile.FileName);
@@ -706,6 +711,51 @@ namespace UVtools.GUI
return;
}
if (ReferenceEquals(sender, menuToolsPattern))
{
using (var frm = new FrmToolPattern(SlicerFile.LayerManager.BoundingRectangle, (uint) ActualLayerImage.Width, (uint) ActualLayerImage.Height))
{
if (frm.ShowDialog() != DialogResult.OK) return;
DisableGUI();
FrmLoading.SetDescription("Pattern");
var task = Task.Factory.StartNew(() =>
{
try
{
SlicerFile.LayerManager.ToolPattern(frm.LayerRangeStart, frm.LayerRangeEnd, frm.OperationPattern, FrmLoading.RestartProgress());
}
catch (OperationCanceledException)
{
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
Invoke((MethodInvoker)delegate
{
// Running on the UI thread
EnableGUI(true);
});
}
});
var loadingResult = FrmLoading.ShowDialog();
ShowLayer();
menuFileSave.Enabled =
menuFileSaveAs.Enabled = true;
}
return;
}
// About
if (ReferenceEquals(sender, menuHelpAbout))
{
@@ -837,6 +887,12 @@ namespace UVtools.GUI
}
if (ReferenceEquals(sender, tsThumbnailsExport))
{
tsThumbnailsExport.ShowDropDown();
return;
}
if (ReferenceEquals(sender, tsThumbnailsExportFile))
{
using (SaveFileDialog dialog = new SaveFileDialog())
{
@@ -855,9 +911,14 @@ namespace UVtools.GUI
{
SlicerFile.Thumbnails[i].Save(dialog.FileName);
}
return;
}
return;
}
if (ReferenceEquals(sender, tsThumbnailsExportClipboard))
{
Clipboard.SetImage(pbThumbnail.Image);
return;
}
/************************
@@ -2273,6 +2334,11 @@ namespace UVtools.GUI
ZoomToFit();
return;
}
if ((e.Button & MouseButtons.Middle) != 0)
{
pbLayer.ZoomToFit();
return;
}
return;
}
}
@@ -2334,11 +2400,23 @@ namespace UVtools.GUI
uint iterationsEnd = 0;
bool fade = false;
OperationMove operationMove = null;
double x = 0;
double y = 0;
switch (mutator)
{
case LayerManager.Mutate.Move:
using (FrmMutationMove inputBox = new FrmMutationMove(Mutations[mutator], SlicerFile.LayerManager.BoundingRectangle, (uint) ActualLayerImage.Width, (uint) ActualLayerImage.Height))
{
if (inputBox.ShowDialog() != DialogResult.OK) return;
layerStart = inputBox.LayerRangeStart;
layerEnd = inputBox.LayerRangeEnd;
operationMove = inputBox.OperationMove;
}
break;
case LayerManager.Mutate.Resize:
using (FrmMutationResize inputBox = new FrmMutationResize(Mutations[mutator]))
{
@@ -2396,6 +2474,9 @@ namespace UVtools.GUI
{
switch (mutator)
{
case LayerManager.Mutate.Move:
SlicerFile.LayerManager.MutateMove(layerStart, layerEnd, operationMove, progress);
break;
case LayerManager.Mutate.Resize:
SlicerFile.LayerManager.MutateResize(layerStart, layerEnd, x / 100.0, y / 100.0, fade, progress);
break;
+70 -61
View File
@@ -145,70 +145,79 @@
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAs
DgAAAk1TRnQBSQFMAgEBBAEAAbgBBAG4AQQBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAo
DgAAAk1TRnQBSQFMAgEBBAEAAdgBBAHYAQQBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AZgADUAGjA1IBqQNS
AakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1ABo1wAAxUBHQFCAVkBXgH1
AVECbQH3A0MBdwNbAcgCQgFaAfUCWAFfAeMDSgGMAwoBDQQAA1UBtANZAccDLwFJAwABAQMbASYDHAEn
AxwBJwMcAScDHAEnAxwBJwMcAScDHAEnAxwBJwMcAScDHAEnAwIBAwQAA1IBqTAAA1IBqRAAAycBOgMw
AUwDMAFMAzABTAMwAUwDMAFMAzABTAMwAUwDMAFMAycBOhQAAwUBBwNMAZIBVgJYAcEDFQEdAz0BaQEA
AcgB8wH/AQQBkAHmAf8CGgHcAf8CGgHdAf8CTwHjAf8CJQHeAf8CGgHdAf8CWAFbAcsDBgEIAwAB/wMA
Af8DQwF3AykBPgMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AzIBUQQA
A1IBqQQAA1ABnQNTAaoDUwGqA1MBqgNTAaoDUwGqA1MBqgNQAZ0MAANSAakQAANOAfsDAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wNOAfsUAAEwAjEBTQEAAckB8wH/AQAByQH0Af8BWQJgAesBWwJe
AdkBAAHAAfEB/wEbASMB3wH/Ah0B4AH/Ah0B4AH/AlYB6QH/AigB4gH/Ah0B4AH/Ah0B4AH/A0ABcQNR
AaIDVgG2AyoBQAQAAxABFQMRARcDEQEXAxEBFwMRARcDEQEXAxEBFwMRARcDEQEXAxEBFwMQARYIAANS
AakEAANQAZ0DUwGqA1MBqgMfASwcAANSAakTAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/FAADBwEKAVkCZwHyAQABygH0Af8BAAHKAfQB/wEAAcoB9AH/AQUBoQHuAf8CIAHjAf8CIAHj
Af8CIAHjAf8CqQHvAf8CJwHjAf8CIAHjAf8CIAHjAf8CVgFYAbkDCgEOAxEBFwMAAQE4AANSAakwAANS
AakTAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADFQEdAz0BaQM6AWIBXAJg
AdQBAAHLAfUB/wEAAcsB9QH/AQABywH1Af8BCAGgAfAB/wIjAeYB/wIjAeYB/wIjAeYB/wLCAfYB/wI7
AegB/wIjAeYB/wIjAeYB/wJXAVkBvwNSAfQDAAH/Az4BbAMOARMDQgF2A0MBdwNDAXcDQwF3A0MBdwND
AXcDQwF3A0MBdwNDAXcDQwF3A0IBdgMUARsEAANSAakDIgEyA1IBqQNSAakDUgGpA1IBqQNSAakDUgGp
A1IBqQNSAakDUgGpA1IBqQMiATIDUgGpEwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wwAAUsCTAGQAQABywH2Af8BAAHLAfYB/wEAAcsB9gH/AQABywH2Af8BKQFyAXoB+gNDAXgDIgEy
AksBiAH7AiYB6QH/AiYB6QH/As0B+AH/AkoB7QH/AiYB6QH/AiYB6QH/A1ABngMAAf4DAAH/A0MBdwMe
ASsDVwHFA1kBxwNZAccDWQHHA1kBxwNZAccDWQHHA1kBxwNZAccDWQHHA1gBxgMmATkEAANSAakDNAFV
AzQBVSAAAzQBVQM0AVUDUgGpEwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wwA
A1EBoAEAAcwB9wH/AQABzAH3Af8BAAHMAfcB/wEAAcwB9wH/A0MBdwgAA0oBjQIpAewB/wIpAewB/wJF
Ae8B/wItAewB/wIpAewB/wElATYB7QH/AVICUwGoAzMBUwM8AWcDFAEcOAADUgGpAzQBVQM0AVUDRgGA
A1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA0UBfwM0AVUDNAFVA1IBqRMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wMAAf8PAAEBAT8CQAFvAT4BcAF1AfgBAAHNAfcB/wEAAc0B9wH/AxIBGAgA
AwEBAgNGAX4CUgFdAfACLAHuAf8BLAEtAe4B/wJAAasB/QFFAkYBfgMDAQQDMwFTAzwBZwMUARw4AANS
AakDNAFVAzQBVQM/AW4DMgFQEAADJwE7A0QBfAM0AVUDNAFVA1IBqRMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wMAAf8PAAEBAT8CQAFvAT4BcAF1AfgBAAHOAfgB/wEAAc4B+AH/AxIBGBAA
AxcBIAEGAbwB9wH/AQMBxAH3Af8BQAGoAa0B/QFFAkYBfgMDAQQDAAH+AwAB/wNDAXcDHwEsA1cBxQNZ
AccDWQHHA1kBxwNZAccDWQHHA1kBxwNZAccDWQHHA1kBxwNYAcYDJgE5BAADUgGpAzQBVQM0AVUDBQEH
A1UBtQMRARcDUgGpAykBPgQAA1ABnwMRARcDNAFVAzQBVQNSAakTAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/DAADUQGgAQEBzgH4Af8BAQHPAfkB/wEBAc8B+QH/AQEBzwH5Af8DQwF3
EAADRAF6AQEBzwH5Af8BAQHPAfkB/wEBAc8B+QH/AQEBzgH4Af8BUgJTAagDUgH0AwAB/wM+AWwDDgET
A0IBdQNDAXcDQwF3A0MBdwNDAXcDQwF3A0MBdwNDAXcDQwF3A0MBdwNDAXcDFAEbBAADUgGpAzQBVQM0
AVUEAAM8AWgDVgG+AyMBNANVAbUDEgEZA1EBoAQAAzQBVQM0AVUDUgGpEwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/A1wB3wwAAUsCTAGQAQIB0AH6Af8BAgHQAfoB/wECAdAB+gH/AQIB0AH6
Af8BKQFyAXoB+gNDAXgDEgEZAxMBGgNEAXoBKAGCAYsB+wECAdAB+gH/AQIB0AH6Af8BAgHQAfoB/wEC
AdAB+gH/A0oBjAMKAQ4DEQEXAwABATgAA1IBqQM0AVUDNAFVAwABAQMtAUYDCgEOBAADOQFfA1wBzgMo
ATwEAAM0AVUDNAFVA1IBqRMAAf8DggH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1wB3wMXASAMAAMV
AR0DPQFpAzoBYgFcAmAB1AEDAdEB+gH/AQMB0QH6Af8BAwHQAfoB/wEDAcsB8wH/AQMBywHzAf8BAwHQ
AfoB/wEDAdEB+gH/AQMB0QH6Af8BXQJhAeIDOgFiAz0BaQMUARwDUQGiA1YBtgMqAUAEAAMQARUDEQEX
AxEBFwMRARcDEQEXAxEBFwMRARcDEQEXAxEBFwMRARcDEAEWCAADUgGpAzQBVQM0AVUDMwFTA1IBpgNK
AYwHAAEBA0cBgwgAAzQBVQM0AVUDUgGpEwAB/wOZAf8DhQH/AwAB/wMAAf8DAAH/AwAB/wNcAd8DFwEg
GAADBwEKAVkCZwHyAQUB0gH7Af8BBQHSAfsB/wEFAdIB+wH/AQUB0gH7Af8BBQHSAfsB/wEFAdIB+wH/
AQUB0gH7Af8BBQHSAfsB/wErAYMBiwH7AxEBFwsAAf8DAAH/A0MBdwMpAT4DAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMyAVEEAANSAakDNAFVAzQBVQMRARcDUAGeAyQBNhQA
AzQBVQM0AVUDUgGpEAADUAH7AwAB/wMAAf8DAAH/AwAB/wMAAf8DXAHfAxcBIBwAATACMQFNAQYB0gH8
Af8BBgHSAfwB/wFZAmAB6wFbAl4B2QEGAdIB/AH/AQYB0gH8Af8BWwJhAeEBXQJhAeIBBgHSAfwB/wEG
AdIB/AH/AzgBXggAA1UBtANZAccDLwFJAwABAQMbASYDHAEnAxwBJwMcAScDHAEnAxwBJwMcAScDHAEn
AxwBJwMcAScDHAEnAwIBAwQAA1IBqQMiATIDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNS
AakDUgGpAyIBMgNSAakQAAMgAS4DKQE/AykBPwMpAT8DKQE/AykBPwMRARcgAAMFAQcDTAGSAVYCWAHB
AxUBHQM9AWkBBwHTAfwB/wEHAdMB/AH/AUUCRgF/AxABFQNWAbMBSwJMAY8DBAEGTAADUAGjA1IBqQNS
AakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1ABo1wAAxUBHQFCAVoBYgH1
AVEBbQF0AfcDIAEvGAABQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD/4EAAv8BgAEB
Av8B/AEBAgABvwH9AeABBwHAAwABoAEdAeABBwHAAQABEAEBAaEB/QHgAQcBwAEAAR8B/wG/Af0B4AEH
BAABgAEBAeABBwQAAY8B8QHgAQcBAwEAAR8B/wGAAQEB4AEHAQMBAAEfAf8BgwHBAeABBwEDAcACAAGA
AUEB4AEHAQMBwAIAAYgBEQHgAQcCAAEfAf8BgQERAeABBwIAARABAQGBATEB4AEPAcABAwIAAYEB8QHg
AR8BwAEDAgABgAEBAeABPwHAAQMC/wGAAQEC/wH8AT8L
AakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1ABo1wAAxUBHQFCAlkB9QFR
Am0B9wNDAXcDWwHIAkIBWQH1AlgBXwHjA0oBjAMKAQ0EAANVAbQDWQHHAy8BSQMAAQEDGwEmAxwBJwMc
AScDHAEnAxwBJwMcAScDHAEnAxwBJwMcAScDHAEnAxwBJwMCAQMEAANSAakwAANSAakQAAMnAToDMAFM
AzABTAMwAUwDMAFMAzABTAMwAUwDMAFMAzABTAMnAToUAAMFAQcDTAGSAVYCWAHBAxUBHQM9AWkBAAHI
AfMB/wEAAZAB5gH/AhYB3AH/AhYB3QH/AksB4wH/AiEB3gH/AhYB3QH/AlgBWwHLAwYBCAMAAf8DAAH/
A0MBdwMpAT4DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMyAVEEAANS
AakEAANQAZ0DUwGqA1MBqgNTAaoDUwGqA1MBqgNTAaoDUAGdDAADUgGpEAADTgH7AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wMAAf8DTgH7FAABMAIxAU0BAAHJAfMB/wEAAckB9AH/AVkCYAHrAVsCXgHZ
AQABwAHxAf8BFwEfAd8B/wIZAeAB/wIZAeAB/wJSAekB/wIkAeIB/wIZAeAB/wIZAeAB/wNAAXEDUQGi
A1YBtgMqAUAEAAMQARUDEQEXAxEBFwMRARcDEQEXAxEBFwMRARcDEQEXAxEBFwMRARcDEAEWCAADUgGp
BAADUAGdA1MBqgNTAaoDHwEsHAADUgGpEwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/xQAAwcBCgFZAmcB8gEAAcoB9AH/AQABygH0Af8BAAHKAfQB/wEBAaEB7gH/AhwB4wH/AhwB4wH/
AhwB4wH/AqkB7wH/AiMB4wH/AhwB4wH/AhwB4wH/AlYBWAG5AwoBDgMRARcDAAEBOAADUgGpMAADUgGp
EwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wwAAxUBHQM9AWkDOgFiAVwCYAHU
AQABywH1Af8BAAHLAfUB/wEAAcsB9QH/AQQBoAHwAf8CHwHmAf8CHwHmAf8CHwHmAf8CwgH2Af8CNwHo
Af8CHwHmAf8CHwHmAf8CVwFZAb8DUgH0AwAB/wM+AWwDDgETA0IBdgNDAXcDQwF3A0MBdwNDAXcDQwF3
A0MBdwNDAXcDQwF3A0MBdwNCAXYDFAEbBAADUgGpAyIBMgNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNS
AakDUgGpA1IBqQNSAakDIgEyA1IBqRMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8MAAFLAkwBkAEAAcsB9gH/AQABywH2Af8BAAHLAfYB/wEAAcsB9gH/ASkBbgF2AfoDQwF4AyIBMgJL
AYQB+wIiAekB/wIiAekB/wLNAfgB/wJGAe0B/wIiAekB/wIiAekB/wNQAZ4DAAH+AwAB/wNDAXcDHgEr
A1cBxQNZAccDWQHHA1kBxwNZAccDWQHHA1kBxwNZAccDWQHHA1kBxwNYAcYDJgE5BAADUgGpAzQBVQM0
AVUgAAM0AVUDNAFVA1IBqRMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8MAANR
AaABAAHMAfcB/wEAAcwB9wH/AQABzAH3Af8BAAHMAfcB/wNDAXcIAANKAY0CJQHsAf8CJQHsAf8CQQHv
Af8CKQHsAf8CJQHsAf8BIQEyAe0B/wFSAlMBqAMzAVMDPAFnAxQBHDgAA1IBqQM0AVUDNAFVA0YBgANS
AakDUgGpA1IBqQNSAakDUgGpA1IBqQNFAX8DNAFVAzQBVQNSAakTAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/DwABAQE/AkABbwE+AWsBcQH4AQABzQH3Af8BAAHNAfcB/wMSARgIAAMB
AQIDRgF+AlIBXQHwAigB7gH/ASgBKQHuAf8CQAGoAf0BRQJGAX4DAwEEAzMBUwM8AWcDFAEcOAADUgGp
AzQBVQM0AVUDPwFuAzIBUBAAAycBOwNEAXwDNAFVAzQBVQNSAakTAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/DwABAQE/AkABbwE+AWsBcQH4AQABzgH4Af8BAAHOAfgB/wMSARgQAAMX
ASABAgG8AfcB/wEAAcQB9wH/AUABqAGpAf0BRQJGAX4DAwEEAwAB/gMAAf8DQwF3Ax8BLANXAcUDWQHH
A1kBxwNZAccDWQHHA1kBxwNZAccDWQHHA1kBxwNZAccDWAHGAyYBOQQAA1IBqQM0AVUDNAFVAwUBBwNV
AbUDEQEXA1IBqQMpAT4EAANQAZ8DEQEXAzQBVQM0AVUDUgGpEwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wwAA1EBoAEAAc4B+AH/AQABzwH5Af8BAAHPAfkB/wEAAc8B+QH/A0MBdxAA
A0QBegEAAc8B+QH/AQABzwH5Af8BAAHPAfkB/wEAAc4B+AH/AVICUwGoA1IB9AMAAf8DPgFsAw4BEwNC
AXUDQwF3A0MBdwNDAXcDQwF3A0MBdwNDAXcDQwF3A0MBdwNDAXcDQwF3AxQBGwQAA1IBqQM0AVUDNAFV
BAADPAFoA1YBvgMjATQDVQG1AxIBGQNRAaAEAAM0AVUDNAFVA1IBqRMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wNcAd8MAAFLAkwBkAEAAdAB+gH/AQAB0AH6Af8BAAHQAfoB/wEAAdAB+gH/
ASkBbgF2AfoDQwF4AxIBGQMTARoDRAF6ASgBfAGHAfsBAAHQAfoB/wEAAdAB+gH/AQAB0AH6Af8BAAHQ
AfoB/wNKAYwDCgEOAxEBFwMAAQE4AANSAakDNAFVAzQBVQMAAQEDLQFGAwoBDgQAAzkBXwNcAc4DKAE8
BAADNAFVAzQBVQNSAakTAAH/A4IB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNcAd8DFwEgDAADFQEd
Az0BaQM6AWIBXAJgAdQBAAHRAfoB/wEAAdEB+gH/AQAB0AH6Af8BAAHLAfMB/wEAAcsB8wH/AQAB0AH6
Af8BAAHRAfoB/wEAAdEB+gH/AV0CYQHiAzoBYgM9AWkDFAEcA1EBogNWAbYDKgFABAADEAEVAxEBFwMR
ARcDEQEXAxEBFwMRARcDEQEXAxEBFwMRARcDEQEXAxABFggAA1IBqQM0AVUDNAFVAzMBUwNSAaYDSgGM
BwABAQNHAYMIAAM0AVUDNAFVA1IBqRMAAf8DmQH/A4UB/wMAAf8DAAH/AwAB/wMAAf8DXAHfAxcBIBgA
AwcBCgFZAmcB8gEBAdIB+wH/AQEB0gH7Af8BAQHSAfsB/wEBAdIB+wH/AQEB0gH7Af8BAQHSAfsB/wEB
AdIB+wH/AQEB0gH7Af8BKwF/AYcB+wMRARcLAAH/AwAB/wNDAXcDKQE+AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DMgFRBAADUgGpAzQBVQM0AVUDEQEXA1ABngMkATYUAAM0
AVUDNAFVA1IBqRAAA1AB+wMAAf8DAAH/AwAB/wMAAf8DAAH/A1wB3wMXASAcAAEwAjEBTQECAdIB/AH/
AQIB0gH8Af8BWQJgAesBWwJeAdkBAgHSAfwB/wECAdIB/AH/AVsCYQHhAV0CYQHiAQIB0gH8Af8BAgHS
AfwB/wM4AV4IAANVAbQDWQHHAy8BSQMAAQEDGwEmAxwBJwMcAScDHAEnAxwBJwMcAScDHAEnAxwBJwMc
AScDHAEnAxwBJwMCAQMEAANSAakDIgEyA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGp
A1IBqQMiATIDUgGpEAADIAEuAykBPwMpAT8DKQE/AykBPwMpAT8DEQEXIAADBQEHA0wBkgFWAlgBwQMV
AR0DPQFpAQMB0wH8Af8BAwHTAfwB/wFFAkYBfwMQARUDVgGzAUsCTAGPAwQBBkwAA1ABowNSAakDUgGp
A1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNQAaNcAAMVAR0BQgFZAVoB9QFR
Am0B9wMgAS8YAAFCAU0BPgcAAT4DAAEoAwABQAMAASADAAEBAQABAQYAAQEWAAP/gQAC/wGAAQEC/wH8
AQECAAG/Af0B4AEHAcADAAGgAR0B4AEHAcABAAEQAQEBoQH9AeABBwHAAQABHwH/Ab8B/QHgAQcEAAGA
AQEB4AEHBAABjwHxAeABBwEDAQABHwH/AYABAQHgAQcBAwEAAR8B/wGDAcEB4AEHAQMBwAIAAYABQQHg
AQcBAwHAAgABiAERAeABBwIAAR8B/wGBAREB4AEHAgABEAEBAYEBMQHgAQ8BwAEDAgABgQHxAeABHwHA
AQMCAAGAAQEB4AE/AcABAwL/AYABAQL/AfwBPws=
</value>
</data>
<metadata name="tsGCode.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>551, 17</value>
</metadata>
<metadata name="tsIssues.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>765, 17</value>
</metadata>
<metadata name="toolTipInformation.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>863, 17</value>
</metadata>
<metadata name="toolTipInformation.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>863, 17</value>
</metadata>
Binary file not shown.

After

Width:  |  Height:  |  Size: 268 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

+2 -2
View File
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.6.0.2")]
[assembly: AssemblyFileVersion("0.6.0.2")]
[assembly: AssemblyVersion("0.6.1.0")]
[assembly: AssemblyFileVersion("0.6.1.0")]
+20
View File
@@ -480,6 +480,16 @@ namespace UVtools.GUI.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap pattern_16x16 {
get {
object obj = ResourceManager.GetObject("pattern-16x16", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
@@ -520,6 +530,16 @@ namespace UVtools.GUI.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap resize_16x16 {
get {
object obj = ResourceManager.GetObject("resize-16x16", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
+20 -14
View File
@@ -118,12 +118,12 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="SaveAs-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\SaveAs-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Error-128x128" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Error-128x128.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="search-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\search-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Cancel-24x24" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Cancel-24x24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -169,6 +169,9 @@
<data name="Wrench-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Wrench-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="pattern-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\pattern-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow-down-double-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\arrow-down-double-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -187,9 +190,6 @@
<data name="Button-Info-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Button-Info-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow-down-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\arrow-down-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Next-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Next-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -208,8 +208,8 @@
<data name="File-Close-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\File-Close-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="SaveAs-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\SaveAs-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="search-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\search-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Cancel-32x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Cancel-32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -217,11 +217,14 @@
<data name="eye-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\eye-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="mutation_tophat" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\gui\mutation_tophat.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Geometry-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Geometry-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="mutation_tophat" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\gui\mutation_tophat.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="CNCMachine-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\CNCMachine-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="plus" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\plus.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -235,6 +238,9 @@
<data name="mutation_dilation" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\gui\mutation_dilation.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="settings-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\settings-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="mutation_gradient" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\gui\mutation_gradient.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -250,8 +256,8 @@
<data name="checkbox-unmarked-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\checkbox-unmarked-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="CNCMachine-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\CNCMachine-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="arrow-down-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\arrow-down-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="delete-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\delete-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -277,7 +283,7 @@
<data name="island-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\island-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="settings-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\settings-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="resize-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\resize-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>
+12
View File
@@ -442,5 +442,17 @@ namespace UVtools.GUI.Properties {
this["IslandBinaryThreshold"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public byte DefaultOpenFileExtension {
get {
return ((byte)(this["DefaultOpenFileExtension"]));
}
set {
this["DefaultOpenFileExtension"] = value;
}
}
}
}
+3
View File
@@ -107,5 +107,8 @@
<Setting Name="IslandBinaryThreshold" Type="System.Byte" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="DefaultOpenFileExtension" Type="System.Byte" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
</Settings>
</SettingsFile>
+20
View File
@@ -132,6 +132,12 @@
<Compile Include="Forms\FrmInstallPEProfiles.Designer.cs">
<DependentUpon>FrmInstallPEProfiles.cs</DependentUpon>
</Compile>
<Compile Include="Forms\FrmToolPattern.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\FrmToolPattern.Designer.cs">
<DependentUpon>FrmToolPattern.cs</DependentUpon>
</Compile>
<Compile Include="Forms\FrmMutationOneNumericalInput.cs">
<SubType>Form</SubType>
</Compile>
@@ -144,6 +150,12 @@
<Compile Include="Forms\FrmMutationOneComoboBox.Designer.cs">
<DependentUpon>FrmMutationOneComoboBox.cs</DependentUpon>
</Compile>
<Compile Include="Forms\FrmMutationMove.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\FrmMutationMove.Designer.cs">
<DependentUpon>FrmMutationMove.cs</DependentUpon>
</Compile>
<Compile Include="Forms\FrmMutationResize.cs">
<SubType>Form</SubType>
</Compile>
@@ -202,12 +214,18 @@
<EmbeddedResource Include="Forms\FrmInstallPEProfiles.resx">
<DependentUpon>FrmInstallPEProfiles.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FrmToolPattern.resx">
<DependentUpon>FrmToolPattern.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FrmMutationOneNumericalInput.resx">
<DependentUpon>FrmMutationOneNumericalInput.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FrmMutationOneComoboBox.resx">
<DependentUpon>FrmMutationOneComoboBox.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FrmMutationMove.resx">
<DependentUpon>FrmMutationMove.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FrmMutationResize.resx">
<DependentUpon>FrmMutationResize.cs</DependentUpon>
</EmbeddedResource>
@@ -274,6 +292,8 @@
<None Include="Images\file-image-16x16.png" />
<None Include="Images\clipboard-16x16.png" />
<None Include="Images\settings-16x16.png" />
<None Include="Images\pattern-16x16.png" />
<None Include="Images\resize-16x16.png" />
<Content Include="UVtools.ico" />
<None Include="UVtools.png" />
<None Include="Images\Exit-16x16.png" />