diff options
| author | Michael VanOverbeek <[email protected]> | 2017-05-21 12:29:53 +0000 |
|---|---|---|
| committer | Michael VanOverbeek <[email protected]> | 2017-05-21 12:29:53 +0000 |
| commit | 76b54853ba726179f9fddb30c6f838991b7aa71a (patch) | |
| tree | 8713f45ce26958659e3f4e507d73ecabebabfe49 /ShiftOS.WinForms/Program.cs | |
| parent | 31cc9148dd23737df16d8456a42d003cd31dd488 (diff) | |
| download | shiftos_thereturn-76b54853ba726179f9fddb30c6f838991b7aa71a.tar.gz shiftos_thereturn-76b54853ba726179f9fddb30c6f838991b7aa71a.tar.bz2 shiftos_thereturn-76b54853ba726179f9fddb30c6f838991b7aa71a.zip | |
Merge a fuckton of shit.
Diffstat (limited to 'ShiftOS.WinForms/Program.cs')
| -rw-r--r-- | ShiftOS.WinForms/Program.cs | 269 |
1 files changed, 0 insertions, 269 deletions
diff --git a/ShiftOS.WinForms/Program.cs b/ShiftOS.WinForms/Program.cs deleted file mode 100644 index ad8fc83..0000000 --- a/ShiftOS.WinForms/Program.cs +++ /dev/null @@ -1,269 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2017 Michael VanOverbeek and ShiftOS devs - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; -using ShiftOS.Engine; -using Newtonsoft.Json; -using static ShiftOS.Objects.ShiftFS.Utils; -using ShiftOS.WinForms.Applications; -using ShiftOS.WinForms.Tools; -using System.Reflection; -using System.IO; - -namespace ShiftOS.WinForms -{ - public static class Program - { - /// <summary> - /// The main entry point for the application. - /// </summary> - [STAThread] - public static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - //if ANYONE puts code before those two winforms config lines they will be declared a drunky. - Michael - LoginManager.Init(new GUILoginFrontend()); - CrashHandler.SetGameMetadata(Assembly.GetExecutingAssembly()); - SkinEngine.SetIconProber(new ShiftOSIconProvider()); - ShiftOS.Engine.AudioManager.Init(new ShiftOSAudioProvider()); - Localization.RegisterProvider(new WFLanguageProvider()); - AppearanceManager.OnExit += () => - { - Environment.Exit(0); - }; - - TutorialManager.RegisterTutorial(new Oobe()); - - TerminalBackend.TerminalRequested += () => - { - AppearanceManager.SetupWindow(new Applications.Terminal()); - }; - Infobox.Init(new Dialog()); - FileSkimmerBackend.Init(new WinformsFSFrontend()); - var desk = new WinformsDesktop(); - Desktop.Init(desk); - OutOfBoxExperience.Init(new Oobe()); - AppearanceManager.Initiate(new WinformsWindowManager()); - Application.Run(desk); - } - } - - internal class ShiftOSIconProvider : IIconProber - { - public Image GetIcon(DefaultIconAttribute attr) - { - - var res = typeof(Properties.Resources); - foreach(var prop in res.GetProperties(BindingFlags.NonPublic | BindingFlags.Static)) - { - if(prop.PropertyType.BaseType == typeof(Image)) - { - if(prop.Name == attr.ID) - { - return prop.GetValue(null) as Image; - } - } - } - return new Bitmap(16, 16); - } - } - - [ShiftoriumProvider] - internal class WinformsShiftoriumProvider : IShiftoriumProvider - { - public List<ShiftoriumUpgrade> GetDefaults() - { - var defaultList = JsonConvert.DeserializeObject<List<ShiftoriumUpgrade>>(Properties.Resources.Shiftorium); - - foreach(var exe in Directory.GetFiles(Environment.CurrentDirectory)) - { - if (exe.EndsWith(".exe") || exe.EndsWith(".dll")) - { - try - { - var asm = Assembly.LoadFile(exe); - foreach (var type in asm.GetTypes()) - { - var attrib = type.GetCustomAttributes(false).FirstOrDefault(x => x is AppscapeEntryAttribute) as AppscapeEntryAttribute; - if (attrib != null) - { - var upgrade = new ShiftoriumUpgrade - { - Id = attrib.Name.ToLower().Replace(" ", "_"), - Name = attrib.Name, - Description = attrib.Description, - Cost = attrib.Cost, - Category = attrib.Category, - Dependencies = (string.IsNullOrWhiteSpace(attrib.DependencyString)) ? "appscape_handled_nodisplay" : "appscape_handled_nodisplay;" + attrib.DependencyString - }; - defaultList.Add(upgrade); - } - - var sattrib = type.GetCustomAttributes(false).FirstOrDefault(x => x is StpContents) as StpContents; - if (sattrib != null) - { - var upgrade = new ShiftoriumUpgrade - { - Id = sattrib.Upgrade, - Name = sattrib.Name, - Description = "This is a hidden dummy upgrade for the .stp file installation attribute \"" + sattrib.Name + "\".", - Cost = 0, - Category = "If this is shown, there's a bug in the Shiftorium Provider or the user is a supreme Shifter.", - Dependencies = "dummy_nodisplay" - }; - defaultList.Add(upgrade); - } - - } - - - - - } - catch { } - } - } - return defaultList; - } - } - - public class WinformsFSFrontend : IFileSkimmer - { - - - public void OpenDirectory(string path) - { - var fs = new Applications.FileSkimmer(); - AppearanceManager.SetupWindow(fs); - fs.ChangeDirectory(path); - } - - public void GetPath(string[] filetypes, FileOpenerStyle style, Action<string> callback) - { - AppearanceManager.SetupDialog(new Applications.FileDialog(filetypes, style, callback)); - } - - public void OpenFile(string path) - { - try - { - switch (FileSkimmerBackend.GetFileType(path)) - { - case FileType.TextFile: - if (!Shiftorium.UpgradeInstalled("textpad")) - throw new Exception(); - - var txt = new TextPad(); - AppearanceManager.SetupWindow(txt); - txt.LoadFile(path); - break; - case FileType.Executable: - //NYI - throw new Exception(); - case FileType.Lua: - try - { - var runner = new Engine.Scripting.LuaInterpreter(); - runner.ExecuteFile(path); - } - catch (Exception ex) - { - Infobox.Show("{LUA_ERROR}", ex.Message); - } - break; - case FileType.JSON: - //NYI - throw new Exception(); - case FileType.Filesystem: - MountPersistent(path); - //If this doesn't fail... - FileSkimmerBackend.OpenDirectory((Mounts.Count - 1).ToString() + ":"); - break; - case FileType.Skin: - if (!Shiftorium.UpgradeInstalled("skinning")) - throw new Exception(); - - var sl = new Skin_Loader(); - AppearanceManager.SetupWindow(sl); - sl.LoadedSkin = JsonConvert.DeserializeObject<Skin>(ReadAllText(path)); - sl.SetupUI(); - break; - case FileType.Image: - if (!Shiftorium.UpgradeInstalled("artpad_open")) - throw new Exception(); - - var ap = new Artpad(); - AppearanceManager.SetupWindow(ap); - ap.LoadPicture(path); - break; - default: - throw new Exception(); - - } - } - catch - { - Infobox.Show("{NO_APP_TO_OPEN}", "{NO_APP_TO_OPEN_EXP}"); - } - - } - - public Image GetImage(string path) - { - return Applications.FileSkimmer.GetImage(FileSkimmerBackend.GetFileType(path)); - } - - public string GetFileExtension(FileType fileType) - { - switch (fileType) - { - case FileType.Executable: - return ".saa"; - case FileType.Filesystem: - return ".mfs"; - case FileType.Image: - return ".pic"; - case FileType.JSON: - return ".json"; - case FileType.Lua: - return ".lua"; - case FileType.Python: - return ".py"; - case FileType.Skin: - return ".skn"; - case FileType.TextFile: - return ".txt"; - default: - return ".bin"; - - } - } - } -} |
