2014-03-11 21:40:25 +08:00
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
2014-03-11 22:17:10 +08:00
|
|
|
|
using System.Diagnostics;
|
2014-01-25 18:00:13 +08:00
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Windows;
|
|
|
|
|
using System.Windows.Controls;
|
2014-03-19 22:17:01 +08:00
|
|
|
|
using System.Windows.Media;
|
2014-03-26 15:30:59 +08:00
|
|
|
|
using System.Windows.Media.Imaging;
|
2014-03-11 21:40:25 +08:00
|
|
|
|
using IWshRuntimeLibrary;
|
2014-03-23 16:17:41 +08:00
|
|
|
|
using Microsoft.VisualBasic.ApplicationServices;
|
2014-01-29 22:44:57 +08:00
|
|
|
|
using Wox.Infrastructure;
|
2014-03-23 16:17:41 +08:00
|
|
|
|
using Wox.Infrastructure.Storage;
|
|
|
|
|
using Wox.Infrastructure.Storage.UserSettings;
|
2014-03-19 22:17:01 +08:00
|
|
|
|
using Wox.Plugin;
|
2014-03-25 13:25:43 +08:00
|
|
|
|
using Wox.Helper;
|
2014-03-11 21:40:25 +08:00
|
|
|
|
using Application = System.Windows.Forms.Application;
|
|
|
|
|
using File = System.IO.File;
|
2014-02-06 22:22:02 +08:00
|
|
|
|
using MessageBox = System.Windows.MessageBox;
|
2014-03-28 22:42:28 +08:00
|
|
|
|
using System.Windows.Data;
|
2014-01-25 18:00:13 +08:00
|
|
|
|
|
2014-01-29 18:33:24 +08:00
|
|
|
|
namespace Wox
|
2014-01-25 18:00:13 +08:00
|
|
|
|
{
|
2014-03-20 02:26:00 +08:00
|
|
|
|
public partial class SettingWindow : Window
|
2014-01-25 18:00:13 +08:00
|
|
|
|
{
|
2014-03-11 21:40:25 +08:00
|
|
|
|
string woxLinkPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Startup), "wox.lnk");
|
2014-02-22 15:52:20 +08:00
|
|
|
|
public MainWindow MainWindow;
|
2014-01-25 18:00:13 +08:00
|
|
|
|
|
2014-03-20 02:26:00 +08:00
|
|
|
|
public SettingWindow()
|
2014-02-06 22:22:02 +08:00
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
}
|
|
|
|
|
|
2014-03-20 02:26:00 +08:00
|
|
|
|
public SettingWindow(MainWindow mainWindow)
|
2014-01-25 18:00:13 +08:00
|
|
|
|
{
|
2014-02-22 15:52:20 +08:00
|
|
|
|
this.MainWindow = mainWindow;
|
2014-01-25 18:00:13 +08:00
|
|
|
|
InitializeComponent();
|
|
|
|
|
Loaded += Setting_Loaded;
|
2014-02-22 15:52:20 +08:00
|
|
|
|
}
|
|
|
|
|
|
2014-03-25 13:25:43 +08:00
|
|
|
|
bool settingsLoaded = false;
|
2014-02-22 15:52:20 +08:00
|
|
|
|
private void Setting_Loaded(object sender, RoutedEventArgs ev)
|
|
|
|
|
{
|
2014-02-22 11:55:48 +08:00
|
|
|
|
ctlHotkey.OnHotkeyChanged += ctlHotkey_OnHotkeyChanged;
|
2014-03-23 16:17:41 +08:00
|
|
|
|
ctlHotkey.SetHotkey(UserSettingStorage.Instance.Hotkey, false);
|
2014-01-26 00:37:15 +08:00
|
|
|
|
cbReplaceWinR.Checked += (o, e) =>
|
|
|
|
|
{
|
2014-03-23 16:17:41 +08:00
|
|
|
|
UserSettingStorage.Instance.ReplaceWinR = true;
|
|
|
|
|
UserSettingStorage.Instance.Save();
|
2014-01-26 00:37:15 +08:00
|
|
|
|
};
|
|
|
|
|
cbReplaceWinR.Unchecked += (o, e) =>
|
|
|
|
|
{
|
2014-03-23 16:17:41 +08:00
|
|
|
|
UserSettingStorage.Instance.ReplaceWinR = false;
|
|
|
|
|
UserSettingStorage.Instance.Save();
|
2014-01-26 00:37:15 +08:00
|
|
|
|
};
|
2014-02-22 11:55:48 +08:00
|
|
|
|
|
2014-03-19 01:27:59 +08:00
|
|
|
|
cbEnablePythonPlugins.Checked += (o, e) =>
|
|
|
|
|
{
|
2014-03-23 16:17:41 +08:00
|
|
|
|
UserSettingStorage.Instance.EnablePythonPlugins = true;
|
|
|
|
|
UserSettingStorage.Instance.Save();
|
2014-03-19 01:27:59 +08:00
|
|
|
|
};
|
|
|
|
|
cbEnablePythonPlugins.Unchecked += (o, e) =>
|
|
|
|
|
{
|
2014-03-23 16:17:41 +08:00
|
|
|
|
UserSettingStorage.Instance.EnablePythonPlugins = false;
|
|
|
|
|
UserSettingStorage.Instance.Save();
|
2014-03-19 01:27:59 +08:00
|
|
|
|
};
|
|
|
|
|
|
2014-03-19 22:17:01 +08:00
|
|
|
|
#region Load Theme Data
|
|
|
|
|
|
2014-03-23 16:17:41 +08:00
|
|
|
|
if (!string.IsNullOrEmpty(UserSettingStorage.Instance.QueryBoxFont) &&
|
|
|
|
|
Fonts.SystemFontFamilies.Count(o => o.FamilyNames.Values.Contains(UserSettingStorage.Instance.QueryBoxFont)) > 0)
|
2014-03-19 22:17:01 +08:00
|
|
|
|
{
|
2014-03-23 16:17:41 +08:00
|
|
|
|
cbQueryBoxFont.Text = UserSettingStorage.Instance.QueryBoxFont;
|
2014-03-25 13:25:43 +08:00
|
|
|
|
|
|
|
|
|
cbQueryBoxFontFaces.SelectedItem = SyntaxSugars.CallOrRescueDefault(() => ((FontFamily)cbQueryBoxFont.SelectedItem).ConvertFromInvariantStringsOrNormal(
|
|
|
|
|
UserSettingStorage.Instance.QueryBoxFontStyle,
|
|
|
|
|
UserSettingStorage.Instance.QueryBoxFontWeight,
|
|
|
|
|
UserSettingStorage.Instance.QueryBoxFontStretch
|
|
|
|
|
));
|
2014-03-19 22:17:01 +08:00
|
|
|
|
}
|
2014-03-23 16:17:41 +08:00
|
|
|
|
if (!string.IsNullOrEmpty(UserSettingStorage.Instance.ResultItemFont) &&
|
2014-03-25 13:25:43 +08:00
|
|
|
|
Fonts.SystemFontFamilies.Count(o => o.FamilyNames.Values.Contains(UserSettingStorage.Instance.ResultItemFont)) > 0)
|
2014-03-19 22:17:01 +08:00
|
|
|
|
{
|
2014-03-23 16:17:41 +08:00
|
|
|
|
cbResultItemFont.Text = UserSettingStorage.Instance.ResultItemFont;
|
2014-03-25 13:25:43 +08:00
|
|
|
|
|
|
|
|
|
cbResultItemFontFaces.SelectedItem = SyntaxSugars.CallOrRescueDefault(() => ((FontFamily)cbResultItemFont.SelectedItem).ConvertFromInvariantStringsOrNormal(
|
|
|
|
|
UserSettingStorage.Instance.ResultItemFontStyle,
|
|
|
|
|
UserSettingStorage.Instance.ResultItemFontWeight,
|
|
|
|
|
UserSettingStorage.Instance.ResultItemFontStretch
|
|
|
|
|
));
|
2014-03-19 22:17:01 +08:00
|
|
|
|
}
|
|
|
|
|
resultPanelPreview.AddResults(new List<Result>()
|
|
|
|
|
{
|
|
|
|
|
new Result()
|
|
|
|
|
{
|
|
|
|
|
Title = "Wox is an effective launcher for windows",
|
|
|
|
|
SubTitle = "Wox provide bundles of features let you access infomations quickly.",
|
|
|
|
|
IcoPath = "Images/work.png",
|
2014-03-23 16:33:05 +08:00
|
|
|
|
PluginDirectory = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath)
|
2014-03-19 22:17:01 +08:00
|
|
|
|
},
|
|
|
|
|
new Result()
|
|
|
|
|
{
|
|
|
|
|
Title = "Search applications",
|
2014-03-26 15:30:59 +08:00
|
|
|
|
SubTitle = "Search applications, files (via everything plugin) and browser bookmarks",
|
2014-03-19 22:17:01 +08:00
|
|
|
|
IcoPath = "Images/work.png",
|
2014-03-23 16:33:05 +08:00
|
|
|
|
PluginDirectory = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath)
|
2014-03-19 22:17:01 +08:00
|
|
|
|
},
|
|
|
|
|
new Result()
|
|
|
|
|
{
|
|
|
|
|
Title = "Search web contents with shortcuts",
|
|
|
|
|
SubTitle = "e.g. search google with g keyword or youtube keyword)",
|
|
|
|
|
IcoPath = "Images/work.png",
|
2014-03-23 16:33:05 +08:00
|
|
|
|
PluginDirectory = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath)
|
2014-03-19 22:17:01 +08:00
|
|
|
|
},
|
|
|
|
|
new Result()
|
|
|
|
|
{
|
|
|
|
|
Title = "clipboard history ",
|
|
|
|
|
IcoPath = "Images/work.png",
|
2014-03-23 16:33:05 +08:00
|
|
|
|
PluginDirectory = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath)
|
2014-03-19 22:17:01 +08:00
|
|
|
|
},
|
|
|
|
|
new Result()
|
|
|
|
|
{
|
|
|
|
|
Title = "Themes support",
|
|
|
|
|
SubTitle = "get more themes from http://www.getwox.com/theme",
|
|
|
|
|
IcoPath = "Images/work.png",
|
2014-03-23 16:33:05 +08:00
|
|
|
|
PluginDirectory = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath)
|
2014-03-26 15:30:59 +08:00
|
|
|
|
},
|
|
|
|
|
new Result()
|
|
|
|
|
{
|
|
|
|
|
Title = "Plugins support",
|
|
|
|
|
SubTitle = "get more plugins from http://www.getwox.com/plugin",
|
|
|
|
|
IcoPath = "Images/work.png",
|
|
|
|
|
PluginDirectory = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath)
|
|
|
|
|
},
|
|
|
|
|
new Result()
|
|
|
|
|
{
|
|
|
|
|
Title = "Wox is an open-source software",
|
|
|
|
|
SubTitle = "Wox benefits from the open-source community a lot",
|
|
|
|
|
IcoPath = "Images/work.png",
|
|
|
|
|
PluginDirectory = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath)
|
2014-03-19 22:17:01 +08:00
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
2014-03-19 01:20:51 +08:00
|
|
|
|
|
2014-01-25 18:00:13 +08:00
|
|
|
|
foreach (string theme in LoadAvailableThemes())
|
|
|
|
|
{
|
2014-03-19 20:16:20 +08:00
|
|
|
|
string themeName = System.IO.Path.GetFileNameWithoutExtension(theme);
|
2014-01-25 18:00:13 +08:00
|
|
|
|
themeComboBox.Items.Add(themeName);
|
|
|
|
|
}
|
|
|
|
|
|
2014-03-23 16:17:41 +08:00
|
|
|
|
themeComboBox.SelectedItem = UserSettingStorage.Instance.Theme;
|
|
|
|
|
cbReplaceWinR.IsChecked = UserSettingStorage.Instance.ReplaceWinR;
|
|
|
|
|
webSearchView.ItemsSource = UserSettingStorage.Instance.WebSearches;
|
|
|
|
|
lvCustomHotkey.ItemsSource = UserSettingStorage.Instance.CustomPluginHotkeys;
|
|
|
|
|
cbEnablePythonPlugins.IsChecked = UserSettingStorage.Instance.EnablePythonPlugins;
|
2014-03-11 21:40:25 +08:00
|
|
|
|
cbStartWithWindows.IsChecked = File.Exists(woxLinkPath);
|
2014-03-25 13:25:43 +08:00
|
|
|
|
|
2014-03-28 22:42:28 +08:00
|
|
|
|
var features = new CompositeCollection
|
|
|
|
|
{
|
|
|
|
|
new CollectionContainer()
|
|
|
|
|
{
|
|
|
|
|
Collection =
|
|
|
|
|
PluginLoader.Plugins.AllPlugins.Where(o => o.Metadata.PluginType == PluginType.System)
|
|
|
|
|
.Select(o => o.Plugin)
|
|
|
|
|
.Cast<Wox.Plugin.System.ISystemPlugin>()
|
|
|
|
|
},
|
|
|
|
|
FindResource("FeatureBoxSeperator"),
|
|
|
|
|
new CollectionContainer()
|
|
|
|
|
{
|
|
|
|
|
Collection =
|
|
|
|
|
PluginLoader.Plugins.AllPlugins.Where(o => o.Metadata.PluginType == PluginType.ThirdParty)
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
featureBox.ItemsSource = features;
|
|
|
|
|
|
2014-03-26 17:34:19 +08:00
|
|
|
|
slOpacity.Value = UserSettingStorage.Instance.Opacity;
|
|
|
|
|
CbOpacityMode.SelectedItem = UserSettingStorage.Instance.OpacityMode;
|
|
|
|
|
|
2014-03-26 15:30:59 +08:00
|
|
|
|
var wallpaper = WallpaperPathRetrieval.GetWallpaperPath();
|
|
|
|
|
if (wallpaper != null && File.Exists(wallpaper))
|
|
|
|
|
{
|
|
|
|
|
var brush = new ImageBrush(new BitmapImage(new Uri(wallpaper)));
|
|
|
|
|
brush.Stretch = Stretch.UniformToFill;
|
|
|
|
|
this.PreviewPanel.Background = brush;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
var wallpaperColor = WallpaperPathRetrieval.GetWallpaperColor();
|
|
|
|
|
this.PreviewPanel.Background = new SolidColorBrush(wallpaperColor);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//PreviewPanel
|
2014-03-25 13:25:43 +08:00
|
|
|
|
settingsLoaded = true;
|
|
|
|
|
App.Window.SetTheme(UserSettingStorage.Instance.Theme);
|
2014-01-25 18:00:13 +08:00
|
|
|
|
}
|
|
|
|
|
|
2014-02-02 16:15:34 +08:00
|
|
|
|
public void ReloadWebSearchView()
|
|
|
|
|
{
|
|
|
|
|
webSearchView.Items.Refresh();
|
|
|
|
|
}
|
|
|
|
|
|
2014-03-19 20:16:20 +08:00
|
|
|
|
|
2014-01-25 18:00:13 +08:00
|
|
|
|
private List<string> LoadAvailableThemes()
|
|
|
|
|
{
|
2014-03-22 16:50:47 +08:00
|
|
|
|
string themePath = Path.Combine(Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath), "Themes");
|
2014-03-15 00:17:37 +08:00
|
|
|
|
return Directory.GetFiles(themePath).Where(filePath => filePath.EndsWith(".xaml") && !filePath.EndsWith("Default.xaml")).ToList();
|
2014-01-25 18:00:13 +08:00
|
|
|
|
}
|
|
|
|
|
|
2014-03-19 22:17:01 +08:00
|
|
|
|
|
2014-01-28 11:19:27 +08:00
|
|
|
|
|
2014-02-02 16:15:34 +08:00
|
|
|
|
private void btnAddWebSearch_OnClick(object sender, RoutedEventArgs e)
|
2014-01-28 11:19:27 +08:00
|
|
|
|
{
|
2014-02-02 16:15:34 +08:00
|
|
|
|
WebSearchSetting webSearch = new WebSearchSetting(this);
|
2014-02-22 15:52:20 +08:00
|
|
|
|
webSearch.ShowDialog();
|
2014-01-25 18:00:13 +08:00
|
|
|
|
}
|
2014-02-02 16:15:34 +08:00
|
|
|
|
|
|
|
|
|
private void btnDeleteWebSearch_OnClick(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
WebSearch seletedWebSearch = webSearchView.SelectedItem as WebSearch;
|
|
|
|
|
if (seletedWebSearch != null &&
|
|
|
|
|
MessageBox.Show("Are your sure to delete " + seletedWebSearch.Title, "Delete WebSearch",
|
|
|
|
|
MessageBoxButton.YesNo) == MessageBoxResult.Yes)
|
|
|
|
|
{
|
2014-03-23 16:17:41 +08:00
|
|
|
|
UserSettingStorage.Instance.WebSearches.Remove(seletedWebSearch);
|
2014-02-02 16:15:34 +08:00
|
|
|
|
webSearchView.Items.Refresh();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MessageBox.Show("Please select a web search");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void btnEditWebSearch_OnClick(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
WebSearch seletedWebSearch = webSearchView.SelectedItem as WebSearch;
|
|
|
|
|
if (seletedWebSearch != null)
|
|
|
|
|
{
|
|
|
|
|
WebSearchSetting webSearch = new WebSearchSetting(this);
|
|
|
|
|
webSearch.UpdateItem(seletedWebSearch);
|
2014-02-22 15:52:20 +08:00
|
|
|
|
webSearch.ShowDialog();
|
2014-02-02 16:15:34 +08:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MessageBox.Show("Please select a web search");
|
|
|
|
|
}
|
|
|
|
|
}
|
2014-02-06 22:22:02 +08:00
|
|
|
|
|
|
|
|
|
private void CbStartWithWindows_OnChecked(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
2014-03-11 21:40:25 +08:00
|
|
|
|
CreateStartupFolderShortcut();
|
2014-03-23 16:17:41 +08:00
|
|
|
|
UserSettingStorage.Instance.StartWoxOnSystemStartup = true;
|
|
|
|
|
UserSettingStorage.Instance.Save();
|
2014-02-06 22:22:02 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void CbStartWithWindows_OnUnchecked(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
2014-03-11 21:40:25 +08:00
|
|
|
|
if (File.Exists(woxLinkPath))
|
|
|
|
|
{
|
|
|
|
|
File.Delete(woxLinkPath);
|
|
|
|
|
}
|
2014-03-19 01:20:51 +08:00
|
|
|
|
|
2014-03-23 16:17:41 +08:00
|
|
|
|
UserSettingStorage.Instance.StartWoxOnSystemStartup = false;
|
|
|
|
|
UserSettingStorage.Instance.Save();
|
2014-02-06 22:22:02 +08:00
|
|
|
|
}
|
|
|
|
|
|
2014-03-11 21:40:25 +08:00
|
|
|
|
private void CreateStartupFolderShortcut()
|
2014-02-06 22:22:02 +08:00
|
|
|
|
{
|
2014-03-11 21:40:25 +08:00
|
|
|
|
WshShellClass wshShell = new WshShellClass();
|
2014-02-06 22:22:02 +08:00
|
|
|
|
|
2014-03-11 21:40:25 +08:00
|
|
|
|
IWshShortcut shortcut = (IWshShortcut)wshShell.CreateShortcut(woxLinkPath);
|
|
|
|
|
shortcut.TargetPath = Application.ExecutablePath;
|
|
|
|
|
shortcut.Arguments = "hideStart";
|
2014-03-22 16:50:47 +08:00
|
|
|
|
shortcut.WorkingDirectory = Path.GetDirectoryName(Application.ExecutablePath);
|
2014-03-11 21:40:25 +08:00
|
|
|
|
shortcut.Description = "Launch Wox";
|
2014-03-22 16:50:47 +08:00
|
|
|
|
shortcut.IconLocation = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "App.ico");
|
2014-03-11 21:40:25 +08:00
|
|
|
|
shortcut.Save();
|
2014-02-06 22:22:02 +08:00
|
|
|
|
}
|
|
|
|
|
|
2014-02-22 15:52:20 +08:00
|
|
|
|
void ctlHotkey_OnHotkeyChanged(object sender, System.EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (ctlHotkey.CurrentHotkeyAvailable)
|
|
|
|
|
{
|
|
|
|
|
MainWindow.SetHotkey(ctlHotkey.CurrentHotkey.ToString(), delegate
|
|
|
|
|
{
|
|
|
|
|
if (!MainWindow.IsVisible)
|
|
|
|
|
{
|
|
|
|
|
MainWindow.ShowApp();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MainWindow.HideApp();
|
|
|
|
|
}
|
|
|
|
|
});
|
2014-03-23 16:17:41 +08:00
|
|
|
|
MainWindow.RemoveHotkey(UserSettingStorage.Instance.Hotkey);
|
|
|
|
|
UserSettingStorage.Instance.Hotkey = ctlHotkey.CurrentHotkey.ToString();
|
|
|
|
|
UserSettingStorage.Instance.Save();
|
2014-02-22 15:52:20 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#region Custom Plugin Hotkey
|
|
|
|
|
|
|
|
|
|
private void BtnDeleteCustomHotkey_OnClick(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CustomPluginHotkey item = lvCustomHotkey.SelectedItem as CustomPluginHotkey;
|
|
|
|
|
if (item != null &&
|
2014-03-11 21:40:25 +08:00
|
|
|
|
MessageBox.Show("Are your sure to delete " + item.Hotkey + " plugin hotkey?", "Delete Custom Plugin Hotkey",
|
2014-02-22 15:52:20 +08:00
|
|
|
|
MessageBoxButton.YesNo) == MessageBoxResult.Yes)
|
|
|
|
|
{
|
2014-03-23 16:17:41 +08:00
|
|
|
|
UserSettingStorage.Instance.CustomPluginHotkeys.Remove(item);
|
2014-02-22 15:52:20 +08:00
|
|
|
|
lvCustomHotkey.Items.Refresh();
|
2014-03-23 16:17:41 +08:00
|
|
|
|
UserSettingStorage.Instance.Save();
|
2014-02-22 15:52:20 +08:00
|
|
|
|
MainWindow.RemoveHotkey(item.Hotkey);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MessageBox.Show("Please select an item");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void BtnEditCustomHotkey_OnClick(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CustomPluginHotkey item = lvCustomHotkey.SelectedItem as CustomPluginHotkey;
|
|
|
|
|
if (item != null)
|
|
|
|
|
{
|
|
|
|
|
CustomPluginHotkeySetting window = new CustomPluginHotkeySetting(this);
|
|
|
|
|
window.UpdateItem(item);
|
|
|
|
|
window.ShowDialog();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MessageBox.Show("Please select an item");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void BtnAddCustomeHotkey_OnClick(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
new CustomPluginHotkeySetting(this).ShowDialog();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void ReloadCustomPluginHotkeyView()
|
|
|
|
|
{
|
|
|
|
|
lvCustomHotkey.Items.Refresh();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
2014-03-11 22:17:10 +08:00
|
|
|
|
private void BtnEnableInstaller_OnClick(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
Process.Start("Wox.UAC.exe", "AssociatePluginInstaller");
|
|
|
|
|
}
|
2014-03-19 22:17:01 +08:00
|
|
|
|
|
|
|
|
|
#region Theme
|
|
|
|
|
private void ThemeComboBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
string themeName = themeComboBox.SelectedItem.ToString();
|
|
|
|
|
MainWindow.SetTheme(themeName);
|
2014-03-23 16:17:41 +08:00
|
|
|
|
UserSettingStorage.Instance.Theme = themeName;
|
|
|
|
|
UserSettingStorage.Instance.Save();
|
2014-03-19 22:17:01 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void CbQueryBoxFont_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
|
|
|
{
|
2014-03-25 13:25:43 +08:00
|
|
|
|
if (!settingsLoaded) return;
|
2014-03-19 22:17:01 +08:00
|
|
|
|
string queryBoxFontName = cbQueryBoxFont.SelectedItem.ToString();
|
2014-03-23 16:17:41 +08:00
|
|
|
|
UserSettingStorage.Instance.QueryBoxFont = queryBoxFontName;
|
2014-03-25 13:25:43 +08:00
|
|
|
|
this.cbQueryBoxFontFaces.SelectedItem = ((FontFamily)cbQueryBoxFont.SelectedItem).ChooseRegularFamilyTypeface();
|
|
|
|
|
|
|
|
|
|
UserSettingStorage.Instance.Save();
|
|
|
|
|
App.Window.SetTheme(UserSettingStorage.Instance.Theme);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void CbQueryBoxFontFaces_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (!settingsLoaded) return;
|
|
|
|
|
FamilyTypeface typeface = (FamilyTypeface) cbQueryBoxFontFaces.SelectedItem;
|
2014-03-26 15:30:59 +08:00
|
|
|
|
if (typeface == null)
|
|
|
|
|
{
|
|
|
|
|
if (cbQueryBoxFontFaces.Items.Count > 0)
|
|
|
|
|
cbQueryBoxFontFaces.SelectedIndex = 0;
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
UserSettingStorage.Instance.QueryBoxFontStretch = typeface.Stretch.ToString();
|
|
|
|
|
UserSettingStorage.Instance.QueryBoxFontWeight = typeface.Weight.ToString();
|
|
|
|
|
UserSettingStorage.Instance.QueryBoxFontStyle = typeface.Style.ToString();
|
|
|
|
|
UserSettingStorage.Instance.Save();
|
|
|
|
|
App.Window.SetTheme(UserSettingStorage.Instance.Theme);
|
|
|
|
|
}
|
2014-03-19 22:17:01 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void CbResultItemFont_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
|
|
|
{
|
2014-03-25 13:25:43 +08:00
|
|
|
|
if (!settingsLoaded) return;
|
2014-03-19 22:17:01 +08:00
|
|
|
|
string resultItemFont = cbResultItemFont.SelectedItem.ToString();
|
2014-03-23 16:17:41 +08:00
|
|
|
|
UserSettingStorage.Instance.ResultItemFont = resultItemFont;
|
2014-03-25 13:25:43 +08:00
|
|
|
|
this.cbResultItemFontFaces.SelectedItem = ((FontFamily)cbResultItemFont.SelectedItem).ChooseRegularFamilyTypeface();
|
|
|
|
|
|
2014-03-23 16:17:41 +08:00
|
|
|
|
UserSettingStorage.Instance.Save();
|
|
|
|
|
App.Window.SetTheme(UserSettingStorage.Instance.Theme);
|
2014-03-19 22:17:01 +08:00
|
|
|
|
}
|
|
|
|
|
|
2014-03-25 13:25:43 +08:00
|
|
|
|
private void CbResultItemFontFaces_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (!settingsLoaded) return;
|
|
|
|
|
FamilyTypeface typeface = (FamilyTypeface)cbResultItemFontFaces.SelectedItem;
|
2014-03-26 15:30:59 +08:00
|
|
|
|
if (typeface == null)
|
|
|
|
|
{
|
|
|
|
|
if (cbResultItemFontFaces.Items.Count > 0)
|
|
|
|
|
cbResultItemFontFaces.SelectedIndex = 0;
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
UserSettingStorage.Instance.ResultItemFontStretch = typeface.Stretch.ToString();
|
|
|
|
|
UserSettingStorage.Instance.ResultItemFontWeight = typeface.Weight.ToString();
|
|
|
|
|
UserSettingStorage.Instance.ResultItemFontStyle = typeface.Style.ToString();
|
|
|
|
|
UserSettingStorage.Instance.Save();
|
|
|
|
|
App.Window.SetTheme(UserSettingStorage.Instance.Theme);
|
|
|
|
|
}
|
2014-03-25 13:25:43 +08:00
|
|
|
|
}
|
2014-03-26 17:34:19 +08:00
|
|
|
|
|
|
|
|
|
private void slOpacity_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
|
|
|
|
|
{
|
|
|
|
|
UserSettingStorage.Instance.Opacity = slOpacity.Value;
|
|
|
|
|
UserSettingStorage.Instance.Save();
|
|
|
|
|
|
|
|
|
|
if (UserSettingStorage.Instance.OpacityMode == OpacityMode.LayeredWindow)
|
|
|
|
|
PreviewMainPanel.Opacity = UserSettingStorage.Instance.Opacity;
|
|
|
|
|
else
|
|
|
|
|
PreviewMainPanel.Opacity = 1;
|
|
|
|
|
|
|
|
|
|
App.Window.SetTheme(UserSettingStorage.Instance.Theme);
|
|
|
|
|
}
|
2014-03-19 22:17:01 +08:00
|
|
|
|
#endregion
|
2014-03-26 17:34:19 +08:00
|
|
|
|
|
|
|
|
|
private void CbOpacityMode_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
UserSettingStorage.Instance.OpacityMode = (OpacityMode) CbOpacityMode.SelectedItem;
|
|
|
|
|
UserSettingStorage.Instance.Save();
|
|
|
|
|
|
|
|
|
|
slOpacity.IsEnabled = UserSettingStorage.Instance.OpacityMode == OpacityMode.LayeredWindow;
|
|
|
|
|
|
|
|
|
|
if (UserSettingStorage.Instance.OpacityMode == OpacityMode.LayeredWindow)
|
|
|
|
|
PreviewMainPanel.Opacity = UserSettingStorage.Instance.Opacity;
|
|
|
|
|
else
|
|
|
|
|
PreviewMainPanel.Opacity = 1;
|
|
|
|
|
}
|
2014-03-28 22:42:28 +08:00
|
|
|
|
|
|
|
|
|
private void featureBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
// throw new NotImplementedException();
|
|
|
|
|
}
|
2014-01-25 18:00:13 +08:00
|
|
|
|
}
|
|
|
|
|
}
|