public override void SetObjectValue(NSOutlineView outlineView, NSObject theObject, NSTableColumn tableColumn, NSObject item) { var myitem = item as EtoTreeItem; if (myitem != null) { var args = new TreeViewItemEditEventArgs(myitem.Item, (string)(NSString)theObject); Handler.Callback.OnLabelEdited(Handler.Widget, args); if (!args.Cancel) { myitem.Item.Text = args.Label; } } }
void HandleLabelEdited(object sender, sw.RoutedEventArgs e) { var args = new TreeViewItemEditEventArgs(DataContext as ITreeItem, text); Handler.Callback.OnLabelEdited(Handler.Widget, args); if (!args.Cancel) { var item = DataContext as ITreeItem; if (item != null) { item.Text = text; } } OnPropertyChanged("Text"); e.Handled = args.Cancel; }
public override void AttachEvent(string id) { switch (id) { case TreeView.ExpandingEvent: Control.BeforeExpand += (sender, e) => { if (ignoreExpandCollapseEvents) { return; } var item = e.Node.Tag as ITreeItem; if (!item.Expanded) { var args = new TreeViewItemCancelEventArgs(item); Callback.OnExpanding(Widget, args); e.Cancel = args.Cancel; } }; break; case TreeView.ExpandedEvent: Control.AfterExpand += (sender, e) => { if (ignoreExpandCollapseEvents) { return; } var item = e.Node.Tag as ITreeItem; if (!item.Expanded) { item.Expanded = true; Callback.OnExpanded(Widget, new TreeViewItemEventArgs(item)); } }; break; case TreeView.CollapsingEvent: Control.BeforeCollapse += (sender, e) => { if (ignoreExpandCollapseEvents) { return; } var item = e.Node.Tag as ITreeItem; if (item.Expanded) { var args = new TreeViewItemCancelEventArgs(item); Callback.OnCollapsing(Widget, args); e.Cancel = args.Cancel; } }; break; case TreeView.CollapsedEvent: Control.AfterCollapse += (sender, e) => { if (ignoreExpandCollapseEvents) { return; } var item = e.Node.Tag as ITreeItem; if (item.Expanded) { item.Expanded = false; Callback.OnCollapsed(Widget, new TreeViewItemEventArgs(item)); } }; break; case TreeView.ActivatedEvent: Control.KeyDown += (sender, e) => { if (SelectedItem != null) { if (e.KeyData == swf.Keys.Return) { Callback.OnActivated(Widget, new TreeViewItemEventArgs(SelectedItem)); e.Handled = e.SuppressKeyPress = true; if (LabelEdit) { Control.SelectedNode.BeginEdit(); } } else if (e.KeyData == swf.Keys.F2 && LabelEdit) { Control.SelectedNode.BeginEdit(); } } }; Control.NodeMouseDoubleClick += (sender, e) => { if (e.Button == swf.MouseButtons.Left && SelectedItem != null) { if (LabelEdit) { Control.SelectedNode.BeginEdit(); } else { Callback.OnActivated(Widget, new TreeViewItemEventArgs(SelectedItem)); } } }; break; case TreeView.LabelEditedEvent: Control.AfterLabelEdit += (s, e) => { var item = e.Node.Tag as ITreeItem; if (item == null) { return; } // when e.Label is null the user cancelled, so set as the same value. var newValue = e.Label != null ? e.Label : item.Text; var args = new TreeViewItemEditEventArgs(item, newValue); Callback.OnLabelEdited(Widget, args); if (!args.Cancel) { args.Item.Text = newValue; } e.CancelEdit = args.Cancel; }; break; case TreeView.LabelEditingEvent: Control.BeforeLabelEdit += (s, e) => { var args = new TreeViewItemCancelEventArgs(e.Node.Tag as ITreeItem); Callback.OnLabelEditing(Widget, args); e.CancelEdit = args.Cancel; }; break; case TreeView.NodeMouseClickEvent: Control.NodeMouseClick += (s, e) => Callback.OnNodeMouseClick(Widget, new TreeViewItemEventArgs(e.Node.Tag as ITreeItem)); break; case TreeView.SelectionChangedEvent: Control.AfterSelect += (sender, e) => Callback.OnSelectionChanged(Widget, EventArgs.Empty); break; default: base.AttachEvent(id); break; } }
public override void AttachEvent(string id) { switch (id) { case TreeView.ExpandingEvent: Control.BeforeExpand += (sender, e) => { if (ignoreExpandCollapseEvents) { return; } var item = e.Node.Tag as ITreeItem; if (!item.Expanded) { var args = new TreeViewItemCancelEventArgs(item); Widget.OnExpanding(args); e.Cancel = args.Cancel; } }; break; case TreeView.ExpandedEvent: Control.AfterExpand += (sender, e) => { if (ignoreExpandCollapseEvents) { return; } var item = e.Node.Tag as ITreeItem; if (!item.Expanded) { item.Expanded = true; Widget.OnExpanded(new TreeViewItemEventArgs(item)); } }; break; case TreeView.CollapsingEvent: Control.BeforeCollapse += (sender, e) => { if (ignoreExpandCollapseEvents) { return; } var item = e.Node.Tag as ITreeItem; if (item.Expanded) { var args = new TreeViewItemCancelEventArgs(item); Widget.OnCollapsing(args); e.Cancel = args.Cancel; } }; break; case TreeView.CollapsedEvent: Control.AfterCollapse += (sender, e) => { if (ignoreExpandCollapseEvents) { return; } var item = e.Node.Tag as ITreeItem; if (item.Expanded) { item.Expanded = false; Widget.OnCollapsed(new TreeViewItemEventArgs(item)); } }; break; case TreeView.ActivatedEvent: Control.KeyDown += (sender, e) => { if (SelectedItem != null) { if (e.KeyData == swf.Keys.Return) { Widget.OnActivated(new TreeViewItemEventArgs(SelectedItem)); e.Handled = true; if (LabelEdit) { Control.SelectedNode.BeginEdit(); } } else if (e.KeyData == swf.Keys.F2 && LabelEdit) { Control.SelectedNode.BeginEdit(); } } }; Control.NodeMouseDoubleClick += (sender, e) => { if (e.Button == swf.MouseButtons.Left && SelectedItem != null) { if (LabelEdit) { Control.SelectedNode.BeginEdit(); } else { Widget.OnActivated(new TreeViewItemEventArgs(SelectedItem)); } } }; break; case TreeView.LabelEditedEvent: Control.AfterLabelEdit += (s, e) => { var args = new TreeViewItemEditEventArgs(e.Node.Tag as ITreeItem, e.Label); Widget.OnLabelEdited(args); if (!args.Cancel) { args.Item.Text = e.Label; } e.CancelEdit = args.Cancel; }; break; case TreeView.LabelEditingEvent: Control.BeforeLabelEdit += (s, e) => { var args = new TreeViewItemCancelEventArgs(e.Node.Tag as ITreeItem); Widget.OnLabelEditing(args); e.CancelEdit = args.Cancel; }; break; case TreeView.NodeMouseClickEvent: Control.NodeMouseClick += (s, e) => Widget.OnNodeMouseClick(new TreeViewItemEventArgs(e.Node.Tag as ITreeItem)); break; case TreeView.SelectionChangedEvent: Control.AfterSelect += (sender, e) => Widget.OnSelectionChanged(EventArgs.Empty); break; default: base.AttachEvent(id); break; } }