Skip to content

Commit 24d3a04

Browse files
committed
FocusElement now calls a FocusChanged event (suggested by Zyxil)
1 parent 75097c6 commit 24d3a04

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

Graph/GraphControl.cs

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public GraphControl()
4343
}
4444
#endregion
4545

46+
public event EventHandler<ElementEventArgs> FocusChanged;
4647
public event EventHandler<AcceptNodeEventArgs> NodeAdded;
4748
public event EventHandler<AcceptNodeEventArgs> NodeRemoved;
4849
public event EventHandler<AcceptNodeConnectionEventArgs> ConnectionAdded;
@@ -99,6 +100,11 @@ public IElement FocusElement
99100
internalFocusElement = value;
100101
if (internalFocusElement != null)
101102
SetFlag(internalFocusElement, RenderState.Focus, true, false);
103+
104+
if (FocusChanged != null)
105+
FocusChanged(this, new ElementEventArgs(value));
106+
107+
this.Invalidate();
102108
}
103109
}
104110
#endregion
@@ -459,6 +465,7 @@ public bool AddNodes(IEnumerable<Node> nodes)
459465
{
460466
BringElementToFront(lastNode);
461467
FocusElement = lastNode;
468+
this.Invalidate();
462469
}
463470
return modified;
464471
}
@@ -512,6 +519,8 @@ public bool RemoveNodes(IEnumerable<Node> nodes)
512519
graphNodes.Remove(node);
513520
modified = true;
514521
}
522+
if (modified)
523+
this.Invalidate();
515524
return modified;
516525
}
517526
#endregion
@@ -593,6 +602,8 @@ public bool Disconnect(NodeConnection connection)
593602
// Just in case somebody stored it somewhere ..
594603
connection.From = null;
595604
connection.To = null;
605+
606+
this.Invalidate();
596607
return true;
597608
}
598609
#endregion
@@ -1361,18 +1372,15 @@ protected override void OnMouseUp(MouseEventArgs e)
13611372
switch (command)
13621373
{
13631374
case CommandMode.MarqueSelection:
1364-
needRedraw = true;
1365-
13661375
if (abortDrag)
13671376
{
13681377
foreach (var node in selectedNodes)
13691378
SetFlag(node, RenderState.Focus, false, false);
13701379

13711380
foreach (var node in unselectedNodes)
13721381
SetFlag(node, RenderState.Focus, true, false);
1373-
}
1374-
1375-
if (!abortDrag)
1382+
1383+
} else
13761384
{
13771385
NodeSelection selection = null;
13781386
if (graphNodes.Count > 0)
@@ -1386,6 +1394,7 @@ protected override void OnMouseUp(MouseEventArgs e)
13861394
}
13871395
FocusElement = selection;
13881396
}
1397+
this.Invalidate();
13891398
return;
13901399
case CommandMode.ScaleView:
13911400
return;

Graph/Node.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,12 @@ public sealed class NodeEventArgs : EventArgs
3636
public Node Node { get; private set; }
3737
}
3838

39+
public sealed class ElementEventArgs : EventArgs
40+
{
41+
public ElementEventArgs(IElement element) { Element = element; }
42+
public IElement Element { get; private set; }
43+
}
44+
3945
public sealed class AcceptNodeEventArgs : CancelEventArgs
4046
{
4147
public AcceptNodeEventArgs(Node node) { Node = node; }

0 commit comments

Comments
 (0)