aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS.WinForms/WinformsWindowManager.cs
diff options
context:
space:
mode:
authorMichael VanOverbeek <[email protected]>2017-04-07 17:01:23 +0000
committerMichael VanOverbeek <[email protected]>2017-04-07 17:01:23 +0000
commitedf4aef6adf8a2a45c347f70804fc5ac93070576 (patch)
tree40dbd454b0a4e4878f6f2f8e635ad83246213823 /ShiftOS.WinForms/WinformsWindowManager.cs
parent9aa1becb306f5acf139bf0dc864304ebff8ffabf (diff)
downloadshiftos_thereturn-edf4aef6adf8a2a45c347f70804fc5ac93070576.tar.gz
shiftos_thereturn-edf4aef6adf8a2a45c347f70804fc5ac93070576.tar.bz2
shiftos_thereturn-edf4aef6adf8a2a45c347f70804fc5ac93070576.zip
Merge
Diffstat (limited to 'ShiftOS.WinForms/WinformsWindowManager.cs')
-rw-r--r--ShiftOS.WinForms/WinformsWindowManager.cs183
1 files changed, 0 insertions, 183 deletions
diff --git a/ShiftOS.WinForms/WinformsWindowManager.cs b/ShiftOS.WinForms/WinformsWindowManager.cs
deleted file mode 100644
index eeaa6c9..0000000
--- a/ShiftOS.WinForms/WinformsWindowManager.cs
+++ /dev/null
@@ -1,183 +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.
- */
-
-using System;
-using System.Collections.Generic;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-using ShiftOS.Engine;
-using ShiftOS.WinForms.Tools;
-
-namespace ShiftOS.WinForms
-{
- internal class WinformsWindowManager : WindowManager
- {
- public override void Close(IShiftOSWindow win)
- {
- (win as UserControl).Close();
- }
-
- public override void InvokeAction(Action act)
- {
- Desktop.InvokeOnWorkerThread(act);
- }
-
- public override void Maximize(IWindowBorder form)
- {
- try
- {
- var deskSize = new Size(0, 0);
- deskSize.Width = Screen.PrimaryScreen.Bounds.Width;
- deskSize.Height = Screen.PrimaryScreen.Bounds.Height;
-
- deskSize.Height -= SkinEngine.LoadedSkin.DesktopPanelHeight;
-
- var deskStart = new Point((SkinEngine.LoadedSkin.DesktopPanelPosition == 0) ? SkinEngine.LoadedSkin.DesktopPanelHeight : 0, 0);
-
- (form as WindowBorder).Location = deskStart;
- (form as WindowBorder).Size = deskSize;
-
-
- }
- catch
- {
- }
- }
-
- public override void Minimize(IWindowBorder border)
- {
- try
- {
-
- }
- catch { }
- }
-
- public override void SetTitle(IShiftOSWindow win, string title)
- {
- var wb = (win as UserControl).ParentForm as WindowBorder;
- wb.SetTitle(title);
- }
-
- public override void SetupDialog(IShiftOSWindow form)
- {
- if (!Shiftorium.UpgradeAttributesUnlocked(form.GetType()))
- {
- Console.WriteLine("{APP_NOT_FOUND}");
- return;
- }
-
- var wb = new WindowBorder(form as UserControl);
- wb.IsDialog = true;
-
-
- wb.Show();
- }
-
- public override void SetupWindow(IShiftOSWindow form)
- {
- if (!AppearanceManager.CanOpenWindow(form))
- {
- Infobox.Show("{MULTIPLAYER_ONLY}", "{MULTIPLAYER_ONLY_EXP}");
- return;
- }
-
- foreach(var attr in form.GetType().GetCustomAttributes(true))
- {
- if(attr is MultiplayerOnlyAttribute)
- {
- if(KernelWatchdog.MudConnected == false)
- {
- Infobox.PromptYesNo("Disconnected from MUD", "This application requires a connection to the MUD. Would you like to reconnect?", new Action<bool>((answer) =>
- {
- if(answer == true)
- {
- KernelWatchdog.MudConnected = true;
- SetupWindow(form);
- }
- }));
- return;
- }
- }
- }
-
- if (!Shiftorium.UpgradeAttributesUnlocked(form.GetType()))
- {
- Console.WriteLine("{APP_NOT_FOUND}");
- return;
- }
-
- if (SaveSystem.CurrentSave != null)
- {
- if (!form.GetType().Name.Contains(typeof(Applications.Dialog).Name))
- {
- int maxWindows = 0;
-
- //Window manager will step in here.
- if (Shiftorium.UpgradeInstalled("wm_unlimited_windows"))
- {
- maxWindows = 0;
- }
- else if (Shiftorium.UpgradeInstalled("wm_4_windows"))
- {
- maxWindows = 4;
- }
- else if (Shiftorium.UpgradeInstalled("window_manager"))
- {
- maxWindows = 2;
- }
- else
- {
- maxWindows = 1;
- }
-
-
- if (maxWindows > 0)
- {
- List<WindowBorder> formstoclose = new List<WindowBorder>();
-
- foreach (WindowBorder frm in AppearanceManager.OpenForms)
- {
- formstoclose.Add(frm);
-
- }
-
- while (formstoclose.Count > maxWindows - 1)
- {
- formstoclose[0].Close();
- formstoclose.RemoveAt(0);
- }
- }
- }
- }
-
- var wb = new WindowBorder(form as UserControl);
-
- ControlManager.SetupWindows();
- }
- }
-}