private void Save_Click(object sender, RoutedEventArgs e) { string str = Interaction.InputBox("Theme name", "BlueStacks Theme Editor Tool", string.Format((IFormatProvider)CultureInfo.CurrentCulture, "{0:F}", (object)DateTime.Now), 0, 0); if (Directory.Exists(Path.Combine(RegistryManager.Instance.ClientInstallDir, str))) { int num = (int)System.Windows.MessageBox.Show("Already Exists. Please retry"); } else { Directory.CreateDirectory(Path.Combine(RegistryManager.Instance.ClientInstallDir, str)); ThemeEditorWindow.CopyEverything(this.DraftDirectory, Path.Combine(RegistryManager.Instance.ClientInstallDir, str)); RegistryManager.Instance.SetClientThemeNameInRegistry(str); Window w = (Window)BlueStacksUIUtils.DictWindows.Values.ToList <MainWindow>()[0]; w.Dispatcher.Invoke((Delegate)(() => { RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap((int)w.ActualWidth, (int)w.ActualHeight, 0.0, 0.0, PixelFormats.Pbgra32); renderTargetBitmap.Render((Visual)BlueStacksUIUtils.DictWindows.Values.ToList <MainWindow>()[0]); PngBitmapEncoder pngBitmapEncoder = new PngBitmapEncoder(); pngBitmapEncoder.Frames.Add(BitmapFrame.Create((BitmapSource)renderTargetBitmap)); using (Stream stream = (Stream)File.Create(Path.Combine(CustomPictureBox.AssetsDir, "ThemeThumbnail.png"))) pngBitmapEncoder.Save(stream); })); BlueStacksUIColorManager.AppliedTheme.Save(BlueStacksUIColorManager.GetThemeFilePath(RegistryManager.ClientThemeName)); CustomPictureBox.UpdateImagesFromNewDirectory(""); } }
public void AddSkinImages() { try { this.ThemesDrawer.Children.Clear(); foreach (string directory in Directory.GetDirectories(RegistryManager.Instance.ClientInstallDir)) { if (File.Exists(Path.Combine(directory, "ThemeThumbnail.png"))) { string themeName = BlueStacksUIColorManager.GetThemeName(directory); SkinSelectorControl skinSelectorControl1 = new SkinSelectorControl(); skinSelectorControl1.Visibility = Visibility.Visible; skinSelectorControl1.HorizontalAlignment = HorizontalAlignment.Center; skinSelectorControl1.VerticalAlignment = VerticalAlignment.Top; SkinSelectorControl skinSelectorControl2 = skinSelectorControl1; skinSelectorControl2.mThemeImage.Visibility = Visibility.Visible; skinSelectorControl2.mThemeName.Visibility = Visibility.Visible; skinSelectorControl2.mThemeImage.IsFullImagePath = true; skinSelectorControl2.mThemeImage.ImageName = Path.Combine(directory, "ThemeThumbnail.png"); skinSelectorControl2.mThemeCheckButton.Height = 30.0; skinSelectorControl2.mThemeName.ToolTip = (object)themeName; skinSelectorControl2.mThemeName.Width = double.NaN; skinSelectorControl2.mThemeCheckButton.Width = double.NaN; skinSelectorControl2.mThemeName.Text = themeName; BlueStacksUIBinding.BindColor((DependencyObject)skinSelectorControl2.mThemeName, TextBlock.ForegroundProperty, "ContextMenuItemForegroundColor"); skinSelectorControl2.mThemeCheckButton.Tag = (object)Path.GetFileName(directory); skinSelectorControl2.mThemeCheckButton.Click += new RoutedEventHandler(this.ThemeApplyButton_Click); if (string.Compare(RegistryManager.ClientThemeName, Path.GetFileName(directory), StringComparison.OrdinalIgnoreCase) == 0) { skinSelectorControl2.mThemeAppliedText.Text = LocaleStrings.GetLocalizedString("STRING_APPLIED", ""); skinSelectorControl2.mThemeAppliedText.Visibility = Visibility.Visible; skinSelectorControl2.mThemeAppliedText.Margin = new Thickness(0.0, 3.0, 4.0, 0.0); } else { skinSelectorControl2.mThemeCheckButton.ButtonColor = ButtonColors.Blue; skinSelectorControl2.mThemeCheckButton.IsEnabled = true; skinSelectorControl2.mThemeCheckButton.Content = (object)LocaleStrings.GetLocalizedString("STRING_APPLY", ""); skinSelectorControl2.mThemeCheckButton.Visibility = Visibility.Visible; } this.ThemesDrawer.Children.Add((UIElement)skinSelectorControl2); this.mThemesDrawerScrollBar.Visibility = Visibility.Visible; } } } catch (Exception ex) { Logger.Error("Error in populating themes in skin widget " + ex.ToString()); } }
private void Load_Click(object sender, RoutedEventArgs e) { using (FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog() { SelectedPath = RegistryManager.Instance.ClientInstallDir }) { if (folderBrowserDialog.ShowDialog() != DialogResult.OK || string.IsNullOrEmpty(folderBrowserDialog.SelectedPath)) { return; } string selectedPath = folderBrowserDialog.SelectedPath; if (File.Exists(Path.Combine(folderBrowserDialog.SelectedPath, "ThemeFile"))) { string fileName = Path.GetFileName(folderBrowserDialog.SelectedPath); if (!folderBrowserDialog.SelectedPath.Contains(RegistryManager.Instance.ClientInstallDir)) { string str = Path.Combine(RegistryManager.Instance.ClientInstallDir, fileName); if (Directory.Exists(str)) { int num = (int)System.Windows.MessageBox.Show("Theme with this name already exists. Please rename the folder an try again"); } else { Directory.CreateDirectory(str); ThemeEditorWindow.CopyEverything(folderBrowserDialog.SelectedPath, str); } } BlueStacksUIColorManager.ReloadAppliedTheme(fileName); } else { int num1 = (int)System.Windows.MessageBox.Show("Please select theme folder"); } } }