void TreeViewAfterLabelEdit(object sender, NodeLabelEditEventArgs e) { var label = e.Label; if (label != null && AfterLabelEdit != null) { // Fire the event AFTER tree node editing took place. Weired behaviour otherwise. // See http://www.codeproject.com/KB/tree/CustomizedLabelEdit.aspx and comments var doItLater = new DoItLater( delegate() { var args = new VVVV.Core.Viewer.LabelEditEventArgs(e.Node.Tag, label); AfterLabelEdit(this, args); if (args.CancelEdit) { e.Node.BeginEdit(); } else { FTreeView.SelectedNode = e.Node; } }); FTreeView.BeginInvoke(doItLater); } e.CancelEdit = true; }
void TreeViewBeforeLabelEdit(object sender, NodeLabelEditEventArgs e) { if (BeforeLabelEdit != null) { var args = new VVVV.Core.Viewer.LabelEditEventArgs(e.Node.Tag, e.Label); BeforeLabelEdit(this, args); e.CancelEdit = args.CancelEdit; } else { e.CancelEdit = true; } }
void LabelEditor_AfterLabelEdit(object sender, VVVV.Core.Viewer.LabelEditEventArgs args) { if (args.Model.Equals(Renameable)) { var label = args.Label; if (Renameable.CanRenameTo(label)) { var command = Command.Rename(Renameable, label); CommandHistory.Insert(command); LabelEditor.AfterLabelEdit -= LabelEditor_AfterLabelEdit; } else { args.CancelEdit = true; } } }
void LabelEditor_BeforeLabelEdit(object sender, VVVV.Core.Viewer.LabelEditEventArgs args) { args.CancelEdit = !args.Model.Equals(Renameable); }