/// <summary> /// ユニットツリービューのユニット/師団以外のノード選択時の処理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnOtherAfterSelect(object sender, TreeViewEventArgs e) { UnitTreeViewEventArgs args = new UnitTreeViewEventArgs(e); switch ((NodeType)e.Node.Tag) { case NodeType.Land: case NodeType.Naval: case NodeType.Air: args.CanAddUnit = true; break; case NodeType.Boarding: args.Unit = e.Node.Parent.Tag as Unit; args.CanAddUnit = true; break; case NodeType.UndeployedLand: case NodeType.UndeployedNaval: case NodeType.UndeployedAir: args.CanAddDivision = true; break; } AfterSelect?.Invoke(sender, args); }
/// <summary> /// ユニットツリービューのユニットノード選択時の処理 /// </summary> /// <param name="unit">ユニット</param> /// <param name="sender"></param> /// <param name="e"></param> private void OnUnitAfterSelect(Unit unit, object sender, TreeViewEventArgs e) { int index = e.Node.Parent.Nodes.IndexOf(e.Node); int bottom = e.Node.Parent.Nodes.Count - 1; UnitTreeViewEventArgs args = new UnitTreeViewEventArgs(e) { Unit = unit, CanAddUnit = true, CanAddDivision = true, IsTop = index == 0, IsBottom = index == bottom }; AfterSelect?.Invoke(sender, args); }
/// <summary> /// ユニットツリービューの師団ノード選択時の処理 /// </summary> /// <param name="division">師団</param> /// <param name="sender"></param> /// <param name="e"></param> private void OnDivisionAfterSelect(Division division, object sender, TreeViewEventArgs e) { int index = e.Node.Parent.Nodes.IndexOf(e.Node); int bottom = e.Node.Parent.Nodes.Count - 1; // 搭載ユニットの分-1する if (division.Branch == Branch.Navy || division.Branch == Branch.Airforce) { bottom--; } UnitTreeViewEventArgs args = new UnitTreeViewEventArgs(e) { Division = division, Unit = e.Node.Parent.Tag as Unit, CanAddDivision = true, IsTop = index <= 0, IsBottom = index >= bottom }; AfterSelect?.Invoke(sender, args); }