void LoadThemes() { var themeDir = Path.Combine(ApplicationDirectory.FullName, "themes"); ThemeManager = ThemeSelector.LoadSafe(themeDir); Log.Information("Themes successfully loaded. Available themes: {0}", string.Join(", ", ThemeManager.Select(t => t.Name))); var themeName = Settings.Get(SettingName.Theme, ThemeManager.First().Name); if (!ThemeManager.SelectTheme(themeName)) { Log.Warning("Theme '{0}' not available, reverting to default.", themeName); ThemeManager.SelectedTheme = ThemeManager.First(); Settings.Set(SettingName.Theme, ThemeManager.SelectedTheme.Name); } else { Log.Information("Theme set to {0}.", themeName); } ThemeManager.PropertyChanged += (sender, e) => { if (e.PropertyName == nameof(ThemeSelector.SelectedTheme)) { Settings.Set(SettingName.Theme, ThemeManager.SelectedTheme.Name); Settings.Save(); } }; }
private static IThemeSelector LoadThemes() { var themeDir = Path.Combine(Program.ApplicationDirectory.FullName, "themes"); var themes = ThemeSelector.LoadSafe(themeDir); Log.Information("Themes successfully loaded; available themes: {0}", string.Join(", ", themes.Select(t => t.Name))); var themeName = Program.Settings.Get(SettingName.Theme, themes.First().Name); if (!themes.SelectTheme(themeName)) { Log.Warning("Theme '{0}' not available, reverting to default", themeName); themes.SelectedTheme = themes.First(); Program.Settings.Set(SettingName.Theme, themes.SelectedTheme.Name); } else { Log.Information("Theme set to {0}", themeName); } themes.PropertyChanged += (sender, e) => { if (e.PropertyName == nameof(ThemeSelector.SelectedTheme)) { Program.Settings.Set(SettingName.Theme, themes.SelectedTheme.Name); Program.Settings.Save(); } }; return(themes); }
/// <summary> /// Initialize application context and displays main window. /// </summary> /// <param name="serviceProvider">The service provider.</param> /// <param name="aboutInfo">The about information.</param> public void Start(IServiceProvider serviceProvider, AboutInfo aboutInfo) { InitializeConverters(serviceProvider); Selector = ThemeSelector.Create("Themes"); Selector.LoadSelectedTheme("Core2D.theme"); var log = serviceProvider.GetService <ILog>(); var fileIO = serviceProvider.GetService <IFileSystem>(); log?.Initialize(System.IO.Path.Combine(fileIO?.GetBaseDirectory(), "Core2D.log")); try { var editor = serviceProvider.GetService <IProjectEditor>(); editor.LayoutPlatform.LoadLayout = () => editor.Platform.OnLoadLayout(); editor.LayoutPlatform.SaveLayout = () => editor.Platform.OnSaveLayout(); editor.LayoutPlatform.ResetLayout = () => editor.Platform.OnResetLayout(); var layoutPath = System.IO.Path.Combine(fileIO.GetBaseDirectory(), "Core2D.layout"); if (fileIO.Exists(layoutPath)) { editor.OnLoadLayout(layoutPath); } var dockFactory = serviceProvider.GetService <IDockFactory>(); editor.Layout = editor.Layout ?? dockFactory.CreateLayout(); dockFactory.InitLayout(editor.Layout); var recentPath = System.IO.Path.Combine(fileIO.GetBaseDirectory(), "Core2D.recent"); if (fileIO.Exists(recentPath)) { editor.OnLoadRecent(recentPath); } editor.CurrentTool = editor.Tools.FirstOrDefault(t => t.Title == "Selection"); editor.CurrentPathTool = editor.PathTools.FirstOrDefault(t => t.Title == "Line"); editor.IsToolIdle = true; editor.AboutInfo = aboutInfo; var window = serviceProvider.GetService <Windows.MainWindow>(); window.Closing += (sender, e) => { editor.Layout.Close(); editor.OnSaveLayout(layoutPath); editor.OnSaveRecent(recentPath); Selector.SaveSelectedTheme("Core2D.theme"); }; window.DataContext = editor; window.Show(); Run(window); } catch (Exception ex) { log?.LogException(ex); } }
public SettingsViewModel( ISettingsHandler settingsHandler, ThemeSelectorViewModel themeSelectorViewModel) { this.settingsHandler = settingsHandler ?? throw new ArgumentNullException(nameof(settingsHandler)); ThemeSelector = themeSelectorViewModel ?? throw new ArgumentNullException(nameof(themeSelectorViewModel)); ThemeSelector.ActivateWith(this); }
void LoadConfig() { var container = TinyIoC.TinyIoCContainer.Current; IConfigProvider config = container.Resolve <IConfigProvider>(Naming.ContainerNSR.APP_SETTINGS); config.Load(); ThemeSelector.ApplyTheme(config.SelectedTheme); }
protected virtual ITheme GetCurrentTheme() { var preSelectedTheme = HttpContextAccessor.HttpContext.Items[CurrentThemeHttpContextKey] as ITheme; if (preSelectedTheme == null) { preSelectedTheme = (ITheme)ServiceProvider.GetRequiredService(ThemeSelector.GetCurrentThemeInfo().ThemeType); HttpContextAccessor.HttpContext.Items[CurrentThemeHttpContextKey] = preSelectedTheme; } return(preSelectedTheme); }
public override async void OnFrameworkInitializationCompleted() { if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) { CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture; CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.InvariantCulture; UserSettings.Load(); UserSettings.SetVersion(); OperationProfiles.Load(); ThemeSelector = Avalonia.ThemeManager.ThemeSelector.Create(Path.Combine(ApplicationPath, "Assets", "Themes")); ThemeSelector.LoadSelectedTheme(Path.Combine(UserSettings.SettingsFolder, "selected.theme")); if (ThemeSelector.SelectedTheme.Name == "UVtoolsDark" || ThemeSelector.SelectedTheme.Name == "Light") { foreach (var theme in ThemeSelector.Themes) { if (theme.Name != "UVtoolsLight") { continue; } theme.ApplyTheme(); break; } } MainWindow = new MainWindow(); try { CvInvoke.CheckLibraryLoaded(); } catch (Exception e) { await MainWindow.MessageBoxError("UVtools can not run due lack of dependencies from cvextern/OpenCV\n" + "Please build or install this dependencies in order to run UVtools\n" + "Check manual or page at 'Requirements' section for help\n\n" + "Additional information:\n" + $"{e}", "UVtools can not run"); return; } desktop.MainWindow = MainWindow; desktop.Exit += (sender, e) => ThemeSelector.SaveSelectedTheme(Path.Combine(UserSettings.SettingsFolder, "selected.theme")); } base.OnFrameworkInitializationCompleted(); }
public void ChangeTheme(Theme theme) { if (currentTheme.HasValue && currentTheme.Value == theme) { return; } ThemeDictionary.MergedDictionaries.Clear(); ThemeDictionary.MergedDictionaries.Add(new ResourceDictionary() { Source = ThemeSelector.GetThemeUrl(theme) }); currentTheme = theme; }
public override void OnFrameworkInitializationCompleted() { if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktopLifetime) { Selector = ThemeSelector.Create("Themes"); Selector.LoadSelectedTheme("AvaloniaApp.theme"); desktopLifetime.MainWindow = new MainWindow() { DataContext = Selector }; desktopLifetime.Exit += (sennder, e) => Selector.SaveSelectedTheme("AvaloniaApp.theme"); } base.OnFrameworkInitializationCompleted(); }
public void SwitchTheme(ThemeSelector selector) { switch (selector) { case ThemeSelector.Light: EnabledLightTheme = true; break; case ThemeSelector.Dark: EnabledLightTheme = false; break; case ThemeSelector.Opposite: EnabledLightTheme = !EnabledLightTheme; break; } Theme = EnabledLightTheme ? _themeLight : _themeDark; }
/// <summary> /// Initializes a new instance of the <see cref="MainWindow"/> class. /// </summary> public MainWindow() { string clientUri; Utils.ReadAppSettings(ClientUriKey, DefaultClientUri, out clientUri); ClientUri = clientUri; this.ServiceHostContainer = new ServiceHostContainer(new Uri(clientUri), typeof(ICommServerCallback), typeof(ConfiguratorHost)); RenderOptions.SetBitmapScalingMode(this, BitmapScalingMode.Fant); ThemeSelector.SetCurrentThemeDictionary(this, new Uri("/EH.ImsOpcBridge.Configurator.Wpf;component/Themes/DesignA2.xaml", UriKind.Relative)); this.DataContext = new MainWindowVm(); this.InitializeComponent(); this.TitleBar.MouseDown += this.TitleBarOnMouseDown; this.SourceInitialized += this.WinSourceInitialized; }
public Form1() { InitializeComponent(); var z80Navigation1 = new Z80_Navigation(); splitContainer1.Panel1.Controls.Add(z80Navigation1); z80Navigation1.Dock = DockStyle.Fill; z80Navigation1.Location = new Point(0, 0); z80Navigation1.Name = "z80_Navigation1"; z80Navigation1.TabIndex = 0; BackColor = new ThemeSelector(Theme.Dark).CurrentTheme.ItemDisableBackgroudColor; tabControl1.ItemSize = new Size(0, 1); tabControl1.SizeMode = TabSizeMode.Fixed; z80Navigation1.SelectedItem += Z80_Navigation1_SelectedItem; z80Navigation1.Initialize(new DemoItems().Sample1, new ThemeSelector(Theme.Dark).CurrentTheme); z80Navigation1.ItemSelect(0); }
private void InitializeThemes() { CopyDefaultThemesToAppData(); Selector = ThemeSelector.Create(GetAppDataThemesFolder(), this); MakeDefaultThemeFirst(); }
/// <inheritdoc/> public override void OnFrameworkInitializationCompleted() { if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktopLifetime) { var builder = new ContainerBuilder(); builder.RegisterModule <LocatorModule>(); builder.RegisterModule <CoreModule>(); builder.RegisterModule <DependenciesModule>(); builder.RegisterModule <AppModule>(); builder.RegisterModule <ViewModule>(); var container = builder.Build(); var serviceProvider = container.Resolve <IServiceProvider>(); InitializeConverters(serviceProvider); Selector = ThemeSelector.Create("Themes"); Selector.LoadSelectedTheme("Core2D.theme"); var log = serviceProvider.GetService <ILog>(); var fileIO = serviceProvider.GetService <IFileSystem>(); log?.Initialize(System.IO.Path.Combine(fileIO?.GetBaseDirectory(), "Core2D.log")); var editor = serviceProvider.GetService <IProjectEditor>(); editor.LayoutPlatform.LoadLayout = () => editor.Platform.OnLoadLayout(); editor.LayoutPlatform.SaveLayout = () => editor.Platform.OnSaveLayout(); editor.LayoutPlatform.ResetLayout = () => editor.Platform.OnResetLayout(); var layoutPath = System.IO.Path.Combine(fileIO.GetBaseDirectory(), "Core2D.layout"); if (fileIO.Exists(layoutPath)) { editor.OnLoadLayout(layoutPath); } var dockFactory = serviceProvider.GetService <DM.IFactory>(); editor.Layout = editor.Layout ?? dockFactory.CreateLayout(); dockFactory.InitLayout(editor.Layout); var recentPath = System.IO.Path.Combine(fileIO.GetBaseDirectory(), "Core2D.recent"); if (fileIO.Exists(recentPath)) { editor.OnLoadRecent(recentPath); } editor.CurrentTool = editor.Tools.FirstOrDefault(t => t.Title == "Selection"); editor.CurrentPathTool = editor.PathTools.FirstOrDefault(t => t.Title == "Line"); editor.IsToolIdle = true; var runtimeInfo = AvaloniaLocator.Current.GetService <IRuntimePlatform>().GetRuntimeInfo(); var windowingPlatform = AvaloniaLocator.Current.GetService <IWindowingPlatform>(); var platformRenderInterface = AvaloniaLocator.Current.GetService <IPlatformRenderInterface>(); var windowingSubsystemName = windowingPlatform.GetType().Assembly.GetName().Name; var renderingSubsystemName = platformRenderInterface.GetType().Assembly.GetName().Name; var aboutInfo = CreateAboutInfo(runtimeInfo, windowingSubsystemName, renderingSubsystemName); editor.AboutInfo = aboutInfo; var mainWindow = serviceProvider.GetService <Windows.MainWindow>(); mainWindow.DataContext = editor; mainWindow.Closing += (sender, e) => { editor.Layout.Close(); editor.OnSaveLayout(layoutPath); editor.OnSaveRecent(recentPath); Selector.SaveSelectedTheme("Core2D.theme"); }; desktopLifetime.MainWindow = mainWindow; desktopLifetime.Exit += (sennder, e) => { log.Dispose(); container.Dispose(); }; } else if (ApplicationLifetime is ISingleViewApplicationLifetime singleViewLifetime) { var builder = new ContainerBuilder(); builder.RegisterModule <LocatorModule>(); builder.RegisterModule <CoreModule>(); builder.RegisterModule <DependenciesModule>(); builder.RegisterModule <AppModule>(); builder.RegisterModule <ViewModule>(); var container = builder.Build(); // TODO: Dispose() var serviceProvider = container.Resolve <IServiceProvider>(); InitializeConverters(serviceProvider); var log = serviceProvider.GetService <ILog>(); // TODO: Dispose() var fileIO = serviceProvider.GetService <IFileSystem>(); log?.Initialize(System.IO.Path.Combine(fileIO?.GetBaseDirectory(), "Core2D.log")); var editor = serviceProvider.GetService <IProjectEditor>(); var dockFactory = serviceProvider.GetService <DM.IFactory>(); editor.Layout = editor.Layout ?? dockFactory.CreateLayout(); dockFactory.InitLayout(editor.Layout); editor.CurrentTool = editor.Tools.FirstOrDefault(t => t.Title == "Selection"); editor.CurrentPathTool = editor.PathTools.FirstOrDefault(t => t.Title == "Line"); editor.IsToolIdle = true; var mainView = new MainControl() { DataContext = editor }; singleViewLifetime.MainView = mainView; } base.OnFrameworkInitializationCompleted(); }
private void InitializeThemes() { CopyDefaultThemesToAppData(); Selector = ThemeSelector.Create(AppPath.AppDataThemesPath, this); MakeDefaultThemeFirst(); }
private async Task InitializeAsync() { await ThemeSelector.InitializeAsync(); await Task.CompletedTask; }
private async Task StartupAsync() { ThemeSelector.SetRequestedTheme(); await Task.CompletedTask; }
public Form1() { Model = new Model(); InitializeComponent(); Groups(); imageResource = new ImageResource(this.imageList1) { Resource = "UI/Icons/" }; imageResource.ImageSizeChange(Settings.Default.IconSize); largeImageResource = new ImageResource(this.imageList2) { Resource = "UI/Images/" }; largeImageResource.Load(largeImageResource.Resource); contextMenu = new ContextMenuComponent(metroContextMenu1) { GetStatistic = (x) => Model.Hero.Statistic(x) }; playerPick = new PlayerPickInfo(playerpickButton) { GetImage = imageResource.Bitmap, GetHeroId = (x) => Model.Hero.Select(x).Item[0].Id }; forecastResultComponent = new ForecastResultComponent(metroListView1, btn_forecast) { Compute = Model.ForecastService.Select(x => x).ToList(), GetHeroes = () => Model.Hero, GetPlayersPick = playerPick.GetPlayerPics, MatchupWith = Model.Statistic.MatchUp.With, MatchupAgainst = Model.Statistic.MatchUp.Against }; filterTab = new FilterTab(cont_Filter, btn_FilterVisibleChange); filterTab.Collapse(); statfilterTab = new FilterTab(splitContainer2, bunifuTileButton1); statfilterTab.Collapse(); heroFilter = new HeroFilter(groupCheckBox, subgroupCheckBox, franchiseCheckBox, metroTextBox9); heroStatFilter = new HeroFilter(groupStatCheckBox, subgroupStatCheckBox, franchiseStatCheckBox, metroTextBox1); heroPicker = new HeroPicker(listView1) { GetImageId = imageResource.Index, GetHeroes = () => Model.Hero }; heroSelector = new HeroSelector(listView2) { GetImageId = imageResource.Index, GetHeroes = () => Model.Hero, GetFranchiseFilter = heroFilter.GetFranchiseFilter, GetGroupFilter = heroFilter.GetGroupsFilter, GetSubGroupFilter = heroFilter.GetSubGroupFilter, GetTextFilter = heroFilter.GetTextFilter }; heroComponent = new HeroComponent(controls) { GetImage = imageResource.Bitmap, GetLargeImage = largeImageResource.Bitmap, GetHero = (x) => Model.Hero.Select(x).Item[0] }; renderSettings = new RenderSettings(metroComboBox1, metroTextBox15, metroCheckBox2, numericUpDown1) { GetRenderType = () => imageResource.RenderType.ToArray() }; renderSettings.Init(); styleManager = new StyleManager(controls, metroContextMenu1, metroStyleManager1, this); themeSelector = new ThemeSelector(metroComboBox2, metroComboBox3); statComponent = new StatComponent(zedGraphControl1) { Hero = x => Model.Hero.Item[x].Hero, HeroesAvgStatistic = () => Model.Statistic.HeroStatistic.All().Item1, HeroGameCount = x => Model.Hero.Select(x).Item[0].Statistic.count, Image = imageResource.Bitmap, Style = () => styleManager.Style, Filter = () => { return(Model.Hero. Select(heroStatFilter.GetGroupsFilter()). Select(heroStatFilter.GetSubGroupFilter()). Select(heroStatFilter.GetFranchiseFilter()). Select(heroStatFilter.GetTextFilter()).Select(X => X.Id).ToList()); } }; statComponent.Init(); statGraph = new StatGraph(metroComboBox4) { GetSupportHeroStatistic = () => statComponent.HeroStat }; statGraph.HeroesSelectionChanged += statComponent.ComputeHeroesStat; statGraph.Init(); heroSelector.SelectionChanged += contextMenu.SelectPlayer; heroPicker.SelectionChanged += heroComponent.Render; playerPick.PickChanged += contextMenu.ChangeElement; contextMenu.OnPlayerPicked += playerPick.SetPick; heroFilter.OnGroupChanged += heroSelector.Render; heroFilter.OnSubGroupChanged += heroSelector.Render; heroFilter.OnFranchiseChanged += heroSelector.Render; heroFilter.OnTextСhanged += heroSelector.Render; heroStatFilter.OnGroupChanged += statComponent.ComputeHeroesStat; heroStatFilter.OnSubGroupChanged += statComponent.ComputeHeroesStat; heroStatFilter.OnFranchiseChanged += statComponent.ComputeHeroesStat; heroStatFilter.OnTextСhanged += statComponent.ComputeHeroesStat; themeSelector.OnThemeChanged += styleManager.ChangeTheme; themeSelector.OnStyleChanged += styleManager.ChangeStyle; renderSettings.OnBackgroundChanged += styleManager.SetBackground; renderSettings.OnTransparentChanged += styleManager.TransparentChange; renderSettings.OnBackgroundChanged += heroPicker.ChangeBackGround; renderSettings.OnRenderModeChanged += heroPicker.RenderModeChange; renderSettings.OnImageSizeChanged += heroPicker.ItemSizeChange; renderSettings.OnBackgroundChanged += heroSelector.ChangeBackGround; renderSettings.OnRenderModeChanged += heroSelector.RenderModeChange; renderSettings.OnImageSizeChanged += heroSelector.ItemSizeChange; renderSettings.OnImageSizeChanged += imageResource.ImageSizeChange; LoadToolTip(); Render(); }
private void Button_Click(object sender, RoutedEventArgs e) { ThemeSelector.SetCurrentThemeDictionary(this, new Uri("ms-appx:///Theme/FireTheme.xaml")); }