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; } } } } } }
public static extern bool TranslateMessage(ref BandObjectLib.MSG lpMsg);
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; }
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); } }
public static extern bool PtInRect(ref QTTabBarLib.Interop.RECT lprc, BandObjectLib.POINT pt);
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); } }
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); }
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; }
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); } } } }
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; }
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; }
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; }
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(); } }
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; }
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; }