forked from Violet-CLM/MLLE
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLayerOrderForm.cs
More file actions
123 lines (110 loc) · 3.98 KB
/
Copy pathLayerOrderForm.cs
File metadata and controls
123 lines (110 loc) · 3.98 KB
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace MLLE
{
public partial class LayerOrderForm : Form
{
Mainframe SourceForm;
List<Layer> SourceList;
bool ChangesMade = false, ExistingLayerEdited = false;
public LayerOrderForm()
{
InitializeComponent();
}
internal bool ShowForm(Mainframe source, List<Layer> layers)
{
SourceForm = source;
SourceList = layers;
listBox1.Items.AddRange(SourceList.ToArray());
ShowDialog();
return ChangesMade || ExistingLayerEdited;
}
private void ButtonOK_Click(object sender, EventArgs e)
{
if (ChangesMade)
{
SourceList.Clear();
Layer[] copyLayers = new Layer[listBox1.Items.Count];
listBox1.Items.CopyTo(copyLayers, 0);
SourceList.AddRange(copyLayers);
}
Close();
}
private void ButtonCancel_Click(object sender, EventArgs e)
{
ChangesMade = false;
Close();
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
ButtonDelete.Enabled = (ButtonEdit.Enabled = ButtonClone.Enabled = listBox1.SelectedItem != null) && !(listBox1.SelectedItem as Layer).isDefault;
ButtonUp.Enabled = listBox1.SelectedIndex > 0;
ButtonDown.Enabled = listBox1.SelectedIndex >= 0 && listBox1.SelectedIndex < listBox1.Items.Count - 1;
}
private void ButtonAdd_Click(object sender, EventArgs e)
{
int index = Math.Max(listBox1.SelectedIndex, 0);
listBox1.Items.Insert(index, new Layer());
listBox1.SelectedIndex = index;
ChangesMade = true;
}
private void ButtonDelete_Click(object sender, EventArgs e)
{
Layer layerToDelete = listBox1.SelectedItem as Layer;
if (layerToDelete != null && !layerToDelete.isDefault)
{
listBox1.Items.Remove(layerToDelete);
ChangesMade = true;
}
}
private void ButtonEdit_Click(object sender, EventArgs e)
{
Layer layer = listBox1.SelectedItem as Layer;
if (layer != null)
{
new LayerPropertiesForm(SourceForm, layer, false).ShowDialog();
listBox1.Items[listBox1.SelectedIndex] = layer; //refresh ToString() in case the layer's name changed
ExistingLayerEdited = true; //possibly
}
}
private void ButtonUp_Click(object sender, EventArgs e)
{
Layer layer = listBox1.SelectedItem as Layer;
if (layer == null) return;
int newIndex = listBox1.SelectedIndex - 1;
if (newIndex < 0)
return;
listBox1.Items.Remove(layer);
listBox1.Items.Insert(newIndex, layer);
listBox1.SelectedIndex = newIndex;
ChangesMade = true;
}
private void ButtonClone_Click(object sender, EventArgs e)
{
Layer layer = listBox1.SelectedItem as Layer;
if (layer != null)
{
listBox1.Items.Insert(listBox1.SelectedIndex + 1, new Layer(layer));
ChangesMade = true;
}
}
private void ButtonDown_Click(object sender, EventArgs e)
{
Layer layer = listBox1.SelectedItem as Layer;
if (layer == null) return;
int newIndex = listBox1.SelectedIndex + 1;
if (newIndex > listBox1.Items.Count - 1)
return;
listBox1.Items.Remove(layer);
listBox1.Items.Insert(newIndex, layer);
listBox1.SelectedIndex = newIndex;
ChangesMade = true;
}
}
}