diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs index 7838591..3ebc4a4 100644 --- a/MainForm.Designer.cs +++ b/MainForm.Designer.cs @@ -1,4 +1,6 @@ -namespace FizzyLauncher +using FizzyLauncher.Windows.Forms; + +namespace FizzyLauncher { partial class MainForm { @@ -46,6 +48,8 @@ this.saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem15 = new System.Windows.Forms.ToolStripSeparator(); this.exitToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.addGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.viewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.showBigIconsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.enableAnimationsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -56,11 +60,9 @@ this.viewHelpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem16 = new System.Windows.Forms.ToolStripSeparator(); this.aboutToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.panel1 = new System.Windows.Forms.Panel(); - this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); + this.tileContainer1 = new FizzyLauncher.Windows.Forms.TileContainer(); this.contextMenuStrip2.SuspendLayout(); this.menuStrip1.SuspendLayout(); - this.panel1.SuspendLayout(); this.SuspendLayout(); // // saveFileDialog1 @@ -99,6 +101,7 @@ // this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.fileToolStripMenuItem, + this.toolStripMenuItem1, this.viewToolStripMenuItem, this.toolsToolStripMenuItem, this.helpToolStripMenuItem1}); @@ -129,7 +132,7 @@ this.newToolStripMenuItem.Image = global::FizzyLauncher.UIResource.file2; this.newToolStripMenuItem.Name = "newToolStripMenuItem"; this.newToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N))); - this.newToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.newToolStripMenuItem.Size = new System.Drawing.Size(146, 22); this.newToolStripMenuItem.Text = "&New"; this.newToolStripMenuItem.Click += new System.EventHandler(this.newToolStripMenuItem_Click); // @@ -138,55 +141,70 @@ this.openToolStripMenuItem.Image = global::FizzyLauncher.UIResource.folder2; this.openToolStripMenuItem.Name = "openToolStripMenuItem"; this.openToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); - this.openToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.openToolStripMenuItem.Size = new System.Drawing.Size(146, 22); this.openToolStripMenuItem.Text = "&Open"; this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click); // // toolStripMenuItem13 // this.toolStripMenuItem13.Name = "toolStripMenuItem13"; - this.toolStripMenuItem13.Size = new System.Drawing.Size(177, 6); + this.toolStripMenuItem13.Size = new System.Drawing.Size(143, 6); // // closeToolStripMenuItem // this.closeToolStripMenuItem.Name = "closeToolStripMenuItem"; - this.closeToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.closeToolStripMenuItem.Size = new System.Drawing.Size(146, 22); this.closeToolStripMenuItem.Text = "&Close"; this.closeToolStripMenuItem.Click += new System.EventHandler(this.closeToolStripMenuItem_Click); // // toolStripMenuItem14 // this.toolStripMenuItem14.Name = "toolStripMenuItem14"; - this.toolStripMenuItem14.Size = new System.Drawing.Size(177, 6); + this.toolStripMenuItem14.Size = new System.Drawing.Size(143, 6); // // saveToolStripMenuItem // this.saveToolStripMenuItem.Image = global::FizzyLauncher.UIResource.disk2; this.saveToolStripMenuItem.Name = "saveToolStripMenuItem"; this.saveToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S))); - this.saveToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.saveToolStripMenuItem.Size = new System.Drawing.Size(146, 22); this.saveToolStripMenuItem.Text = "&Save"; this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click); // // saveAsToolStripMenuItem // this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem"; - this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(146, 22); this.saveAsToolStripMenuItem.Text = "Save &As..."; this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click); // // toolStripMenuItem15 // this.toolStripMenuItem15.Name = "toolStripMenuItem15"; - this.toolStripMenuItem15.Size = new System.Drawing.Size(177, 6); + this.toolStripMenuItem15.Size = new System.Drawing.Size(143, 6); // // exitToolStripMenuItem2 // this.exitToolStripMenuItem2.Name = "exitToolStripMenuItem2"; - this.exitToolStripMenuItem2.Size = new System.Drawing.Size(180, 22); + this.exitToolStripMenuItem2.Size = new System.Drawing.Size(146, 22); this.exitToolStripMenuItem2.Text = "E&xit"; this.exitToolStripMenuItem2.Click += new System.EventHandler(this.exitToolStripMenuItem2_Click); // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.addGroupToolStripMenuItem}); + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size(39, 20); + this.toolStripMenuItem1.Text = "&Edit"; + // + // addGroupToolStripMenuItem + // + this.addGroupToolStripMenuItem.Name = "addGroupToolStripMenuItem"; + this.addGroupToolStripMenuItem.Size = new System.Drawing.Size(132, 22); + this.addGroupToolStripMenuItem.Text = "&Add Group"; + this.addGroupToolStripMenuItem.Click += new System.EventHandler(this.addGroupToolStripMenuItem_Click); + // // viewToolStripMenuItem // this.viewToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { @@ -200,21 +218,21 @@ // showBigIconsToolStripMenuItem // this.showBigIconsToolStripMenuItem.Name = "showBigIconsToolStripMenuItem"; - this.showBigIconsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.showBigIconsToolStripMenuItem.Size = new System.Drawing.Size(173, 22); this.showBigIconsToolStripMenuItem.Text = "Show &Big Icons"; this.showBigIconsToolStripMenuItem.Click += new System.EventHandler(this.showBigIconsToolStripMenuItem_Click); // // enableAnimationsToolStripMenuItem // this.enableAnimationsToolStripMenuItem.Name = "enableAnimationsToolStripMenuItem"; - this.enableAnimationsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.enableAnimationsToolStripMenuItem.Size = new System.Drawing.Size(173, 22); this.enableAnimationsToolStripMenuItem.Text = "Enable &Animations"; this.enableAnimationsToolStripMenuItem.Click += new System.EventHandler(this.enableAnimationsToolStripMenuItem_Click); // // alwaysOnTopToolStripMenuItem // this.alwaysOnTopToolStripMenuItem.Name = "alwaysOnTopToolStripMenuItem"; - this.alwaysOnTopToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.alwaysOnTopToolStripMenuItem.Size = new System.Drawing.Size(173, 22); this.alwaysOnTopToolStripMenuItem.Text = "Always On &Top"; this.alwaysOnTopToolStripMenuItem.Click += new System.EventHandler(this.alwaysOnTopToolStripMenuItem_Click); // @@ -231,7 +249,7 @@ this.optionsToolStripMenuItem.Image = global::FizzyLauncher.UIResource.cog2; this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; this.optionsToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F12))); - this.optionsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.optionsToolStripMenuItem.Size = new System.Drawing.Size(168, 22); this.optionsToolStripMenuItem.Text = "&Options"; this.optionsToolStripMenuItem.Click += new System.EventHandler(this.optionsToolStripMenuItem_Click); // @@ -250,49 +268,34 @@ this.viewHelpToolStripMenuItem1.Image = global::FizzyLauncher.UIResource.help2; this.viewHelpToolStripMenuItem1.Name = "viewHelpToolStripMenuItem1"; this.viewHelpToolStripMenuItem1.ShortcutKeys = System.Windows.Forms.Keys.F1; - this.viewHelpToolStripMenuItem1.Size = new System.Drawing.Size(180, 22); + this.viewHelpToolStripMenuItem1.Size = new System.Drawing.Size(146, 22); this.viewHelpToolStripMenuItem1.Text = "&View Help"; this.viewHelpToolStripMenuItem1.Click += new System.EventHandler(this.viewHelpToolStripMenuItem1_Click); // // toolStripMenuItem16 // this.toolStripMenuItem16.Name = "toolStripMenuItem16"; - this.toolStripMenuItem16.Size = new System.Drawing.Size(177, 6); + this.toolStripMenuItem16.Size = new System.Drawing.Size(143, 6); // // aboutToolStripMenuItem1 // this.aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1"; - this.aboutToolStripMenuItem1.Size = new System.Drawing.Size(180, 22); + this.aboutToolStripMenuItem1.Size = new System.Drawing.Size(146, 22); this.aboutToolStripMenuItem1.Text = "&About"; this.aboutToolStripMenuItem1.Click += new System.EventHandler(this.aboutToolStripMenuItem1_Click); // // panel1 // - this.panel1.AutoScroll = true; - this.panel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.panel1.BackColor = System.Drawing.Color.Transparent; - this.panel1.Controls.Add(this.flowLayoutPanel1); - this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel1.Location = new System.Drawing.Point(0, 24); - this.panel1.Margin = new System.Windows.Forms.Padding(0); - this.panel1.Name = "panel1"; - this.panel1.Padding = new System.Windows.Forms.Padding(10, 10, 10, 20); - this.panel1.Size = new System.Drawing.Size(633, 376); - this.panel1.TabIndex = 3; - // - // flowLayoutPanel1 - // - this.flowLayoutPanel1.AutoSize = true; - this.flowLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.flowLayoutPanel1.BackColor = System.Drawing.Color.Transparent; - this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown; - this.flowLayoutPanel1.Location = new System.Drawing.Point(10, 10); - this.flowLayoutPanel1.Margin = new System.Windows.Forms.Padding(0); - this.flowLayoutPanel1.Name = "flowLayoutPanel1"; - this.flowLayoutPanel1.Padding = new System.Windows.Forms.Padding(0, 0, 0, 20); - this.flowLayoutPanel1.Size = new System.Drawing.Size(0, 20); - this.flowLayoutPanel1.TabIndex = 29; - this.flowLayoutPanel1.WrapContents = false; + this.tileContainer1.AutoScroll = true; + this.tileContainer1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.tileContainer1.BackColor = System.Drawing.Color.Transparent; + this.tileContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tileContainer1.Location = new System.Drawing.Point(0, 24); + this.tileContainer1.Margin = new System.Windows.Forms.Padding(0); + this.tileContainer1.Name = "panel1"; + this.tileContainer1.Padding = new System.Windows.Forms.Padding(10, 10, 10, 20); + this.tileContainer1.Size = new System.Drawing.Size(633, 376); + this.tileContainer1.TabIndex = 3; // // MainForm // @@ -301,7 +304,7 @@ this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; this.ClientSize = new System.Drawing.Size(633, 400); - this.Controls.Add(this.panel1); + this.Controls.Add(this.tileContainer1); this.Controls.Add(this.menuStrip1); this.DoubleBuffered = true; this.ForeColor = System.Drawing.SystemColors.ControlText; @@ -315,8 +318,6 @@ this.contextMenuStrip2.ResumeLayout(false); this.menuStrip1.ResumeLayout(false); this.menuStrip1.PerformLayout(); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); @@ -333,8 +334,7 @@ private System.Windows.Forms.ToolStripMenuItem viewToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem toolsToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem1; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; + private TileContainer tileContainer1; private System.Windows.Forms.ToolStripMenuItem newToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripMenuItem13; @@ -351,6 +351,8 @@ private System.Windows.Forms.ToolStripMenuItem viewHelpToolStripMenuItem1; private System.Windows.Forms.ToolStripSeparator toolStripMenuItem16; private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem addGroupToolStripMenuItem; } } diff --git a/MainForm.cs b/MainForm.cs index ce57afc..1649abb 100644 --- a/MainForm.cs +++ b/MainForm.cs @@ -230,13 +230,14 @@ namespace FizzyLauncher protected void newSession() { - flowLayoutPanel1.Controls.Clear(); - flowLayoutPanel1.Controls.Add(new TilePanelLayout(new TileGroupModel() - { - Title = "New Group", - IsExpanded = true, - GridSize = new Size(6, 1) - })); + tileContainer1.Clear(true); + //flowLayoutPanel1.Controls.Clear(); + //flowLayoutPanel1.Controls.Add(new TilePanelLayout(new TileGroupModel() + //{ + // Title = "New Group", + // IsExpanded = true, + // GridSize = new Size(6, 1) + //})); InvalidateWidth(6); } @@ -301,7 +302,7 @@ namespace FizzyLauncher // load tiles int maxTileWidth = 0; - ThreadControl.Clear(flowLayoutPanel1); + tileContainer1.Clear(); if (this.CurrentSession.Groups != null) { @@ -311,7 +312,7 @@ namespace FizzyLauncher TilePanelLayout panel = new TilePanelLayout(item); - ThreadControl.Add(flowLayoutPanel1, panel); + tileContainer1.Add(panel); } } @@ -347,7 +348,7 @@ namespace FizzyLauncher return false; } - if (flowLayoutPanel1.Controls.Count <= 0) + if (tileContainer1.GroupCount <= 0) { return true; } @@ -366,15 +367,10 @@ namespace FizzyLauncher // save this.CurrentSession.Groups = new List(); - for (int i = 0; i < flowLayoutPanel1.Controls.Count; i++) - { - if (flowLayoutPanel1.Controls[i].GetType() != typeof(TilePanelLayout)) - { - continue; - } - TilePanelLayout container = flowLayoutPanel1.Controls[i] as TilePanelLayout; - this.CurrentSession.Groups.Add(container.Model); + foreach (TilePanelLayout item in tileContainer1.Groups) + { + this.CurrentSession.Groups.Add(item.Model); } var options = new JsonSerializerOptions(); @@ -428,8 +424,7 @@ namespace FizzyLauncher { int newWidth = TilePanelLayout.CalcWidth(columnWidth); newWidth += SystemInformation.VerticalScrollBarWidth; - newWidth += flowLayoutPanel1.Padding.Horizontal + flowLayoutPanel1.Margin.Horizontal; - newWidth += panel1.Left + panel1.Padding.Horizontal + panel1.Margin.Horizontal; + newWidth += tileContainer1.CalcWidth; newWidth += this.Padding.Horizontal; ThreadControl.ClientSize(this, newWidth, this.CurrentSession.DefaultHeight); @@ -439,7 +434,8 @@ namespace FizzyLauncher { int newWidth = TilePanelLayout.CalcWidth(columnWidth); newWidth += SystemInformation.VerticalScrollBarWidth; - newWidth += panel1.Left + panel1.Padding.Horizontal + this.Padding.Horizontal + flowLayoutPanel1.Padding.Horizontal + flowLayoutPanel1.Left; + newWidth += tileContainer1.CalcWidth; + newWidth += this.Padding.Horizontal; ThreadControl.SetClientWidth(this, newWidth); } @@ -520,7 +516,7 @@ namespace FizzyLauncher { if (string.IsNullOrWhiteSpace(sessionFilename)) { - flowLayoutPanel1.Controls.Clear(); + tileContainer1.Clear(); } else { @@ -530,14 +526,14 @@ namespace FizzyLauncher bool rv = saveFile(sessionFilename, false); if (rv) { - flowLayoutPanel1.Controls.Clear(); + tileContainer1.Clear(); sessionFilename = null; } } else if (dr == DialogResult.No) { - flowLayoutPanel1.Controls.Clear(); + tileContainer1.Clear(); sessionFilename = null; } @@ -573,6 +569,23 @@ namespace FizzyLauncher } + /// + /// Add group + /// + /// + /// + private void addGroupToolStripMenuItem_Click(object sender, EventArgs e) + { + if (string.IsNullOrWhiteSpace(sessionFilename)) + { + return; + } + + + + } + + private void showBigIconsToolStripMenuItem_Click(object sender, EventArgs e) { if (this.CurrentSession == null) @@ -657,8 +670,8 @@ namespace FizzyLauncher } -#endregion + #endregion } } \ No newline at end of file diff --git a/Windows/Forms/TileContainer.cs b/Windows/Forms/TileContainer.cs new file mode 100644 index 0000000..f3e0090 --- /dev/null +++ b/Windows/Forms/TileContainer.cs @@ -0,0 +1,91 @@ +using FizzyLauncher.Models; +using RyzStudio.Windows.Forms; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace FizzyLauncher.Windows.Forms +{ + public class TileContainer : Panel + { + protected FlowLayoutPanel flowLayoutPanel1 = null; + + + public TileContainer() + { + flowLayoutPanel1 = new FlowLayoutPanel(); + flowLayoutPanel1.AutoSize = true; + flowLayoutPanel1.AutoSizeMode = AutoSizeMode.GrowAndShrink; + flowLayoutPanel1.BackColor = Color.Transparent; + flowLayoutPanel1.FlowDirection = FlowDirection.TopDown; + flowLayoutPanel1.Location = new Point(10, 10); + flowLayoutPanel1.Margin = new Padding(0); + flowLayoutPanel1.Padding = new Padding(0, 0, 0, 20); + flowLayoutPanel1.Size = new Size(0, 20); + flowLayoutPanel1.WrapContents = false; + + this.AutoScroll = true; + this.AutoSizeMode = AutoSizeMode.GrowAndShrink; + this.BackColor = System.Drawing.Color.Transparent; + this.Margin = new Padding(0); + this.Name = "tileContainer1"; + this.Padding = new Padding(10, 10, 10, 20); + this.Controls.Add(flowLayoutPanel1); + } + + + public int CalcWidth + { + get => flowLayoutPanel1.Padding.Horizontal + flowLayoutPanel1.Margin.Horizontal + this.Left + this.Padding.Horizontal + this.Margin.Horizontal; + } + + public int GroupCount + { + get => flowLayoutPanel1.Controls.Count; + } + + public IEnumerable Groups + { + get + { + for (int i = 0; i < flowLayoutPanel1.Controls.Count; i++) + { + if (flowLayoutPanel1.Controls[i].GetType() != typeof(TilePanelLayout)) + { + continue; + } + + TilePanelLayout container = flowLayoutPanel1.Controls[i] as TilePanelLayout; + yield return container; + } + } + } + + + public void Add(TilePanelLayout tilePanelLayout) + { + ThreadControl.Add(flowLayoutPanel1, tilePanelLayout); + } + + public void Clear(bool addDefault = false) + { + ThreadControl.Clear(flowLayoutPanel1); + + if (addDefault) + { + flowLayoutPanel1.Controls.Add(new TilePanelLayout(new TileGroupModel() + { + Title = "New Group", + IsExpanded = true, + GridSize = new Size(6, 1) + })); + } + } + + + } +} diff --git a/Windows/Forms/TileContainer.resx b/Windows/Forms/TileContainer.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Windows/Forms/TileContainer.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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/Windows/Forms/TilePanel.Designer.cs b/Windows/Forms/TilePanel.Designer.cs index 6334cd0..b771cd9 100644 --- a/Windows/Forms/TilePanel.Designer.cs +++ b/Windows/Forms/TilePanel.Designer.cs @@ -58,7 +58,7 @@ this.removeToolStripMenuItem.Text = "&Remove"; this.removeToolStripMenuItem.Click += new System.EventHandler(this.removeToolStripMenuItem_Click); // - // TTilePanel + // TilePanel // this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; @@ -66,7 +66,7 @@ this.Margin = new System.Windows.Forms.Padding(4, 3, 0, 0); this.MaximumSize = new System.Drawing.Size(82, 81); this.MinimumSize = new System.Drawing.Size(82, 81); - this.Name = "TTilePanel"; + this.Name = "TilePanel"; this.Size = new System.Drawing.Size(82, 81); this.contextMenuStrip1.ResumeLayout(false); this.ResumeLayout(false);