From 1adc4c131112c07c35da2df321234ece14d9654c Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 23 Nov 2025 18:53:11 +0000 Subject: [PATCH] Renamed rows to sections Added prompt before removing tiles and sections Added bottom padding Fixed add/remove row/section Changed section title font colour Changed default new tile/folder/section name --- EditTileFolderForm.cs | 40 ++++----- EditTileForm.cs | 78 ++++++++--------- MainForm.Designer.cs | 103 ++++++++-------------- MainForm.cs | 197 +++++++++++++++++++----------------------- MainForm.resx | 4 +- NewForm.cs | 136 ----------------------------- NewForm.resx | 120 ------------------------- OptionsForm.cs | 72 ++++++++------- RokettoLaunch.csproj | 7 +- skye.sln | 12 +++ 10 files changed, 232 insertions(+), 537 deletions(-) delete mode 100644 NewForm.cs delete mode 100644 NewForm.resx diff --git a/EditTileFolderForm.cs b/EditTileFolderForm.cs index 808589c..e8368d6 100644 --- a/EditTileFolderForm.cs +++ b/EditTileFolderForm.cs @@ -34,19 +34,15 @@ namespace RokettoLaunch result = model; - if (result != null) + textBox1.Text = result?.Title ?? "New Folder"; + foreach (TileModel item in result?.Items ?? new List()) { - textBox1.Text = result?.Title ?? string.Empty; - - foreach (TileModel item in result.Items ?? new List()) + if (item.IsGroup) { - if (item.IsGroup) - { - continue; - } - - listBox1.ListBox.Items.Add(item); + continue; } + + listBox1.ListBox.Items.Add(item); } } @@ -58,9 +54,9 @@ namespace RokettoLaunch label2 = new Label(); dialogFooter1 = new RyzStudio.Windows.ThemedForms.Composite.DialogFooter(); SuspendLayout(); - // + // // textBox1 - // + // textBox1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; textBox1.BackColor = Color.Transparent; textBox1.ClearedValue = ""; @@ -74,9 +70,9 @@ namespace RokettoLaunch textBox1.TabIndex = 152; textBox1.TabStop = false; textBox1.UseSystemPasswordChar = false; - // + // // label1 - // + // label1.AutoSize = true; label1.BackColor = Color.Transparent; label1.ForeColor = SystemColors.ControlText; @@ -88,9 +84,9 @@ namespace RokettoLaunch label1.TabIndex = 153; label1.Text = "Title"; label1.TextAlign = ContentAlignment.MiddleLeft; - // + // // listBox1 - // + // listBox1.AllowDrop = true; listBox1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; listBox1.BackColor = Color.Transparent; @@ -105,9 +101,9 @@ namespace RokettoLaunch listBox1.OnCopy += listBox1_OnCopy; listBox1.DragDrop += listBox1_DragDrop; listBox1.DragOver += listBox1_DragOver; - // + // // label2 - // + // label2.AutoSize = true; label2.BackColor = Color.Transparent; label2.ForeColor = SystemColors.ControlText; @@ -119,9 +115,9 @@ namespace RokettoLaunch label2.TabIndex = 181; label2.Text = "Tile Collection"; label2.TextAlign = ContentAlignment.MiddleLeft; - // + // // dialogFooter1 - // + // dialogFooter1.BackColor = Color.FromArgb(240, 240, 240); dialogFooter1.Button1Text = "&Save"; dialogFooter1.Dialog = this; @@ -130,9 +126,9 @@ namespace RokettoLaunch dialogFooter1.Location = new Point(0, 437); dialogFooter1.Name = "dialogFooter1"; dialogFooter1.Size = new Size(384, 84); - // + // // EditTileFolderForm - // + // BackColor = Color.White; ClientSize = new Size(384, 521); Controls.Add(dialogFooter1); diff --git a/EditTileForm.cs b/EditTileForm.cs index 29b6bd9..34fcf42 100644 --- a/EditTileForm.cs +++ b/EditTileForm.cs @@ -1,4 +1,5 @@ -using System.Drawing; +using System.Diagnostics; +using System.Drawing; using System.Windows.Forms; using RokettoLaunch.Models; using RyzStudio.Windows.Forms; @@ -46,15 +47,12 @@ namespace RokettoLaunch pickerBox1.ComboBox.SelectedIndex = 0; } - if (result != null) - { - textBox1.Text = result?.Title ?? string.Empty; - textBox2.Text = result?.ProcessFilename ?? string.Empty; - textBox3.Text = result?.ProcessArgument ?? string.Empty; - textBox4.Text = result?.ProcessWorkingDirectory ?? string.Empty; - pickerBox1.ComboBox.SelectedIndex = (int)result.ProcessWindowStyle; - pickerBox2.Value = result.ProcessAsAdmin; - } + textBox1.Text = result?.Title ?? "New Tile"; + textBox2.Text = result?.ProcessFilename ?? string.Empty; + textBox3.Text = result?.ProcessArgument ?? string.Empty; + textBox4.Text = result?.ProcessWorkingDirectory ?? string.Empty; + pickerBox1.ComboBox.SelectedIndex = (int)(result?.ProcessWindowStyle ?? ProcessWindowStyle.Normal); + pickerBox2.Value = result?.ProcessAsAdmin ?? false; } private void InitializeComponent() @@ -74,9 +72,9 @@ namespace RokettoLaunch horizontalSeparator1 = new THorizontalSeparator(); dialogFooter1 = new RyzStudio.Windows.ThemedForms.Composite.DialogFooter(); SuspendLayout(); - // + // // textBox1 - // + // textBox1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; textBox1.BackColor = Color.Transparent; textBox1.ClearedValue = ""; @@ -90,9 +88,9 @@ namespace RokettoLaunch textBox1.TabIndex = 152; textBox1.TabStop = false; textBox1.UseSystemPasswordChar = false; - // + // // label6 - // + // label6.AutoSize = true; label6.BackColor = Color.Transparent; label6.ForeColor = SystemColors.ControlText; @@ -104,9 +102,9 @@ namespace RokettoLaunch label6.TabIndex = 163; label6.Text = "Run As Admin"; label6.TextAlign = ContentAlignment.MiddleLeft; - // + // // label7 - // + // label7.AutoSize = true; label7.BackColor = Color.Transparent; label7.ForeColor = SystemColors.ControlText; @@ -118,9 +116,9 @@ namespace RokettoLaunch label7.TabIndex = 161; label7.Text = "Window Style"; label7.TextAlign = ContentAlignment.MiddleLeft; - // + // // label4 - // + // label4.AutoSize = true; label4.BackColor = Color.Transparent; label4.ForeColor = SystemColors.ControlText; @@ -132,9 +130,9 @@ namespace RokettoLaunch label4.TabIndex = 159; label4.Text = "Working Directory"; label4.TextAlign = ContentAlignment.MiddleLeft; - // + // // label3 - // + // label3.AutoSize = true; label3.BackColor = Color.Transparent; label3.ForeColor = SystemColors.ControlText; @@ -146,9 +144,9 @@ namespace RokettoLaunch label3.TabIndex = 157; label3.Text = "Argument"; label3.TextAlign = ContentAlignment.MiddleLeft; - // + // // label2 - // + // label2.AutoSize = true; label2.BackColor = Color.Transparent; label2.ForeColor = SystemColors.ControlText; @@ -160,9 +158,9 @@ namespace RokettoLaunch label2.TabIndex = 155; label2.Text = "Filename"; label2.TextAlign = ContentAlignment.MiddleLeft; - // + // // label1 - // + // label1.AutoSize = true; label1.BackColor = Color.Transparent; label1.ForeColor = SystemColors.ControlText; @@ -174,9 +172,9 @@ namespace RokettoLaunch label1.TabIndex = 153; label1.Text = "Title"; label1.TextAlign = ContentAlignment.MiddleLeft; - // + // // textBox2 - // + // textBox2.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; textBox2.BackColor = Color.Transparent; textBox2.DialogMode = ThPathDialogTextBox.DialogType.OpenFile; @@ -193,9 +191,9 @@ namespace RokettoLaunch textBox2.TabIndex = 170; textBox2.TabStop = false; textBox2.UseSystemPasswordChar = false; - // + // // textBox3 - // + // textBox3.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; textBox3.BackColor = Color.Transparent; textBox3.ClearedValue = ""; @@ -209,9 +207,9 @@ namespace RokettoLaunch textBox3.TabIndex = 171; textBox3.TabStop = false; textBox3.UseSystemPasswordChar = false; - // + // // textBox4 - // + // textBox4.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; textBox4.BackColor = Color.Transparent; textBox4.DialogMode = ThPathDialogTextBox.DialogType.FolderBrowser; @@ -228,9 +226,9 @@ namespace RokettoLaunch textBox4.TabIndex = 172; textBox4.TabStop = false; textBox4.UseSystemPasswordChar = false; - // + // // pickerBox1 - // + // pickerBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right; pickerBox1.BackColor = Color.Transparent; pickerBox1.EnableReactiveVisual = true; @@ -241,9 +239,9 @@ namespace RokettoLaunch pickerBox1.Size = new Size(120, 34); pickerBox1.TabIndex = 174; pickerBox1.TabStop = false; - // + // // pickerBox2 - // + // pickerBox2.Anchor = AnchorStyles.Top | AnchorStyles.Right; pickerBox2.BackColor = Color.Transparent; pickerBox2.EnableReactiveVisual = true; @@ -255,9 +253,9 @@ namespace RokettoLaunch pickerBox2.TabIndex = 175; pickerBox2.TabStop = false; pickerBox2.Value = false; - // + // // horizontalSeparator1 - // + // horizontalSeparator1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; horizontalSeparator1.AutoScrollMargin = new Size(0, 0); horizontalSeparator1.AutoScrollMinSize = new Size(0, 0); @@ -270,9 +268,9 @@ namespace RokettoLaunch horizontalSeparator1.Size = new Size(364, 22); horizontalSeparator1.TabIndex = 176; horizontalSeparator1.TabStop = false; - // + // // dialogFooter1 - // + // dialogFooter1.BackColor = Color.FromArgb(240, 240, 240); dialogFooter1.Button1Text = "&Save"; dialogFooter1.Dialog = this; @@ -280,9 +278,9 @@ namespace RokettoLaunch dialogFooter1.Location = new Point(0, 437); dialogFooter1.Name = "dialogFooter1"; dialogFooter1.Size = new Size(384, 84); - // + // // EditTileForm - // + // BackColor = Color.White; ClientSize = new Size(384, 521); Controls.Add(dialogFooter1); diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs index 1f9de9f..983d534 100644 --- a/MainForm.Designer.cs +++ b/MainForm.Designer.cs @@ -65,10 +65,6 @@ namespace RokettoLaunch editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); toolStripMenuItem5 = new System.Windows.Forms.ToolStripMenuItem(); toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); - toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); - addRowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - removeRowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem(); topToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); upToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -142,7 +138,7 @@ namespace RokettoLaunch newToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; newToolStripMenuItem.Name = "newToolStripMenuItem"; newToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N; - newToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + newToolStripMenuItem.Size = new System.Drawing.Size(146, 22); newToolStripMenuItem.Text = "&New"; newToolStripMenuItem.Click += newToolStripMenuItem_Click; // @@ -151,52 +147,52 @@ namespace RokettoLaunch openToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; openToolStripMenuItem.Name = "openToolStripMenuItem"; openToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O; - openToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + openToolStripMenuItem.Size = new System.Drawing.Size(146, 22); openToolStripMenuItem.Text = "&Open"; openToolStripMenuItem.Click += openToolStripMenuItem_Click; // // toolStripMenuItem13 // toolStripMenuItem13.Name = "toolStripMenuItem13"; - toolStripMenuItem13.Size = new System.Drawing.Size(177, 6); + toolStripMenuItem13.Size = new System.Drawing.Size(143, 6); // // closeToolStripMenuItem // closeToolStripMenuItem.Name = "closeToolStripMenuItem"; - closeToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + closeToolStripMenuItem.Size = new System.Drawing.Size(146, 22); closeToolStripMenuItem.Text = "&Close"; closeToolStripMenuItem.Click += closeToolStripMenuItem_Click; // // toolStripMenuItem14 // toolStripMenuItem14.Name = "toolStripMenuItem14"; - toolStripMenuItem14.Size = new System.Drawing.Size(177, 6); + toolStripMenuItem14.Size = new System.Drawing.Size(143, 6); // // saveToolStripMenuItem // saveToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; saveToolStripMenuItem.Name = "saveToolStripMenuItem"; saveToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S; - saveToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + saveToolStripMenuItem.Size = new System.Drawing.Size(146, 22); saveToolStripMenuItem.Text = "&Save"; saveToolStripMenuItem.Click += saveToolStripMenuItem_Click; // // saveAsToolStripMenuItem // saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem"; - saveAsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + saveAsToolStripMenuItem.Size = new System.Drawing.Size(146, 22); saveAsToolStripMenuItem.Text = "Save &As..."; saveAsToolStripMenuItem.Click += saveAsToolStripMenuItem_Click; // // toolStripMenuItem15 // toolStripMenuItem15.Name = "toolStripMenuItem15"; - toolStripMenuItem15.Size = new System.Drawing.Size(177, 6); + toolStripMenuItem15.Size = new System.Drawing.Size(143, 6); // // exitToolStripMenuItem2 // exitToolStripMenuItem2.Name = "exitToolStripMenuItem2"; - exitToolStripMenuItem2.Size = new System.Drawing.Size(180, 22); + exitToolStripMenuItem2.Size = new System.Drawing.Size(146, 22); exitToolStripMenuItem2.Text = "E&xit"; exitToolStripMenuItem2.Click += exitToolStripMenuItem2_Click; // @@ -210,8 +206,8 @@ namespace RokettoLaunch // addGroupToolStripMenuItem // addGroupToolStripMenuItem.Name = "addGroupToolStripMenuItem"; - addGroupToolStripMenuItem.Size = new System.Drawing.Size(180, 22); - addGroupToolStripMenuItem.Text = "&Add Group"; + addGroupToolStripMenuItem.Size = new System.Drawing.Size(138, 22); + addGroupToolStripMenuItem.Text = "&Add Section"; addGroupToolStripMenuItem.Click += addGroupToolStripMenuItem_Click; // // viewToolStripMenuItem @@ -224,14 +220,14 @@ namespace RokettoLaunch // showBigIconsToolStripMenuItem // showBigIconsToolStripMenuItem.Name = "showBigIconsToolStripMenuItem"; - showBigIconsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + showBigIconsToolStripMenuItem.Size = new System.Drawing.Size(154, 22); showBigIconsToolStripMenuItem.Text = "Show &Big Icons"; showBigIconsToolStripMenuItem.Click += showBigIconsToolStripMenuItem_Click; // // alwaysOnTopToolStripMenuItem // alwaysOnTopToolStripMenuItem.Name = "alwaysOnTopToolStripMenuItem"; - alwaysOnTopToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + alwaysOnTopToolStripMenuItem.Size = new System.Drawing.Size(154, 22); alwaysOnTopToolStripMenuItem.Text = "Always On &Top"; alwaysOnTopToolStripMenuItem.Click += alwaysOnTopToolStripMenuItem_Click; // @@ -247,7 +243,7 @@ namespace RokettoLaunch optionsToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; optionsToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F12; - optionsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + optionsToolStripMenuItem.Size = new System.Drawing.Size(168, 22); optionsToolStripMenuItem.Text = "&Options"; optionsToolStripMenuItem.Click += optionsToolStripMenuItem_Click; // @@ -263,131 +259,105 @@ namespace RokettoLaunch viewHelpToolStripMenuItem1.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; viewHelpToolStripMenuItem1.Name = "viewHelpToolStripMenuItem1"; viewHelpToolStripMenuItem1.ShortcutKeys = System.Windows.Forms.Keys.F1; - viewHelpToolStripMenuItem1.Size = new System.Drawing.Size(180, 22); + viewHelpToolStripMenuItem1.Size = new System.Drawing.Size(146, 22); viewHelpToolStripMenuItem1.Text = "&View Help"; viewHelpToolStripMenuItem1.Click += viewHelpToolStripMenuItem1_Click; // // toolStripMenuItem16 // toolStripMenuItem16.Name = "toolStripMenuItem16"; - toolStripMenuItem16.Size = new System.Drawing.Size(177, 6); + toolStripMenuItem16.Size = new System.Drawing.Size(143, 6); // // aboutToolStripMenuItem1 // aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1"; - aboutToolStripMenuItem1.Size = new System.Drawing.Size(180, 22); + aboutToolStripMenuItem1.Size = new System.Drawing.Size(146, 22); aboutToolStripMenuItem1.Text = "&About"; aboutToolStripMenuItem1.Click += aboutToolStripMenuItem1_Click; // // tileContainerMenu1 // - tileContainerMenu1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { addGroupToolStripMenuItem1, toolStripMenuItem4, editToolStripMenuItem, toolStripMenuItem5, toolStripSeparator1, toolStripMenuItem2, toolStripSeparator2, toolStripMenuItem3, toolStripSeparator3, removeToolStripMenuItem }); + tileContainerMenu1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { addGroupToolStripMenuItem1, toolStripMenuItem4, editToolStripMenuItem, toolStripMenuItem5, toolStripSeparator1, toolStripMenuItem3, toolStripSeparator3, removeToolStripMenuItem }); tileContainerMenu1.Name = "tileContainerMenu1"; - tileContainerMenu1.Size = new System.Drawing.Size(133, 176); + tileContainerMenu1.Size = new System.Drawing.Size(181, 170); // // addGroupToolStripMenuItem1 // addGroupToolStripMenuItem1.Name = "addGroupToolStripMenuItem1"; - addGroupToolStripMenuItem1.Size = new System.Drawing.Size(132, 22); + addGroupToolStripMenuItem1.Size = new System.Drawing.Size(180, 22); addGroupToolStripMenuItem1.Text = "&Add Tile"; addGroupToolStripMenuItem1.Click += addGroupToolStripMenuItem1_Click; // // toolStripMenuItem4 // toolStripMenuItem4.Name = "toolStripMenuItem4"; - toolStripMenuItem4.Size = new System.Drawing.Size(132, 22); - toolStripMenuItem4.Text = "Add &Group"; + toolStripMenuItem4.Size = new System.Drawing.Size(180, 22); + toolStripMenuItem4.Text = "Add &Folder"; toolStripMenuItem4.Click += toolStripMenuItem4_Click; // // editToolStripMenuItem // editToolStripMenuItem.Name = "editToolStripMenuItem"; - editToolStripMenuItem.Size = new System.Drawing.Size(132, 22); + editToolStripMenuItem.Size = new System.Drawing.Size(180, 22); editToolStripMenuItem.Text = "&Edit"; editToolStripMenuItem.Click += editToolStripMenuItem_Click; // // toolStripMenuItem5 // toolStripMenuItem5.Name = "toolStripMenuItem5"; - toolStripMenuItem5.Size = new System.Drawing.Size(132, 22); + toolStripMenuItem5.Size = new System.Drawing.Size(180, 22); toolStripMenuItem5.Text = "&Duplicate"; toolStripMenuItem5.Click += toolStripMenuItem5_Click; // // toolStripSeparator1 // toolStripSeparator1.Name = "toolStripSeparator1"; - toolStripSeparator1.Size = new System.Drawing.Size(129, 6); - // - // toolStripMenuItem2 - // - toolStripMenuItem2.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { addRowToolStripMenuItem, removeRowToolStripMenuItem }); - toolStripMenuItem2.Name = "toolStripMenuItem2"; - toolStripMenuItem2.Size = new System.Drawing.Size(132, 22); - toolStripMenuItem2.Text = "Ro&w"; - // - // addRowToolStripMenuItem - // - addRowToolStripMenuItem.Name = "addRowToolStripMenuItem"; - addRowToolStripMenuItem.Size = new System.Drawing.Size(143, 22); - addRowToolStripMenuItem.Text = "A&dd Row"; - addRowToolStripMenuItem.Click += addRowToolStripMenuItem_Click; - // - // removeRowToolStripMenuItem - // - removeRowToolStripMenuItem.Name = "removeRowToolStripMenuItem"; - removeRowToolStripMenuItem.Size = new System.Drawing.Size(143, 22); - removeRowToolStripMenuItem.Text = "Remo&ve Row"; - removeRowToolStripMenuItem.Click += removeRowToolStripMenuItem_Click; - // - // toolStripSeparator2 - // - toolStripSeparator2.Name = "toolStripSeparator2"; - toolStripSeparator2.Size = new System.Drawing.Size(129, 6); + toolStripSeparator1.Size = new System.Drawing.Size(177, 6); // // toolStripMenuItem3 // toolStripMenuItem3.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { topToolStripMenuItem, upToolStripMenuItem, downToolStripMenuItem, bottomToolStripMenuItem }); toolStripMenuItem3.Name = "toolStripMenuItem3"; - toolStripMenuItem3.Size = new System.Drawing.Size(132, 22); + toolStripMenuItem3.Size = new System.Drawing.Size(180, 22); toolStripMenuItem3.Text = "&Move"; // // topToolStripMenuItem // topToolStripMenuItem.Name = "topToolStripMenuItem"; - topToolStripMenuItem.Size = new System.Drawing.Size(114, 22); + topToolStripMenuItem.Size = new System.Drawing.Size(180, 22); topToolStripMenuItem.Text = "&Top"; topToolStripMenuItem.Click += topToolStripMenuItem_Click; // // upToolStripMenuItem // upToolStripMenuItem.Name = "upToolStripMenuItem"; - upToolStripMenuItem.Size = new System.Drawing.Size(114, 22); + upToolStripMenuItem.Size = new System.Drawing.Size(180, 22); upToolStripMenuItem.Text = "&Up"; upToolStripMenuItem.Click += upToolStripMenuItem_Click; // // downToolStripMenuItem // downToolStripMenuItem.Name = "downToolStripMenuItem"; - downToolStripMenuItem.Size = new System.Drawing.Size(114, 22); + downToolStripMenuItem.Size = new System.Drawing.Size(180, 22); downToolStripMenuItem.Text = "&Down"; downToolStripMenuItem.Click += downToolStripMenuItem_Click; // // bottomToolStripMenuItem // bottomToolStripMenuItem.Name = "bottomToolStripMenuItem"; - bottomToolStripMenuItem.Size = new System.Drawing.Size(114, 22); + bottomToolStripMenuItem.Size = new System.Drawing.Size(180, 22); bottomToolStripMenuItem.Text = "&Bottom"; bottomToolStripMenuItem.Click += bottomToolStripMenuItem_Click; // // toolStripSeparator3 // toolStripSeparator3.Name = "toolStripSeparator3"; - toolStripSeparator3.Size = new System.Drawing.Size(129, 6); + toolStripSeparator3.Size = new System.Drawing.Size(177, 6); // // removeToolStripMenuItem // removeToolStripMenuItem.Name = "removeToolStripMenuItem"; - removeToolStripMenuItem.Size = new System.Drawing.Size(132, 22); + removeToolStripMenuItem.Size = new System.Drawing.Size(180, 22); removeToolStripMenuItem.Text = "&Remove"; removeToolStripMenuItem.Click += removeToolStripMenuItem_Click; // @@ -397,10 +367,10 @@ namespace RokettoLaunch flowLayoutPanel1.BackColor = System.Drawing.Color.Transparent; flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown; - flowLayoutPanel1.Location = new System.Drawing.Point(6, 0); + flowLayoutPanel1.Location = new System.Drawing.Point(0, 0); flowLayoutPanel1.Margin = new System.Windows.Forms.Padding(0); flowLayoutPanel1.Name = "flowLayoutPanel1"; - flowLayoutPanel1.Size = new System.Drawing.Size(398, 417); + flowLayoutPanel1.Size = new System.Drawing.Size(404, 417); flowLayoutPanel1.TabIndex = 8; flowLayoutPanel1.WrapContents = false; // @@ -412,7 +382,6 @@ namespace RokettoLaunch panel1.Location = new System.Drawing.Point(0, 24); panel1.Margin = new System.Windows.Forms.Padding(0); panel1.Name = "panel1"; - panel1.Padding = new System.Windows.Forms.Padding(6, 0, 0, 0); panel1.Size = new System.Drawing.Size(404, 417); panel1.TabIndex = 9; // @@ -508,13 +477,9 @@ namespace RokettoLaunch private System.Windows.Forms.ToolStripMenuItem removeToolStripMenuItem; private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; - private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3; private System.Windows.Forms.ToolStripSeparator toolStripSeparator3; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem4; - private System.Windows.Forms.ToolStripMenuItem addRowToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem removeRowToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem topToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem upToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem downToolStripMenuItem; diff --git a/MainForm.cs b/MainForm.cs index 092068c..99977c1 100644 --- a/MainForm.cs +++ b/MainForm.cs @@ -4,7 +4,6 @@ using System.ComponentModel; using System.Drawing; using System.IO; using System.Linq; -using System.Reflection; using System.Text.Json; using System.Threading.Tasks; using System.Windows.Forms; @@ -20,6 +19,8 @@ namespace RokettoLaunch { public partial class MainForm : Form { + private const int MIN_ITEMS_PER_ROW = 4; + private readonly FileSessionManager _fileSessionManager; private bool _isBusy = false; @@ -33,6 +34,12 @@ namespace RokettoLaunch this.AutoScaleMode = AutoScaleMode.None; this.Text = Application.ProductName; + this.CurrentSession = new AppOptions(); + +#if DEBUG + flowLayoutPanel1.BackColor = Color.LightGreen; +#endif + newToolStripMenuItem.Image = RyzStudio.Windows.ThemedForms.DefaultVisualStyle.GetImage("a", Color.Black, 2); openToolStripMenuItem.Image = RyzStudio.Windows.ThemedForms.DefaultVisualStyle.GetImage("b", Color.Black, 2); saveToolStripMenuItem.Image = RyzStudio.Windows.ThemedForms.DefaultVisualStyle.GetImage("c", Color.Black, 2); @@ -69,10 +76,10 @@ namespace RokettoLaunch } else { - this.CurrentSession = new AppOptions(); - - InvalidateOptions(); + await _fileSessionManager.NewSession(); } + + UIControl.SetFocus(this); } protected async override void OnClosing(CancelEventArgs e) @@ -131,8 +138,21 @@ namespace RokettoLaunch public AppOptions CurrentSession { get; set; } = null; - private void InvalidateOptions() + private void InvalidateOptions(bool resize) { + if (resize) + { + if (!this.CurrentSession.StartPosition.IsEmpty) + { + UIControl.SetLocation(this, this.CurrentSession.StartPosition); + } + + if (this.CurrentSession.Height > 0) + { + UIControl.SetClientHeight(this, this.CurrentSession.Height); + } + } + /// todo: big icons #if !DEBUG @@ -150,6 +170,8 @@ namespace RokettoLaunch } #endif + AutoResizeWidth(); + UIControl.SetTopMost(this, this.CurrentSession.AlwaysOnTop); } @@ -304,7 +326,7 @@ namespace RokettoLaunch /// private async void addGroupToolStripMenuItem_Click(object sender, EventArgs e) { - await AddNewTileGroup(); + await AddNewSection(); } @@ -353,7 +375,7 @@ namespace RokettoLaunch { this.CurrentSession = form.Result; - InvalidateOptions(); + InvalidateOptions(false); } } @@ -411,83 +433,50 @@ namespace RokettoLaunch private async Task fileSessionManager_OnNewSession(FileSessionManager sender) { - return await Task.Run(async () => - { - var form = new NewForm(); - if (form.ShowDialog() == DialogResult.OK) - { - var result = form.Result; + // Enforce minimum number of rows + this.CurrentSession.TilesPerRow = Math.Max(this.CurrentSession.TilesPerRow, MIN_ITEMS_PER_ROW); - UIControl.Clear(flowLayoutPanel1); + UIControl.Clear(flowLayoutPanel1); - this.CurrentSession.TilesPerRow = result.ColumnCount; + await AddNewSection(); - for (var i = 0; i < result.GroupCount; i++) - { - await AddNewTileGroup(); - } - } + InvalidateOptions(false); - AutoResize(); - - return true; - }); + return true; } private async Task fileSessionManager_OnLoadSession(FileSessionManager sender, string filename, int formatType) { - return await Task.Run(async () => + var newSession = new AppOptions(); + + switch (Path.GetExtension(filename?.ToLower()?.Trim() ?? string.Empty)) { - var result = GenericResult.Create(); + case ".json": + case ".jsonfig": + newSession = await RyzStudio.Text.Json.JsonSerialiser.DeserialiseFile(filename); + break; + case ".jsnx": + newSession = await RyzStudio.IO.Compression.ZFile.ReadFile(filename, "Document.json"); + break; + default: + break; + } - switch (Path.GetExtension(filename?.ToLower()?.Trim() ?? string.Empty)) - { - case ".json": - case ".jsonfig": - this.CurrentSession = RyzStudio.Text.Json.JsonSerialiser.DeserialiseFile(filename); - break; - case ".jsnx": - this.CurrentSession = await RyzStudio.IO.Compression.ZFile.ReadFile(filename, "Document.json"); - break; - default: - this.CurrentSession = null; - break; - } + if (newSession == null) newSession = new AppOptions(); - if (this.CurrentSession == null) - { - ThMessageBox.Show(this, "Unable to read session", "Load session"); + // Load tiles + UIControl.Clear(flowLayoutPanel1); - return false; - } + foreach (var item in newSession.Groups ?? new List()) + { + await AddSection(item); + } - if (this.CurrentSession == null) - { - this.CurrentSession = new AppOptions(); - } + this.CurrentSession = newSession; - // Reposition + resize - if (!this.CurrentSession.StartPosition.IsEmpty) - { - UIControl.SetLocation(this, this.CurrentSession.StartPosition); - } + InvalidateOptions(true); - if (this.CurrentSession.Height > 0) - { - UIControl.SetClientHeight(this, this.CurrentSession.Height); - } - - InvalidateOptions(); - - // Load tiles - await LoadTileGroups(this.CurrentSession.Groups); - - AutoResize(); - - UIControl.SetFocus(this); - - return true; - }); + return true; } private async Task fileSessionManager_OnSaveSession(FileSessionManager sender, string filename, int formatType, bool showNotices) @@ -589,12 +578,7 @@ namespace RokettoLaunch private async Task fileSessionManager_OnClearSession(FileSessionManager sender) { - await Task.Run(() => - { - UIControl.Clear(flowLayoutPanel1); - }); - - return true; + return await fileSessionManager_OnNewSession(sender); } private async Task fileSessionManager_OnFilenameChanged(FileSessionManager sender, string filename) @@ -728,8 +712,9 @@ namespace RokettoLaunch try { var newModel = JsonSerializer.Deserialize(JsonSerializer.Serialize(model)); + newModel.Title = (string.IsNullOrWhiteSpace(newModel.Title) ? "New Section" : newModel.Title?.Trim()) + " (Copy)"; - await AddTileGroups(newModel); + await AddSection(newModel); } catch (Exception) { @@ -741,37 +726,35 @@ namespace RokettoLaunch /// - /// Row - Add Row + /// Section - Add Section /// /// /// - private void addRowToolStripMenuItem_Click(object sender, EventArgs e) + private async void addRowToolStripMenuItem_Click(object sender, EventArgs e) { - var container = UIControl.GetOwner((ToolStripDropDownItem)sender); - if (container == null) - { - return; - } - - container.AddRow(); - - _fileSessionManager.HasChanged = true; + await AddNewSection(); } /// - /// Row - Remove Row + /// Section - Remove Section /// /// /// private void removeRowToolStripMenuItem_Click(object sender, EventArgs e) { + var result = MessageBox.Show("Are you sure you want to remove section?", "Remove Section", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + if (result != DialogResult.Yes) + { + return; + } + var container = UIControl.GetOwner((ToolStripDropDownItem)sender); if (container == null) { return; } - container.RemoveRow(); + container?.Parent.Controls?.Remove(container); _fileSessionManager.HasChanged = true; } @@ -929,6 +912,7 @@ namespace RokettoLaunch try { newModel = JsonSerializer.Deserialize(JsonSerializer.Serialize(tile.ModelInfo)); + newModel.Title = (string.IsNullOrWhiteSpace(newModel.Title) ? "New Tile" : newModel.Title?.Trim()) + " (Copy)"; } catch (Exception) { @@ -953,6 +937,12 @@ namespace RokettoLaunch /// private void removeToolStripMenuItem1_Click(object sender, EventArgs e) { + var result = MessageBox.Show("Are you sure you want to remove tile?", "Remove Tile", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + if (result != DialogResult.Yes) + { + return; + } + var tile = UIControl.GetOwner((ToolStripMenuItem)sender); if (tile == null) { @@ -973,19 +963,19 @@ namespace RokettoLaunch #endregion - private async Task AddNewTileGroup() + private async Task AddNewSection() { var group = new TileGroupModel(); - group.Title = "New Group"; + group.Title = "New Section"; group.IsExpanded = true; group.GridSize = new System.Drawing.Size(this.CurrentSession.TilesPerRow, 1); - await AddTileGroups(group); + await AddSection(group); _fileSessionManager.HasChanged = true; } - private async Task AddTileGroups(TileGroupModel model) + private async Task AddSection(TileGroupModel model) { await Task.Run(() => { @@ -993,12 +983,15 @@ namespace RokettoLaunch panel.Title = model.Title; panel.IsOpen = model.IsExpanded; panel.TitleContextMenuStrip = tileContainerMenu1; - panel.PaddingBottom = 0; panel.AutoSizeHeight = true; panel.Tag = model; panel.AutoSize(model.GridSize.Width, model.GridSize.Height); panel.Height += 4; +#if DEBUG + panel.BackColor = Color.LightSteelBlue; +#endif + panel.MouseClick += tileContainer_MouseClick; UIControl.Add(flowLayoutPanel1, panel); @@ -1015,30 +1008,22 @@ namespace RokettoLaunch }); } - private void AutoResize() + private void AutoResizeWidth() { if (flowLayoutPanel1.Controls.Count <= 0) { return; } - var width = 0; + var width = MIN_ITEMS_PER_ROW; foreach (var item in flowLayoutPanel1.Controls.OfType()) { width = Math.Max(width, item.Width); } - UIControl.SetClientWidth(this, width + panel1.Padding.Horizontal + this.Padding.Horizontal + SystemInformation.VerticalScrollBarWidth); - } + var padding = panel1.Padding.Horizontal + this.Padding.Horizontal + SystemInformation.VerticalScrollBarWidth; - private async Task LoadTileGroups(List groupList) - { - UIControl.Clear(flowLayoutPanel1); - - foreach (var item in groupList ?? new List()) - { - await AddTileGroups(item); - } + UIControl.SetClientWidth(this, width + padding); } } diff --git a/MainForm.resx b/MainForm.resx index 4a573f9..c441c6c 100644 --- a/MainForm.resx +++ b/MainForm.resx @@ -1,7 +1,7 @@  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/OptionsForm.cs b/OptionsForm.cs index 226cd2a..61f0cf6 100644 --- a/OptionsForm.cs +++ b/OptionsForm.cs @@ -77,9 +77,9 @@ namespace RokettoLaunch tTogglePanel1.SuspendLayout(); tTogglePanel2.SuspendLayout(); SuspendLayout(); - // + // // label1 - // + // label1.AutoSize = true; label1.BackColor = System.Drawing.Color.Transparent; label1.ForeColor = System.Drawing.SystemColors.ControlText; @@ -91,9 +91,9 @@ namespace RokettoLaunch label1.TabIndex = 153; label1.Text = "Show Toggle Hotkey"; label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // + // // yesNoPickerBox2 - // + // yesNoPickerBox2.AcceptButton = null; yesNoPickerBox2.Anchor = AnchorStyles.Top | AnchorStyles.Right; yesNoPickerBox2.BackColor = System.Drawing.Color.Transparent; @@ -108,9 +108,9 @@ namespace RokettoLaunch yesNoPickerBox2.TabIndex = 183; yesNoPickerBox2.TabStop = false; yesNoPickerBox2.Value = true; - // + // // label6 - // + // label6.AutoSize = true; label6.BackColor = System.Drawing.Color.Transparent; label6.ForeColor = System.Drawing.SystemColors.ControlText; @@ -122,9 +122,9 @@ namespace RokettoLaunch label6.TabIndex = 182; label6.Text = "Hide On Close"; label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // + // // yesNoPickerBox3 - // + // yesNoPickerBox3.AcceptButton = null; yesNoPickerBox3.Anchor = AnchorStyles.Top | AnchorStyles.Right; yesNoPickerBox3.BackColor = System.Drawing.Color.Transparent; @@ -139,9 +139,9 @@ namespace RokettoLaunch yesNoPickerBox3.TabIndex = 185; yesNoPickerBox3.TabStop = false; yesNoPickerBox3.Value = true; - // + // // label7 - // + // label7.AutoSize = true; label7.BackColor = System.Drawing.Color.Transparent; label7.ForeColor = System.Drawing.SystemColors.ControlText; @@ -153,9 +153,9 @@ namespace RokettoLaunch label7.TabIndex = 184; label7.Text = "Hide On Execute"; label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // + // // textBox1 - // + // textBox1.AcceptButton = null; textBox1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; textBox1.BackColor = System.Drawing.Color.Transparent; @@ -176,9 +176,9 @@ namespace RokettoLaunch textBox1.TabIndex = 189; textBox1.TabStop = false; textBox1.UseSystemPasswordChar = false; - // + // // numericBox1 - // + // numericBox1.AcceptButton = null; numericBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right; numericBox1.BackColor = System.Drawing.Color.Transparent; @@ -194,9 +194,9 @@ namespace RokettoLaunch numericBox1.TabIndex = 192; numericBox1.TabStop = false; numericBox1.Value = 1; - // + // // label4 - // + // label4.AutoSize = true; label4.BackColor = System.Drawing.Color.Transparent; label4.ForeColor = System.Drawing.SystemColors.ControlText; @@ -208,9 +208,9 @@ namespace RokettoLaunch label4.TabIndex = 193; label4.Text = "Tiles Per Row"; label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // + // // flowLayoutPanel1 - // + // flowLayoutPanel1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; flowLayoutPanel1.AutoScroll = true; flowLayoutPanel1.BackColor = System.Drawing.Color.Transparent; @@ -223,9 +223,9 @@ namespace RokettoLaunch flowLayoutPanel1.TabIndex = 194; flowLayoutPanel1.WrapContents = false; flowLayoutPanel1.Resize += flowLayoutPanel1_Resize; - // + // // tTogglePanel1 - // + // tTogglePanel1.AutoScrollMargin = new System.Drawing.Size(0, 0); tTogglePanel1.AutoScrollMinSize = new System.Drawing.Size(0, 0); tTogglePanel1.Controls.Add(yesNoPickerBox1); @@ -239,16 +239,14 @@ namespace RokettoLaunch tTogglePanel1.Margin = new Padding(0); tTogglePanel1.Name = "tTogglePanel1"; tTogglePanel1.Padding = new Padding(0, 22, 0, 0); - tTogglePanel1.PaddingBottom = 0; - tTogglePanel1.PaddingLeft = 4; tTogglePanel1.Size = new System.Drawing.Size(401, 119); tTogglePanel1.TabIndex = 0; tTogglePanel1.Title = "Appearance"; tTogglePanel1.TitleContextMenuStrip = null; tTogglePanel1.TitleCursor = Cursors.Default; - // + // // yesNoPickerBox1 - // + // yesNoPickerBox1.AcceptButton = null; yesNoPickerBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right; yesNoPickerBox1.BackColor = System.Drawing.Color.Transparent; @@ -263,9 +261,9 @@ namespace RokettoLaunch yesNoPickerBox1.TabIndex = 195; yesNoPickerBox1.TabStop = false; yesNoPickerBox1.Value = true; - // + // // label2 - // + // label2.AutoSize = true; label2.BackColor = System.Drawing.Color.Transparent; label2.ForeColor = System.Drawing.SystemColors.ControlText; @@ -277,9 +275,9 @@ namespace RokettoLaunch label2.TabIndex = 194; label2.Text = "Show Big Icons"; label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // + // // tTogglePanel2 - // + // tTogglePanel2.AutoScrollMargin = new System.Drawing.Size(0, 0); tTogglePanel2.AutoScrollMinSize = new System.Drawing.Size(0, 0); tTogglePanel2.Controls.Add(yesNoPickerBox4); @@ -297,16 +295,14 @@ namespace RokettoLaunch tTogglePanel2.Margin = new Padding(0); tTogglePanel2.Name = "tTogglePanel2"; tTogglePanel2.Padding = new Padding(0, 22, 0, 0); - tTogglePanel2.PaddingBottom = 0; - tTogglePanel2.PaddingLeft = 4; tTogglePanel2.Size = new System.Drawing.Size(401, 206); tTogglePanel2.TabIndex = 1; tTogglePanel2.Title = "Behaviour"; tTogglePanel2.TitleContextMenuStrip = null; tTogglePanel2.TitleCursor = Cursors.Default; - // + // // yesNoPickerBox4 - // + // yesNoPickerBox4.AcceptButton = null; yesNoPickerBox4.Anchor = AnchorStyles.Top | AnchorStyles.Right; yesNoPickerBox4.BackColor = System.Drawing.Color.Transparent; @@ -321,9 +317,9 @@ namespace RokettoLaunch yesNoPickerBox4.TabIndex = 191; yesNoPickerBox4.TabStop = false; yesNoPickerBox4.Value = true; - // + // // label3 - // + // label3.AutoSize = true; label3.BackColor = System.Drawing.Color.Transparent; label3.ForeColor = System.Drawing.SystemColors.ControlText; @@ -335,9 +331,9 @@ namespace RokettoLaunch label3.TabIndex = 190; label3.Text = "Always On Top"; label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // + // // dialogFooter1 - // + // dialogFooter1.BackColor = System.Drawing.Color.FromArgb(240, 240, 240); dialogFooter1.Button1Text = "&Save"; dialogFooter1.Dialog = this; @@ -345,9 +341,9 @@ namespace RokettoLaunch dialogFooter1.Location = new System.Drawing.Point(0, 437); dialogFooter1.Name = "dialogFooter1"; dialogFooter1.Size = new System.Drawing.Size(444, 84); - // + // // OptionsForm - // + // AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; BackColor = System.Drawing.Color.White; diff --git a/RokettoLaunch.csproj b/RokettoLaunch.csproj index 27c2043..c40542b 100644 --- a/RokettoLaunch.csproj +++ b/RokettoLaunch.csproj @@ -14,7 +14,7 @@ Ray Lam 1.0.0.0 1.0.0.0 - 0.3.5.0335 + 0.3.6.0604 False x64 icon-128.png @@ -79,8 +79,8 @@ - - + + @@ -89,7 +89,6 @@ True AppResource.resx - diff --git a/skye.sln b/skye.sln index 4e11779..477e9a4 100644 --- a/skye.sln +++ b/skye.sln @@ -5,6 +5,10 @@ VisualStudioVersion = 17.4.33205.214 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RokettoLaunch", "RokettoLaunch.csproj", "{4833FB27-0817-4720-A54B-180369B0C374}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RyzStudio", "..\ryzstudio8\core\RyzStudio.csproj", "{BBB7657A-3CE7-4333-9DCE-3137973F538E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RyzStudio.Windows.Forms", "..\ryzstudio8\windows.forms\RyzStudio.Windows.Forms.csproj", "{EF73F363-4F93-5128-6F96-C797FA7CD94B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -15,6 +19,14 @@ Global {4833FB27-0817-4720-A54B-180369B0C374}.Debug|Any CPU.Build.0 = Debug|Any CPU {4833FB27-0817-4720-A54B-180369B0C374}.Release|Any CPU.ActiveCfg = Release|Any CPU {4833FB27-0817-4720-A54B-180369B0C374}.Release|Any CPU.Build.0 = Release|Any CPU + {BBB7657A-3CE7-4333-9DCE-3137973F538E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BBB7657A-3CE7-4333-9DCE-3137973F538E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BBB7657A-3CE7-4333-9DCE-3137973F538E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BBB7657A-3CE7-4333-9DCE-3137973F538E}.Release|Any CPU.Build.0 = Release|Any CPU + {EF73F363-4F93-5128-6F96-C797FA7CD94B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EF73F363-4F93-5128-6F96-C797FA7CD94B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EF73F363-4F93-5128-6F96-C797FA7CD94B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EF73F363-4F93-5128-6F96-C797FA7CD94B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE