Example #1
0
            public Result Result(string query, IPublicAPI api)
            {
                var result = new Result
                {
                    SubTitle    = Package.Location,
                    Icon        = Logo,
                    Score       = Score(query),
                    ContextData = this,
                    Action      = e =>
                    {
                        Launch(api);
                        return(true);
                    }
                };

                if (Description.Length >= DisplayName.Length &&
                    Description.Substring(0, DisplayName.Length) == DisplayName)
                {
                    result.Title = Description;
                }
                else if (!string.IsNullOrEmpty(Description))
                {
                    result.Title = $"{DisplayName}: {Description}";
                }
                else
                {
                    result.Title = DisplayName;
                }
                return(result);
            }
Example #2
0
        public void InitializePlugin(IPublicAPI api)
        {
            if (Metadata.Disabled)
            {
                Log.Info($"Do not initialize {Metadata.Name} as it is disabled.", GetType());
                return;
            }

            if (IsPluginInitialized)
            {
                Log.Info($"{Metadata.Name} plugin is already initialized", GetType());
                return;
            }

            var stopWatch = new Stopwatch();

            stopWatch.Start();
            if (!InitPlugin(api))
            {
                return;
            }

            stopWatch.Stop();
            IsPluginInitialized = true;
            Metadata.InitTime  += stopWatch.ElapsedMilliseconds;
            Log.Info($"Total initialize cost for <{Metadata.Name}> is <{Metadata.InitTime}ms>", GetType());
            return;
        }
 public FileSystemSettings(IPublicAPI woxAPI, Settings settings)
 {
     this.woxAPI = woxAPI;
     InitializeComponent();
     _settings = settings;
     lbxFolders.ItemsSource = _settings.FolderLinks;
 }
Example #4
0
 public FileSystemSettings(IPublicAPI woxAPI, FolderStorage settings)
 {
     this.woxAPI = woxAPI;
     InitializeComponent();
     _settings = settings;
     lbxFolders.ItemsSource = _settings.FolderLinks;
 }
 public FileSystemSettings(IPublicAPI flowlauncherAPI, Settings settings)
 {
     this.flowlauncherAPI = flowlauncherAPI;
     InitializeComponent();
     _settings = settings;
     lbxFolders.ItemsSource = _settings.FolderLinks;
 }
Example #6
0
            public Result Result(string query, IPublicAPI api)
            {
                var score = Score(query);

                if (score <= 0)
                { // no need to create result if score is 0
                    return(null);
                }

                var result = new Result
                {
                    SubTitle    = "UWP application",
                    Icon        = Logo,
                    Score       = score,
                    ContextData = this,
                    Action      = e =>
                    {
                        Launch(api);
                        return(true);
                    }
                };

                if (Description.Length >= DisplayName.Length &&
                    Description.Substring(0, DisplayName.Length) == DisplayName)
                {
                    result.Title = Description;
                    result.TitleHighlightData = StringMatcher.FuzzySearch(query, Description).MatchData;
                }
                else
                {
                    result.Title = DisplayName;
                    result.TitleHighlightData = StringMatcher.FuzzySearch(query, DisplayName).MatchData;
                }
                return(result);
            }
Example #7
0
        public static void InitializePlugins(IPublicAPI api)
        {
            API = api;
            Parallel.ForEach(AllPlugins, pair =>
            {
                var milliseconds = Stopwatch.Debug($"|PluginManager.InitializePlugins|Init method time cost for <{pair.Metadata.Name}>", () =>
                {
                    pair.Plugin.Init(new PluginInitContext
                    {
                        CurrentPluginMetadata = pair.Metadata,
                        API = API
                    });
                });
                pair.Metadata.InitTime += milliseconds;
                Log.Info($"|PluginManager.InitializePlugins|Total init cost for <{pair.Metadata.Name}> is <{pair.Metadata.InitTime}ms>");
            });

            _contextMenuPlugins = GetPluginsForInterface <IContextMenu>();
            foreach (var plugin in AllPlugins)
            {
                if (IsGlobalPlugin(plugin.Metadata))
                {
                    GlobalPlugins.Add(plugin);
                }
                else
                {
                    foreach (string actionKeyword in plugin.Metadata.ActionKeywords)
                    {
                        NonGlobalPlugins[actionKeyword] = plugin;
                    }
                }
            }
        }
Example #8
0
            public Result Result(string query, IPublicAPI api)
            {
                var score = Score(query);

                if (score <= 0)
                { // no need to create result if score is 0
                    return(null);
                }

                var result = new Result
                {
                    SubTitle    = SetSubtitle(api),
                    Icon        = Logo,
                    Score       = score,
                    ContextData = this,
                    Action      = e =>
                    {
                        Launch(api);
                        return(true);
                    }
                };

                // To set the title to always be the displayname of the packaged application
                result.Title = DisplayName;
                result.TitleHighlightData = StringMatcher.FuzzySearch(query, Name).MatchData;


                var toolTipTitle = string.Format("{0} : {1}", api.GetTranslation("powertoys_run_plugin_program_file_name"), result.Title);
                var toolTipText  = string.Format("{0} : {1}", api.GetTranslation("powertoys_run_plugin_program_file_path"), Package.Location);

                result.ToolTipData = new ToolTipData(toolTipTitle, toolTipText);

                return(result);
            }
Example #9
0
        public void LoadPlugin(IPublicAPI api)
        {
            if (Metadata.Disabled)
            {
                Log.Info($"Do not load {Metadata.Name} as it is disabled.", GetType());
                return;
            }

            if (IsPluginLoaded)
            {
                Log.Info($"Plugin {Metadata.Name} is already loaded", GetType());
                return;
            }

            var stopWatch = new Stopwatch();

            stopWatch.Start();
            if (!CreatePluginInstance())
            {
                return;
            }

            if (!InitPlugin(api))
            {
                return;
            }

            stopWatch.Stop();
            IsPluginLoaded     = true;
            Metadata.InitTime += stopWatch.ElapsedMilliseconds;
            Log.Info($"Total load cost for <{Metadata.Name}> is <{Metadata.InitTime}ms>", GetType());
            return;
        }
Example #10
0
        public static void InitializePlugins(IPublicAPI api)
        {
            API = api;
            Parallel.ForEach(AllPlugins, pair =>
            {
                var milliseconds = Stopwatch.Debug($"|PluginManager.InitializePlugins|Init method time cost for <{pair.Metadata.Name}>", () =>
                {
                    pair.Plugin.Init(new PluginInitContext
                    {
                        CurrentPluginMetadata = pair.Metadata,
                        API = API
                    });
                });
                pair.Metadata.InitTime += milliseconds;
                Log.Info($"|PluginManager.InitializePlugins|Total init cost for <{pair.Metadata.Name}> is <{pair.Metadata.InitTime}ms>");
            });

            _contextMenuPlugins = GetPluginsForInterface <IContextMenu>();
            foreach (var plugin in AllPlugins)
            {
                if (IsGlobalPlugin(plugin.Metadata))
                {
                    GlobalPlugins.Add(plugin);
                }

                // Plugins may have multiple ActionKeywords, eg. WebSearch
                plugin.Metadata.ActionKeywords.Where(x => x != Query.GlobalPluginWildcardSign)
                .ToList()
                .ForEach(x => NonGlobalPlugins[x] = plugin);
            }
        }
Example #11
0
 public SettingsControl(IPublicAPI woxAPI, Settings settings)
 {
     InitializeComponent();
     _settings           = settings;
     _woxAPI             = woxAPI;
     browserPathBox.Text = _settings.BrowserPath;
 }
Example #12
0
        public Result Result(string query, IPublicAPI api)
        {
            Result result = new Result {
                SubTitle    = FullPath,
                IcoPath     = IcoPath,
                Score       = Score(query),
                ContextData = this,
                Action      = e => {
                    ProcessStartInfo info = new ProcessStartInfo {
                        FileName         = FullPath,
                        WorkingDirectory = ParentDirectory
                    };
                    bool hide = Main.StartProcess(info);
                    return(hide);
                }
            };

            if (Description.Length >= Name.Length &&
                Description.Substring(0, Name.Length) == Name)
            {
                result.Title = Description;
            }
            else if (!string.IsNullOrEmpty(Description))
            {
                result.Title = $"{Name}: {Description}";
            }
            else
            {
                result.Title = Name;
            }

            return(result);
        }
 public PluginSettings(IPublicAPI woxAPI, Settings settings)
 {
     this.woxAPI = woxAPI;
     InitializeComponent();
     _settings        = settings;
     this.DataContext = _settings;
 }
Example #14
0
        public List <Result> ContextMenus(IPublicAPI api)
        {
            var contextMenus = new List <Result>
            {
                new Result
                {
                    Title  = api.GetTranslation("wox_plugin_program_run_as_administrator"),
                    Action = _ =>
                    {
                        var info = new ProcessStartInfo
                        {
                            FileName         = FullPath,
                            WorkingDirectory = ParentDirectory,
                            Verb             = "runas"
                        };
                        var hide = Main.StartProcess(info);
                        return(hide);
                    },
                    IcoPath = "Images/cmd.png"
                },
                new Result
                {
                    Title  = api.GetTranslation("wox_plugin_program_open_containing_folder"),
                    Action = _ =>
                    {
                        var hide = Main.StartProcess(new ProcessStartInfo(ParentDirectory));
                        return(hide);
                    },
                    IcoPath = "Images/folder.png"
                }
            };

            return(contextMenus);
        }
Example #15
0
 public FileSystemSettings(IPublicAPI woxAPI, FolderSettings settings)
 {
     this.woxAPI = woxAPI;
     InitializeComponent();
     _settings = settings ?? throw new ArgumentNullException(paramName: nameof(settings));
     lbxFolders.ItemsSource = _settings.FolderLinks;
 }
Example #16
0
        public void Update(PowerLauncherPluginSettings setting, IPublicAPI api)
        {
            if (setting == null || api == null)
            {
                return;
            }

            if (Metadata.Disabled && !setting.Disabled)
            {
                Metadata.Disabled = false;
                InitializePlugin(api);
                if (!IsPluginInitialized)
                {
                    var title = string.Format(CultureInfo.CurrentCulture, Resources.FailedToLoadPluginTitle, Metadata.Name);
                    api.ShowMsg(title, Resources.FailedToLoadPluginDescription, string.Empty, false);
                }
            }
            else
            {
                Metadata.Disabled = setting.Disabled;
            }

            Metadata.ActionKeyword = setting.ActionKeyword;
            Metadata.IsGlobal      = setting.IsGlobal;
            if (Plugin is ISettingProvider)
            {
                (Plugin as ISettingProvider).UpdateSettings(setting);
            }
        }
Example #17
0
 public SettingWindow(IPublicAPI api)
 {
     _api = api;
     InitializeComponent();
     ResultListBoxPreview.DataContext = new ResultsViewModel();
     Loaded += Setting_Loaded;
 }
Example #18
0
        public static void InitializePlugins(IPublicAPI api)
        {
            API = api ?? throw new ArgumentNullException(nameof(api));
            var failedPlugins = new ConcurrentQueue <PluginPair>();

            Parallel.ForEach(AllPlugins, pair =>
            {
                if (pair.Metadata.Disabled)
                {
                    return;
                }

                pair.InitializePlugin(API);

                if (!pair.IsPluginInitialized)
                {
                    failedPlugins.Enqueue(pair);
                }
            });

            _contextMenuPlugins = GetPluginsForInterface <IContextMenu>();

            if (failedPlugins.Any())
            {
                var failed      = string.Join(",", failedPlugins.Select(x => x.Metadata.Name));
                var description = string.Format(CultureInfo.CurrentCulture, Resources.FailedToInitializePluginsDescription, failed);
                API.ShowMsg(Resources.FailedToInitializePluginsTitle, description, string.Empty, false);
            }
        }
Example #19
0
 public SettingWindow(IPublicAPI api)
 {
     _api = api;
     InitializeComponent();
     ResultListBoxPreview.DataContext = new ResultsViewModel();
     Loaded += Setting_Loaded;
 }
Example #20
0
        public AlarmCompletionHandler(IPublicAPI api, Settings settings)
        {
            _api      = api;
            _settings = settings;

            _player = new SoundPlayer();
        }
Example #21
0
            public List <Result> ContextMenus(IPublicAPI api)
            {
                var contextMenus = new List <Result>
                {
                    new Result
                    {
                        Title = api.GetTranslation("flowlauncher_plugin_program_open_containing_folder"),

                        Action = _ =>
                        {
                            Main.Context.API.OpenDirectory(Package.Location);

                            return(true);
                        },

                        IcoPath = "Images/folder.png"
                    }
                };

                if (CanRunElevated)
                {
                    contextMenus.Add(new Result
                    {
                        Title  = api.GetTranslation("flowlauncher_plugin_program_run_as_administrator"),
                        Action = _ =>
                        {
                            LaunchElevated();
                            return(true);
                        },
                        IcoPath = "Images/cmd.png"
                    });
                }

                return(contextMenus);
            }
Example #22
0
            public List <Result> ContextMenus(IPublicAPI api)
            {
                var contextMenus = new List <Result>
                {
                    new Result
                    {
                        Title = api.GetTranslation("flowlauncher_plugin_program_open_containing_folder"),

                        Action = _ =>
                        {
                            Main.StartProcess(Process.Start,
                                              new ProcessStartInfo(
                                                  !string.IsNullOrEmpty(Main._settings.CustomizedExplorer)
                                                    ? Main._settings.CustomizedExplorer
                                                    : Settings.Explorer,
                                                  Main._settings.CustomizedArgs
                                                  .Replace("%s", $"\"{Package.Location}\"")
                                                  .Trim()));

                            return(true);
                        },

                        IcoPath = "Images/folder.png"
                    }
                };

                return(contextMenus);
            }
Example #23
0
        private bool InitPlugin(IPublicAPI api)
        {
            if (Plugin == null)
            {
                Log.Warn($"Can not initialize {Metadata.Name} plugin as it was not loaded", GetType());
                return(false);
            }

            try
            {
                Plugin.Init(new PluginInitContext
                {
                    CurrentPluginMetadata = Metadata,
                    API = api,
                });
            }
#pragma warning disable CA1031 // Do not catch general exception types
            catch (Exception e)
#pragma warning restore CA1031 // Do not catch general exception types
            {
                Log.Exception($"Fail to Init plugin: {Metadata.Name}", e, GetType());
                return(false);
            }

            return(true);
        }
Example #24
0
        public List <Result> ContextMenus(IPublicAPI api)
        {
            var contextMenus = new List <Result>
            {
                new Result
                {
                    Title  = api.GetTranslation("flowlauncher_plugin_program_run_as_different_user"),
                    Action = _ =>
                    {
                        var info = new ProcessStartInfo
                        {
                            FileName         = FullPath,
                            WorkingDirectory = ParentDirectory,
                            UseShellExecute  = true
                        };

                        Task.Run(() => Main.StartProcess(ShellCommand.RunAsDifferentUser, info));

                        return(true);
                    },
                    IcoPath = "Images/user.png",
                    Glyph   = new GlyphInfo(FontFamily: "/Resources/#Segoe Fluent Icons", Glyph: "\xe7ee"),
                },
                new Result
                {
                    Title  = api.GetTranslation("flowlauncher_plugin_program_run_as_administrator"),
                    Action = _ =>
                    {
                        var info = new ProcessStartInfo
                        {
                            FileName         = FullPath,
                            WorkingDirectory = ParentDirectory,
                            Verb             = "runas",
                            UseShellExecute  = true
                        };

                        Task.Run(() => Main.StartProcess(Process.Start, info));

                        return(true);
                    },
                    IcoPath = "Images/cmd.png",
                    Glyph   = new GlyphInfo(FontFamily: "/Resources/#Segoe Fluent Icons", Glyph: "\xe7ef"),
                },
                new Result
                {
                    Title  = api.GetTranslation("flowlauncher_plugin_program_open_containing_folder"),
                    Action = _ =>
                    {
                        Main.Context.API.OpenDirectory(ParentDirectory, FullPath);

                        return(true);
                    },
                    IcoPath = "Images/folder.png",
                    Glyph   = new GlyphInfo(FontFamily: "/Resources/#Segoe Fluent Icons", Glyph: "\xe838"),
                }
            };

            return(contextMenus);
        }
Example #25
0
 public SettingsControl(IPublicAPI woxAPI, Settings settings)
 {
     InitializeComponent();
     _settings       = settings;
     _woxAPI         = woxAPI;
     profileBox.Text = _settings.Profile;
     regionBox.Text  = _settings.Region;
 }
Example #26
0
 public SettingWindow(IPublicAPI api, SettingWindowViewModel viewModel)
 {
     InitializeComponent();
     _settings   = viewModel.Settings;
     DataContext = viewModel;
     _viewModel  = viewModel;
     _api        = api;
 }
Example #27
0
 public SettingWindow(IPublicAPI api, SettingWindowViewModel viewModel)
 {
     InitializeComponent();
     _settings = viewModel.Settings;
     DataContext = viewModel;
     _viewModel = viewModel;
     _api = api;
 }
Example #28
0
 public SettingWindow(IPublicAPI api, Settings settings)
 {
     InitializeComponent();
     _settings = settings;
     _api      = api;
     ResultListBoxPreview.DataContext = new ResultsViewModel(_settings);
     Loaded += Setting_Loaded;
 }
 public SpecifilerPluginSettings(IPublicAPI woxAPI, Settings settings)
 {
     this.woxAPI = woxAPI;
     InitializeComponent();
     _settings = settings;
     lbxFolders.ItemsSource = _settings.FolderLinks;
     txtExtensions.Text     = string.Join("; ", _settings.Extensions);
 }
Example #30
0
        public Result Result(string query, IPublicAPI api)
        {
            var score = Score(query);

            if (score <= 0)
            { // no need to create result if this is zero
                return(null);
            }

            if (!hasArguments)
            {
                var noArgumentScoreModifier = 5;
                score += noArgumentScoreModifier;
            }
            else
            {
                // Filter Web Applications when searching for the main application
                if (FilterWebApplication(query))
                {
                    return(null);
                }
            }

            var result = new Result
            {
                SubTitle    = SetSubtitle(AppType, api),
                IcoPath     = IcoPath,
                Score       = score,
                ContextData = this,
                Action      = e =>
                {
                    var info = new ProcessStartInfo
                    {
                        FileName         = LnkResolvedPath ?? FullPath,
                        WorkingDirectory = ParentDirectory,
                        UseShellExecute  = true
                    };

                    Main.StartProcess(Process.Start, info);

                    return(true);
                }
            };

            if (Description.Length >= Name.Length &&
                Description.Substring(0, Name.Length) == Name)
            {
                result.Title = Description;
                result.TitleHighlightData = StringMatcher.FuzzySearch(query, Description).MatchData;
            }
            else
            {
                result.Title = Name;
                result.TitleHighlightData = StringMatcher.FuzzySearch(query, Name).MatchData;
            }

            return(result);
        }
Example #31
0
            public Result Result(string query, IPublicAPI api)
            {
                string      title;
                MatchResult matchResult;

                // We suppose Name won't be null
                if (Description == null || Name.StartsWith(Description))
                {
                    title       = Name;
                    matchResult = StringMatcher.FuzzySearch(query, title);
                }
                else if (Description.StartsWith(Name))
                {
                    title       = Description;
                    matchResult = StringMatcher.FuzzySearch(query, Description);
                }
                else
                {
                    title = $"{Name}: {Description}";
                    var nameMatch       = StringMatcher.FuzzySearch(query, Name);
                    var desciptionMatch = StringMatcher.FuzzySearch(query, Description);
                    if (desciptionMatch.Score > nameMatch.Score)
                    {
                        for (int i = 0; i < desciptionMatch.MatchData.Count; i++)
                        {
                            desciptionMatch.MatchData[i] += Name.Length + 2; // 2 is ": "
                        }
                        matchResult = desciptionMatch;
                    }
                    else
                    {
                        matchResult = nameMatch;
                    }
                }

                if (!matchResult.Success)
                {
                    return(null);
                }

                var result = new Result
                {
                    Title              = title,
                    SubTitle           = Package.Location,
                    Icon               = Logo,
                    Score              = matchResult.Score,
                    TitleHighlightData = matchResult.MatchData,
                    ContextData        = this,
                    Action             = e =>
                    {
                        Launch(api);
                        return(true);
                    }
                };


                return(result);
            }
Example #32
0
        /// <summary>
        /// Load and init all Wox plugins
        /// </summary>
        public static void Init(IPublicAPI api)
        {
            if (api == null)
            {
                throw new WoxFatalException("api is null");
            }

            SetupPluginDirectories();
            API = api;

            var metadatas = PluginConfig.Parse(pluginDirectories);

            AllPlugins = (new CSharpPluginLoader().LoadPlugin(metadatas)).
                         Concat(new JsonRPCPluginLoader <PythonPlugin>().LoadPlugin(metadatas));

            //load plugin i18n languages
            ResourceMerger.UpdatePluginLanguages();

            foreach (PluginPair pluginPair in AllPlugins)
            {
                PluginPair pair = pluginPair;
                ThreadPool.QueueUserWorkItem(o =>
                {
                    var milliseconds = Stopwatch.Normal($"Plugin init: {pair.Metadata.Name}", () =>
                    {
                        pair.Plugin.Init(new PluginInitContext
                        {
                            CurrentPluginMetadata = pair.Metadata,
                            Proxy = HttpProxy.Instance,
                            API   = API
                        });
                    });
                    pair.InitTime = milliseconds;
                    InternationalizationManager.Instance.UpdatePluginMetadataTranslations(pair);
                });
            }

            ThreadPool.QueueUserWorkItem(o =>
            {
                InstantQueryPlugins = GetPluginsForInterface <IInstantQuery>();
                contextMenuPlugins  = GetPluginsForInterface <IContextMenu>();
                foreach (var plugin in AllPlugins)
                {
                    if (IsGlobalPlugin(plugin.Metadata))
                    {
                        GlobalPlugins.Add(plugin);
                    }
                    else
                    {
                        foreach (string actionKeyword in plugin.Metadata.ActionKeywords)
                        {
                            NonGlobalPlugins[actionKeyword] = plugin;
                        }
                    }
                }
            });
        }
        public FolderPluginSettings(IPublicAPI flowlauncherAPI, Settings settings)
        {
            this.flowlauncherAPI = flowlauncherAPI;
            InitializeComponent();
            _settings = settings;
            lbxFolders.ItemsSource = _settings.FolderLinks;

            RefreshView();
        }
Example #34
0
 private void Initilize(IList<SearchSource> sources, PluginInitContext context, Action action)
 {
     InitializeComponent();
     DataContext = _viewModel;
     _searchSource = _viewModel.SearchSource;
     _searchSources = sources;
     _action = action;
     _context = context;
     _api = _context.API;
 }
Example #35
0
        /// <summary>
        /// Load and init all Wox plugins
        /// </summary>
        public static void Init(IPublicAPI api)
        {
            if (api == null) throw new WoxCritialException("api is null");

            SetupPluginDirectories();
            API = api;
            plugins.Clear();

            pluginMetadatas = PluginConfig.Parse(pluginDirectories);
            plugins.AddRange(new CSharpPluginLoader().LoadPlugin(pluginMetadatas));
            plugins.AddRange(new JsonRPCPluginLoader<PythonPlugin>().LoadPlugin(pluginMetadatas));

            //load plugin i18n languages
            ResourceMerger.ApplyPluginLanguages();

            foreach (PluginPair pluginPair in plugins)
            {
                PluginPair pair = pluginPair;
                ThreadPool.QueueUserWorkItem(o =>
                {
                    Stopwatch sw = new Stopwatch();
                    sw.Start();
                    pair.Plugin.Init(new PluginInitContext()
                    {
                        CurrentPluginMetadata = pair.Metadata,
                        Proxy = HttpProxy.Instance,
                        API = API
                    });
                    sw.Stop();
                    DebugHelper.WriteLine(string.Format("Plugin init:{0} - {1}", pair.Metadata.Name, sw.ElapsedMilliseconds));
                    pair.InitTime = sw.ElapsedMilliseconds;
                    InternationalizationManager.Instance.UpdatePluginMetadataTranslations(pair);
                });
            }

            ThreadPool.QueueUserWorkItem(o =>
            {
                LoadInstantSearches();
            });
        }
Example #36
0
 public List<Result> ContextMenus(IPublicAPI api)
 {
     var contextMenus = new List<Result>
     {
         new Result
         {
             Title = api.GetTranslation("wox_plugin_program_run_as_administrator"),
             Action = _ =>
             {
                 var info = new ProcessStartInfo
                 {
                     FileName = FullPath,
                     WorkingDirectory = ParentDirectory,
                     Verb = "runas"
                 };
                 var hide = Main.StartProcess(info);
                 return hide;
             },
             IcoPath = "Images/cmd.png"
         },
         new Result
         {
             Title = api.GetTranslation("wox_plugin_program_open_containing_folder"),
             Action = _ =>
             {
                 var hide = Main.StartProcess(new ProcessStartInfo(ParentDirectory));
                 return hide;
             },
             IcoPath = "Images/folder.png"
         }
     };
     return contextMenus;
 }
Example #37
0
        public Result Result(string query, IPublicAPI api)
        {
            var result = new Result
            {
                SubTitle = FullPath,
                IcoPath = IcoPath,
                Score = Score(query),
                ContextData = this,
                Action = e =>
                {
                    var info = new ProcessStartInfo
                    {
                        FileName = FullPath,
                        WorkingDirectory = ParentDirectory
                    };
                    var hide = Main.StartProcess(info);
                    return hide;
                }
            };

            if (Description.Length >= Name.Length &&
                Description.Substring(0, Name.Length) == Name)
            {
                result.Title = Description;
            }
            else if (!string.IsNullOrEmpty(Description))
            {
                result.Title = $"{Name}: {Description}";
            }
            else
            {
                result.Title = Name;
            }

            return result;
        }
Example #38
0
 public NotifyIconManager(IPublicAPI api)
 {
     InitialTray();
     _api = api;
 }
Example #39
0
 public FileSystemSettings(IPublicAPI woxAPI)
 {
     this.woxAPI = woxAPI;
     InitializeComponent();
     lbxFolders.ItemsSource = FolderStorage.Instance.FolderLinks;
 }
Example #40
0
            public Result Result(string query, IPublicAPI api)
            {
                var result = new Result
                {
                    SubTitle = Package.Location,
                    Icon = Logo,
                    Score = Score(query),
                    ContextData = this,
                    Action = e =>
                    {
                        Launch(api);
                        return true;
                    }
                };

                if (Description.Length >= DisplayName.Length &&
                    Description.Substring(0, DisplayName.Length) == DisplayName)
                {
                    result.Title = Description;
                }
                else if (!string.IsNullOrEmpty(Description))
                {
                    result.Title = $"{DisplayName}: {Description}";
                }
                else
                {
                    result.Title = DisplayName;
                }
                return result;
            }
 public Settings(IPublicAPI woxAPI)
 {
     this.woxAPI = woxAPI;
     InitializeComponent();
 }
Example #42
0
 public List<Result> ContextMenus(IPublicAPI api)
 {
     var contextMenus = new List<Result>
     {
         new Result
         {
             Title = api.GetTranslation("wox_plugin_program_open_containing_folder"),
             Action = _ =>
             {
                 var hide = Main.StartProcess(new ProcessStartInfo(Package.Location));
                 return hide;
             },
             IcoPath = "Images/folder.png"
         }
     };
     return contextMenus;
 }
Example #43
0
 private async void Launch(IPublicAPI api)
 {
     var appManager = new ApplicationActivationManager();
     uint unusedPid;
     const string noArgs = "";
     const ACTIVATEOPTIONS noFlags = ACTIVATEOPTIONS.AO_NONE;
     await Task.Run(() =>
     {
         try
         {
             appManager.ActivateApplication(UserModelId, noArgs, noFlags, out unusedPid);
         }
         catch (Exception)
         {
             var name = "Plugin: Program";
             var message = $"Can't start UWP: {DisplayName}";
             api.ShowMsg(name, message, string.Empty);
         }
     });
 }