Esempio n. 1
0
 public override void UIActivateIO(int fActivate, ref BandObjectLib.MSG Msg) {
     if(fActivate != 0) {
         this.toolStrip.Focus();
         if(this.toolStrip.Items.Count != 0) {
             ToolStripItem item;
             if(Control.ModifierKeys != Keys.Shift) {
                 for(int i = 0; i < this.toolStrip.Items.Count; i++) {
                     item = this.toolStrip.Items[i];
                     if((item.Enabled && item.Visible) && !(item is ToolStripSeparator)) {
                         if(item is ToolStripControlHost) {
                             ((ToolStripControlHost)item).Control.Select();
                             return;
                         }
                         item.Select();
                         return;
                     }
                 }
             }
             else if(this.toolStrip.OverflowButton.Visible) {
                 this.toolStrip.OverflowButton.Select();
             }
             else {
                 for(int j = this.toolStrip.Items.Count - 1; j > -1; j--) {
                     item = this.toolStrip.Items[j];
                     if((item.Enabled && item.Visible) && !(item is ToolStripSeparator)) {
                         if(item is ToolStripControlHost) {
                             ((ToolStripControlHost)item).Control.Select();
                             return;
                         }
                         item.Select();
                         return;
                     }
                 }
             }
         }
     }
 }
Esempio n. 2
0
 public static extern bool TranslateMessage(ref BandObjectLib.MSG lpMsg);
Esempio n. 3
0
        public override int TranslateAcceleratorIO(ref BandObjectLib.MSG msg) {
            if(msg.message == WM.KEYDOWN) {
                Keys wParam = (Keys)((int)((long)msg.wParam));
                switch(wParam) {
                    case Keys.Left:
                    case Keys.Right:
                    case Keys.Tab:
                    case Keys.F6: {
                            switch(wParam) {
                                case Keys.Right:
                                case Keys.Left:
                                    foreach(ToolStripItem item in this.toolStrip.Items) {
                                        if((item.Visible && item.Enabled) && (item.Selected && (item is ToolStripControlHost))) {
                                            return 1;
                                        }
                                    }
                                    break;
                            }
                            bool flag = (Control.ModifierKeys == Keys.Shift) || (wParam == Keys.Left);
                            if(flag && this.toolStrip.OverflowButton.Selected) {
                                for(int j = this.toolStrip.Items.Count - 1; j > -1; j--) {
                                    ToolStripItem item2 = this.toolStrip.Items[j];
                                    if(item2.Visible && item2.Enabled) {
                                        item2.Select();
                                        return 0;
                                    }
                                }
                            }
                            int count = this.toolStrip.Items.Count;
                            for(int i = 0; i < this.toolStrip.Items.Count; i++) {
                                if(this.toolStrip.Items[i].Selected) {
                                    ToolStripItem start = this.toolStrip.Items[i];
                                    if(start is ToolStripControlHost) {
                                        this.toolStrip.Select();
                                    }
                                    while((start = this.toolStrip.GetNextItem(start, flag ? ArrowDirection.Left : ArrowDirection.Right)) != null) {
                                        int index = this.toolStrip.Items.IndexOf(start);
                                        if(flag) {
                                            if((index > i) || (start is ToolStripOverflowButton)) {
                                                return 1;
                                            }
                                        }
                                        else if(index < i) {
                                            if(this.toolStrip.OverflowButton.Visible) {
                                                this.toolStrip.OverflowButton.Select();
                                                return 0;
                                            }
                                            return 1;
                                        }
                                        ToolStripControlHost host = start as ToolStripControlHost;
                                        if(host != null) {
                                            host.Control.Select();
                                            return 0;
                                        }
                                        if(start.Enabled) {
                                            start.Select();
                                            return 0;
                                        }
                                    }
                                    return 1;
                                }
                            }
                            break;
                        }
                    case Keys.Down:
                    case Keys.Space:
                    case Keys.Return:
                        if(this.toolStrip.OverflowButton.Selected) {
                            this.toolStrip.OverflowButton.ShowDropDown();
                            return 0;
                        }
                        for(int k = 0; k < this.toolStrip.Items.Count; k++) {
                            if(this.toolStrip.Items[k].Selected) {
                                ToolStripItem item4 = this.toolStrip.Items[k];
                                if(item4 is ToolStripDropDownItem) {
                                    ((ToolStripDropDownItem)item4).ShowDropDown();
                                }
                                else {
                                    if((item4 is ToolStripSearchBox) && ((wParam == Keys.Return) || (wParam == Keys.Space))) {
                                        return 1;
                                    }
                                    if(wParam != Keys.Down) {
                                        item4.PerformClick();
                                    }
                                }
                                return 0;
                            }
                        }
                        break;

                    case Keys.Back:
                        foreach(ToolStripItem item5 in this.toolStrip.Items) {
                            if(item5.Selected && (item5 is ToolStripControlHost)) {
                                QTTabBarLib.Interop.PInvoke.SendMessage(msg.hwnd, 0x102, msg.wParam, msg.lParam);
                                return 0;
                            }
                        }
                        break;

                    case Keys.A:
                    case Keys.C:
                    case Keys.V:
                    case Keys.X:
                    case Keys.Z:
                        if(((Control.ModifierKeys == Keys.Control) && (this.searchBox != null)) && this.searchBox.Selected) {
                            QTTabBarLib.Interop.PInvoke.TranslateMessage(ref msg);
                            if(wParam == Keys.A) {
                                this.searchBox.TextBox.SelectAll();
                            }
                            return 0;
                        }
                        break;

                    case Keys.Delete:
                        foreach(ToolStripItem item6 in this.toolStrip.Items) {
                            if(item6.Selected && (item6 is ToolStripControlHost)) {
                                QTTabBarLib.Interop.PInvoke.SendMessage(msg.hwnd, 0x100, msg.wParam, msg.lParam);
                                return 0;
                            }
                        }
                        break;
                }
            }
            return 1;
        }
Esempio n. 4
0
 public override void UIActivateIO(int fActivate, ref BandObjectLib.MSG Msg) {
     if(fActivate != 0) {
         this.tabControl1.Focus();
         this.tabControl1.FocusNextTab(Control.ModifierKeys == Keys.Shift, true, false);
     }
 }
Esempio n. 5
0
 public static extern bool PtInRect(ref QTTabBarLib.Interop.RECT lprc, BandObjectLib.POINT pt);
Esempio n. 6
0
 private void HandleLBUTTON_Tree(BandObjectLib.MSG msg, bool fMouseDown) {
     IntPtr ptr;
     if((this.ShellBrowser.GetControlWindow(3, out ptr) == 0) && (msg.hwnd == ptr)) {
         BandObjectLib.POINT point;
         TVHITTESTINFO structure = new TVHITTESTINFO();
         point.x = QTUtility2.GET_X_LPARAM(msg.lParam);
         point.y = QTUtility2.GET_Y_LPARAM(msg.lParam);
         structure.pt = point;
         IntPtr ptr2 = Marshal.AllocHGlobal(Marshal.SizeOf(structure));
         Marshal.StructureToPtr(structure, ptr2, false);
         IntPtr wParam = PInvoke.SendMessage(ptr, 0x1111, IntPtr.Zero, ptr2);
         if(wParam != IntPtr.Zero) {
             structure = (TVHITTESTINFO)Marshal.PtrToStructure(ptr2, typeof(TVHITTESTINFO));
             bool flag = false;
             if(fMouseDown) {
                 flag = (((structure.flags != 1) && (structure.flags != 0x10)) && ((structure.flags & 2) == 0)) && ((structure.flags & 4) == 0);
             }
             else {
                 flag = ((structure.flags & 2) != 0) || ((structure.flags & 4) != 0);
             }
             if(flag) {
                 int num = (int)PInvoke.SendMessage(ptr, 0x1127, wParam, (IntPtr)2);
                 if((num & 2) == 0) {
                     this.NavigatedByCode = this.fNowTravelByTree = true;
                 }
             }
         }
         Marshal.FreeHGlobal(ptr2);
     }
 }        
Esempio n. 7
0
        public override int TranslateAcceleratorIO(ref BandObjectLib.MSG msg) {
            if(msg.message == WM.KEYDOWN) {
                Keys wParam = (Keys)((int)((long)msg.wParam));
                bool flag = (((int)((long)msg.lParam)) & 0x40000000) != 0;
                switch(wParam) {
                    case Keys.Delete: {
                            if(!this.tabControl1.Focused || ((this.subDirTip_Tab != null) && this.subDirTip_Tab.MenuIsShowing)) {
                                break;
                            }
                            int focusedTabIndex = this.tabControl1.GetFocusedTabIndex();
                            if((-1 < focusedTabIndex) && (focusedTabIndex < this.tabControl1.TabCount)) {
                                bool flag3 = focusedTabIndex == (this.tabControl1.TabCount - 1);
                                if(this.CloseTab((QTabItem)this.tabControl1.TabPages[focusedTabIndex]) && flag3) {
                                    this.tabControl1.FocusNextTab(true, false, false);
                                }
                            }
                            return 0;
                        }
                    case Keys.Apps:
                        if(!flag) {
                            int index = this.tabControl1.GetFocusedTabIndex();
                            if((-1 >= index) || (index >= this.tabControl1.TabCount)) {
                                break;
                            }
                            this.ContextMenuedTab = (QTabItem)this.tabControl1.TabPages[index];
                            Rectangle tabRect = this.tabControl1.GetTabRect(index, true);
                            this.contextMenuTab.Show(base.PointToScreen(new Point(tabRect.Right + 10, tabRect.Bottom - 10)));
                        }
                        return 0;

                    case Keys.F6:
                    case Keys.Tab:
                    case Keys.Left:
                    case Keys.Right: {
                            if(!this.tabControl1.Focused || ((this.subDirTip_Tab != null) && this.subDirTip_Tab.MenuIsShowing)) {
                                break;
                            }
                            bool fBack = (Control.ModifierKeys == Keys.Shift) || (wParam == Keys.Left);
                            if(!this.tabControl1.FocusNextTab(fBack, false, false)) {
                                break;
                            }
                            return 0;
                        }
                    case Keys.Back:
                        return 0;

                    case Keys.Return:
                    case Keys.Space:
                        if(!flag && !this.tabControl1.SelectFocusedTab()) {
                            break;
                        }
                        listViewWrapper.SetFocus();
                        return 0;

                    case Keys.Escape:
                        if(this.tabControl1.Focused && ((this.subDirTip_Tab == null) || !this.subDirTip_Tab.MenuIsShowing)) {
                            listViewWrapper.SetFocus();
                        }
                        break;

                    case Keys.End:
                    case Keys.Home:
                        if((!this.tabControl1.Focused || ((this.subDirTip_Tab != null) && this.subDirTip_Tab.MenuIsShowing)) || !this.tabControl1.FocusNextTab(wParam == Keys.Home, false, true)) {
                            break;
                        }
                        return 0;

                    case Keys.Up:
                    case Keys.Down:
                        if(((!QTUtility.CheckConfig(Settings.ShowSubDirTipOnTab) || !this.tabControl1.Focused) || ((this.subDirTip_Tab != null) && this.subDirTip_Tab.MenuIsShowing)) || (!flag && !this.tabControl1.PerformFocusedFolderIconClick(wParam == Keys.Up))) {
                            break;
                        }
                        return 0;
                }
            }
            return base.TranslateAcceleratorIO(ref msg);
        }
Esempio n. 8
0
        private DragDropEffects dropTargetWrapper_DragFileEnter(IntPtr hDrop, BandObjectLib.POINT pnt, int grfKeyState) {
            if(QTUtility.CheckConfig(Settings.DragDropOntoTabs)) {
                int num = HandleDragEnter(hDrop, out this.strDraggingDrive, out this.strDraggingStartPath);
                this.fDrivesContainedDD = num == 2;
                if(num == -1) {
                    return DragDropEffects.None;
                }
                if(this.tabControl1.GetTabMouseOn() == null) {
                    return DragDropEffects.Copy;
                }
                switch(num) {
                    case 0:
                        return DropTargetWrapper.MakeEffect(grfKeyState, 0);

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

                    case 2:
                        return DragDropEffects.None;
                }
            }
            return DragDropEffects.Copy;
        }
Esempio n. 9
0
 private void Handle_MButtonUp_Tree(BandObjectLib.MSG msg) {
     IntPtr ptr;
     if((this.ShellBrowser.GetControlWindow(3, out ptr) == 0) && (msg.hwnd == ptr)) {
         BandObjectLib.POINT point;
         TVHITTESTINFO structure = new TVHITTESTINFO();
         point.x = QTUtility2.GET_X_LPARAM(msg.lParam);
         point.y = QTUtility2.GET_Y_LPARAM(msg.lParam);
         structure.pt = point;
         IntPtr ptr2 = Marshal.AllocHGlobal(Marshal.SizeOf(structure));
         Marshal.StructureToPtr(structure, ptr2, false);
         IntPtr wParam = PInvoke.SendMessage(ptr, 0x1111, IntPtr.Zero, ptr2);
         if(wParam != IntPtr.Zero) {
             int num = (int)PInvoke.SendMessage(ptr, 0x1127, wParam, (IntPtr)2);
             if((num & 2) == 0) {
                 this.NavigatedByCode = this.fNowTravelByTree = true;
                 PInvoke.SendMessage(ptr, 0x110b, (IntPtr)9, wParam);
             }
         }
     }
 }
Esempio n. 10
0
 public int DragOver(int grfKeyState, BandObjectLib.POINT pt, ref DragDropEffects pdwEffect) {
     this.iLastKeyState = grfKeyState;
     if(this.DragFileOver != null) {
         DragEventArgs e = new DragEventArgs(null, grfKeyState, pt.x, pt.y, DragDropEffects.Move | DragDropEffects.Copy | DragDropEffects.Scroll, DragDropEffects.None);
         this.DragFileOver(null, e);
         pdwEffect = e.Effect;
     }
     else {
         pdwEffect = DragDropEffects.Copy;
     }
     return 0;
 }
Esempio n. 11
0
        public int DragDrop(System.Runtime.InteropServices.ComTypes.IDataObject pDataObj, int grfKeyState, BandObjectLib.POINT pt, ref DragDropEffects pdwEffect) {
            try {
                if(this.DragFileOver != null) {
                    DragEventArgs e = new DragEventArgs(null, grfKeyState, pt.x, pt.y, DragDropEffects.Move | DragDropEffects.Copy | DragDropEffects.Scroll, pdwEffect);
                    this.DragFileOver(null, e);
                    pdwEffect = e.Effect;
                }
                else {
                    pdwEffect = DragDropEffects.Copy;
                }
                if(pdwEffect != DragDropEffects.None) {
                    if(this.DragFileDrop != null) {
                        IntPtr ptr;
                        byte[] buffer;
                        switch(this.DragFileDrop(out ptr, out buffer)) {
                            case -1:
                                return 0;

                            case 0: {
                                    IShellFolder ppv = null;
                                    object obj2 = null;
                                    Guid riid = ExplorerGUIDs.IID_IShellFolder;
                                    Guid guid2 = ExplorerGUIDs.IID_IDropTarget;
                                    using(IDLWrapper wrapper = new IDLWrapper(buffer)) {
                                        if(wrapper.Available && wrapper.IsDropTarget) {
                                            try {
                                                IntPtr ptr2;
                                                if(PInvoke.SHBindToParent(wrapper.PIDL, riid, out ppv, out ptr2) == 0) {
                                                    uint rgfReserved = 0;
                                                    IntPtr[] apidl = new IntPtr[] { ptr2 };
                                                    if(ppv.GetUIObjectOf(ptr, 1, apidl, ref guid2, ref rgfReserved, out obj2) == 0) {
                                                        _IDropTarget target = obj2 as _IDropTarget;
                                                        if(target != null) {
                                                            DragDropEffects effects = pdwEffect;
                                                            if(target.DragEnter(pDataObj, this.iLastKeyState, pt, ref effects) == 0) {
                                                                effects = pdwEffect;
                                                                if(target.DragOver(this.iLastKeyState, pt, ref effects) == 0) {
                                                                    if((this.iLastKeyState & 2) != 0) {
                                                                        pdwEffect = DragDropEffects.Link | DragDropEffects.Move | DragDropEffects.Copy;
                                                                    }
                                                                    return target.DragDrop(pDataObj, this.iLastKeyState, pt, ref pdwEffect);
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                            catch {
                                            }
                                            finally {
                                                if(ppv != null) {
                                                    Marshal.ReleaseComObject(ppv);
                                                }
                                                if(obj2 != null) {
                                                    Marshal.ReleaseComObject(obj2);
                                                }
                                                if(this.DragDropEnd != null) {
                                                    this.DragDropEnd(this, EventArgs.Empty);
                                                }
                                            }
                                        }
                                    }
                                    return 0;
                                }
                        }
                    }
                    FORMATETC format = new FORMATETC();
                    format.cfFormat = 15;
                    format.ptd = IntPtr.Zero;
                    format.dwAspect = DVASPECT.DVASPECT_CONTENT;
                    format.lindex = -1;
                    format.tymed = TYMED.TYMED_HGLOBAL;
                    STGMEDIUM medium = new STGMEDIUM();
                    try {
                        pDataObj.GetData(ref format, out medium);
                        PInvoke.SendMessage(this.hwnd, 0x233, medium.unionmember, IntPtr.Zero);
                    }
                    catch {
                    }
                    finally {
                        PInvoke.ReleaseStgMedium(ref medium);
                    }
                }
            }
            finally {
                if(pDataObj != null) {
                    Marshal.FinalReleaseComObject(pDataObj);
                }
            }
            return 0;
        }
Esempio n. 12
0
 public int DragEnter(System.Runtime.InteropServices.ComTypes.IDataObject pDataObj, int grfKeyState, BandObjectLib.POINT pt, ref DragDropEffects pdwEffect) {
     try {
         if(this.DragFileEnter != null) {
             FORMATETC format = new FORMATETC();
             format.cfFormat = 15;
             format.ptd = IntPtr.Zero;
             format.dwAspect = DVASPECT.DVASPECT_CONTENT;
             format.lindex = -1;
             format.tymed = TYMED.TYMED_HGLOBAL;
             if(pDataObj.QueryGetData(ref format) >= 0) {
                 STGMEDIUM medium = new STGMEDIUM();
                 try {
                     try {
                         pDataObj.GetData(ref format, out medium);
                         pdwEffect = this.DragFileEnter(medium.unionmember, pt, grfKeyState);
                     }
                     catch {
                         pdwEffect = DragDropEffects.None;
                     }
                     goto Label_00A0;
                 }
                 finally {
                     PInvoke.ReleaseStgMedium(ref medium);
                 }
             }
             pdwEffect = DragDropEffects.None;
         }
         else {
             pdwEffect = DragDropEffects.Copy;
         }
     }
     finally {
         if(pDataObj != null) {
             Marshal.FinalReleaseComObject(pDataObj);
         }
     }
 Label_00A0:
     return 0;
 }
Esempio n. 13
0
 public virtual void UIActivateIO(int fActivate, ref BandObjectLib.MSG Msg) {
     if(fActivate != 0) {
         Control nextControl = base.GetNextControl(this, true);
         if(nextControl != null) {
             nextControl.Select();
         }
         base.Focus();
     }
 }
Esempio n. 14
0
 public virtual int TranslateAcceleratorIO(ref BandObjectLib.MSG msg) {
     if(((msg.message == 0x100) && ((msg.wParam == ((IntPtr)9L)) || (msg.wParam == ((IntPtr)0x75L)))) && base.SelectNextControl(base.ActiveControl, (Control.ModifierKeys & Keys.Shift) != Keys.Shift, true, false, false)) {
         return 0;
     }
     return 1;
 }
Esempio n. 15
0
        private bool HandleMBUTTONUP(BandObjectLib.MSG msg) {
            int index = listViewWrapper.HitTest(msg.lParam);
            if(index <= -1) {
                return false;
            }
            Keys modifierKeys = Control.ModifierKeys;
            if(modifierKeys != (Keys.Alt | Keys.Control | Keys.Shift)) {
                modifierKeys &= ~Keys.Alt;
                if(QTUtility.CheckConfig(Settings.MidClickNewWindow)) {
                    switch(modifierKeys) {
                        case Keys.Control:
                            modifierKeys = Keys.None;
                            goto Label_008D;

                        case (Keys.Control | Keys.Shift):
                            modifierKeys = Keys.Shift;
                            goto Label_008D;
                    }
                    modifierKeys = Keys.Control;
                }
                else if(modifierKeys == (Keys.Control | Keys.Shift)) {
                    modifierKeys = Keys.Control;
                }
            }
        Label_008D:
            return this.HandleTabFolderActions(index, modifierKeys, false);
            //return false;
        }
        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;
        }