From fdf3ccbc1d92a27e653e2724e1dc5540eb7c2d0e Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 14 Nov 2020 15:36:46 +0000 Subject: [PATCH 1/3] Added: toggle animation --- .../RyzStudio/Windows/Forms/ThreadControl.cs | 14 +++++ MainForm.Designer.cs | 28 +++++++--- MainForm.cs | 55 ++++++++++++++----- Models/LauncherSession.cs | 19 ++----- Properties/AssemblyInfo.cs | 2 +- 5 files changed, 80 insertions(+), 38 deletions(-) diff --git a/FizzyLauncher.UI/RyzStudio/Windows/Forms/ThreadControl.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/ThreadControl.cs index 6b14670..1a0e228 100644 --- a/FizzyLauncher.UI/RyzStudio/Windows/Forms/ThreadControl.cs +++ b/FizzyLauncher.UI/RyzStudio/Windows/Forms/ThreadControl.cs @@ -355,6 +355,20 @@ namespace RyzStudio.Windows.Forms } } + public static void SetLocation(Control control, Point value) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => { + control.Location = value; + })); + } + else + { + control.Location = value; + } + } + public static void SetSize(Control control, int width, int height) => SetSize(control, new Size(width, height)); public static void SetSize(Control control, Size value) diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs index 8a17426..f05390d 100644 --- a/MainForm.Designer.cs +++ b/MainForm.Designer.cs @@ -55,6 +55,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.contextMenuStrip1.SuspendLayout(); this.contextMenuStrip2.SuspendLayout(); this.SuspendLayout(); @@ -67,7 +68,7 @@ this.toolStripMenuItem9, this.helpToolStripMenuItem}); this.contextMenuStrip1.Name = "contextMenuStrip1"; - this.contextMenuStrip1.Size = new System.Drawing.Size(102, 92); + this.contextMenuStrip1.Size = new System.Drawing.Size(181, 114); this.contextMenuStrip1.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStrip1_Opening); // // toolStripMenuItem4 @@ -83,7 +84,7 @@ this.toolStripMenuItem10, this.exitToolStripMenuItem}); this.toolStripMenuItem4.Name = "toolStripMenuItem4"; - this.toolStripMenuItem4.Size = new System.Drawing.Size(101, 22); + this.toolStripMenuItem4.Size = new System.Drawing.Size(180, 22); this.toolStripMenuItem4.Text = "&File"; // // toolStripMenuItem5 @@ -146,15 +147,16 @@ // toolStripMenuItem3 // this.toolStripMenuItem3.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripMenuItem11, this.toolStripMenuItem1}); this.toolStripMenuItem3.Name = "toolStripMenuItem3"; - this.toolStripMenuItem3.Size = new System.Drawing.Size(101, 22); + this.toolStripMenuItem3.Size = new System.Drawing.Size(180, 22); this.toolStripMenuItem3.Text = "&View"; // // toolStripMenuItem1 // this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - this.toolStripMenuItem1.Size = new System.Drawing.Size(152, 22); + this.toolStripMenuItem1.Size = new System.Drawing.Size(180, 22); this.toolStripMenuItem1.Text = "Always On &Top"; this.toolStripMenuItem1.Click += new System.EventHandler(this.toolStripMenuItem1_Click); // @@ -163,7 +165,7 @@ this.toolStripMenuItem9.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.optionToolStripMenuItem}); this.toolStripMenuItem9.Name = "toolStripMenuItem9"; - this.toolStripMenuItem9.Size = new System.Drawing.Size(101, 22); + this.toolStripMenuItem9.Size = new System.Drawing.Size(180, 22); this.toolStripMenuItem9.Text = "&Tools"; // // optionToolStripMenuItem @@ -180,7 +182,7 @@ this.toolStripSeparator1, this.aboutToolStripMenuItem}); this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; - this.helpToolStripMenuItem.Size = new System.Drawing.Size(101, 22); + this.helpToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.helpToolStripMenuItem.Text = "&Help"; // // viewHelpToolStripMenuItem @@ -240,15 +242,22 @@ this.contextMenuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.exitToolStripMenuItem1}); this.contextMenuStrip2.Name = "contextMenuStrip2"; - this.contextMenuStrip2.Size = new System.Drawing.Size(181, 48); + this.contextMenuStrip2.Size = new System.Drawing.Size(94, 26); // // exitToolStripMenuItem1 // this.exitToolStripMenuItem1.Name = "exitToolStripMenuItem1"; - this.exitToolStripMenuItem1.Size = new System.Drawing.Size(180, 22); + this.exitToolStripMenuItem1.Size = new System.Drawing.Size(93, 22); this.exitToolStripMenuItem1.Text = "E&xit"; this.exitToolStripMenuItem1.Click += new System.EventHandler(this.exitToolStripMenuItem1_Click); // + // toolStripMenuItem11 + // + 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); + // // MainForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -258,7 +267,7 @@ this.ClientSize = new System.Drawing.Size(633, 400); this.Controls.Add(this.flowLayoutPanel1); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MinimumSize = new System.Drawing.Size(633, 280); + this.MinimumSize = new System.Drawing.Size(420, 280); this.Name = "MainForm"; this.Text = "Launcher"; this.TitleContextMenuStrip = this.contextMenuStrip1; @@ -294,6 +303,7 @@ private System.Windows.Forms.NotifyIcon notifyIcon1; private System.Windows.Forms.ContextMenuStrip contextMenuStrip2; private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem11; } } diff --git a/MainForm.cs b/MainForm.cs index 01a34f2..57a4714 100644 --- a/MainForm.cs +++ b/MainForm.cs @@ -63,6 +63,7 @@ namespace AppLauncher else { this.CurrentSession = new LauncherSession(); + ThreadControl.SetSize(this, this.MinimumSize); ThreadControl.SetVisible(this, true); } } @@ -373,24 +374,24 @@ namespace AppLauncher return; } - LauncherSession loadedSession = JsonConvert.DeserializeObject(sourceCode); - if (loadedSession == null) - { - return; - } - // load options - this.CurrentSession = loadedSession.ToSimple(); + this.CurrentSession = JsonConvert.DeserializeObject(sourceCode); + if (this.CurrentSession == null) + { + this.CurrentSession = new LauncherSession(); + } // load tiles int maxWidth = 0; ThreadControl.Clear(flowLayoutPanel1); - if (loadedSession.Groups != null) + if (this.CurrentSession.Groups != null) { - foreach (TileGroupModel item in loadedSession.Groups) + foreach (TileGroupModel item in this.CurrentSession.Groups) { TTilePanelLayout panel = new TTilePanelLayout(item); + panel.EnableAnimation = this.CurrentSession.EnableAnimation; + maxWidth = Math.Max(maxWidth, panel.Width); ThreadControl.Add(flowLayoutPanel1, panel); @@ -399,6 +400,7 @@ namespace AppLauncher // ui ThreadControl.SetSize(this, (maxWidth + SystemInformation.VerticalScrollBarWidth + 20 + flowLayoutPanel1.Left), this.CurrentSession.DefaultHeight); + if (!this.CurrentSession.StartPosition.IsEmpty) ThreadControl.SetLocation(this, this.CurrentSession.StartPosition); // ThreadControl.SetTopMost(this, this.CurrentSession.AlwaysOnTop); @@ -460,12 +462,17 @@ namespace AppLauncher isBusy = true; // update session + if (this.CurrentSession == null) + { + this.CurrentSession = new LauncherSession(); + } + this.CurrentSession.DefaultHeight = this.Height; this.CurrentSession.AlwaysOnTop = this.TopMost; + this.CurrentSession.StartPosition = this.Location; // save - LauncherSession saveSession = this.CurrentSession.ToSimple(); - saveSession.Groups = new List(); + this.CurrentSession.Groups = new List(); for (int i = 0; i < flowLayoutPanel1.Controls.Count; i++) { if (flowLayoutPanel1.Controls[i].GetType() != typeof(TTilePanelLayout)) @@ -474,12 +481,12 @@ namespace AppLauncher } TTilePanelLayout container = flowLayoutPanel1.Controls[i] as TTilePanelLayout; - saveSession.Groups.Add(container.Model); + this.CurrentSession.Groups.Add(container.Model); } try { - File.WriteAllText(filename, JsonConvert.SerializeObject(saveSession)); + File.WriteAllText(filename, JsonConvert.SerializeObject(this.CurrentSession)); if (showNotices) { @@ -553,5 +560,25 @@ namespace AppLauncher this.Close(); } + private void toolStripMenuItem11_Click(object sender, EventArgs e) + { + if (this.CurrentSession == null) return; + + 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; + } + + TTilePanelLayout container = flowLayoutPanel1.Controls[i] as TTilePanelLayout; + container.EnableAnimation = this.CurrentSession.EnableAnimation; + } + } + } -} +} \ No newline at end of file diff --git a/Models/LauncherSession.cs b/Models/LauncherSession.cs index f23c889..6a1721a 100644 --- a/Models/LauncherSession.cs +++ b/Models/LauncherSession.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Drawing; namespace AppLauncher.Models { @@ -25,25 +26,15 @@ namespace AppLauncher.Models public int DefaultHeight { get; set; } = 280; public HotKeyOptions HotKey { get; set; } = null; + public bool AlwaysOnTop { get; set; } = false; + public bool EnableAnimation { get; set; } = false; + public bool HideOnClose { get; set; } = false; public bool HideOnClick { get; set; } = false; public AutoSaveOption AutoSave { get; set; } = AutoSaveOption.Prompt; public List Groups { get; set; } = new List(); - - public LauncherSession ToSimple() - { - return new LauncherSession() - { - DefaultHeight = this.DefaultHeight, - HotKey = this.HotKey, - AlwaysOnTop = this.AlwaysOnTop, - HideOnClose = this.HideOnClose, - HideOnClick = this.HideOnClick, - AutoSave = this.AutoSave, - Groups = null - }; - } + public Point StartPosition { get; set; } = Point.Empty; } } \ No newline at end of file diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 5fb28ec..0c3a60f 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -33,4 +33,4 @@ using System.Runtime.InteropServices; // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("0.1.1.144")] +[assembly: AssemblyFileVersion("0.1.1.153")] From eb334fe00c65d16d00b398a33234575b3ff3992a Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 14 Nov 2020 15:58:10 +0000 Subject: [PATCH 2/3] Added: drag-drop file in folder support --- Windows/Forms/Tile/TTilePanel.cs | 78 ++++++++++++++++++++ Windows/Forms/Tile/TTilePanelLayout.cs | 98 ++++++++++++++------------ 2 files changed, 130 insertions(+), 46 deletions(-) diff --git a/Windows/Forms/Tile/TTilePanel.cs b/Windows/Forms/Tile/TTilePanel.cs index 00e144c..7b3e45a 100644 --- a/Windows/Forms/Tile/TTilePanel.cs +++ b/Windows/Forms/Tile/TTilePanel.cs @@ -24,6 +24,7 @@ namespace AppLauncher.Windows.Forms this.BackColor = Color.FromArgb(250, 250, 250); this.ContextMenuStrip = contextMenuStrip1; this.DoubleBuffered = true; + this.AllowDrop = true; label1.ForeColor = Color.FromArgb(99, 105, 119); label1.Font = new Font(this.Font.FontFamily, 8.25F); @@ -76,6 +77,83 @@ namespace AppLauncher.Windows.Forms } } + protected override void OnDragDrop(DragEventArgs e) + { + string[] fileList = e.Data.GetData(DataFormats.FileDrop) as string[]; + + if (this.ModelInfo.IsGroup) + { + this.DropFileList(fileList); + + this.LoadInfo(this.ModelInfo); + } + else + { + if (this.PanelContainer != null) + { + this.PanelContainer.DropFileList(fileList); + } + } + } + + protected override void OnDragOver(DragEventArgs e) + { + base.OnDragDrop(e); + + e.Effect = (e.Data.GetDataPresent(DataFormats.FileDrop)) ? DragDropEffects.Link : DragDropEffects.None; + } + + public void DropFileList(string[] fileList) + { + if (fileList == null) + { + return; + } + + if (fileList.Length <= 0) + { + return; + } + + if (string.IsNullOrWhiteSpace(fileList[0])) + { + return; + } + + TileModel model = new TileModel() + { + ProcessFilename = fileList[0], + Title = Path.GetFileName(fileList[0]) + }; + + // exe + if (Path.GetExtension(fileList[0]).Equals(".exe", StringComparison.CurrentCultureIgnoreCase)) + { + if (File.Exists(fileList[0])) + { + try + { + FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(fileList[0]); + if (fvi != null) + { + model.Title = fvi.ProductName; + } + } + catch + { + // do nothing + } + } + + if (string.IsNullOrWhiteSpace(model.Title)) + { + model.Title = Path.GetFileNameWithoutExtension(fileList[0]); + } + } + + this.ModelInfo.Items.Add(model); + } + public void LoadInfo(TileModel model) { this.modelInfo = model; diff --git a/Windows/Forms/Tile/TTilePanelLayout.cs b/Windows/Forms/Tile/TTilePanelLayout.cs index 53e62a8..98c9125 100644 --- a/Windows/Forms/Tile/TTilePanelLayout.cs +++ b/Windows/Forms/Tile/TTilePanelLayout.cs @@ -55,53 +55,8 @@ namespace AppLauncher.Windows.Forms protected override void OnDragDrop(DragEventArgs e) { string[] fileList = e.Data.GetData(DataFormats.FileDrop) as string[]; - if (fileList == null) - { - return; - } - if (fileList.Length <= 0) - { - return; - } - - if (string.IsNullOrWhiteSpace(fileList[0])) - { - return; - } - - TileModel model = new TileModel() - { - ProcessFilename = fileList[0], - Title = Path.GetFileName(fileList[0]) - }; - - // exe - if (Path.GetExtension(fileList[0]).Equals(".exe", StringComparison.CurrentCultureIgnoreCase)) - { - if (File.Exists(fileList[0])) - { - try - { - FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(fileList[0]); - if (fvi != null) - { - model.Title = fvi.ProductName; - } - } - catch - { - // do nothing - } - } - - if (string.IsNullOrWhiteSpace(model.Title)) - { - model.Title = Path.GetFileNameWithoutExtension(fileList[0]); - } - } - - this.AddTile(model); + this.DropFileList(fileList); } protected override void OnDragOver(DragEventArgs e) @@ -180,6 +135,57 @@ namespace AppLauncher.Windows.Forms public int ExpandedHeight => expandedHeight + this.Padding.Bottom; + public void DropFileList(string[] fileList) + { + if (fileList == null) + { + return; + } + + if (fileList.Length <= 0) + { + return; + } + + if (string.IsNullOrWhiteSpace(fileList[0])) + { + return; + } + + TileModel model = new TileModel() + { + ProcessFilename = fileList[0], + Title = Path.GetFileName(fileList[0]) + }; + + // exe + if (Path.GetExtension(fileList[0]).Equals(".exe", StringComparison.CurrentCultureIgnoreCase)) + { + if (File.Exists(fileList[0])) + { + try + { + FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(fileList[0]); + if (fvi != null) + { + model.Title = fvi.ProductName; + } + } + catch + { + // do nothing + } + } + + if (string.IsNullOrWhiteSpace(model.Title)) + { + model.Title = Path.GetFileNameWithoutExtension(fileList[0]); + } + } + + this.AddTile(model); + } + public TileGroupModel Model { get From 71480592d29dee70846f5c955211dc4ceaeded0d Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 14 Nov 2020 16:47:52 +0000 Subject: [PATCH 3/3] Added: big icon support --- .../RyzStudio/Windows/Forms/ThreadControl.cs | 15 +++++++ MainForm.Designer.cs | 24 ++++++++--- MainForm.cs | 19 ++++---- Models/LauncherSession.cs | 1 + Windows/Forms/Tile/TTilePanel.cs | 29 ++++++++++++- Windows/Forms/Tile/TTilePanelLayout.cs | 43 ++++++++++++++++++- 6 files changed, 111 insertions(+), 20 deletions(-) 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