diff --git a/FizzyLauncher.UI/RyzStudio/Windows/Forms/ThreadControl.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/ThreadControl.cs index 1a0e228..4c9c89e 100644 --- a/FizzyLauncher.UI/RyzStudio/Windows/Forms/ThreadControl.cs +++ b/FizzyLauncher.UI/RyzStudio/Windows/Forms/ThreadControl.cs @@ -290,6 +290,21 @@ namespace RyzStudio.Windows.Forms return rv; } + public static void SetChecked(ToolStripMenuItem control, bool value) + { + if (control.GetCurrentParent().InvokeRequired) + { + control.GetCurrentParent().Invoke(new MethodInvoker(() => + { + control.Checked = value; + })); + } + else + { + control.Checked = value; + } + } + public static void SetEnable(Control control, bool value) { if (control.InvokeRequired) diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs index f05390d..b7ff7d2 100644 --- a/MainForm.Designer.cs +++ b/MainForm.Designer.cs @@ -42,6 +42,7 @@ this.toolStripMenuItem10 = new System.Windows.Forms.ToolStripSeparator(); this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem11 = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem9 = new System.Windows.Forms.ToolStripMenuItem(); this.optionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -55,7 +56,7 @@ this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components); this.contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components); this.exitToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem11 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem12 = new System.Windows.Forms.ToolStripMenuItem(); this.contextMenuStrip1.SuspendLayout(); this.contextMenuStrip2.SuspendLayout(); this.SuspendLayout(); @@ -147,16 +148,24 @@ // toolStripMenuItem3 // this.toolStripMenuItem3.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripMenuItem12, this.toolStripMenuItem11, this.toolStripMenuItem1}); this.toolStripMenuItem3.Name = "toolStripMenuItem3"; this.toolStripMenuItem3.Size = new System.Drawing.Size(180, 22); this.toolStripMenuItem3.Text = "&View"; // + // toolStripMenuItem11 + // + this.toolStripMenuItem11.Name = "toolStripMenuItem11"; + this.toolStripMenuItem11.Size = new System.Drawing.Size(222, 22); + this.toolStripMenuItem11.Text = "Enable &Animation"; + this.toolStripMenuItem11.Click += new System.EventHandler(this.toolStripMenuItem11_Click); + // // toolStripMenuItem1 // this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - this.toolStripMenuItem1.Size = new System.Drawing.Size(180, 22); + this.toolStripMenuItem1.Size = new System.Drawing.Size(222, 22); this.toolStripMenuItem1.Text = "Always On &Top"; this.toolStripMenuItem1.Click += new System.EventHandler(this.toolStripMenuItem1_Click); // @@ -251,12 +260,12 @@ this.exitToolStripMenuItem1.Text = "E&xit"; this.exitToolStripMenuItem1.Click += new System.EventHandler(this.exitToolStripMenuItem1_Click); // - // toolStripMenuItem11 + // toolStripMenuItem12 // - this.toolStripMenuItem11.Name = "toolStripMenuItem11"; - this.toolStripMenuItem11.Size = new System.Drawing.Size(180, 22); - this.toolStripMenuItem11.Text = "Enable &Animation"; - this.toolStripMenuItem11.Click += new System.EventHandler(this.toolStripMenuItem11_Click); + this.toolStripMenuItem12.Name = "toolStripMenuItem12"; + this.toolStripMenuItem12.Size = new System.Drawing.Size(222, 22); + this.toolStripMenuItem12.Text = "Enable &Big Icons (In Folders)"; + this.toolStripMenuItem12.Click += new System.EventHandler(this.toolStripMenuItem12_Click); // // MainForm // @@ -304,6 +313,7 @@ private System.Windows.Forms.ContextMenuStrip contextMenuStrip2; private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem11; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem12; } } diff --git a/MainForm.cs b/MainForm.cs index 57a4714..94f5260 100644 --- a/MainForm.cs +++ b/MainForm.cs @@ -390,7 +390,6 @@ namespace AppLauncher foreach (TileGroupModel item in this.CurrentSession.Groups) { TTilePanelLayout panel = new TTilePanelLayout(item); - panel.EnableAnimation = this.CurrentSession.EnableAnimation; maxWidth = Math.Max(maxWidth, panel.Width); @@ -405,6 +404,8 @@ namespace AppLauncher // ThreadControl.SetTopMost(this, this.CurrentSession.AlwaysOnTop); ThreadControl.SetVisible(this, true); + ThreadControl.SetChecked(toolStripMenuItem11, this.CurrentSession.EnableAnimation); + ThreadControl.SetChecked(toolStripMenuItem12, this.CurrentSession.EnableBigIconInFolder); if (this.InvokeRequired) { @@ -567,17 +568,15 @@ namespace AppLauncher this.CurrentSession.EnableAnimation = !this.CurrentSession.EnableAnimation; toolStripMenuItem11.Checked = this.CurrentSession.EnableAnimation; + } - for (int i = 0; i < flowLayoutPanel1.Controls.Count; i++) - { - if (flowLayoutPanel1.Controls[i].GetType() != typeof(TTilePanelLayout)) - { - continue; - } + private void toolStripMenuItem12_Click(object sender, EventArgs e) + { + if (this.CurrentSession == null) return; - TTilePanelLayout container = flowLayoutPanel1.Controls[i] as TTilePanelLayout; - container.EnableAnimation = this.CurrentSession.EnableAnimation; - } + this.CurrentSession.EnableBigIconInFolder = !this.CurrentSession.EnableBigIconInFolder; + + toolStripMenuItem12.Checked = this.CurrentSession.EnableBigIconInFolder; } } diff --git a/Models/LauncherSession.cs b/Models/LauncherSession.cs index 6a1721a..e007df4 100644 --- a/Models/LauncherSession.cs +++ b/Models/LauncherSession.cs @@ -29,6 +29,7 @@ namespace AppLauncher.Models public bool AlwaysOnTop { get; set; } = false; public bool EnableAnimation { get; set; } = false; + public bool EnableBigIconInFolder { get; set; } = false; public bool HideOnClose { get; set; } = false; public bool HideOnClick { get; set; } = false; diff --git a/Windows/Forms/Tile/TTilePanel.cs b/Windows/Forms/Tile/TTilePanel.cs index 7b3e45a..dd28ad7 100644 --- a/Windows/Forms/Tile/TTilePanel.cs +++ b/Windows/Forms/Tile/TTilePanel.cs @@ -85,7 +85,7 @@ namespace AppLauncher.Windows.Forms { this.DropFileList(fileList); - this.LoadInfo(this.ModelInfo); + invalidateGroupMenu(this.ModelInfo); } else { @@ -227,6 +227,8 @@ namespace AppLauncher.Windows.Forms { if (groupContextMenu != null) { + invalidateGroupMenuSize(); + groupContextMenu.Show(this, e.Location); } } @@ -341,7 +343,11 @@ namespace AppLauncher.Windows.Forms protected void invalidateGroupMenu(TileModel model) { - if (groupContextMenu == null) groupContextMenu = new ContextMenuStrip(); + if (groupContextMenu == null) + { + groupContextMenu = new ContextMenuStrip(); + } + groupContextMenu.Items.Clear(); if (model.Items == null) @@ -356,7 +362,26 @@ namespace AppLauncher.Windows.Forms toolItem.Tag = item; toolItem.Click += toolItem_Click; } + } + protected void invalidateGroupMenuSize() + { + if (this.PanelContainer != null) + { + if (this.PanelContainer.MainForm != null) + { + if (this.PanelContainer.MainForm.CurrentSession != null) + { + if (this.PanelContainer.MainForm.CurrentSession.EnableBigIconInFolder) + { + groupContextMenu.ImageScalingSize = new Size(24, 24); + return; + } + } + } + } + + groupContextMenu.ImageScalingSize = new Size(16, 16); } protected MainForm findMainForm() diff --git a/Windows/Forms/Tile/TTilePanelLayout.cs b/Windows/Forms/Tile/TTilePanelLayout.cs index 98c9125..283efbf 100644 --- a/Windows/Forms/Tile/TTilePanelLayout.cs +++ b/Windows/Forms/Tile/TTilePanelLayout.cs @@ -129,7 +129,24 @@ namespace AppLauncher.Windows.Forms } } - public bool EnableAnimation { get; set; } = true; + public bool EnableAnimation + { + get + { + MainForm mainForm = this.MainForm; + if (mainForm == null) + { + return false; + } + + if (mainForm.CurrentSession == null) + { + return false; + } + + return mainForm.CurrentSession.EnableAnimation; + } + } public int CollapseHeight => labelHeight + collapseHeight; @@ -221,6 +238,30 @@ namespace AppLauncher.Windows.Forms } } + public MainForm MainForm + { + get + { + FlowLayoutPanel layoutPanel = this.FlowLayoutPanel; + if (layoutPanel == null) + { + return null; + } + + if (layoutPanel.Parent == null) + { + return null; + } + + if (layoutPanel.Parent.GetType() != typeof(MainForm)) + { + return null; + } + + return layoutPanel.Parent as MainForm; + } + } + public List Tiles { get