From 3306d36ecbc024775972e5cf7971b2a7a70671d0 Mon Sep 17 00:00:00 2001 From: lempamo Date: Wed, 23 Aug 2017 13:38:40 -0400 Subject: Renaming the game! --- Histacom2.Engine/DesktopController.cs | 72 +++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 Histacom2.Engine/DesktopController.cs (limited to 'Histacom2.Engine/DesktopController.cs') diff --git a/Histacom2.Engine/DesktopController.cs b/Histacom2.Engine/DesktopController.cs new file mode 100644 index 0000000..8ea9775 --- /dev/null +++ b/Histacom2.Engine/DesktopController.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.IO; +using Newtonsoft.Json; + +namespace Histacom2.Engine +{ + public static class DesktopController + { + public static string ReadDataFile(string reqDirectory, bool returnYesIfProtected = false) + { + string Val = ""; + string directoryFileInfo = File.ReadAllText(Path.Combine(reqDirectory, "_data.info")); + FileSystemFolderInfo toRead = JsonConvert.DeserializeObject(directoryFileInfo); + + if (returnYesIfProtected == true) + { + if (toRead.IsProtected == true) + { + return "yes"; + } + } + else + { + return toRead.Label; + } + return Val; + } + + public static void RefreshDesktopIcons(ListViewItem[] baseIcons, ref ListView view, string folder) + { + view.Items.Clear(); // This resets it to it's default + view.Items.AddRange(baseIcons); + + foreach (string dir in Directory.GetDirectories(folder)) + { + string label = ReadDataFile(dir); + view.Items.Add(label ?? Path.GetFileName(dir), 1); + view.FindItemWithText(Path.GetFileName(dir)).Tag = dir; + } + + foreach (string dir in Directory.GetFiles(folder)) + { + if (Path.GetFileName(dir) != "_data.info") + { + THFileInfo file = new THFileInfo(); + FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(folder, "_data.info"))); + foreach (THFileInfo f in fsfi.Files) + { + if (f.Name.ToLower() == Path.GetFileName(dir).ToLower()) + { + file = f; break; + } + } + + if (new FileInfo(dir).Extension == ".exe" && file.FileIcon == 8) file.FileIcon = 10; + if (new FileInfo(dir).Extension == ".txt" && file.FileIcon == 8) file.FileIcon = 12; + + view.Items.Add(Path.GetFileName(dir), file.FileIcon); + view.FindItemWithText(Path.GetFileName(dir)).Tag = dir; + string toWrite = JsonConvert.SerializeObject(fsfi, Formatting.Indented); + + File.WriteAllText(Path.Combine(folder, "_data.info"), toWrite); + } + } + } + } +} -- cgit v1.2.3