private void NnBuilderBuild_Click(object sender, EventArgs e) { if (tbBntxFile.Text.Trim() == "") { MessageBox.Show("Select an image first"); return; } if (!tbBntxFile.Text.EndsWith(".dds") && !ImageToDDS()) { return; } var info = ThemeInputInfo.Ask(); if (info == null) { return; } byte[] preview = null; if (info.Item3) { preview = GenerateDDSPreview(tbBntxFile.Text); } LayoutPatch layout = null; if (AllLayoutsBox.SelectedIndex != 0) { layout = AllLayoutsBox.SelectedItem as LayoutPatch; } var res = SwitchThemesCommon.GenerateNXTheme( new ThemeFileManifest() { Version = 3, ThemeName = info.Item1, Author = info.Item2, Target = HomeMenuParts[HomeMenuPartBox.Text], LayoutInfo = layout == null ? "" : layout.PatchName + " by " + layout.AuthorName, }, File.ReadAllBytes(tbBntxFile.Text), layout?.AsByteArray(), new Tuple <string, byte[]> ("preview.png", preview), HomeMenuParts[HomeMenuPartBox.Text] == "home" ? new Tuple <string, byte[]>("common.json", ExtraCommonLyt?.AsByteArray()) : null); SaveFileDialog sav = new SaveFileDialog() { Filter = "theme pack (*.nxtheme)|*.nxtheme" }; if (sav.ShowDialog() != DialogResult.OK) { return; } File.WriteAllBytes(sav.FileName, res); MessageBox.Show("Done"); }
private void NnBuilderBuild_Click(object sender, EventArgs e) { if (tbBntxFile.Text.Trim() == "") { if (AllLayoutsBox.SelectedIndex == 0) { MessageBox.Show("You need at least a custom image or layout to make a theme."); return; } if (MessageBox.Show("This will create a theme without any background image, the console default one will be used. Do you want to continue ?", "", MessageBoxButtons.YesNo) == DialogResult.No) { return; } } if (!BgImageCheck(false)) { return; } var info = ThemeInputInfo.Ask(); if (info == null) { return; } byte[] preview = null; if (info.Item3 && tbBntxFile.Text.Trim() != "") { preview = GenerateDDSPreview(tbBntxFile.Text); } if (AlbumIcon != null && !AlbumIcon.EndsWith(".dds") && !AlbumIcontoDDS()) { return; } LayoutPatch layout = null; if (AllLayoutsBox.SelectedIndex != 0) { layout = AllLayoutsBox.SelectedItem as LayoutPatch; } try { var res = SwitchThemesCommon.GenerateNXTheme( new ThemeFileManifest() { Version = 6, ThemeName = info.Item1, Author = info.Item2, Target = HomeMenuParts[HomeMenuPartBox.Text], LayoutInfo = layout == null ? "" : layout.PatchName + " by " + layout.AuthorName, }, tbBntxFile.Text != "" ? File.ReadAllBytes(tbBntxFile.Text) : null, layout?.AsByteArray(), new Tuple <string, byte[]>("preview.png", preview), new Tuple <string, byte[]>("common.json", ExtraCommonLyt?.AsByteArray()), new Tuple <string, byte[]>("album.dds", AlbumIcon != null ? File.ReadAllBytes(AlbumIcon) : null)); SaveFileDialog sav = new SaveFileDialog() { Filter = "theme pack (*.nxtheme)|*.nxtheme" }; if (sav.ShowDialog() != DialogResult.OK) { return; } File.WriteAllBytes(sav.FileName, res); MessageBox.Show("Done"); } catch (Exception ex) { MessageBox.Show("ERROR: " + ex.Message); } }
private void materialRaisedButton8_Click(object sender, EventArgs e) { if (CommonSzs == null || targetPatch == null) { MessageBox.Show("Open a valid theme first !"); return; } if (tbBntxFile.Text.Trim() == "") { MessageBox.Show("Select an image first"); return; } if (!BgImageCheck(false)) { return; } var info = ThemeInputInfo.Ask(); if (info == null) { return; } byte[] preview = null; if (info.Item3) { preview = GenerateDDSPreview(tbBntxFile.Text); } LayoutPatch layout = null; if (LayoutPatchList.SelectedIndex != 0) { layout = LayoutPatchList.SelectedItem as LayoutPatch; } try { var res = SwitchThemesCommon.GenerateNXTheme( new ThemeFileManifest() { Version = 6, ThemeName = info.Item1, Author = info.Item2, Target = targetPatch.NXThemeName, LayoutInfo = layout == null ? "" : layout.PatchName + " by " + layout.AuthorName, }, File.ReadAllBytes(tbBntxFile.Text), layout?.AsByteArray(), new Tuple <string, byte[]>("preview.png", preview)); SaveFileDialog sav = new SaveFileDialog() { Filter = "theme pack (*.nxtheme)|*.nxtheme" }; if (sav.ShowDialog() != DialogResult.OK) { return; } File.WriteAllBytes(sav.FileName, res); MessageBox.Show("Done"); } catch (Exception ex) { MessageBox.Show("ERROR: " + ex.Message); } }
static bool NXThemeFromArgs(string[] args) { if (args.Length < 4) { return(false); } string Target = args[1]; if (!Form1.HomeMenuParts.Values.Contains(Target)) { return(false); } string Image = args.Where(x => x.EndsWith(".dds") || x.EndsWith(".jpg") || x.EndsWith(".png") || x.EndsWith("jpeg")).FirstOrDefault(); if (Image == null || !File.Exists(Image)) { Console.WriteLine("No image file !"); return(false); } string Layout = args.Where(x => x.EndsWith(".json")).FirstOrDefault(); string GetArg(string start) { var a = args.Where(x => x.StartsWith(start + "=")).FirstOrDefault(); if (a == null) { return(null); } else { return(a.Split('=')[1]); } } bool?GetArgBool(string start) { var a = GetArg(start); if (a == null) { return(null); } else { return(bool.Parse(a)); } } string Name = GetArg("name"); string Author = GetArg("author"); string Output = GetArg("out"); string ExtraCommon = GetArg("commonlyt"); if (Output == null || Output == "") { return(false); } bool preview = GetArgBool("preview") ?? true; if (Name == null || Name.Trim() == "") { var info = ThemeInputInfo.Ask(); Name = info.Item1; Author = info.Item2; preview = info.Item3; } LayoutPatch layout = null; if (Layout != null && File.Exists(Layout)) { layout = LayoutPatch.LoadTemplate(File.ReadAllText(Layout)); } if (!Image.EndsWith(".dds")) { if (Form1.ImageToDDS(Image, Path.GetTempPath())) { Image = Path.Combine(Path.GetTempPath(), Path.GetFileNameWithoutExtension(Image) + ".dds"); } else { return(false); } } var res = SwitchThemesCommon.GenerateNXTheme( new ThemeFileManifest() { Version = 3, ThemeName = Name, Author = Author, Target = Target, LayoutInfo = layout == null ? "" : layout.PatchName + " by " + layout.AuthorName, }, File.ReadAllBytes(Image), layout?.AsByteArray(), new Tuple <string, byte[]>("preview.png", preview ? Form1.GenerateDDSPreview(Image) : null)); File.WriteAllBytes(Output, res); return(true); }
private void NnBuilderBuild_Click(object sender, EventArgs e) { if (tbImageFile.Text.Trim() == "") { if (AllLayoutsBox.SelectedIndex == 0) { MessageBox.Show("You need at least a custom image or layout to make a theme."); return; } if (MessageBox.Show("This will create a theme without any background image, the console default one will be used. Do you want to continue?", "", MessageBoxButtons.YesNo) == DialogResult.No) { return; } } if (!BgImageCheck(false)) { return; } var info = ThemeInputInfo.Ask(); if (info == null) { return; } string target = HomeMenuParts[HomeMenuPartBox.Text]; if (target == "home") { foreach (var k in HomeAppletIcons.Keys.ToArray()) { string path = HomeAppletIcons[k]; if (path != null && !path.EndsWith(".dds") && !IcontoDDS(ref path)) { return; } HomeAppletIcons[k] = path; } } else if (target == "lock") { if (LockCustomIcon != null && !LockCustomIcon.EndsWith(".dds") && !IcontoDDS(ref LockCustomIcon)) { return; } } LayoutPatch layout = null; if (AllLayoutsBox.SelectedIndex != 0) { layout = AllLayoutsBox.SelectedItem as LayoutPatch; } try { var builder = new NXThemeBuilder(target, info.Item1, info.Item2); if (layout != null) { builder.AddMainLayout(layout); } if (tbImageFile.Text != "") { builder.AddMainBg(File.ReadAllBytes(tbImageFile.Text)); } if (ExtraCommonLyt != null) { builder.AddFile("common.json", ExtraCommonLyt.AsByteArray()); } if (target == "home") { foreach (var ico in HomeAppletIcons) { if (ico.Value != null) { builder.AddAppletIcon(ico.Key, File.ReadAllBytes(ico.Value)); } } } else if (target == "lock" && LockCustomIcon != null) { builder.AddAppletIcon("lock", File.ReadAllBytes(LockCustomIcon)); } SaveFileDialog sav = new SaveFileDialog() { Filter = "Theme pack (*.nxtheme)|*.nxtheme" }; if (sav.ShowDialog() != DialogResult.OK) { return; } File.WriteAllBytes(sav.FileName, builder.GetNxtheme()); MessageBox.Show("Done"); } catch (Exception ex) { MessageBox.Show("ERROR: " + ex.Message); } }