-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMainForm.cs
85 lines (75 loc) · 2.41 KB
/
MainForm.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
namespace controlpose;
public partial class MainForm : Form
{
public ProjectData project;
bool selectionChanging = false;
public MainForm()
{
project = new ProjectData();
InitializeComponent();
}
public void RenderImage(object sender, System.EventArgs e)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "PNG Image|*.png";
saveFileDialog.Title = "Save an Image";
saveFileDialog.ShowDialog();
if (saveFileDialog.FileName != "")
{
Renderer renderer = new Renderer(project.canvasWidth, project.canvasHeight);
renderer.DrawFigure(project.figure);
renderer.Save(saveFileDialog.FileName);
}
}
public void UpdateListVisibility(object sender, Figure figure)
{
for (int i = 0; i < figure.points.Length; i++)
{
lvPoints.Items[i].Checked = figure.points[i].enabled;
}
}
public void UpdateListSelection(object sender, FigureMetadata metadata)
{
selectionChanging = true;
for (int i = 0; i < metadata.points.Length; i++)
{
lvPoints.Items[i].Selected = metadata.points[i].selected;
}
lvPoints.Select();
selectionChanging = false;
}
public void UpdateCanvasVisibility(object sender, System.Windows.Forms.ItemCheckedEventArgs e)
{
bool selectionChanged = false;
for (int i = 0; i < project.figure.points.Length; i++)
{
if (!lvPoints.Items[i].Checked && pcCanvas.metadata.points[i].selected)
{
selectionChanged = true;
pcCanvas.metadata.points[i].selected = false;
}
project.figure.points[i].enabled = lvPoints.Items[i].Checked;
}
if (selectionChanged)
{
UpdateListSelection(this, pcCanvas.metadata);
}
pcCanvas.Invalidate();
}
public void UpdateCanvasSelection(object sender, System.EventArgs e)
{
if (selectionChanging)
{
return;
}
for (int i = 0; i < pcCanvas.metadata.points.Length; i++)
{
if (!project.figure.points[i].enabled)
{
lvPoints.Items[i].Selected = false;
}
pcCanvas.metadata.points[i].selected = lvPoints.Items[i].Selected;
}
pcCanvas.Invalidate();
}
}