aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS_TheReturn/OutOfBoxExperience.cs
diff options
context:
space:
mode:
Diffstat (limited to 'ShiftOS_TheReturn/OutOfBoxExperience.cs')
-rw-r--r--ShiftOS_TheReturn/OutOfBoxExperience.cs63
1 files changed, 63 insertions, 0 deletions
diff --git a/ShiftOS_TheReturn/OutOfBoxExperience.cs b/ShiftOS_TheReturn/OutOfBoxExperience.cs
new file mode 100644
index 0000000..04df726
--- /dev/null
+++ b/ShiftOS_TheReturn/OutOfBoxExperience.cs
@@ -0,0 +1,63 @@
+using Newtonsoft.Json;
+using ShiftOS.Objects;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using System.Windows.Input;
+using ShiftOS.Objects.ShiftFS;
+
+namespace ShiftOS.Engine
+{
+ public class OutOfBoxExperience
+ {
+ private static IOobe _oobe = null;
+
+ public static void Init(IOobe oobe)
+ {
+ _oobe = oobe;
+ }
+
+ public static void Start(Save save)
+ {
+
+ if (_oobe == null)
+ throw new InvalidOperationException("OOBE frontend not activated! This function can't be used! Please use OutOfBoxExperience.Init() passing an IOobe-implementing object to start the OOBE frontend.");
+
+
+ _oobe.StartShowing(save);
+
+
+ }
+
+ public static void PromptForLogin()
+ {
+ Desktop.InvokeOnWorkerThread(new Action(() =>
+ {
+ _oobe.PromptForLogin();
+ }));
+ }
+
+ public static void ShowSaveTransfer(Save save)
+ {
+ Desktop.InvokeOnWorkerThread(new Action(() =>
+ {
+ _oobe.ShowSaveTransfer(save);
+
+ }));
+ }
+ }
+
+ public interface IOobe
+ {
+ void StartShowing(Save save);
+ void ShowSaveTransfer(Save save);
+ void PromptForLogin();
+ }
+}