Example #1
0
 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 {}
 }
Example #2
0
        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 {}
        }
Example #4
0
 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);
 }
Example #5
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);
 }
Example #6
0
 public MockFunctionManager(IMultiboxFunction[] functions)
 {
     this.functions = new List<IMultiboxFunction>(functions.OrderByDescending(f => f.SuggestedIndex()));
 }