示例#1
0
文件: Controls.cs 项目: kebby/jss
        protected override void OnMouseUp(MouseEventArgs e)
        {
            base.OnMouseUp(e);

            switch (Drag)
            {
                case DragOp.CableFrom:
                    {
                        var src = Selected as TPin;
                        var dest = Hovered as TPin;
                        if (dest != null && !dest.IsOutput && dest.Module.Mod.Inputs[dest.Index] == null)
                        {
                            try
                            {
                                MyGraph.Connect(src.Module.Mod, dest.Module.Mod,
                                    (dest.Index > 0 ? dest.Module.Mod.Definition.ParamNames[dest.Index - 1] : null));
                            }
                            catch (ModelException me)
                            {
                                MessageBox.Show(me.Message);
                            }
                            Dirty = true;
                        }
                        DragCable = null;
                        Invalidate();
                    }
                    break;
                case DragOp.CableTo:
                    {
                        var src = Hovered as TPin;
                        var dest = Selected as TPin;
                        if (src != null && src.IsOutput)
                        {
                            try
                            {
                                MyGraph.Connect(src.Module.Mod, dest.Module.Mod,
                                    (dest.Index > 0 ? dest.Module.Mod.Definition.ParamNames[dest.Index - 1] : null));
                            }
                            catch (ModelException me)
                            {
                                MessageBox.Show(me.Message);
                            }
                            Dirty = true;
                        }
                        DragCable = null;
                        Invalidate();
                    }
                    break;
            }
            Drag = DragOp.None;
        }
示例#2
0
文件: Controls.cs 项目: kebby/jss
        protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);
            SetSelected(Hit(e.Location));

            if (e.Button == MouseButtons.Left)
            {
                (Parent as Form1).SetEditModule(null);
                if (Selected is TModule)
                {
                    var tmod = (Selected as TModule);
                    Drag = DragOp.Module;
                    DragOffset.X = e.X - tmod.Mod.X;
                    DragOffset.Y = e.Y - tmod.Mod.Y;
                    (Parent as Form1).SetEditModule(tmod.Mod);
                }
                else if (Selected is TPin)
                {
                    var tpin = (Selected as TPin);
                    if (tpin.IsOutput)
                        Drag = DragOp.CableFrom;
                    else if (tpin.Module.Mod.Inputs[tpin.Index] == null)
                        Drag = DragOp.CableTo;
                }
            }
            else if (e.Button == MouseButtons.Right)
            {
                if (Selected is TModule || Selected is TCable)
                {
                    var item = new MenuItem("Delete", (o, ev) => Delete());
                    var menu = new ContextMenu(new[] { item });
                    menu.Show(this, e.Location);
                }
                else if (Selected == null)
                {
                    var items = GetModuleMenuItems("", n => AddModule(n, e.Location));
                    var menu = new ContextMenu(items);
                    menu.Show(this, e.Location);
                }
            }
        }