aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS.WinForms/LuaDesktop.cs
diff options
context:
space:
mode:
Diffstat (limited to 'ShiftOS.WinForms/LuaDesktop.cs')
-rw-r--r--ShiftOS.WinForms/LuaDesktop.cs214
1 files changed, 0 insertions, 214 deletions
diff --git a/ShiftOS.WinForms/LuaDesktop.cs b/ShiftOS.WinForms/LuaDesktop.cs
deleted file mode 100644
index 8fd5244..0000000
--- a/ShiftOS.WinForms/LuaDesktop.cs
+++ /dev/null
@@ -1,214 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-using Newtonsoft.Json;
-using ShiftOS.Engine;
-using ShiftOS.Engine.Scripting;
-using ShiftOS.Objects.ShiftFS;
-using static ShiftOS.Engine.SkinEngine;
-
-
-namespace ShiftOS.WinForms
-{
- public partial class LuaDesktop : Form, IDesktop
- {
- public LuaDesktop(string script)
- {
- InitializeComponent();
- interpreter = new LuaInterpreter();
- interpreter.Lua.getCanvas = new Func<Panel>(() =>
- {
- return this.pnlcanvas;
- });
- if (Utils.FileExists(script))
- {
- interpreter.ExecuteFile(script);
- }
- else
- {
- Desktop.Init(new WinformsDesktop(), true);
- Infobox.Show("Script not found.", "Couldn't find a ShiftOS script to handle the desktop environment.");
- this.Close();
- }
- }
-
- private LuaInterpreter interpreter = null;
-
- public string DesktopName
- {
- get
- {
- string name = "Unknown";
- try
- {
- name = (string.IsNullOrWhiteSpace(interpreter.Lua.deskName)) ? "Unknown" : interpreter.Lua.deskName;
- }
- catch
- {
-
- }
- return name;
- }
- }
-
- private IWindowBorder focused = null;
-
- public Size GetSize()
- {
- return this.Size;
- }
-
- public void InvokeOnWorkerThread(Action act)
- {
- this.Invoke(act);
- }
-
- public void PopulateAppLauncher(LauncherItem[] items)
- {
- interpreter.Lua.populateAppLauncher(interpreter.Lua.totable(new List<LauncherItem>(items)));
- }
-
- public void PopulatePanelButtons()
- {
- interpreter.Lua.populatePanelButtons();
- }
-
- public void SetupDesktop()
- {
- try
- {
- interpreter.Lua.setupDesktop();
- }
- catch (Exception ex)
- {
- Infobox.Show("Desktop setup error", "The desktop environment threw an exception: \r\n\r\n\r\n" + ex.Message);
- Desktop.Init(new WinformsDesktop(), true);
- this.Close();
- }
- }
-
- public void ShowWindow(IWindowBorder border)
- {
- var brdr = border as Form;
- focused = border;
- brdr.GotFocus += (o, a) =>
- {
- focused = border;
- };
- brdr.FormBorderStyle = FormBorderStyle.None;
- brdr.Show();
- brdr.TopMost = true;
- }
-
- /// <summary>
- /// Kills the window.
- /// </summary>
- /// <returns>The window.</returns>
- /// <param name="border">Border.</param>
- public void KillWindow(IWindowBorder border)
- {
- border.Close();
- }
-
- /// <summary>
- /// Minimizes the window.
- /// </summary>
- /// <param name="brdr">Brdr.</param>
- public void MinimizeWindow(IWindowBorder brdr)
- {
- var loc = (brdr as WindowBorder).Location;
- var sz = (brdr as WindowBorder).Size;
- (brdr as WindowBorder).Tag = JsonConvert.SerializeObject(new
- {
- Size = sz,
- Location = loc
- });
- (brdr as WindowBorder).Location = new Point(this.GetSize().Width * 2, this.GetSize().Height * 2);
- }
-
- /// <summary>
- /// Maximizes the window.
- /// </summary>
- /// <returns>The window.</returns>
- /// <param name="brdr">Brdr.</param>
- public void MaximizeWindow(IWindowBorder brdr)
- {
- int startY = (LoadedSkin.DesktopPanelPosition == 1) ? 0 : LoadedSkin.DesktopPanelHeight;
- int h = this.GetSize().Height - LoadedSkin.DesktopPanelHeight;
- var loc = (brdr as WindowBorder).Location;
- var sz = (brdr as WindowBorder).Size;
- (brdr as WindowBorder).Tag = JsonConvert.SerializeObject(new
- {
- Size = sz,
- Location = loc
- });
- (brdr as WindowBorder).Location = new Point(0, startY);
- (brdr as WindowBorder).Size = new Size(this.GetSize().Width, h);
-
- }
-
- /// <summary>
- /// Restores the window.
- /// </summary>
- /// <returns>The window.</returns>
- /// <param name="brdr">Brdr.</param>
- public void RestoreWindow(IWindowBorder brdr)
- {
- dynamic tag = JsonConvert.DeserializeObject<dynamic>((brdr as WindowBorder).Tag.ToString());
- (brdr as WindowBorder).Location = tag.Location;
- (brdr as WindowBorder).Size = tag.Size;
-
- }
-
- private void LuaDesktop_Load(object sender, EventArgs e)
- {
- this.LocationChanged += (o, a) =>
- {
- if (this.Left != 0)
- this.Left = 0;
- if (this.Top != 0)
- this.Top = 0;
- };
-
- this.SizeChanged += (o, a) =>
- {
- if(this.DisplayRectangle != Screen.PrimaryScreen.Bounds)
- {
- this.WindowState = FormWindowState.Maximized;
- }
- };
-
- interpreter.Lua.onLoadDesktop();
- SetupDesktop();
- SaveSystem.GameReady += () =>
- {
- InvokeOnWorkerThread(new Action(() =>
- {
- SetupDesktop();
- }));
- };
- SkinEngine.SkinLoaded += () =>
- {
- if(this.Visible == true)
- {
- SetupDesktop();
- }
- };
- Shiftorium.Installed += () =>
- {
- if (this.Visible == true)
- {
- SetupDesktop();
- }
-
- };
-
- }
- }
-}