feat: add 'Add Bend Line' toggle and pick mode UI to FilterPanel
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -19,6 +19,7 @@ namespace OpenNest.Controls
|
|||||||
private readonly CheckedListBox colorsList;
|
private readonly CheckedListBox colorsList;
|
||||||
private readonly CheckedListBox lineTypesList;
|
private readonly CheckedListBox lineTypesList;
|
||||||
private readonly ListBox bendLinesList;
|
private readonly ListBox bendLinesList;
|
||||||
|
private readonly LinkLabel bendAddLink;
|
||||||
|
|
||||||
private List<Entity> currentEntities;
|
private List<Entity> currentEntities;
|
||||||
private List<Bend> currentBends;
|
private List<Bend> currentBends;
|
||||||
@@ -26,6 +27,7 @@ namespace OpenNest.Controls
|
|||||||
public event EventHandler FilterChanged;
|
public event EventHandler FilterChanged;
|
||||||
public event EventHandler<int> BendLineSelected;
|
public event EventHandler<int> BendLineSelected;
|
||||||
public event EventHandler<int> BendLineRemoved;
|
public event EventHandler<int> BendLineRemoved;
|
||||||
|
public event EventHandler AddBendLineClicked;
|
||||||
|
|
||||||
public FilterPanel()
|
public FilterPanel()
|
||||||
{
|
{
|
||||||
@@ -51,9 +53,8 @@ namespace OpenNest.Controls
|
|||||||
|
|
||||||
var bendDeleteLink = new LinkLabel
|
var bendDeleteLink = new LinkLabel
|
||||||
{
|
{
|
||||||
Text = "Remove Selected",
|
Text = "Remove",
|
||||||
Dock = DockStyle.Bottom,
|
AutoSize = true,
|
||||||
Height = 20,
|
|
||||||
Font = new Font("Segoe UI", 8f)
|
Font = new Font("Segoe UI", 8f)
|
||||||
};
|
};
|
||||||
bendDeleteLink.LinkClicked += (s, e) =>
|
bendDeleteLink.LinkClicked += (s, e) =>
|
||||||
@@ -62,8 +63,27 @@ namespace OpenNest.Controls
|
|||||||
BendLineRemoved?.Invoke(this, bendLinesList.SelectedIndex);
|
BendLineRemoved?.Invoke(this, bendLinesList.SelectedIndex);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bendAddLink = new LinkLabel
|
||||||
|
{
|
||||||
|
Text = "Add Bend Line",
|
||||||
|
AutoSize = true,
|
||||||
|
Font = new Font("Segoe UI", 8f)
|
||||||
|
};
|
||||||
|
bendAddLink.LinkClicked += (s, e) =>
|
||||||
|
AddBendLineClicked?.Invoke(this, EventArgs.Empty);
|
||||||
|
|
||||||
|
var bendLinksPanel = new FlowLayoutPanel
|
||||||
|
{
|
||||||
|
Dock = DockStyle.Bottom,
|
||||||
|
Height = 20,
|
||||||
|
FlowDirection = FlowDirection.LeftToRight,
|
||||||
|
WrapContents = false
|
||||||
|
};
|
||||||
|
bendLinksPanel.Controls.Add(bendAddLink);
|
||||||
|
bendLinksPanel.Controls.Add(bendDeleteLink);
|
||||||
|
|
||||||
bendLinesPanel.ContentPanel.Controls.Add(bendLinesList);
|
bendLinesPanel.ContentPanel.Controls.Add(bendLinesList);
|
||||||
bendLinesPanel.ContentPanel.Controls.Add(bendDeleteLink);
|
bendLinesPanel.ContentPanel.Controls.Add(bendLinksPanel);
|
||||||
|
|
||||||
// Line Types
|
// Line Types
|
||||||
lineTypesPanel = new CollapsiblePanel
|
lineTypesPanel = new CollapsiblePanel
|
||||||
@@ -237,6 +257,12 @@ namespace OpenNest.Controls
|
|||||||
|
|
||||||
e.DrawFocusRectangle();
|
e.DrawFocusRectangle();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SetPickMode(bool active)
|
||||||
|
{
|
||||||
|
bendAddLink.Text = active ? "Cancel (Esc)" : "Add Bend Line";
|
||||||
|
bendAddLink.LinkColor = active ? Color.OrangeRed : Color.Empty;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ColorItem
|
public class ColorItem
|
||||||
|
|||||||
Reference in New Issue
Block a user