aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/ShiftUI Designer/Program.cs8
-rw-r--r--source/WindowsFormsApplication1/API.cs720
-rw-r--r--source/WindowsFormsApplication1/Desktop/ShiftOSDesktop.cs332
-rw-r--r--source/WindowsFormsApplication1/Program.cs16
4 files changed, 566 insertions, 510 deletions
diff --git a/source/ShiftUI Designer/Program.cs b/source/ShiftUI Designer/Program.cs
index 7e4be98..4ca9e98 100644
--- a/source/ShiftUI Designer/Program.cs
+++ b/source/ShiftUI Designer/Program.cs
@@ -1423,10 +1423,10 @@ namespace ShiftUI_DesignerGenerated {
forms.Add(type.Name, Activator.CreateInstance(type) as Form);
}
}
- catch
- {
-
- }
+ catch (Exception catcherror)
+ {
+ Console.WriteLine(catcherror);
+ }
}
foreach(var item in forms)
{
diff --git a/source/WindowsFormsApplication1/API.cs b/source/WindowsFormsApplication1/API.cs
index e81788d..157f373 100644
--- a/source/WindowsFormsApplication1/API.cs
+++ b/source/WindowsFormsApplication1/API.cs
@@ -80,341 +80,391 @@ namespace ShiftOS
}
- public class API
- {
- public static Dictionary<Form, string> OpenGUIDs = new Dictionary<Form, string>();
- public static Dictionary<string, Widget> DEF_PanelGUIDs = new Dictionary<string, Widget>();
-
-
- /// <summary>
- /// Settings file.
- /// </summary>
- public static Settings LoadedSettings = null;
-
- /// <summary>
- /// Whether or not dev commands like '05tray' are available.
- /// Typically, this is set to true if the release is classified as
- /// an alpha, beta, or release candidate.
- ///
- /// Turn it off if the release is the final RC, or the stable release!
- ///
- /// Enabling developer mode will cause the save engine to not encrypt the save file
- /// or Shiftorium Registry on save, enabling you to easily modify your save
- /// to test new features or to bring in lots of codepoints. This is why
- /// Developer mode should ALWAYS be off in non-dev releases, to prevent cheating.
- /// </summary>
- public static bool DeveloperMode = true;
-
- /// <summary>
- /// If this is true, only certain applications will open and only
- /// certain features will work.
- ///
- /// This is useful for story plots like the End Game where you don't
- /// want the user being distracted by novelty features when they should
- /// be focusing on what's happening.
- ///
- /// Think of it like the opposite of what Developer Mode would do.
- /// </summary>
- public static bool LimitedMode = false;
-
- public static bool InfoboxesPlaySounds = true;
-
- public static void SkinWidget(Widget c)
- {
- if(c is Button)
- {
- var b = c as Button;
- b.FlatStyle = FlatStyle.Standard;
- }
- if(c is Panel || c is FlowLayoutPanel)
- {
- foreach(Widget child in c.Widgets)
- {
- SkinWidget(child);
- }
- }
- }
-
- public static List<Process> RunningModProcesses = new List<Process>();
- public static Dictionary<string, string> CommandAliases = new Dictionary<string, string>();
- public static Terminal LoggerTerminal = null;
-
- // Alternate Names for True and False
- public static bool yes = true;
- public static bool no = false;
-
- /// <summary>
- /// Logs an exception to the log.
- /// </summary>
- /// <param name="Message">The text to log.</param>
- /// <param name="fatal">Is it a fatal crash?</param>
- public static void LogException(string Message, bool fatal)
- {
- if(!File.Exists(Paths.SystemDir + "_Log.txt"))
- {
- if (fatal == true)
- {
- File.WriteAllText(Paths.SystemDir + "_Log.txt", GetLogTime() + " [ExWatch/WARNING] ShiftOS has encountered an UNHANDLED exception with message \"" + Message + "\". Report this to Michael as well as what you were doing when it happened ASAP.");
- }
- else
- {
- File.WriteAllText(Paths.SystemDir + "_Log.txt", GetLogTime() + " ShiftOS encountered a handled exception with message \"" + Message + "\" and was able to keep going. Ignore this.");
- }
- }
- else
- {
- List<string> Entries = new List<string>();
- foreach(string entry in File.ReadAllLines(Paths.SystemDir + "_Log.txt")) {
- Entries.Add(entry);
- }
- if (fatal == true)
- {
- Entries.Add(GetLogTime() + " [ExWatch/WARNING] ShiftOS has encountered an UNHANDLED exception with message \"" + Message + "\". Report this to Michael as well as what you were doing when it happened ASAP.");
- }
- else
- {
- Entries.Add(GetLogTime() + " ShiftOS encountered a handled exception with message \"" + Message + "\" and was able to keep going. Ignore this.");
- }
- File.WriteAllLines(Paths.SystemDir + "_Log.txt", Entries.ToArray());
- }
- }
-
- /// <summary>
- /// Logs text to the log file.
- /// </summary>
- /// <param name="Message">The text to log.</param>
- public static void Log(string Message)
- {
- if (!File.Exists(Paths.SystemDir + "_Log.txt"))
- {
- File.WriteAllText(Paths.SystemDir + "_Log.txt", GetLogTime() + " " + Message);
- }
- else
- {
- List<string> Entries = new List<string>();
- foreach (string entry in File.ReadAllLines(Paths.SystemDir + "_Log.txt"))
- {
- Entries.Add(entry);
- }
- Entries.Add(GetLogTime() + " " + Message);
- File.WriteAllLines(Paths.SystemDir + "_Log.txt", Entries.ToArray());
- }
- }
-
- /// <summary>
- /// Gets a proper-formatted date/time string for the log.
- /// </summary>
- /// <returns></returns>
- public static string GetLogTime()
- {
- return "[" + DateTime.Now.ToLongDateString() + "\\" + DateTime.Now.ToLongTimeString() + "]";
- }
-
- /// <summary>
- /// Property representing the currently loaded name pack.
- /// </summary>
- public static Skinning.NamePack LoadedNames
- {
- get
- {
- if (Skinning.Utilities.LoadedNames != null)
- {
- return Skinning.Utilities.LoadedNames;
- }
- else
- {
- Skinning.Utilities.LoadedNames = new Skinning.NamePack();
- Skinning.Utilities.loadedSkin.EmbeddedNamePackPath = "names.npk";
- Skinning.Utilities.SaveEmbeddedNamePack();
- Log("[Name Changer] Couldn't locate loaded name pack, using default name pack.");
- return Skinning.Utilities.LoadedNames;
- }
- }
- }
-
- /// <summary>
- /// Adds a command line alias.
- /// </summary>
- /// <param name="key">Alias name</param>
- /// <param name="value">Command to run.</param>
- /// <returns></returns>
- public static bool AddAlias(string key, string value)
- {
- if(!AliasExists(key))
- {
- CommandAliases.Add(key, value);
- return true;
- }
- else
- {
- return false;
- }
- }
-
- /// <summary>
- /// Saves alias list to save game.
- /// </summary>
- public static void SaveAliases()
- {
- string json = JsonConvert.SerializeObject(CommandAliases);
- File.WriteAllText(Paths.SystemDir + "_aliases.json", json);
- }
-
- /// <summary>
- /// Loads alias list from the save game.
- /// </summary>
- public static void LoadAliases()
- {
- if (File.Exists(Paths.SystemDir + "_aliases.json")) {
- string json = File.ReadAllText(Paths.SystemDir + "_aliases.json");
- CommandAliases = JsonConvert.DeserializeObject<Dictionary<string, string>>(json);
- }
- else
- {
- CommandAliases = new Dictionary<string, string>();
- }
-
- }
-
- /// <summary>
- /// Removes an alias from the list.
- /// </summary>
- /// <param name="key">Alias to remove.</param>
- /// <returns>Whether the alias could be removed.</returns>
- public static bool RemoveAlias(string key)
- {
- if(AliasExists(key))
- {
- CommandAliases.Remove(key);
- return true;
- }
- else
- {
- return false;
- }
- }
-
- /// <summary>
- /// Checks if the provided alias exists.
- /// </summary>
- /// <param name="key">The alias to check.</param>
- /// <returns>Whether the alias exists.</returns>
- public static bool AliasExists(string key)
- {
- bool no = false;
- foreach(KeyValuePair<string, string> kv in CommandAliases)
- {
- if(kv.Key == key)
- {
- no = true;
- }
- }
- return no;
- }
-
- /// <summary>
- /// I have no idea what this does - Michael
- /// </summary>
- /// <param name="AppName"></param>
- public static void CreateNewLoggerTerminal(string AppName)
- {
- CreateForm(new Terminal(true), AppName, Properties.Resources.iconTerminal);
- }
-
- public const string HiddenAPMCommand = "0Ifm0DcBBy10VZo/p4r1Jg==";
- public const string HiddenBTNConvertCommand = "js2qrls5kvZnutMbfH46sUKzKVrBtjzPlWn/wIIe/3g=";
- public const string HiddenDodgeCommand = "mpL4WPUoDcZrsXnNUJ5RWQ==";
- public const string HiddenLabyrinthCommand = "NbNzpplGKaS5D/RdwrQMXw==";
- public const string HiddenQuickChatCommand = "iQm+/qDqgkHT/zgPiYRlZQ==";
- public const string HiddenShiftnetCommand = "NCM++hbZox7B+m9tXRXGnw==";
- public const string HiddenBWalletCommand = "1nLiZELFcaxkXDufrLuyfw==";
- public const string HiddenBDiggerCommand = "g/efSjsaglt//dr3XHnPOw==";
- public const string HiddenDecryptorCommand = "CYPXaweggfWAuS7ONt/OPQ==";
-
- /// <summary>
- /// Launches an saa file, hooks it up to the Lua API, and runs it.
- /// </summary>
- /// <param name="modSAA">File to run.</param>
- public static void LaunchMod(string modSAA)
- {
- if (!LimitedMode)
- {
- if (Upgrades["shiftnet"] == true)
- {
- if (File.Exists(modSAA))
- {
- if (File.ReadAllText(modSAA) == HiddenAPMCommand)
- {
- CreateForm(new Appscape(), "Appscape Package Manager", Properties.Resources.iconAppscape);
- }
- else if (File.ReadAllText(modSAA) == HiddenDecryptorCommand)
- {
- CreateForm(new ShiftnetDecryptor(), "Shiftnet Decryptor", Properties.Resources.iconShiftnet);
- }
- else if (File.ReadAllText(modSAA) == HiddenBDiggerCommand)
- {
- CreateForm(new BitnoteDigger(), "Bitnote Digger", Properties.Resources.iconBitnoteDigger);
- }
- else if (File.ReadAllText(modSAA) == HiddenBWalletCommand)
- {
- CreateForm(new BitnoteWallet(), "Bitnote Wallet", Properties.Resources.iconBitnoteWallet);
- }
- else if (File.ReadAllText(modSAA) == HiddenShiftnetCommand)
- {
- CreateForm(new Shiftnet(), "Shiftnet", Properties.Resources.iconShiftnet);
- }
- else if (File.ReadAllText(modSAA) == HiddenBTNConvertCommand)
- {
- CreateForm(new BitnoteConverter(), "Bitnote Converter", Properties.Resources.iconBitnoteWallet);
- }
- else if (File.ReadAllText(modSAA) == HiddenDodgeCommand)
- {
- CreateForm(new Dodge(), "Dodge", Properties.Resources.iconDodge);
- }
- else if (File.ReadAllText(modSAA) == HiddenLabyrinthCommand)
- {
- CreateForm(new Labyrinth(), "Labyrinth", null);
- }
- else
- {
- try
- {
- ExtractFile(modSAA, Paths.Mod_Temp, true);
- var l = new LuaInterpreter(Paths.Mod_Temp + "main.lua");
- }
- catch (Exception ex)
- {
- LogException("Error launching mod file (.saa): " + ex.Message, false);
- CreateInfoboxSession("Error", "Could not launch the .saa file you specified. It is unsupported by this version of ShiftOS.", infobox.InfoboxMode.Info);
- }
- }
- var story_rnd = new Random();
- int story_chance = story_rnd.Next(0, 3);
- switch (story_chance) {
- case 2:
- if(API.Upgrades["holochat"] == false)
- {
- var t = new Terminal();
- API.CreateForm(t, API.LoadedNames.TerminalName, API.GetIcon("Terminal"));
- t.StartDevXFuriousStory();
- t.BringToFront();
- }
- break;
- }
-
- }
- else
- {
- throw new ModNotFoundException();
- }
- }
- }
- else
- {
- CreateInfoboxSession("Limited mode", "ShiftOS is in limited mode and cannot perform this action. Please complete the current Mission first.", infobox.InfoboxMode.Info);
- }
- }
-
+ public class API
+ {
+ public static Dictionary<Form, string> OpenGUIDs = new Dictionary<Form, string>();
+ public static Dictionary<string, Widget> DEF_PanelGUIDs = new Dictionary<string, Widget>();
+
+
+ /// <summary>
+ /// Settings file.
+ /// </summary>
+ public static Settings LoadedSettings = null;
+
+ /// <summary>
+ /// Whether or not dev commands like '05tray' are available.
+ /// Typically, this is set to true if the release is classified as
+ /// an alpha, beta, or release candidate.
+ ///
+ /// Turn it off if the release is the final RC, or the stable release!
+ ///
+ /// Enabling developer mode will cause the save engine to not encrypt the save file
+ /// or Shiftorium Registry on save, enabling you to easily modify your save
+ /// to test new features or to bring in lots of codepoints. This is why
+ /// Developer mode should ALWAYS be off in non-dev releases, to prevent cheating.
+ /// </summary>
+ public static bool DeveloperMode = true;
+
+ /// <summary>
+ /// If this is true, only certain applications will open and only
+ /// certain features will work.
+ ///
+ /// This is useful for story plots like the End Game where you don't
+ /// want the user being distracted by novelty features when they should
+ /// be focusing on what's happening.
+ ///
+ /// Think of it like the opposite of what Developer Mode would do.
+ /// </summary>
+ public static bool LimitedMode = false;
+
+ public static bool InfoboxesPlaySounds = true;
+
+ public static void SkinWidget(Widget c)
+ {
+ if (c is Button)
+ {
+ var b = c as Button;
+ b.FlatStyle = FlatStyle.Standard;
+ }
+ if (c is Panel || c is FlowLayoutPanel)
+ {
+ foreach (Widget child in c.Widgets)
+ {
+ SkinWidget(child);
+ }
+ }
+ }
+
+ public static List<Process> RunningModProcesses = new List<Process>();
+ public static Dictionary<string, string> CommandAliases = new Dictionary<string, string>();
+ public static Terminal LoggerTerminal = null;
+
+ // Alternate Names for True and False
+ public static bool yes = true;
+ public static bool no = false;
+
+ /// <summary>
+ /// Logs an exception to the log.
+ /// </summary>
+ /// <param name="Message">The text to log.</param>
+ /// <param name="fatal">Is it a fatal crash?</param>
+ public static void LogException(string Message, bool fatal)
+ {
+ if (!File.Exists(Paths.SystemDir + "_Log.txt"))
+ {
+ if (fatal == true)
+ {
+ File.WriteAllText(Paths.SystemDir + "_Log.txt", GetLogTime() + " [ExWatch/WARNING] ShiftOS has encountered an UNHANDLED exception with message \"" + Message + "\". Report this to Michael as well as what you were doing when it happened ASAP.");
+ }
+ else
+ {
+ File.WriteAllText(Paths.SystemDir + "_Log.txt", GetLogTime() + " ShiftOS encountered a handled exception with message \"" + Message + "\" and was able to keep going. Ignore this.");
+ }
+ }
+ else
+ {
+ List<string> Entries = new List<string>();
+ foreach (string entry in File.ReadAllLines(Paths.SystemDir + "_Log.txt"))
+ {
+ Entries.Add(entry);
+ }
+ if (fatal == true)
+ {
+ Entries.Add(GetLogTime() + " [ExWatch/WARNING] ShiftOS has encountered an UNHANDLED exception with message \"" + Message + "\". Report this to Michael as well as what you were doing when it happened ASAP.");
+ }
+ else
+ {
+ Entries.Add(GetLogTime() + " ShiftOS encountered a handled exception with message \"" + Message + "\" and was able to keep going. Ignore this.");
+ }
+ File.WriteAllLines(Paths.SystemDir + "_Log.txt", Entries.ToArray());
+ }
+ }
+
+ /// <summary>
+ /// Logs text to the log file.
+ /// </summary>
+ /// <param name="Message">The text to log.</param>
+ public static void Log(string Message)
+ {
+ if (!File.Exists(Paths.SystemDir + "_Log.txt"))
+ {
+ File.WriteAllText(Paths.SystemDir + "_Log.txt", GetLogTime() + " " + Message);
+ }
+ else
+ {
+ List<string> Entries = new List<string>();
+ foreach (string entry in File.ReadAllLines(Paths.SystemDir + "_Log.txt"))
+ {
+ Entries.Add(entry);
+ }
+ Entries.Add(GetLogTime() + " " + Message);
+ File.WriteAllLines(Paths.SystemDir + "_Log.txt", Entries.ToArray());
+ }
+ }
+
+ /// <summary>
+ /// Gets a proper-formatted date/time string for the log.
+ /// </summary>
+ /// <returns></returns>
+ public static string GetLogTime()
+ {
+ return "[" + DateTime.Now.ToLongDateString() + "\\" + DateTime.Now.ToLongTimeString() + "]";
+ }
+
+ /// <summary>
+ /// Property representing the currently loaded name pack.
+ /// </summary>
+ public static Skinning.NamePack LoadedNames
+ {
+ get
+ {
+ if (Skinning.Utilities.LoadedNames != null)
+ {
+ return Skinning.Utilities.LoadedNames;
+ }
+ else
+ {
+ Skinning.Utilities.LoadedNames = new Skinning.NamePack();
+ Skinning.Utilities.loadedSkin.EmbeddedNamePackPath = "names.npk";
+ Skinning.Utilities.SaveEmbeddedNamePack();
+ Log("[Name Changer] Couldn't locate loaded name pack, using default name pack.");
+ return Skinning.Utilities.LoadedNames;
+ }
+ }
+ }
+
+ /// <summary>
+ /// Adds a command line alias.
+ /// </summary>
+ /// <param name="key">Alias name</param>
+ /// <param name="value">Command to run.</param>
+ /// <returns></returns>
+ public static bool AddAlias(string key, string value)
+ {
+ if (!AliasExists(key))
+ {
+ CommandAliases.Add(key, value);
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ /// <summary>
+ /// Saves alias list to save game.
+ /// </summary>
+ public static void SaveAliases()
+ {
+ string json = JsonConvert.SerializeObject(CommandAliases);
+ File.WriteAllText(Paths.SystemDir + "_aliases.json", json);
+ }
+
+ /// <summary>
+ /// Loads alias list from the save game.
+ /// </summary>
+ public static void LoadAliases()
+ {
+ if (File.Exists(Paths.SystemDir + "_aliases.json"))
+ {
+ string json = File.ReadAllText(Paths.SystemDir + "_aliases.json");
+ CommandAliases = JsonConvert.DeserializeObject<Dictionary<string, string>>(json);
+ }
+ else
+ {
+ CommandAliases = new Dictionary<string, string>();
+ }
+
+ }
+
+ /// <summary>
+ /// Removes an alias from the list.
+ /// </summary>
+ /// <param name="key">Alias to remove.</param>
+ /// <returns>Whether the alias could be removed.</returns>
+ public static bool RemoveAlias(string key)
+ {
+ if (AliasExists(key))
+ {
+ CommandAliases.Remove(key);
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ /// <summary>
+ /// Checks if the provided alias exists.
+ /// </summary>
+ /// <param name="key">The alias to check.</param>
+ /// <returns>Whether the alias exists.</returns>
+ public static bool AliasExists(string key)
+ {
+ bool nay = false;
+ foreach (KeyValuePair<string, string> kv in CommandAliases)
+ {
+ if (kv.Key == key)
+ {
+ nay = true;
+ }
+ }
+ return nay;
+ }
+
+ /// <summary>
+ /// I have no idea what this does - Michael
+ /// </summary>
+ /// <param name="AppName"></param>
+ public static void CreateNewLoggerTerminal(string AppName)
+ {
+ CreateForm(new Terminal(true), AppName, Properties.Resources.iconTerminal);
+ }
+
+ public const string HiddenAPMCommand = "0Ifm0DcBBy10VZo/p4r1Jg==";
+ public const string HiddenBTNConvertCommand = "js2qrls5kvZnutMbfH46sUKzKVrBtjzPlWn/wIIe/3g=";
+ public const string HiddenDodgeCommand = "mpL4WPUoDcZrsXnNUJ5RWQ==";
+ public const string HiddenLabyrinthCommand = "NbNzpplGKaS5D/RdwrQMXw==";
+ public const string HiddenQuickChatCommand = "iQm+/qDqgkHT/zgPiYRlZQ==";
+ public const string HiddenShiftnetCommand = "NCM++hbZox7B+m9tXRXGnw==";
+ public const string HiddenBWalletCommand = "1nLiZELFcaxkXDufrLuyfw==";
+ public const string HiddenBDiggerCommand = "g/efSjsaglt//dr3XHnPOw==";
+ public const string HiddenDecryptorCommand = "CYPXaweggfWAuS7ONt/OPQ==";
+
+ /// <summary>
+ /// Launches an saa file, hooks it up to the Lua API, and runs it.
+ /// </summary>
+ /// <param name="modSAA">File to run.</param>
+ public static void LaunchMod(string modSAA)
+ {
+ if (!LimitedMode)
+ {
+ if (Upgrades["shiftnet"] == true)
+ {
+ if (File.Exists(modSAA))
+ {
+ if (File.ReadAllText(modSAA) == HiddenAPMCommand)
+ {
+ CreateForm(new Appscape(), "Appscape Package Manager", Properties.Resources.iconAppscape);
+ }
+ else if (File.ReadAllText(modSAA) == HiddenDecryptorCommand)
+ {
+ CreateForm(new ShiftnetDecryptor(), "Shiftnet Decryptor", Properties.Resources.iconShiftnet);
+ }
+ else if (File.ReadAllText(modSAA) == HiddenBDiggerCommand)
+ {
+ CreateForm(new BitnoteDigger(), "Bitnote Digger", Properties.Resources.iconBitnoteDigger);
+ }
+ else if (File.ReadAllText(modSAA) == HiddenBWalletCommand)
+ {
+ CreateForm(new BitnoteWallet(), "Bitnote Wallet", Properties.Resources.iconBitnoteWallet);
+ }
+ else if (File.ReadAllText(modSAA) == HiddenShiftnetCommand)
+ {
+ CreateForm(new Shiftnet(), "Shiftnet", Properties.Resources.iconShiftnet);
+ }
+ else if (File.ReadAllText(modSAA) == HiddenBTNConvertCommand)
+ {
+ CreateForm(new BitnoteConverter(), "Bitnote Converter", Properties.Resources.iconBitnoteWallet);
+ }
+ else if (File.ReadAllText(modSAA) == HiddenDodgeCommand)
+ {
+ CreateForm(new Dodge(), "Dodge", Properties.Resources.iconDodge);
+ }
+ else if (File.ReadAllText(modSAA) == HiddenLabyrinthCommand)
+ {
+ CreateForm(new Labyrinth(), "Labyrinth", null);
+ }
+ else
+ {
+ try
+ {
+ ExtractFile(modSAA, Paths.Mod_Temp, true);
+ var l = new LuaInterpreter(Paths.Mod_Temp + "main.lua");
+ }
+ catch (Exception ex)
+ {
+ LogException("Error launching mod file (.saa): " + ex.Message, false);
+ CreateInfoboxSession("Error", "Could not launch the .saa file you specified. It is unsupported by this version of ShiftOS.", infobox.InfoboxMode.Info);
+ }
+ }
+ var story_rnd = new Random();
+ int story_chance = story_rnd.Next(0, 3);
+ switch (story_chance)
+ {
+ case 2:
+ if (API.Upgrades["holochat"] == false)
+ {
+ var t = new Terminal();
+ API.CreateForm(t, API.LoadedNames.TerminalName, API.GetIcon("Terminal"));
+ t.StartDevXFuriousStory();
+ t.BringToFront();
+ }
+ break;
+ }
+
+ }
+ else
+ {
+ throw new ModNotFoundException();
+ }
+ }
+ }
+ else
+ {
+ CreateInfoboxSession("Limited mode", "ShiftOS is in limited mode and cannot perform this action. Please complete the current Mission first.", infobox.InfoboxMode.Info);
+ }
+ }
+
+ /// <summary>
+ /// Base64 Function
+ /// </summary>
+ public static class Base64
+ {
+ public static string Encrypt(string text)
+ {
+ return Convert.ToBase64String(Encoding.UTF8.GetBytes(text));
+ }
+
+ public static string Decrypt(string text)
+ {
+ return Encoding.UTF8.GetString(Convert.FromBase64String(text));
+ }
+ }
+
+ /// <summary>
+ /// Hashing API
+ /// By Carver Harrison (@carverh)
+ /// </summary>
+ public static class Hash
+ {
+ public static string MD5(string text)
+ {
+ return Encoding.UTF8.GetString(System.Security.Cryptography.MD5.Create(text).Hash);
+ }
+ public static string SHA1(string text)
+ {
+ return Encoding.UTF8.GetString(System.Security.Cryptography.SHA1.Create(text).Hash);
+ }
+ public static string SHA256(string text)
+ {
+ return Encoding.UTF8.GetString(System.Security.Cryptography.SHA256.Create(text).Hash);
+ }
+ public static string SHA384(string text)
+ {
+ return Encoding.UTF8.GetString(System.Security.Cryptography.SHA384.Create(text).Hash);
+ }
+ public static string SHA512(string text)
+ {
+ return Encoding.UTF8.GetString(System.Security.Cryptography.SHA512.Create(text).Hash);
+ }
+ public static string DSA(string text)
+ {
+ return Encoding.UTF8.GetString(System.Security.Cryptography.DSA.Create().CreateSignature(Encoding.UTF8.GetBytes(text)));
+ }
+ }
/// <summary>
/// Source: http://stackoverflow.com/questions/10168240/encrypting-decrypting-a-string-in-c-sharp
diff --git a/source/WindowsFormsApplication1/Desktop/ShiftOSDesktop.cs b/source/WindowsFormsApplication1/Desktop/ShiftOSDesktop.cs
index 6d8af77..85659c2 100644
--- a/source/WindowsFormsApplication1/Desktop/ShiftOSDesktop.cs
+++ b/source/WindowsFormsApplication1/Desktop/ShiftOSDesktop.cs
@@ -327,45 +327,53 @@ namespace ShiftOS
public void SetupDesktop()
{
- SetupRenderers();
- SetupDesktopPanel();
- SetupAppLauncher();
- SetupDesktopIcons();
- SetupGNOME2Elements();
- SetupPanelClock();
- SetupPanelButtons();
- CheckUnity();
- SetupWidgets();
- CheckForChristmas();
- //Set up the context menus.
- addDesktopPanelToolStripMenuItem.Visible = API.Upgrades["advanceddesktop"];
- widgetManagerToolStripMenuItem.Visible = API.Upgrades["advanceddesktop"];
- if (API.Upgrades["advanceddesktop"])
- {
- AppLauncherPanel.ContextMenuStrip = cbwidget;
- Clock.ContextMenuStrip = cbwidget;
- PanelButtonHolder.ContextMenuStrip = cbwidget;
- }
- else
- {
- AppLauncherPanel.ContextMenuStrip = null;
- Clock.ContextMenuStrip = null;
- PanelButtonHolder.ContextMenuStrip = null;
- }
- if (DesktopPanels != null) {
- foreach (var dp in DesktopPanels)
- {
- if (API.Upgrades["advanceddesktop"])
- {
- dp.ContextMenuStrip = cbdpanel;
- }
- else
- {
- dp.ContextMenuStrip = cbdpanel;
- }
- }
- }
- OnDesktopReload?.Invoke();
+ try
+ {
+ SetupRenderers();
+ SetupDesktopPanel();
+ SetupAppLauncher();
+ SetupDesktopIcons();
+ SetupGNOME2Elements();
+ SetupPanelClock();
+ SetupPanelButtons();
+ CheckUnity();
+ SetupWidgets();
+ CheckForChristmas();
+ //Set up the context menus.
+ addDesktopPanelToolStripMenuItem.Visible = API.Upgrades["advanceddesktop"];
+ widgetManagerToolStripMenuItem.Visible = API.Upgrades["advanceddesktop"];
+ if (API.Upgrades["advanceddesktop"])
+ {
+ AppLauncherPanel.ContextMenuStrip = cbwidget;
+ Clock.ContextMenuStrip = cbwidget;
+ PanelButtonHolder.ContextMenuStrip = cbwidget;
+ }
+ else
+ {
+ AppLauncherPanel.ContextMenuStrip = null;
+ Clock.ContextMenuStrip = null;
+ PanelButtonHolder.ContextMenuStrip = null;
+ }
+ if (DesktopPanels != null)
+ {
+ foreach (var dp in DesktopPanels)
+ {
+ if (API.Upgrades["advanceddesktop"])
+ {
+ dp.ContextMenuStrip = cbdpanel;
+ }
+ else
+ {
+ dp.ContextMenuStrip = cbdpanel;
+ }
+ }
+ }
+ OnDesktopReload?.Invoke();
+ }
+ catch (Exception catcherror)
+ {
+ Console.WriteLine(catcherror);
+ }
}
public void SetupWidgets()
@@ -1072,23 +1080,23 @@ namespace ShiftOS
if (API.Upgrades["usefulpanelbuttons"])
{
Widget ctrl = (Widget)sender;
- try
- {
- PanelButton pbtn = (PanelButton)ctrl.Tag;
- var frm = pbtn.FormToManage;
- if(frm.Left < Screen.PrimaryScreen.Bounds.Width)
- {
- API.MinimizeForm(frm);
- }
- else
- {
- API.ToggleMinimized(frm);
- }
- }
- catch
- {
-
- }
+ try
+ {
+ PanelButton pbtn = (PanelButton)ctrl.Tag;
+ var frm = pbtn.FormToManage;
+ if (frm.Left < Screen.PrimaryScreen.Bounds.Width)
+ {
+ API.MinimizeForm(frm);
+ }
+ else
+ {
+ API.ToggleMinimized(frm);
+ }
+ }
+ catch (Exception catcherror)
+ {
+ Console.WriteLine(catcherror);
+ }
}
}
@@ -1315,113 +1323,111 @@ namespace ShiftOS
public static List<DesktopIcon> Icons = null;
public static List<IconModel> Models = null;
- public static void GetIcons()
- {
- Icons = new List<DesktopIcon>();
- Models = new List<IconModel>();
- API.GetAppLauncherItems();
- if (!Directory.Exists(Paths.Desktop))
- {
- Directory.CreateDirectory(Paths.Desktop);
- }
- else
- {
- foreach (string dir in Directory.GetDirectories(Paths.Desktop))
- {
- //Get dir info
- var dinf = new DirectoryInfo(dir);
- //Create new IconModel
- var m = new IconModel();
- //Set name to dir name
- m.Name = dinf.Name;
- //Set type to Directory
- m.Type = IconType.Directory;
- //Set lua to open directory in File Skimmer
- m.Lua = $"fileskimmer('/Home/Desktop/{dinf.Name}')";
- Models.Add(m);
- }
- foreach (string file in Directory.GetFiles(Paths.Desktop))
- {
- //Get file info
- var finf = new FileInfo(file);
- //Create new IconModel
- var icm = new IconModel();
- //Set IconModel name to filename
- icm.Name = finf.Name;
- //Set IconModel's type based on file extension
- switch (finf.Extension.ToLower()) //Make the string lower-case for ease of use.
- {
- case ".desktop":
- //Desktop script.
- icm.Type = IconType.Script;
- icm.Lua = File.ReadAllText(finf.FullName); //The Lua that is to be ran by this script is in the file.
- break;
- case ".sct":
- //Desktop Shortcut - NYI
- break;
- default:
- //File.
- icm.Type = IconType.File;
- icm.Lua = $"fopen('/Home/Desktop/{finf.Name}')";
- break;
- }
- Models.Add(icm);
- }
- }
-
- foreach(IconModel m in Models)
- {
- var d = new DesktopIcon();
- d.IconName = m.Name;
- d.LuaAction = m.Lua;
- switch(m.Type)
- {
- case IconType.Directory:
- d.Icon = API.GetIcon("Folder");
- break;
- default:
- var finf = new FileInfo(Paths.Desktop + d.IconName);
- switch(finf.Extension)
- {
- case ".txt":
- case ".doc":
- case ".owd":
- case ".docx":
- d.Icon = API.GetIcon("TextFile");
- break;
- case ".skn":
- case ".spk":
- d.Icon = API.GetIcon("SkinFile");
- break;
- case ".saa":
- d.Icon = API.GetIcon("SAAFile");
- break;
- case ".pkg":
- case ".stp":
- d.Icon = API.GetIcon("SetupPackage");
- break;
- default:
- d.Icon = API.GetIcon("UnrecognizedFile");
- break;
- }
- break;
- }
- Icons.Add(d);
- }
- foreach (ApplauncherItem al in API.AppLauncherItems)
- {
- if (al.Display == true)
- {
- var dl = new DesktopIcon();
- dl.Icon = al.Icon;
- dl.IconName = al.Name;
- dl.LuaAction = al.Lua;
- Icons.Add(dl);
- }
- }
-
- }
-
+ public static void GetIcons()
+ {
+ Icons = new List<DesktopIcon>();
+ Models = new List<IconModel>();
+ API.GetAppLauncherItems();
+ if (!Directory.Exists(Paths.Desktop))
+ {
+ Directory.CreateDirectory(Paths.Desktop);
+ }
+ else
+ {
+ foreach (string dir in Directory.GetDirectories(Paths.Desktop))
+ {
+ //Get dir info
+ var dinf = new DirectoryInfo(dir);
+ //Create new IconModel
+ var m = new IconModel();
+ //Set name to dir name
+ m.Name = dinf.Name;
+ //Set type to Directory
+ m.Type = IconType.Directory;
+ //Set lua to open directory in File Skimmer
+ m.Lua = $"fileskimmer('/Home/Desktop/{dinf.Name}')";
+ Models.Add(m);
+ }
+ foreach (string file in Directory.GetFiles(Paths.Desktop))
+ {
+ //Get file info
+ var finf = new FileInfo(file);
+ //Create new IconModel
+ var icm = new IconModel();
+ //Set IconModel name to filename
+ icm.Name = finf.Name;
+ //Set IconModel's type based on file extension
+ switch (finf.Extension.ToLower()) //Make the string lower-case for ease of use.
+ {
+ case ".desktop":
+ //Desktop script.
+ icm.Type = IconType.Script;
+ icm.Lua = File.ReadAllText(finf.FullName); //The Lua that is to be ran by this script is in the file.
+ break;
+ case ".sct":
+ //Desktop Shortcut - NYI
+ break;
+ default:
+ //File.
+ icm.Type = IconType.File;
+ icm.Lua = $"fopen('/Home/Desktop/{finf.Name}')";
+ break;
+ }
+ Models.Add(icm);
+ }
+ }
+
+ foreach (IconModel m in Models)
+ {
+ var d = new DesktopIcon();
+ d.IconName = m.Name;
+ d.LuaAction = m.Lua;
+ switch (m.Type)
+ {
+ case IconType.Directory:
+ d.Icon = API.GetIcon("Folder");
+ break;
+ default:
+ var finf = new FileInfo(Paths.Desktop + d.IconName);
+ switch (finf.Extension)
+ {
+ case ".txt":
+ case ".doc":
+ case ".owd":
+ case ".docx":
+ d.Icon = API.GetIcon("TextFile");
+ break;
+ case ".skn":
+ case ".spk":
+ d.Icon = API.GetIcon("SkinFile");
+ break;
+ case ".saa":
+ d.Icon = API.GetIcon("SAAFile");
+ break;
+ case ".pkg":
+ case ".stp":
+ d.Icon = API.GetIcon("SetupPackage");
+ break;
+ default:
+ d.Icon = API.GetIcon("UnrecognizedFile");
+ break;
+ }
+ break;
+ }
+ Icons.Add(d);
+ }
+ foreach (ApplauncherItem al in API.AppLauncherItems)
+ {
+ if (al.Display == true)
+ {
+ var dl = new DesktopIcon();
+ dl.Icon = al.Icon;
+ dl.IconName = al.Name;
+ dl.LuaAction = al.Lua;
+ Icons.Add(dl);
+ }
+ }
+ }
public class IconModel
{
public string Name { get; set; }
diff --git a/source/WindowsFormsApplication1/Program.cs b/source/WindowsFormsApplication1/Program.cs
index af294db..e6c4c23 100644
--- a/source/WindowsFormsApplication1/Program.cs
+++ b/source/WindowsFormsApplication1/Program.cs
@@ -40,10 +40,10 @@ namespace ShiftOS
int port = Convert.ToInt32(addSplitter[1]);
Package_Grabber.ConnectToServer(host, port);
}
- catch
- {
-
- }
+ catch (Exception catcherror)
+ {
+ Console.WriteLine(catcherror);
+ }
}
}
catch
@@ -129,10 +129,10 @@ namespace ShiftOS
}
}
}
- catch
- {
-
- }
+ catch (Exception e)
+ {
+ Console.WriteLine(e);
+ }
}