diff options
| author | Michael <[email protected]> | 2017-01-08 09:57:10 -0500 |
|---|---|---|
| committer | Michael <[email protected]> | 2017-01-08 09:57:10 -0500 |
| commit | f30dcf5ef41d54c588d7b42c48be8d941abba72e (patch) | |
| tree | 7705f99b965673b1c034ac2b1c56e65072c827df /ShiftOS_TheReturn/Desktop.cs | |
| parent | 69dfad54724d4176dfce238a8d7e73970e6eef24 (diff) | |
| download | shiftos_thereturn-f30dcf5ef41d54c588d7b42c48be8d941abba72e.tar.gz shiftos_thereturn-f30dcf5ef41d54c588d7b42c48be8d941abba72e.tar.bz2 shiftos_thereturn-f30dcf5ef41d54c588d7b42c48be8d941abba72e.zip | |
Initial upload
Diffstat (limited to 'ShiftOS_TheReturn/Desktop.cs')
| -rw-r--r-- | ShiftOS_TheReturn/Desktop.cs | 96 |
1 files changed, 96 insertions, 0 deletions
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 + { + /// <summary> + /// Marks this form as a launcher item that, when clicked, will open the form. + /// </summary> + /// <param name="name">The text displayed on the launcher item</param> + /// <param name="requiresUpgrade">Whether or not an upgrade must be installed to see the launcher</param> + /// <param name="upgradeID">The ID of the upgrade - leave blank if requiresUpgrade is false.</param> + 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()); + } + } + +} |
