public void SelectionChanged(IMainClass mc) { try { MultiboxFunctionParam p = new MultiboxFunctionParam(Keys.None, false, false, false, mc); IMultiboxFunction function = GetActivatedFunction(p); if (function == null || !function.IsMulti(p) || !function.HasDetails(p)) { p.MC.DetailsLabelText = ""; p.MC.UpdateSize(); return; } bool ibs = function.IsBackgroundDetailsStream(p); if (ibs) { new RunBgS(function.GetBackgroundDetailsStream).BeginInvoke(p, null, null); } else { p.MC.DetailsLabelText = function.GetDetails(p); p.MC.UpdateSize(); } } catch {} }
public void KeyDown(IMainClass mc, Keys key, bool control, bool alt, bool shift) { try { MultiboxFunctionParam p = new MultiboxFunctionParam(key, control, alt, shift, mc); IMultiboxFunction function = GetActivatedFunction(p); if (function == null) { return; } if (function.IsMulti(p) && (p.Key == Keys.Up || p.Key == Keys.Down)) { switch (p.Key) { case Keys.Up: p.MC.LabelManager.SelectPrev(); break; case Keys.Down: p.MC.LabelManager.SelectNext(); break; } } if (function.HasKeyDownAction(p)) { function.RunKeyDownAction(p); } if (function.SupressKeyPress(p)) { SuppressKeyPress = true; } } catch {} }
public static void KeyDown(IMainClass mc, KeyEventArgs e) { try { MultiboxFunctionParam p = new MultiboxFunctionParam(e.KeyCode, e.Control, e.Alt, e.Shift, mc); IMultiboxFunction af = GetActivatedFunction(p); if (af == null) { return; } if (af.IsMulti(p) && (p.Key == Keys.Up || p.Key == Keys.Down)) { switch (p.Key) { case Keys.Up: p.MC.LabelManager.SelectPrev(); break; case Keys.Down: p.MC.LabelManager.SelectNext(); break; } } if (af.HasKeyDownAction(p)) { af.RunKeyDownAction(p); } if (af.SupressKeyPress(p)) { e.SuppressKeyPress = true; } } catch {} }
public Tester(IMultiboxFunction[] functions, int maxResults, bool mockFilesystem = true, bool resetFilesystem = false) { functionManager = new MockFunctionManager(functions); mainClass = new MockMainClass(maxResults); mainClass.LabelManager.Sc = SelectionChanged; Filesystem.DebugMode = mockFilesystem; if(resetFilesystem) Filesystem.Reset(); history = new List<string[]>(0); }
public bool KeyUp(IMainClass mc, Keys key, bool control, bool alt, bool shift) { try { MultiboxFunctionParam p = new MultiboxFunctionParam(key, control, alt, shift, mc); IMultiboxFunction function = GetActivatedFunction(p); if (function == null) { mc.OutputLabelText = ""; mc.LabelManager.ResultItems = null; return(false); } if (p.Key == Keys.Enter && !p.Control && !p.Shift && !p.Alt && p.MultiboxText.Trim().Length > 0) { if (function.HasActionKeyEvent(p)) { function.RunActionKeyEvent(p); } } else if (p.Key == Keys.Enter && p.Control && !p.Shift && !p.Alt) { string tc = p.DisplayText; if (function.IsMulti(p)) { tc = p.MC.LabelManager.CurrentSelection != null ? p.MC.LabelManager.CurrentSelection.FullText : null; } if (function.HasSpecialDisplayCopyHandling(p)) { tc = function.RunSpecialDisplayCopyHandling(p); } if (!string.IsNullOrEmpty(tc)) { Clipboard = tc; } } else if (p.Key == Keys.Enter && p.Shift && !p.Control && !p.Alt && p.MultiboxText.Trim().Length > 0) { string tc = p.MultiboxText; if (function.HasSpecialInputCopyHandling(p)) { tc = function.RunSpecialInputCopyHandling(p); } if (!string.IsNullOrEmpty(tc)) { Clipboard = tc; } } else { bool sr = function.ShouldRun(p); bool ibs = function.IsBackgroundStream(p); if (function.IsMulti(p)) { if (sr && !(p.Key == Keys.Up || p.Key == Keys.Down || p.Key == Keys.ControlKey || p.Key == Keys.ShiftKey)) { if (ibs) { new RunBgS(function.RunMultiBackgroundStream).BeginInvoke(p, null, null); } else { p.MC.LabelManager.ResultItems = function.RunMulti(p); } } if (function.SupressKeyPress(p) || p.Key == Keys.Up || p.Key == Keys.Down) { SuppressKeyPress = true; } return(true); } if (sr) { if (ibs) { new RunBgS(function.RunSingleBackgroundStream).BeginInvoke(p, null, null); } else { p.MC.OutputLabelText = function.RunSingle(p); } } } if (function.SupressKeyPress(p)) { SuppressKeyPress = true; } } catch {} return(false); }
public MockFunctionManager(IMultiboxFunction[] functions) { this.functions = new List<IMultiboxFunction>(functions.OrderByDescending(f => f.SuggestedIndex())); }