Example #1
0
            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;
                    }
                }
            }
Example #2
0
            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;
            }
Example #3
0
        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;
            }
        }
Example #4
0
        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;
            }
        }