using System.Collections.Generic; using System.Drawing; using System.IO; using System.Windows.Forms; using Newtonsoft.Json; namespace Wox.Infrastructure.Storage.UserSettings { public class UserSettingStorage : BaseStorage { [JsonProperty] public string Hotkey { get; set; } [JsonProperty] public string Theme { get; set; } [JsonProperty] public string QueryBoxFont { get; set; } [JsonProperty] public string QueryBoxFontStyle { get; set; } [JsonProperty] public string QueryBoxFontWeight { get; set; } [JsonProperty] public string QueryBoxFontStretch { get; set; } [JsonProperty] public string ResultItemFont { get; set; } [JsonProperty] public string ResultItemFontStyle { get; set; } [JsonProperty] public string ResultItemFontWeight { get; set; } [JsonProperty] public string ResultItemFontStretch { get; set; } [JsonProperty] public bool ReplaceWinR { get; set; } [JsonProperty] public List WebSearches { get; set; } [JsonProperty] public double WindowLeft { get; set; } [JsonProperty] public double WindowTop { get; set; } [JsonProperty] public List ProgramSources { get; set; } [JsonProperty] public List FolderLinks { get; set; } //Aaron [JsonProperty] public List CustomPluginHotkeys { get; set; } [JsonProperty] public bool StartWoxOnSystemStartup { get; set; } [JsonProperty] public double Opacity { get; set; } [JsonProperty] public OpacityMode OpacityMode { get; set; } [JsonProperty] public bool LeaveCmdOpen { get; set; } [JsonProperty] public bool HideWhenDeactive { get; set; } public List LoadDefaultWebSearches() { List webSearches = new List(); WebSearch googleWebSearch = new WebSearch() { Title = "Google", ActionWord = "g", IconPath = Path.GetDirectoryName(Application.ExecutablePath) + @"\Images\websearch\google.png", Url = "https://www.google.com/search?q={q}", Enabled = true }; webSearches.Add(googleWebSearch); WebSearch wikiWebSearch = new WebSearch() { Title = "Wikipedia", ActionWord = "wiki", IconPath = Path.GetDirectoryName(Application.ExecutablePath) + @"\Images\websearch\wiki.png", Url = "http://en.wikipedia.org/wiki/{q}", Enabled = true }; webSearches.Add(wikiWebSearch); WebSearch findIcon = new WebSearch() { Title = "FindIcon", ActionWord = "findicon", IconPath = Path.GetDirectoryName(Application.ExecutablePath) + @"\Images\websearch\pictures.png", Url = "http://findicons.com/search/{q}", Enabled = true }; webSearches.Add(findIcon); return webSearches; } public List LoadDefaultProgramSources() { var list = new List(); list.Add(new ProgramSource() { BonusPoints = 0, Enabled = true, Type = "CommonStartMenuProgramSource" }); list.Add(new ProgramSource() { BonusPoints = 0, Enabled = true, Type = "UserStartMenuProgramSource" }); list.Add(new ProgramSource() { BonusPoints = -10, Enabled = true, Type = "AppPathsProgramSource" }); return list; } protected override string ConfigName { get { return "config"; } } protected override void LoadDefaultConfig() { Theme = "Dark"; ReplaceWinR = true; WebSearches = LoadDefaultWebSearches(); ProgramSources = LoadDefaultProgramSources(); Hotkey = "Alt + Space"; QueryBoxFont = FontFamily.GenericSansSerif.Name; ResultItemFont = FontFamily.GenericSansSerif.Name; Opacity = 1; OpacityMode = OpacityMode.Normal; LeaveCmdOpen = false; HideWhenDeactive = false; } } public enum OpacityMode { Normal = 0, LayeredWindow = 1, DWM = 2 } }