레이더 그래프에 5가지 상태창 추가

피봇 기능 추가
This commit is contained in:
2017-08-08 00:48:27 +09:00
parent 879b3abda4
commit 9be9aa439a
15 changed files with 766 additions and 153 deletions

View File

@@ -28,6 +28,11 @@ namespace friction
Theme.Apply(this);
Theme.Apply(lvSpring);
Theme.Apply(lvTable);
lvSpring.ListViewItemSorter = new ListViewItemCheckboxComparer();
lvSpring.ItemChecked += Listview_ItemChecked;
lvTable.ListViewItemSorter = new ListViewItemCheckboxComparer();
lvTable.ItemChecked += Listview_ItemChecked;
}
public void UpdateData(DataHandler data)
@@ -129,5 +134,68 @@ namespace friction
if (lvTable.SelectedIndices.Count == 1)
SelectTable(lvTable.SelectedIndices[0]);
}
private void Listview_ItemChecked(object sender, ItemCheckedEventArgs e)
{
ListView view = (ListView)sender;
if (view == lvTable && e.Item.Text == "All")
e.Item.Checked = true;
view.Sort();
}
private class ListViewItemCheckboxComparer : IComparer<ListViewItem>, System.Collections.IComparer
{
public int Compare(ListViewItem x, ListViewItem y)
{
if (x.Text == "All")
return -1;
else if (y.Text == "All")
return 1;
else if (x.Checked != y.Checked)
return -(x.Checked ? 1 : 0).CompareTo(y.Checked ? 1 : 0);
else
return x.Text.CompareTo(y.Text);
}
public int Compare(object x, object y)
{
return Compare(x as ListViewItem, y as ListViewItem);
}
}
}
public class NoDoubleClickAutoCheckListview : ListView
{
private bool checkFromDoubleClick = false;
protected override void OnItemCheck(ItemCheckEventArgs ice)
{
if (this.checkFromDoubleClick)
{
ice.NewValue = ice.CurrentValue;
this.checkFromDoubleClick = false;
}
else
base.OnItemCheck(ice);
}
protected override void OnMouseDown(MouseEventArgs e)
{
// Is this a double-click?
if ((e.Button == MouseButtons.Left) && (e.Clicks > 1))
{
this.checkFromDoubleClick = true;
}
base.OnMouseDown(e);
}
protected override void OnKeyDown(KeyEventArgs e)
{
this.checkFromDoubleClick = false;
base.OnKeyDown(e);
}
}
}