コード例 #1
0
ファイル: NodeGraph.xaml.cs プロジェクト: Nielk1/NekoPuppet
        public void RegisterNodeType(string type, string Name, IControlNodeFactoryPlugin node)
        {
            string[] NodeMenuStrings = type.Split('/');
            MenuItem lastMenuItem = miCreateNode;
            for (int x = 0; x < NodeMenuStrings.Length; x++)
            {
                string MenuKey = string.Join("/", NodeMenuStrings.Take(x + 1).ToArray());

                if (!MenuItems.ContainsKey(MenuKey))
                {
                    MenuItems.Add(MenuKey, new MenuItem() { Header = NodeMenuStrings[x] });
                    lastMenuItem.Items.Add(MenuItems[MenuKey]);
                }
                lastMenuItem = MenuItems[MenuKey];
            }

            if (lastMenuItem == null) return;

            lastMenuItem.Items.Add(new MenuItem()
            {
                Header = Name,
                Command = new NodeCommandWrapper(p =>
                {
                    Point position = networkControl.PointFromScreen(cmMenu.PointToScreen(new Point(0, 0)));
                    NodeViewModel model = node.CreateNode();
                    model.X = position.X;
                    model.Y = position.Y;
                    if (model != null)
                        CreateNode(model, /*position,*/ true);
                })
            });
        }
コード例 #2
0
ファイル: NodeGraph.xaml.cs プロジェクト: nanika0/NekoPuppet
        public void RegisterNodeType(string type, string Name, IControlNodeFactoryPlugin node)
        {
            string[] NodeMenuStrings = type.Split('/');
            MenuItem lastMenuItem    = miCreateNode;

            for (int x = 0; x < NodeMenuStrings.Length; x++)
            {
                string MenuKey = string.Join("/", NodeMenuStrings.Take(x + 1).ToArray());

                if (!MenuItems.ContainsKey(MenuKey))
                {
                    MenuItems.Add(MenuKey, new MenuItem()
                    {
                        Header = NodeMenuStrings[x]
                    });
                    lastMenuItem.Items.Add(MenuItems[MenuKey]);
                }
                lastMenuItem = MenuItems[MenuKey];
            }

            if (lastMenuItem == null)
            {
                return;
            }

            lastMenuItem.Items.Add(new MenuItem()
            {
                Header  = Name,
                Command = new NodeCommandWrapper(p =>
                {
                    Point position      = networkControl.PointFromScreen(cmMenu.PointToScreen(new Point(0, 0)));
                    NodeViewModel model = node.CreateNode();
                    model.X             = position.X;
                    model.Y             = position.Y;
                    if (model != null)
                    {
                        CreateNode(model, /*position,*/ true);
                    }
                })
            });
        }