From b3b918b6f166c6b5100f9b7326ed1d85518f6125 Mon Sep 17 00:00:00 2001 From: Vedant Sood Date: Fri, 6 Jun 2025 13:24:34 +0100 Subject: [PATCH 1/2] Theme Changes --- IconMapper/ContextMenuOptions.cs | 45 ++++++++++ IconMapper/Form/MainForm.Designer.cs | 18 +++- IconMapper/Form/MainForm.cs | 91 ++++++++++++++++++++ IconMapper/Icon/dark_mode_24dp.png | Bin 0 -> 448 bytes IconMapper/Icon/light_mode_24dp.png | Bin 0 -> 440 bytes IconMapper/Icon/themes.png | Bin 0 -> 17884 bytes IconMapper/IconMapper.csproj | 2 + IconMapper/Properties/Resources.Designer.cs | 10 +++ IconMapper/Properties/Resources.resx | 7 +- 9 files changed, 168 insertions(+), 5 deletions(-) create mode 100644 IconMapper/ContextMenuOptions.cs create mode 100644 IconMapper/Icon/dark_mode_24dp.png create mode 100644 IconMapper/Icon/light_mode_24dp.png create mode 100644 IconMapper/Icon/themes.png diff --git a/IconMapper/ContextMenuOptions.cs b/IconMapper/ContextMenuOptions.cs new file mode 100644 index 0000000..176fb25 --- /dev/null +++ b/IconMapper/ContextMenuOptions.cs @@ -0,0 +1,45 @@ +using Microsoft.Win32; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace IconMapper +{ + class ContextMenuOptions + { + public static void contextMenuOptions() + { + // Define the folder containing the icon files + string iconDirectory = @"C:\Path\To\Your\IconFolder"; + string contextMenuPath = @"HKEY_CLASSES_ROOT\Directory\shell\ChangeIcon\submenus"; + + if (Directory.Exists(iconDirectory)) + { + // Scan the directory for .ico files + string[] icoFiles = Directory.GetFiles(iconDirectory, "*.ico"); + + // Create registry key for sub-menu + foreach (var iconFile in icoFiles) + { + string iconName = Path.GetFileNameWithoutExtension(iconFile); + + // Add a new key for each icon file in the submenus + string iconRegistryPath = contextMenuPath+"\\"+iconName; + + // Create a registry entry for each .ico file + Registry.SetValue(iconRegistryPath, "", iconName); + Registry.SetValue(iconRegistryPath+"\\command", "", "C:\\Path\\To\\YourApp\\ChangeIconApp.exe\" \"%1\" \"{iconFile}\""); + + Console.WriteLine("Added {iconFile} to context menu."); + } + } + else + { + Console.WriteLine("The directory '{iconDirectory}' does not exist."); + } + } + } +} diff --git a/IconMapper/Form/MainForm.Designer.cs b/IconMapper/Form/MainForm.Designer.cs index b69b161..dc55e84 100644 --- a/IconMapper/Form/MainForm.Designer.cs +++ b/IconMapper/Form/MainForm.Designer.cs @@ -40,6 +40,7 @@ private void InitializeComponent() this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.settingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.importIconsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.changeThemeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.DirectoryFinder.SuspendLayout(); @@ -156,7 +157,8 @@ private void InitializeComponent() // this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.settingToolStripMenuItem, - this.importIconsToolStripMenuItem}); + this.importIconsToolStripMenuItem, + this.changeThemeToolStripMenuItem}); this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); this.fileToolStripMenuItem.Text = "File"; @@ -165,7 +167,7 @@ private void InitializeComponent() // this.settingToolStripMenuItem.Image = global::IconMapper.Properties.Resources.settings_24dp; this.settingToolStripMenuItem.Name = "settingToolStripMenuItem"; - this.settingToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.settingToolStripMenuItem.Size = new System.Drawing.Size(155, 22); this.settingToolStripMenuItem.Text = "Setting"; this.settingToolStripMenuItem.Click += new System.EventHandler(this.SettingsMenuItem_Click); // @@ -173,10 +175,18 @@ private void InitializeComponent() // this.importIconsToolStripMenuItem.Image = global::IconMapper.Properties.Resources.upload_24dp; this.importIconsToolStripMenuItem.Name = "importIconsToolStripMenuItem"; - this.importIconsToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.importIconsToolStripMenuItem.Size = new System.Drawing.Size(155, 22); this.importIconsToolStripMenuItem.Text = "Import Icons"; this.importIconsToolStripMenuItem.Click += new System.EventHandler(this.ImportMenuItem_Click); // + // changeThemeToolStripMenuItem + // + this.changeThemeToolStripMenuItem.Image = global::IconMapper.Properties.Resources.themes; + this.changeThemeToolStripMenuItem.Name = "changeThemeToolStripMenuItem"; + this.changeThemeToolStripMenuItem.Size = new System.Drawing.Size(155, 22); + this.changeThemeToolStripMenuItem.Text = "Change Theme"; + this.changeThemeToolStripMenuItem.Click += new System.EventHandler(this.changeThemeToolStripMenuItem_Click); + // // helpToolStripMenuItem // this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; @@ -197,6 +207,7 @@ private void InitializeComponent() this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoSize = true; this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.BackColor = System.Drawing.SystemColors.Control; this.ClientSize = new System.Drawing.Size(834, 361); this.Controls.Add(this.IconBox); this.Controls.Add(this.DirectoryFinder); @@ -235,6 +246,7 @@ private void InitializeComponent() private System.Windows.Forms.ToolStripMenuItem importIconsToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem changeThemeToolStripMenuItem; diff --git a/IconMapper/Form/MainForm.cs b/IconMapper/Form/MainForm.cs index a46698f..f211a51 100644 --- a/IconMapper/Form/MainForm.cs +++ b/IconMapper/Form/MainForm.cs @@ -11,14 +11,85 @@ namespace IconMapper public partial class MainForm : Form { private string selectedIconPath; + private enum Theme { Light, Dark }; + Theme themeselected = Theme.Light; + /// + /// Main Form + /// public MainForm() { InitializeComponent(); + themeselected = Theme.Light; LoadDrives(); LoadIcons(); } + /// + /// Dark Theme + /// + private void DarkTheme() + { + // Background and Foreground + this.BackColor = Color.FromArgb(30, 30, 30); // Dark theme + this.ForeColor = Color.White; + + // TreeView Styling + folderTreeView.BackColor = Color.FromArgb(45, 45, 48); + folderTreeView.ForeColor = Color.White; + folderTreeView.BorderStyle = BorderStyle.FixedSingle; + + // ListBox Styling + iconListBox.BackColor = Color.FromArgb(40, 40, 42); + iconListBox.ForeColor = Color.LightGreen; + iconListBox.BorderStyle = BorderStyle.FixedSingle; + + // PictureBox Styling (border if needed) + iconPreviewPictureBox.BackColor = Color.FromArgb(50, 50, 50); + iconPreviewPictureBox.BorderStyle = BorderStyle.FixedSingle; + + // Apply Button Styling (if you use a button called applyIconButton) + applyIconButton.BackColor = Color.FromArgb(70, 130, 180); // SteelBlue + applyIconButton.ForeColor = Color.White; + applyIconButton.FlatStyle = FlatStyle.Flat; + applyIconButton.FlatAppearance.BorderColor = Color.White; + applyIconButton.FlatAppearance.BorderSize = 1; + + DirectoryFinder.ForeColor = Color.White; + IconBox.ForeColor = Color.White; + + themeselected = Theme.Dark; + } + + /// + /// Light Theme (Default) + /// + private void LightTheme() + { + // Standard Theme + //this.DoubleBuffered = true; + DirectoryFinder.ForeColor = Color.Black; + IconBox.ForeColor = Color.Black; + + this.ForeColor = SystemColors.ControlText; + this.BackColor = SystemColors.Control; + + folderTreeView.ForeColor = SystemColors.ControlText; + folderTreeView.BackColor = SystemColors.Control; + + applyIconButton.ForeColor = SystemColors.ControlText; + applyIconButton.BackColor = SystemColors.Control; + + iconListBox.ForeColor = SystemColors.ControlText; + iconListBox.BackColor = SystemColors.Control; + + iconPreviewPictureBox.BackColor = SystemColors.Control; + iconPreviewPictureBox.BorderStyle = BorderStyle.None; + + themeselected = Theme.Light; + } + + /// /// Loads the available drives and adds them to the TreeView. /// @@ -248,6 +319,13 @@ private void RefreshFolderView() SHChangeNotify(SHCNE_UPDATEDIR, SHCNF_FLUSH, IntPtr.Zero, IntPtr.Zero); } + /// + /// Folder Refresh + /// + /// + /// + /// + /// [DllImport("shell32.dll", CharSet = CharSet.Auto)] private static extern void SHChangeNotify(int wEventId, int uFlags, IntPtr dwItem1, IntPtr dwItem2); @@ -388,5 +466,18 @@ private void AboutMenuItem_Click(object sender, EventArgs e) MessageBoxButtons.OK, MessageBoxIcon.Information); } + + /// + /// Change Theme from Menu + /// + /// + /// + private void changeThemeToolStripMenuItem_Click(object sender, EventArgs e) + { + if (themeselected == Theme.Light) + DarkTheme(); + else + LightTheme(); + } } } diff --git a/IconMapper/Icon/dark_mode_24dp.png b/IconMapper/Icon/dark_mode_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..32d336711cabdce5fbaf38f8ba1324385d281844 GIT binary patch literal 448 zcmV;x0YCnUP)Px$dPzhcQ_;#hr|J20H1Iu3Pte+d;&PmfkQGG z0}cr;Fjuo%vwQob?usJnZZ_4OPA4HOIcUlF_X0`}2Rn^`6|Iq4d36i$Vz(dl)2-4Q1 z)h>*HnePFN&Fs{Bf0_51nePA`RNwn}QSzXvQV|g|dkug?edt9HeFy{spmh&Ik!caV z2~xAe?`pfUEW040^Qy{01QjKX7PKkIO+NPCUpFB{Pp$y$Cpj**@Ih7g^7oR0cz0fY zV`e@eM6}_Y3uLpH+hk_`0I>Q~U9o6gJ;Q_m literal 0 HcmV?d00001 diff --git a/IconMapper/Icon/light_mode_24dp.png b/IconMapper/Icon/light_mode_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..77174bc43ed63c75216b4ee2f62bc77b425f98d4 GIT binary patch literal 440 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 + Form @@ -100,6 +101,7 @@ + diff --git a/IconMapper/Properties/Resources.Designer.cs b/IconMapper/Properties/Resources.Designer.cs index 959d811..1e17578 100644 --- a/IconMapper/Properties/Resources.Designer.cs +++ b/IconMapper/Properties/Resources.Designer.cs @@ -70,6 +70,16 @@ internal static System.Drawing.Bitmap settings_24dp { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap themes { + get { + object obj = ResourceManager.GetObject("themes", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/IconMapper/Properties/Resources.resx b/IconMapper/Properties/Resources.resx index 6d2c182..b3de17e 100644 --- a/IconMapper/Properties/Resources.resx +++ b/IconMapper/Properties/Resources.resx @@ -118,10 +118,13 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Icon\upload_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Icon\settings_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Icon\upload_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Icon\themes.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file From dae9963f182280e48742b70d8064df068c11401a Mon Sep 17 00:00:00 2001 From: Vedant Sood Date: Fri, 6 Jun 2025 15:06:07 +0100 Subject: [PATCH 2/2] Retain Last Theme --- IconMapper/App.config | 1 + IconMapper/Form/MainForm.cs | 59 ++++++++++++++++++++++++++++++------- 2 files changed, 50 insertions(+), 10 deletions(-) diff --git a/IconMapper/App.config b/IconMapper/App.config index c612aa6..c335b45 100644 --- a/IconMapper/App.config +++ b/IconMapper/App.config @@ -5,5 +5,6 @@ + \ No newline at end of file diff --git a/IconMapper/Form/MainForm.cs b/IconMapper/Form/MainForm.cs index f211a51..6e4b097 100644 --- a/IconMapper/Form/MainForm.cs +++ b/IconMapper/Form/MainForm.cs @@ -20,7 +20,8 @@ private enum Theme { Light, Dark }; public MainForm() { InitializeComponent(); - themeselected = Theme.Light; + themeselected = (Theme)Convert.ToInt32(ConfigurationManager.AppSettings["LastTheme"]); + setTheme(themeselected); LoadDrives(); LoadIcons(); } @@ -387,17 +388,16 @@ protected override void OnResize(EventArgs e) /// private void SettingsMenuItem_Click(object sender, EventArgs e) { + string selectedPath = string.Empty; using (FolderBrowserDialog folderDialog = new FolderBrowserDialog()) { if (folderDialog.ShowDialog() == DialogResult.OK) { - string selectedPath = folderDialog.SelectedPath; - // Update app.config with the new path - Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); - config.AppSettings.Settings["IconFolderPath"].Value = selectedPath; - config.Save(ConfigurationSaveMode.Modified); - ConfigurationManager.RefreshSection("appSettings"); - MessageBox.Show("Icon folder path updated successfully."); + selectedPath = folderDialog.SelectedPath; + + if (UpdateConfig("IconFolderPath", selectedPath)) + MessageBox.Show("Icon folder path updated successfully."); + } } } @@ -473,11 +473,50 @@ private void AboutMenuItem_Click(object sender, EventArgs e) /// /// private void changeThemeToolStripMenuItem_Click(object sender, EventArgs e) + { + themeselected = themeselected == Theme.Light ? Theme.Dark : Theme.Light; + setTheme(themeselected); + + UpdateConfig("LastTheme", Convert.ToString(Convert.ToInt32(themeselected))); + + } + + /// + /// Set Theme for the Application + /// + /// + private void SetApplicationTheme(Theme theme) { if (themeselected == Theme.Light) - DarkTheme(); - else LightTheme(); + else + DarkTheme(); + } + + /// + /// Update Cofig File + /// + /// + /// + /// + /// + private bool UpdateConfig(string key, string value, string section = "appSettings") + { + bool retValue = false; + try + { + // Update app.config with the new path + Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); + config.AppSettings.Settings[key].Value = value; + config.Save(ConfigurationSaveMode.Modified); + ConfigurationManager.RefreshSection(section); + } + catch (Exception ex) + { + + } + + return retValue; } } }