private DragDropEffects dropTargetWrapper_DragFileEnter(IntPtr hDrop, BandObjectLib.POINT pnt, int grfKeyState)
        {
            this.fRespondModKeysTemp = base.fRespondModKeys;
            this.fEnableShiftKeyTemp = base.fEnableShiftKey;
            base.fRespondModKeys     = false;
            base.fEnableShiftKey     = false;
            if (this.MenuDragEnter != null)
            {
                this.MenuDragEnter(this, EventArgs.Empty);
            }
            this.fDrivesContained = false;
            switch (QTTabBarClass.HandleDragEnter(hDrop, out this.strDraggingDrive, out this.strDraggingStartPath))
            {
            case -1:
                return(DragDropEffects.None);

            case 0:
                return(DropTargetWrapper.MakeEffect(grfKeyState, 0));

            case 1:
                return(DropTargetWrapper.MakeEffect(grfKeyState, 1));

            case 2:
                this.fDrivesContained = true;
                return(DragDropEffects.None);
            }
            return(DragDropEffects.None);
        }
        private DragDropEffects dropTargetWrapper_DragFileEnter(IntPtr hDrop, Point pnt, int grfKeyState)
        {
            fRespondModKeysTemp = fRespondModKeys;
            fEnableShiftKeyTemp = fEnableShiftKey;
            fRespondModKeys     = false;
            fEnableShiftKey     = false;
            if (MenuDragEnter != null)
            {
                MenuDragEnter(this, EventArgs.Empty);
            }
            fDrivesContained = false;
            switch (QTTabBarClass.HandleDragEnter(hDrop, out strDraggingDrive, out strDraggingStartPath))
            {
            case -1:
                return(DragDropEffects.None);

            case 0:
                return(DropTargetWrapper.MakeEffect(grfKeyState, 0));

            case 1:
                return(DropTargetWrapper.MakeEffect(grfKeyState, 1));

            case 2:
                fDrivesContained = true;
                return(DragDropEffects.None);
            }
            return(DragDropEffects.None);
        }
 private void DropDownMenuDropTarget_HandleCreated(object sender, EventArgs e)
 {
     this.dropTargetWrapper = new DropTargetWrapper(this);
     this.dropTargetWrapper.DragFileEnter += new DropTargetWrapper.DragFileEnterEventHandler(this.dropTargetWrapper_DragFileEnter);
     this.dropTargetWrapper.DragFileOver  += new DragEventHandler(this.dropTargetWrapper_DragFileOver);
     this.dropTargetWrapper.DragFileLeave += new EventHandler(this.dropTargetWrapper_DragFileLeave);
     this.dropTargetWrapper.DragFileDrop  += new DropTargetWrapper.DragFileDropEventHandler(this.dropTargetWrapper_DragFileDrop);
     this.dropTargetWrapper.DragDropEnd   += new EventHandler(this.dropTargetWrapper_DragDropEnd);
     try {
         this.miUnselect = typeof(ToolStripItem).GetMethod("Unselect", BindingFlags.NonPublic | BindingFlags.Instance);
     }
     catch {
     }
 }
 protected override void Dispose(bool disposing)
 {
     if (this.dropTargetWrapper != null)
     {
         this.dropTargetWrapper.Dispose();
         this.dropTargetWrapper = null;
     }
     if (this.bmpInsertL != null)
     {
         this.bmpInsertL.Dispose();
         this.bmpInsertL = null;
     }
     if (this.bmpInsertR != null)
     {
         this.bmpInsertR.Dispose();
         this.bmpInsertR = null;
     }
     if (this.timerScroll != null)
     {
         this.timerScroll.Dispose();
         this.timerScroll = null;
     }
     base.Dispose(disposing);
 }
        private void dropTargetWrapper_DragFileOver(object sender, DragEventArgs e)
        {
            int           iSourceState = -1;
            Point         point        = base.PointToClient(new Point(e.X, e.Y));
            ToolStripItem itemAt       = base.GetItemAt(point);
            bool          flag         = false;

            if (itemAt != null)
            {
                Rectangle bounds = itemAt.Bounds;
                bool      flag2  = (bounds.Bottom - point.Y) >= (point.Y - bounds.Top);
                flag      = this.fTop != flag2;
                this.fTop = flag2;
            }
            bool flag3 = ((this.fTop && (this.iItemDragOverRegion != 0)) || (!this.fTop && (this.iItemDragOverRegion != 1))) && (itemAt == this.Items[this.Items.Count - 1]);

            if ((itemAt != this.itemHover) || flag3)
            {
                if (itemAt != null)
                {
                    this.iItemDragOverRegion = this.fTop ? 0 : 1;
                    QMenuItem item2 = itemAt as QMenuItem;
                    if (item2 != null)
                    {
                        bool flag4 = item2 is SubDirTipForm.ToolStripMenuItemEx;
                        if ((flag3 && !this.fTop) && Directory.Exists(base.Path))
                        {
                            this.fDrawDropTarget = false;
                            this.strTargetPath   = base.Path;
                            iSourceState         = this.MakeDragOverRetval();
                            if ((!flag4 && item2.HasDropDownItems) && !item2.DropDown.Visible)
                            {
                                this.OnMouseLeave(EventArgs.Empty);
                                this.OnMouseMove(new MouseEventArgs(Control.MouseButtons, 0, point.X, point.Y, 0));
                            }
                        }
                        else if (flag4)
                        {
                            bool flag5;
                            if (PathIsExecutable(item2.Path, out flag5))
                            {
                                this.fDrawDropTarget = true;
                                if (flag5)
                                {
                                    iSourceState = -1;
                                    this.CloseAllDropDown();
                                }
                                else
                                {
                                    this.strTargetPath = item2.Path;
                                    item2.Select();
                                    iSourceState = 2;
                                }
                            }
                            else
                            {
                                this.fDrawDropTarget = false;
                                if (Directory.Exists(base.Path))
                                {
                                    this.strTargetPath = base.Path;
                                    iSourceState       = this.MakeDragOverRetval();
                                }
                                this.CloseAllDropDown();
                            }
                        }
                        else if (Directory.Exists(item2.TargetPath))
                        {
                            this.fDrawDropTarget = true;
                            this.strTargetPath   = item2.TargetPath;
                            iSourceState         = this.MakeDragOverRetval();
                            this.OnMouseLeave(EventArgs.Empty);
                            this.OnMouseMove(new MouseEventArgs(Control.MouseButtons, 0, point.X, point.Y, 0));
                        }
                    }
                }
                flag = true;
            }
            else
            {
                iSourceState = this.iDDRetval;
            }
            if (itemAt != null)
            {
                this.BeginScrollTimer(itemAt, point);
            }
            this.itemHover = itemAt;
            this.iDDRetval = iSourceState;
            if (flag)
            {
                base.Invalidate();
            }
            if (iSourceState == -1)
            {
                this.strTargetPath = null;
                e.Effect           = DragDropEffects.None;
            }
            else if (this.fDrivesContained)
            {
                e.Effect = DragDropEffects.Link;
            }
            else if (iSourceState == 2)
            {
                e.Effect = DragDropEffects.Copy;
            }
            else
            {
                e.Effect = DropTargetWrapper.MakeEffect(e.KeyState, iSourceState);
            }
        }