From f30dcf5ef41d54c588d7b42c48be8d941abba72e Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 8 Jan 2017 09:57:10 -0500 Subject: Initial upload --- ShiftOS_TheReturn/Desktop.cs | 96 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 ShiftOS_TheReturn/Desktop.cs (limited to 'ShiftOS_TheReturn/Desktop.cs') diff --git a/ShiftOS_TheReturn/Desktop.cs b/ShiftOS_TheReturn/Desktop.cs new file mode 100644 index 0000000..28a3d33 --- /dev/null +++ b/ShiftOS_TheReturn/Desktop.cs @@ -0,0 +1,96 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using static ShiftOS.Engine.SkinEngine; + +namespace ShiftOS.Engine +{ + public class LauncherAttribute : Attribute + { + /// + /// Marks this form as a launcher item that, when clicked, will open the form. + /// + /// The text displayed on the launcher item + /// Whether or not an upgrade must be installed to see the launcher + /// The ID of the upgrade - leave blank if requiresUpgrade is false. + public LauncherAttribute(string name, bool requiresUpgrade, string upgradeID = "") + { + Name = name; + RequiresUpgrade = requiresUpgrade; + ID = upgradeID; + } + + public string Name { get; set; } + public bool RequiresUpgrade { get; set; } + public string ID { get; set; } + public bool UpgradeInstalled + { + get + { + if (!RequiresUpgrade) + return true; + + return Shiftorium.UpgradeInstalled(ID); + } + } + } + + + public interface IDesktop + { + void SetupDesktop(); + void PopulateAppLauncher(LauncherItem[] items); + void ShowWindow(IWindowBorder border); + void KillWindow(IWindowBorder border); + void PopulatePanelButtons(); + void MinimizeWindow(IWindowBorder brdr); + void MaximizeWindow(IWindowBorder brdr); + void RestoreWindow(IWindowBorder brdr); + void InvokeOnWorkerThread(Action act); + Size GetSize(); + } + + public static class Desktop + { + private static IDesktop _desktop = null; + + public static Size Size { get + { + return _desktop.GetSize(); + } + } + + public static void Init(IDesktop desk) + { + _desktop = desk; + } + + public static void InvokeOnWorkerThread(Action act) + { + _desktop.InvokeOnWorkerThread(act); + } + + public static void ResetPanelButtons() + { + _desktop.PopulatePanelButtons(); + } + + public static void ShowWindow(IWindowBorder brdr) + { + _desktop.ShowWindow(brdr); + } + + public static void PopulateAppLauncher() + { + _desktop.PopulateAppLauncher(AppLauncherDaemon.Available().ToArray()); + } + } + +} -- cgit v1.2.3