From 76b54853ba726179f9fddb30c6f838991b7aa71a Mon Sep 17 00:00:00 2001 From: Michael VanOverbeek Date: Sun, 21 May 2017 12:29:53 +0000 Subject: Merge a fuckton of shit. --- ShiftOS_TheReturn/AppearanceManager.cs | 379 --------------------------------- 1 file changed, 379 deletions(-) delete mode 100644 ShiftOS_TheReturn/AppearanceManager.cs (limited to 'ShiftOS_TheReturn/AppearanceManager.cs') diff --git a/ShiftOS_TheReturn/AppearanceManager.cs b/ShiftOS_TheReturn/AppearanceManager.cs deleted file mode 100644 index 4c1754e..0000000 --- a/ShiftOS_TheReturn/AppearanceManager.cs +++ /dev/null @@ -1,379 +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. - */ - -#define MUD_RAPIDDEV - -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Drawing; -using System.Linq; -using System.Reflection; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using Newtonsoft.Json; -using static ShiftOS.Engine.SaveSystem; - -namespace ShiftOS.Engine -{ - /// - /// Provides functionality for managing windows within ShiftOS. - /// - public static class AppearanceManager - { - [Obsolete("Please use Localization.GetAllLanguages().")] - public static string[] GetLanguages() - { - return Localization.GetAllLanguages(); - } - - /// - /// Sets the title text of the specified window. - /// - /// The window to modify - /// The title text to use - /// Thrown if the window is null. - public static void SetWindowTitle(IShiftOSWindow window, string title) - { - if (window == null) - throw new ArgumentNullException("window", "The window cannot be null."); - winmgr.SetTitle(window, title); - } - - public static IEnumerable GetAllWindowTypes() - { - List types = new List(); - foreach(var file in System.IO.Directory.GetFiles(Environment.CurrentDirectory)) - { - if(file.EndsWith(".exe") || file.EndsWith(".dll")) - { - try - { - var asm = Assembly.LoadFile(file); - foreach(var type in asm.GetTypes()) - { - if (type.GetInterfaces().Contains(typeof(IShiftOSWindow))) - types.Add(type); - } - } - catch { } - } - } - return types; - } - - /// - /// Returns the default window title for a specified -inheriting type. - /// - /// The type to scan - /// The default title - /// Thrown if is null. - public static string GetDefaultTitle(Type winType) - { - if (winType == null) - throw new ArgumentNullException("winType"); - foreach(var attrib in winType.GetCustomAttributes(false)) - { - if(attrib is DefaultTitleAttribute) - { - return (attrib as DefaultTitleAttribute).Title; - } - } - return winType.Name; - } - - /// - /// Current cursor position of the console - /// - public static int CurrentPosition { get; set; } - - /// - /// We don't know what this does. It may be gone if it does nothing. - /// - public static int LastLength { get; set; } - - - /// - /// Minimize a window. - /// - /// The window border to minimize. - /// Thrown if is null. - /// Thrown if this part of the engine hasn't been enabled. - public static void Minimize(IWindowBorder form) - { - if (form == null) - throw new ArgumentNullException("form"); - if (winmgr == null) - throw new EngineModuleDisabledException(); - winmgr.Minimize(form); - } - - /// - /// Maximizes a window. - /// - /// The window border to maximize. - /// Thrown if is null. - /// Thrown if this engine module hasn't been enabled. - public static void Maximize(IWindowBorder form) - { - if (form == null) - throw new ArgumentNullException("form"); - if (winmgr == null) - throw new EngineModuleDisabledException(); - winmgr.Maximize(form); - } - - - /// - /// Provides a list of all open ShiftOS windows. - /// - public static List OpenForms = new List(); - - /// - /// Decorates a window with a border, then shows the window. - /// - /// The window to decorate and show. - /// Thrown if is null. - /// Thrown if this engine module has not been initiated yet. - public static void SetupWindow(IShiftOSWindow form) - { - if (form == null) - throw new ArgumentNullException("form"); - if (winmgr == null) - throw new EngineModuleDisabledException(); - winmgr.SetupWindow(form); - Desktop.ResetPanelButtons(); - } - - /// - /// Closes the specified window. - /// - /// The window to close. - /// Thrown if is null. - /// Thrown if this engine module has not been initiated yet. - public static void Close(IShiftOSWindow win) - { - if (win == null) - throw new ArgumentNullException("win"); - if (winmgr == null) - throw new EngineModuleDisabledException(); - winmgr.Close(win); - Desktop.ResetPanelButtons(); - } - - /// - /// Decorates a window with a border, then shows the window, as a dialog box. - /// - /// The window to decorate and show. - /// Thrown if is null. - /// Thrown if this engine module has not been initiated yet. - public static void SetupDialog(IShiftOSWindow form) - { - if (form == null) - throw new ArgumentNullException("form"); - if (winmgr == null) - throw new EngineModuleDisabledException(); - winmgr.SetupDialog(form); - Desktop.ResetPanelButtons(); - } - - /// - /// The underlying window manager for this engine module - /// - private static WindowManager winmgr = null; - - /// - /// Initiate this engine module, and perform mandatory configuration. - /// - /// A working, configured to use as a backend for this module - public static void Initiate(WindowManager mgr) - { - winmgr = mgr; - } - - /// - /// Raised when the engine is entering its shutdown phase. Save your work! - /// - public static event EmptyEventHandler OnExit; - - /// - /// Starts the engine's exit routine, firing the OnExit event. - /// - internal static void Exit() - { - OnExit?.Invoke(); - //disconnect from MUD - ServerManager.Disconnect(); - } - - /// - /// The current terminal body control. - /// - public static ITerminalWidget ConsoleOut { get; set; } - - /// - /// Redirects the .NET to a new instance. - /// - public static void StartConsoleOut() - { - Console.SetOut(new TerminalTextWriter()); - } - - /// - /// Invokes an action on the window management thread. - /// - /// The action to invoke - public static void Invoke(Action act) - { - winmgr.InvokeAction(act); - } - } - - /// - /// Provides the base functionality for a ShiftOS terminal. - /// - public interface ITerminalWidget - { - /// - /// Write text to this Terminal. - /// - /// Text to write - void Write(string text); - /// - /// Write text to this Terminal, followed by a newline. - /// - /// Text to write. - void WriteLine(string text); - /// - /// Clear the contents of this Terminal. - /// - void Clear(); - /// - /// Move the cursor to the last character in the Terminal. - /// - void SelectBottom(); - } - - /// - /// Provides the base functionality for a ShiftOS window manager. - /// - public abstract class WindowManager - { - /// - /// Minimizes a window - /// - /// The window border to minimize - public abstract void Minimize(IWindowBorder border); - - /// - /// Maximizes a window - /// - /// The window border to maximize - public abstract void Maximize(IWindowBorder border); - - /// - /// Closes a window - /// - /// The window to close - public abstract void Close(IShiftOSWindow win); - - /// - /// Decorates a window with a window border, then shows it to the user. - /// - /// The window to decorate. - public abstract void SetupWindow(IShiftOSWindow win); - - /// - /// Decorates a window with a border, then shows it to the user as a dialog box. - /// - /// The window to decorate - public abstract void SetupDialog(IShiftOSWindow win); - - /// - /// Invokes an action on the window management thread. - /// - /// The action to invoke. - public abstract void InvokeAction(Action act); - - /// - /// Sets the title text of a window. - /// - /// The window to modify. - /// The new title text. - public abstract void SetTitle(IShiftOSWindow win, string title); - } - - /// - /// Provides the base functionality for a typical ShiftOS window border. - /// - public interface IWindowBorder - { - /// - /// Closes the border along with its window. Unload events should be invoked here. - /// - void Close(); - - /// - /// Gets or sets the title text for the window border. - /// - string Text { get; set; } - - /// - /// Gets or sets the underlying for this border. - /// - IShiftOSWindow ParentWindow { get; set; } - } - - /// - /// Provides a way of setting default title text for classes. - /// - public class DefaultTitleAttribute : Attribute - { - /// - /// Creates a new instance of the . - /// - /// A default title to associate with this attribute. - public DefaultTitleAttribute(string title) - { - Title = title; - } - - public string Title { get; private set; } - } - - /// - /// An exception that is thrown when mandatory configuration to run a specific method or module hasn't been done yet. - /// - public class EngineModuleDisabledException : Exception - { - /// - /// Initializes a new instance of the . - /// - public EngineModuleDisabledException() : base("This engine module has not yet been enabled.") - { - - } - } -} -- cgit v1.2.3