Пример #1
0
        // To handle the dragging of panels
        private static void PanelDrag(object sender, MouseEventArgs e)
        {
            foreach (Panel p in panels)
            {
                if (p.centered)
                {
                    p.Center();
                }

                if (!ResizeGrip.IsResizing() && p.dragging && !p.centered)
                {
                    // if predrag returns true, move the panel
                    if (p.PreDrag(e.X - p.dragOffsetX, e.Y - p.dragOffsetY))
                    {
                        p.SetPos(e.X - p.dragOffsetX, e.Y - p.dragOffsetY, !VirtualKeys.IsKeyPressed(VirtualKeyStates.VK_TAB));
                        p.PostDrag();
                        RefreshProperties();

                        if (!VirtualKeys.IsKeyPressed(VirtualKeyStates.VK_CONTROL))
                        {
                            continue;
                        }

                        List <Panel> panelsOver = GetPanelsMouseIsOver();
                        foreach (Panel pan in panelsOver)
                        {
                            if (pan != p && pan.canBeParent == true && p.parent != pan && p.canBeChild == true && (!p.parent || p.parent.z < pan.z))
                            {
                                if (p.hasParent && p.parent)
                                {
                                    if (p.parent.z < pan.z && pan.parent != p)
                                    {
                                        pan.highlighted = true;
                                        break;
                                    }
                                }
                                else
                                {
                                    pan.highlighted = true;
                                    break;
                                }
                            }
                        }
                    }
                }
            }
        }
Пример #2
0
 private static void MouseDown(object sender, MouseEventArgs e)
 {
     foreach (Panel p in panels)
     {
         if (ResizeGrip.Resize_MouseDown(sender, e))
         {
             break;
         }
         SelectedItem_MouseHandler(sender, e);
         if (!p.locked && p == GetSelected() && e.Button == MouseButtons.Left && MouseIsOverPanel(p))
         {
             p.dragOffsetX = e.X - p.x;
             p.dragOffsetY = e.Y - p.y;
             p.dragging    = true;
         }
         if (Derma.MouseIsOverPanel(p) && p.MouseDownHandler != null)
         {
             p.MouseDownHandler(p, e);
             break;
         }
     }
 }